From 1582831bd48ad210bf207430c902cabe46ffbf0c Mon Sep 17 00:00:00 2001 From: Colin Roberts Date: Thu, 23 Mar 2023 15:15:52 -0600 Subject: [PATCH 1/8] Working on Foundry and bindings Trying to make the smart contract management easier. --- Cargo.toml | 4 - README.md | 8 + crates/bindings/Cargo.toml | 4 +- crates/bindings/LICENSE | 201 - crates/bindings/src/account_lib.rs | 63 - crates/bindings/src/arbiter_token.rs | 6316 +- crates/bindings/src/assembly_lib.rs | 341 - .../src/{simple_registry.rs => bar.rs} | 1773 +- crates/bindings/src/bar_erc1155.rs | 918 + crates/bindings/src/bar_erc721.rs | 1049 + .../bindings/src/{fvm_lib.rs => context.rs} | 43 +- crates/bindings/src/echidna_erc20.rs | 7911 -- crates/bindings/src/erc20.rs | 5419 +- crates/bindings/src/fee_on_transfer_token.rs | 8307 -- crates/bindings/src/fixed_point_math_lib.rs | 343 - crates/bindings/src/gaussian.rs | 438 - crates/bindings/src/i_portfolio.rs | 1790 - crates/bindings/src/i_portfolio_actions.rs | 314 - crates/bindings/src/i_portfolio_events.rs | 596 - crates/bindings/src/i_portfolio_getters.rs | 1041 - crates/bindings/src/i_portfolio_registry.rs | 98 - crates/bindings/src/ierc1155.rs | 636 + crates/bindings/src/ierc165.rs | 98 + crates/bindings/src/ierc20.rs | 228 +- crates/bindings/src/ierc20_metadata.rs | 629 + crates/bindings/src/ierc4626.rs | 1539 + crates/bindings/src/ierc721.rs | 708 + crates/bindings/src/ierc721_enumerable.rs | 872 + crates/bindings/src/ierc721_metadata.rs | 856 + crates/bindings/src/ierc721_token_receiver.rs | 113 + .../bindings/src/infinitely_liquid_market.rs | 608 + crates/bindings/src/invariant.rs | 354 - crates/bindings/src/iweth.rs | 152 - crates/bindings/src/lib.rs | 45 +- crates/bindings/src/mock_erc20.rs | 7968 -- crates/bindings/src/objective.rs | 2081 - crates/bindings/src/portfolio_lib.rs | 63 - crates/bindings/src/portfolio_like.rs | 163 - crates/bindings/src/portfolio_virtual.rs | 2873 - ...safe_cast_lib.rs => reverting_contract.rs} | 280 +- crates/bindings/src/rmm01_extended_lib.rs | 343 - crates/bindings/src/rmm01_lib.rs | 415 - crates/bindings/src/rmm01_portfolio.rs | 75476 ---------------- crates/bindings/src/shared_types.rs | 38 - crates/bindings/src/std_invariant.rs | 4686 + .../{safe_transfer_lib.rs => std_style.rs} | 181 +- crates/bindings/src/units.rs | 63 - crates/bindings/src/weth9.rs | 4385 +- crates/bindings/src/writer.rs | 182 +- crates/bindings_old/Cargo.toml | 10 - crates/bindings_old/LICENSE | 201 - crates/bindings_old/src/i_uniswap_v3_pool.rs | 1710 - crates/bindings_old/src/lib.rs | 7 - crates/bindings_old/src/uniswap_v3_factory.rs | 529 - crates/cli/src/main.rs | 5 +- foundry.toml | 9 +- 56 files changed, 30005 insertions(+), 115478 deletions(-) delete mode 100644 crates/bindings/LICENSE delete mode 100644 crates/bindings/src/account_lib.rs delete mode 100644 crates/bindings/src/assembly_lib.rs rename crates/bindings/src/{simple_registry.rs => bar.rs} (55%) create mode 100644 crates/bindings/src/bar_erc1155.rs create mode 100644 crates/bindings/src/bar_erc721.rs rename crates/bindings/src/{fvm_lib.rs => context.rs} (59%) delete mode 100644 crates/bindings/src/echidna_erc20.rs delete mode 100644 crates/bindings/src/fee_on_transfer_token.rs delete mode 100644 crates/bindings/src/fixed_point_math_lib.rs delete mode 100644 crates/bindings/src/gaussian.rs delete mode 100644 crates/bindings/src/i_portfolio.rs delete mode 100644 crates/bindings/src/i_portfolio_actions.rs delete mode 100644 crates/bindings/src/i_portfolio_events.rs delete mode 100644 crates/bindings/src/i_portfolio_getters.rs delete mode 100644 crates/bindings/src/i_portfolio_registry.rs create mode 100644 crates/bindings/src/ierc1155.rs create mode 100644 crates/bindings/src/ierc165.rs create mode 100644 crates/bindings/src/ierc20_metadata.rs create mode 100644 crates/bindings/src/ierc4626.rs create mode 100644 crates/bindings/src/ierc721.rs create mode 100644 crates/bindings/src/ierc721_enumerable.rs create mode 100644 crates/bindings/src/ierc721_metadata.rs create mode 100644 crates/bindings/src/ierc721_token_receiver.rs create mode 100644 crates/bindings/src/infinitely_liquid_market.rs delete mode 100644 crates/bindings/src/invariant.rs delete mode 100644 crates/bindings/src/iweth.rs delete mode 100644 crates/bindings/src/mock_erc20.rs delete mode 100644 crates/bindings/src/objective.rs delete mode 100644 crates/bindings/src/portfolio_lib.rs delete mode 100644 crates/bindings/src/portfolio_like.rs delete mode 100644 crates/bindings/src/portfolio_virtual.rs rename crates/bindings/src/{safe_cast_lib.rs => reverting_contract.rs} (53%) delete mode 100644 crates/bindings/src/rmm01_extended_lib.rs delete mode 100644 crates/bindings/src/rmm01_lib.rs delete mode 100644 crates/bindings/src/rmm01_portfolio.rs delete mode 100644 crates/bindings/src/shared_types.rs create mode 100644 crates/bindings/src/std_invariant.rs rename crates/bindings/src/{safe_transfer_lib.rs => std_style.rs} (72%) delete mode 100644 crates/bindings/src/units.rs delete mode 100644 crates/bindings_old/Cargo.toml delete mode 100644 crates/bindings_old/LICENSE delete mode 100644 crates/bindings_old/src/i_uniswap_v3_pool.rs delete mode 100644 crates/bindings_old/src/lib.rs delete mode 100644 crates/bindings_old/src/uniswap_v3_factory.rs diff --git a/Cargo.toml b/Cargo.toml index 71517c78..33ecf492 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,11 +1,7 @@ [workspace] members = [ "crates/bindings", - "crates/bindings_old", - # "crates/clairvoyance", - # "crates/architect", "crates/cli", - "crates/utils", "crates/simulate" ] diff --git a/README.md b/README.md index 5cad0a7e..0e00212f 100644 --- a/README.md +++ b/README.md @@ -53,6 +53,14 @@ cargo doc --workspace --no-deps --open ``` This will generate and open the docs in your browser. From there, you can look at the documentation for each crate in the Arbiter workspace. +## Including More Contracts + +In the `lib/` folder you can add additional smart contracts or regenerate Rust bindings. To do so, run the following from the Arbiter root directory: + +``` +fforge bind -b crates/bindings/ --crate-name bindings --overwrite +``` + ## Contributing See our [Contributing Guidelines](https://github.com/primitivefinance/arbiter/blob/main/.github/CONTRIBUTING.md) diff --git a/crates/bindings/Cargo.toml b/crates/bindings/Cargo.toml index aa8914b6..66471b85 100644 --- a/crates/bindings/Cargo.toml +++ b/crates/bindings/Cargo.toml @@ -6,6 +6,4 @@ edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] - -ethers = "=2.0.0" -serde_json = "1.0.79" \ No newline at end of file +ethers = { git = "https://github.com/gakonst/ethers-rs", default-features = false, features = ["abigen"] } diff --git a/crates/bindings/LICENSE b/crates/bindings/LICENSE deleted file mode 100644 index 261eeb9e..00000000 --- a/crates/bindings/LICENSE +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/crates/bindings/src/account_lib.rs b/crates/bindings/src/account_lib.rs deleted file mode 100644 index 1ea6fdf8..00000000 --- a/crates/bindings/src/account_lib.rs +++ /dev/null @@ -1,63 +0,0 @@ -pub use account_lib::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types -)] -pub mod account_lib { - #[rustfmt::skip] - const __ABI: &str = "[]"; - ///The parsed JSON ABI of the contract. - pub static ACCOUNTLIB_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = - ::ethers::contract::Lazy::new(|| { - ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid") - }); - pub struct AccountLib(::ethers::contract::Contract); - impl ::core::clone::Clone for AccountLib { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for AccountLib { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for AccountLib { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for AccountLib { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(stringify!(AccountLib)) - .field(&self.address()) - .finish() - } - } - impl AccountLib { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self(::ethers::contract::Contract::new( - address.into(), - ACCOUNTLIB_ABI.clone(), - client, - )) - } - } - impl From<::ethers::contract::Contract> for AccountLib { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } -} diff --git a/crates/bindings/src/arbiter_token.rs b/crates/bindings/src/arbiter_token.rs index a4cf23d7..dd976251 100644 --- a/crates/bindings/src/arbiter_token.rs +++ b/crates/bindings/src/arbiter_token.rs @@ -7,22 +7,6316 @@ pub use arbiter_token::*; clippy::upper_case_acronyms, clippy::type_complexity, dead_code, - non_camel_case_types + non_camel_case_types, )] pub mod arbiter_token { #[rustfmt::skip] const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\",\"components\":[]},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Approval\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Transfer\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"mint\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]}]"; ///The parsed JSON ABI of the contract. - pub static ARBITERTOKEN_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = - ::ethers::contract::Lazy::new(|| { - ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid") - }); + pub static ARBITERTOKEN_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| + ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); #[rustfmt::skip] + const __BYTECODE: &[u8] = &[ + 96, + 128, + 96, + 64, + 82, + 52, + 128, + 21, + 98, + 0, + 0, + 17, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 96, + 64, + 81, + 98, + 0, + 12, + 55, + 56, + 3, + 128, + 98, + 0, + 12, + 55, + 131, + 57, + 129, + 1, + 96, + 64, + 129, + 144, + 82, + 98, + 0, + 0, + 52, + 145, + 98, + 0, + 1, + 35, + 86, + 91, + 129, + 129, + 96, + 3, + 98, + 0, + 0, + 68, + 131, + 130, + 98, + 0, + 2, + 28, + 86, + 91, + 80, + 96, + 4, + 98, + 0, + 0, + 83, + 130, + 130, + 98, + 0, + 2, + 28, + 86, + 91, + 80, + 80, + 80, + 80, + 80, + 98, + 0, + 2, + 232, + 86, + 91, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 65, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 96, + 0, + 130, + 96, + 31, + 131, + 1, + 18, + 98, + 0, + 0, + 134, + 87, + 96, + 0, + 128, + 253, + 91, + 129, + 81, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 128, + 130, + 17, + 21, + 98, + 0, + 0, + 163, + 87, + 98, + 0, + 0, + 163, + 98, + 0, + 0, + 94, + 86, + 91, + 96, + 64, + 81, + 96, + 31, + 131, + 1, + 96, + 31, + 25, + 144, + 129, + 22, + 96, + 63, + 1, + 22, + 129, + 1, + 144, + 130, + 130, + 17, + 129, + 131, + 16, + 23, + 21, + 98, + 0, + 0, + 206, + 87, + 98, + 0, + 0, + 206, + 98, + 0, + 0, + 94, + 86, + 91, + 129, + 96, + 64, + 82, + 131, + 129, + 82, + 96, + 32, + 146, + 80, + 134, + 131, + 133, + 136, + 1, + 1, + 17, + 21, + 98, + 0, + 0, + 235, + 87, + 96, + 0, + 128, + 253, + 91, + 96, + 0, + 145, + 80, + 91, + 131, + 130, + 16, + 21, + 98, + 0, + 1, + 15, + 87, + 133, + 130, + 1, + 131, + 1, + 81, + 129, + 131, + 1, + 132, + 1, + 82, + 144, + 130, + 1, + 144, + 98, + 0, + 0, + 240, + 86, + 91, + 96, + 0, + 147, + 129, + 1, + 144, + 146, + 1, + 146, + 144, + 146, + 82, + 148, + 147, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 64, + 131, + 133, + 3, + 18, + 21, + 98, + 0, + 1, + 55, + 87, + 96, + 0, + 128, + 253, + 91, + 130, + 81, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 128, + 130, + 17, + 21, + 98, + 0, + 1, + 79, + 87, + 96, + 0, + 128, + 253, + 91, + 98, + 0, + 1, + 93, + 134, + 131, + 135, + 1, + 98, + 0, + 0, + 116, + 86, + 91, + 147, + 80, + 96, + 32, + 133, + 1, + 81, + 145, + 80, + 128, + 130, + 17, + 21, + 98, + 0, + 1, + 116, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 98, + 0, + 1, + 131, + 133, + 130, + 134, + 1, + 98, + 0, + 0, + 116, + 86, + 91, + 145, + 80, + 80, + 146, + 80, + 146, + 144, + 80, + 86, + 91, + 96, + 1, + 129, + 129, + 28, + 144, + 130, + 22, + 128, + 98, + 0, + 1, + 162, + 87, + 96, + 127, + 130, + 22, + 145, + 80, + 91, + 96, + 32, + 130, + 16, + 129, + 3, + 98, + 0, + 1, + 195, + 87, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 34, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 80, + 145, + 144, + 80, + 86, + 91, + 96, + 31, + 130, + 17, + 21, + 98, + 0, + 2, + 23, + 87, + 96, + 0, + 129, + 129, + 82, + 96, + 32, + 129, + 32, + 96, + 31, + 133, + 1, + 96, + 5, + 28, + 129, + 1, + 96, + 32, + 134, + 16, + 21, + 98, + 0, + 1, + 242, + 87, + 80, + 128, + 91, + 96, + 31, + 133, + 1, + 96, + 5, + 28, + 130, + 1, + 145, + 80, + 91, + 129, + 129, + 16, + 21, + 98, + 0, + 2, + 19, + 87, + 130, + 129, + 85, + 96, + 1, + 1, + 98, + 0, + 1, + 254, + 86, + 91, + 80, + 80, + 80, + 91, + 80, + 80, + 80, + 86, + 91, + 129, + 81, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 129, + 17, + 21, + 98, + 0, + 2, + 56, + 87, + 98, + 0, + 2, + 56, + 98, + 0, + 0, + 94, + 86, + 91, + 98, + 0, + 2, + 80, + 129, + 98, + 0, + 2, + 73, + 132, + 84, + 98, + 0, + 1, + 141, + 86, + 91, + 132, + 98, + 0, + 1, + 201, + 86, + 91, + 96, + 32, + 128, + 96, + 31, + 131, + 17, + 96, + 1, + 129, + 20, + 98, + 0, + 2, + 136, + 87, + 96, + 0, + 132, + 21, + 98, + 0, + 2, + 111, + 87, + 80, + 133, + 131, + 1, + 81, + 91, + 96, + 0, + 25, + 96, + 3, + 134, + 144, + 27, + 28, + 25, + 22, + 96, + 1, + 133, + 144, + 27, + 23, + 133, + 85, + 98, + 0, + 2, + 19, + 86, + 91, + 96, + 0, + 133, + 129, + 82, + 96, + 32, + 129, + 32, + 96, + 31, + 25, + 134, + 22, + 145, + 91, + 130, + 129, + 16, + 21, + 98, + 0, + 2, + 185, + 87, + 136, + 134, + 1, + 81, + 130, + 85, + 148, + 132, + 1, + 148, + 96, + 1, + 144, + 145, + 1, + 144, + 132, + 1, + 98, + 0, + 2, + 152, + 86, + 91, + 80, + 133, + 130, + 16, + 21, + 98, + 0, + 2, + 216, + 87, + 135, + 133, + 1, + 81, + 96, + 0, + 25, + 96, + 3, + 136, + 144, + 27, + 96, + 248, + 22, + 28, + 25, + 22, + 129, + 85, + 91, + 80, + 80, + 80, + 80, + 80, + 96, + 1, + 144, + 129, + 27, + 1, + 144, + 85, + 80, + 86, + 91, + 97, + 9, + 63, + 128, + 98, + 0, + 2, + 248, + 96, + 0, + 57, + 96, + 0, + 243, + 254, + 96, + 128, + 96, + 64, + 82, + 52, + 128, + 21, + 97, + 0, + 16, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 96, + 4, + 54, + 16, + 97, + 0, + 180, + 87, + 96, + 0, + 53, + 96, + 224, + 28, + 128, + 99, + 64, + 193, + 15, + 25, + 17, + 97, + 0, + 113, + 87, + 128, + 99, + 64, + 193, + 15, + 25, + 20, + 97, + 1, + 65, + 87, + 128, + 99, + 112, + 160, + 130, + 49, + 20, + 97, + 1, + 86, + 87, + 128, + 99, + 149, + 216, + 155, + 65, + 20, + 97, + 1, + 127, + 87, + 128, + 99, + 164, + 87, + 194, + 215, + 20, + 97, + 1, + 135, + 87, + 128, + 99, + 169, + 5, + 156, + 187, + 20, + 97, + 1, + 154, + 87, + 128, + 99, + 221, + 98, + 237, + 62, + 20, + 97, + 1, + 173, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 6, + 253, + 222, + 3, + 20, + 97, + 0, + 185, + 87, + 128, + 99, + 9, + 94, + 167, + 179, + 20, + 97, + 0, + 215, + 87, + 128, + 99, + 24, + 22, + 13, + 221, + 20, + 97, + 0, + 250, + 87, + 128, + 99, + 35, + 184, + 114, + 221, + 20, + 97, + 1, + 12, + 87, + 128, + 99, + 49, + 60, + 229, + 103, + 20, + 97, + 1, + 31, + 87, + 128, + 99, + 57, + 80, + 147, + 81, + 20, + 97, + 1, + 46, + 87, + 91, + 96, + 0, + 128, + 253, + 91, + 97, + 0, + 193, + 97, + 1, + 192, + 86, + 91, + 96, + 64, + 81, + 97, + 0, + 206, + 145, + 144, + 97, + 7, + 137, + 86, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 243, + 91, + 97, + 0, + 234, + 97, + 0, + 229, + 54, + 96, + 4, + 97, + 7, + 243, + 86, + 91, + 97, + 2, + 82, + 86, + 91, + 96, + 64, + 81, + 144, + 21, + 21, + 129, + 82, + 96, + 32, + 1, + 97, + 0, + 206, + 86, + 91, + 96, + 2, + 84, + 91, + 96, + 64, + 81, + 144, + 129, + 82, + 96, + 32, + 1, + 97, + 0, + 206, + 86, + 91, + 97, + 0, + 234, + 97, + 1, + 26, + 54, + 96, + 4, + 97, + 8, + 29, + 86, + 91, + 97, + 2, + 108, + 86, + 91, + 96, + 64, + 81, + 96, + 18, + 129, + 82, + 96, + 32, + 1, + 97, + 0, + 206, + 86, + 91, + 97, + 0, + 234, + 97, + 1, + 60, + 54, + 96, + 4, + 97, + 7, + 243, + 86, + 91, + 97, + 2, + 144, + 86, + 91, + 97, + 1, + 84, + 97, + 1, + 79, + 54, + 96, + 4, + 97, + 7, + 243, + 86, + 91, + 97, + 2, + 178, + 86, + 91, + 0, + 91, + 97, + 0, + 254, + 97, + 1, + 100, + 54, + 96, + 4, + 97, + 8, + 89, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 32, + 129, + 144, + 82, + 96, + 64, + 144, + 32, + 84, + 144, + 86, + 91, + 97, + 0, + 193, + 97, + 2, + 192, + 86, + 91, + 97, + 0, + 234, + 97, + 1, + 149, + 54, + 96, + 4, + 97, + 7, + 243, + 86, + 91, + 97, + 2, + 207, + 86, + 91, + 97, + 0, + 234, + 97, + 1, + 168, + 54, + 96, + 4, + 97, + 7, + 243, + 86, + 91, + 97, + 3, + 79, + 86, + 91, + 97, + 0, + 254, + 97, + 1, + 187, + 54, + 96, + 4, + 97, + 8, + 123, + 86, + 91, + 97, + 3, + 93, + 86, + 91, + 96, + 96, + 96, + 3, + 128, + 84, + 97, + 1, + 207, + 144, + 97, + 8, + 174, + 86, + 91, + 128, + 96, + 31, + 1, + 96, + 32, + 128, + 145, + 4, + 2, + 96, + 32, + 1, + 96, + 64, + 81, + 144, + 129, + 1, + 96, + 64, + 82, + 128, + 146, + 145, + 144, + 129, + 129, + 82, + 96, + 32, + 1, + 130, + 128, + 84, + 97, + 1, + 251, + 144, + 97, + 8, + 174, + 86, + 91, + 128, + 21, + 97, + 2, + 72, + 87, + 128, + 96, + 31, + 16, + 97, + 2, + 29, + 87, + 97, + 1, + 0, + 128, + 131, + 84, + 4, + 2, + 131, + 82, + 145, + 96, + 32, + 1, + 145, + 97, + 2, + 72, + 86, + 91, + 130, + 1, + 145, + 144, + 96, + 0, + 82, + 96, + 32, + 96, + 0, + 32, + 144, + 91, + 129, + 84, + 129, + 82, + 144, + 96, + 1, + 1, + 144, + 96, + 32, + 1, + 128, + 131, + 17, + 97, + 2, + 43, + 87, + 130, + 144, + 3, + 96, + 31, + 22, + 130, + 1, + 145, + 91, + 80, + 80, + 80, + 80, + 80, + 144, + 80, + 144, + 86, + 91, + 96, + 0, + 51, + 97, + 2, + 96, + 129, + 133, + 133, + 97, + 3, + 136, + 86, + 91, + 96, + 1, + 145, + 80, + 80, + 91, + 146, + 145, + 80, + 80, + 86, + 91, + 96, + 0, + 51, + 97, + 2, + 122, + 133, + 130, + 133, + 97, + 4, + 172, + 86, + 91, + 97, + 2, + 133, + 133, + 133, + 133, + 97, + 5, + 38, + 86, + 91, + 80, + 96, + 1, + 148, + 147, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 51, + 97, + 2, + 96, + 129, + 133, + 133, + 97, + 2, + 163, + 131, + 131, + 97, + 3, + 93, + 86, + 91, + 97, + 2, + 173, + 145, + 144, + 97, + 8, + 232, + 86, + 91, + 97, + 3, + 136, + 86, + 91, + 97, + 2, + 188, + 130, + 130, + 97, + 6, + 202, + 86, + 91, + 80, + 80, + 86, + 91, + 96, + 96, + 96, + 4, + 128, + 84, + 97, + 1, + 207, + 144, + 97, + 8, + 174, + 86, + 91, + 96, + 0, + 51, + 129, + 97, + 2, + 221, + 130, + 134, + 97, + 3, + 93, + 86, + 91, + 144, + 80, + 131, + 129, + 16, + 21, + 97, + 3, + 66, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 37, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 100, + 101, + 99, + 114, + 101, + 97, + 115, + 101, + 100, + 32, + 97, + 108, + 108, + 111, + 119, + 97, + 110, + 99, + 101, + 32, + 98, + 101, + 108, + 111, + 119, + 96, + 68, + 130, + 1, + 82, + 100, + 32, + 122, + 101, + 114, + 111, + 96, + 216, + 27, + 96, + 100, + 130, + 1, + 82, + 96, + 132, + 1, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 97, + 2, + 133, + 130, + 134, + 134, + 132, + 3, + 97, + 3, + 136, + 86, + 91, + 96, + 0, + 51, + 97, + 2, + 96, + 129, + 133, + 133, + 97, + 5, + 38, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 145, + 130, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 1, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 147, + 144, + 148, + 22, + 130, + 82, + 145, + 144, + 145, + 82, + 32, + 84, + 144, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 22, + 97, + 3, + 234, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 36, + 128, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 97, + 112, + 112, + 114, + 111, + 118, + 101, + 32, + 102, + 114, + 111, + 109, + 32, + 116, + 104, + 101, + 32, + 122, + 101, + 114, + 111, + 32, + 97, + 100, + 100, + 96, + 68, + 130, + 1, + 82, + 99, + 114, + 101, + 115, + 115, + 96, + 224, + 27, + 96, + 100, + 130, + 1, + 82, + 96, + 132, + 1, + 97, + 3, + 57, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 97, + 4, + 75, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 34, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 97, + 112, + 112, + 114, + 111, + 118, + 101, + 32, + 116, + 111, + 32, + 116, + 104, + 101, + 32, + 122, + 101, + 114, + 111, + 32, + 97, + 100, + 100, + 114, + 101, + 96, + 68, + 130, + 1, + 82, + 97, + 115, + 115, + 96, + 240, + 27, + 96, + 100, + 130, + 1, + 82, + 96, + 132, + 1, + 97, + 3, + 57, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 129, + 22, + 96, + 0, + 129, + 129, + 82, + 96, + 1, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 148, + 135, + 22, + 128, + 132, + 82, + 148, + 130, + 82, + 145, + 130, + 144, + 32, + 133, + 144, + 85, + 144, + 81, + 132, + 129, + 82, + 127, + 140, + 91, + 225, + 229, + 235, + 236, + 125, + 91, + 209, + 79, + 113, + 66, + 125, + 30, + 132, + 243, + 221, + 3, + 20, + 192, + 247, + 178, + 41, + 30, + 91, + 32, + 10, + 200, + 199, + 195, + 185, + 37, + 145, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 97, + 4, + 184, + 132, + 132, + 97, + 3, + 93, + 86, + 91, + 144, + 80, + 96, + 0, + 25, + 129, + 20, + 97, + 5, + 32, + 87, + 129, + 129, + 16, + 21, + 97, + 5, + 19, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 29, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 105, + 110, + 115, + 117, + 102, + 102, + 105, + 99, + 105, + 101, + 110, + 116, + 32, + 97, + 108, + 108, + 111, + 119, + 97, + 110, + 99, + 101, + 0, + 0, + 0, + 96, + 68, + 130, + 1, + 82, + 96, + 100, + 1, + 97, + 3, + 57, + 86, + 91, + 97, + 5, + 32, + 132, + 132, + 132, + 132, + 3, + 97, + 3, + 136, + 86, + 91, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 22, + 97, + 5, + 138, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 37, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 116, + 114, + 97, + 110, + 115, + 102, + 101, + 114, + 32, + 102, + 114, + 111, + 109, + 32, + 116, + 104, + 101, + 32, + 122, + 101, + 114, + 111, + 32, + 97, + 100, + 96, + 68, + 130, + 1, + 82, + 100, + 100, + 114, + 101, + 115, + 115, + 96, + 216, + 27, + 96, + 100, + 130, + 1, + 82, + 96, + 132, + 1, + 97, + 3, + 57, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 97, + 5, + 236, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 35, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 116, + 114, + 97, + 110, + 115, + 102, + 101, + 114, + 32, + 116, + 111, + 32, + 116, + 104, + 101, + 32, + 122, + 101, + 114, + 111, + 32, + 97, + 100, + 100, + 114, + 96, + 68, + 130, + 1, + 82, + 98, + 101, + 115, + 115, + 96, + 232, + 27, + 96, + 100, + 130, + 1, + 82, + 96, + 132, + 1, + 97, + 3, + 57, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 32, + 129, + 144, + 82, + 96, + 64, + 144, + 32, + 84, + 129, + 129, + 16, + 21, + 97, + 6, + 100, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 38, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 116, + 114, + 97, + 110, + 115, + 102, + 101, + 114, + 32, + 97, + 109, + 111, + 117, + 110, + 116, + 32, + 101, + 120, + 99, + 101, + 101, + 100, + 115, + 32, + 98, + 96, + 68, + 130, + 1, + 82, + 101, + 97, + 108, + 97, + 110, + 99, + 101, + 96, + 208, + 27, + 96, + 100, + 130, + 1, + 82, + 96, + 132, + 1, + 97, + 3, + 57, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 132, + 129, + 22, + 96, + 0, + 129, + 129, + 82, + 96, + 32, + 129, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 135, + 135, + 3, + 144, + 85, + 147, + 135, + 22, + 128, + 131, + 82, + 145, + 132, + 144, + 32, + 128, + 84, + 135, + 1, + 144, + 85, + 146, + 81, + 133, + 129, + 82, + 144, + 146, + 127, + 221, + 242, + 82, + 173, + 27, + 226, + 200, + 155, + 105, + 194, + 176, + 104, + 252, + 55, + 141, + 170, + 149, + 43, + 167, + 241, + 99, + 196, + 161, + 22, + 40, + 245, + 90, + 77, + 245, + 35, + 179, + 239, + 145, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 97, + 5, + 32, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 97, + 7, + 32, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 31, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 109, + 105, + 110, + 116, + 32, + 116, + 111, + 32, + 116, + 104, + 101, + 32, + 122, + 101, + 114, + 111, + 32, + 97, + 100, + 100, + 114, + 101, + 115, + 115, + 0, + 96, + 68, + 130, + 1, + 82, + 96, + 100, + 1, + 97, + 3, + 57, + 86, + 91, + 128, + 96, + 2, + 96, + 0, + 130, + 130, + 84, + 97, + 7, + 50, + 145, + 144, + 97, + 8, + 232, + 86, + 91, + 144, + 145, + 85, + 80, + 80, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 96, + 0, + 129, + 129, + 82, + 96, + 32, + 129, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 128, + 84, + 134, + 1, + 144, + 85, + 81, + 132, + 129, + 82, + 127, + 221, + 242, + 82, + 173, + 27, + 226, + 200, + 155, + 105, + 194, + 176, + 104, + 252, + 55, + 141, + 170, + 149, + 43, + 167, + 241, + 99, + 196, + 161, + 22, + 40, + 245, + 90, + 77, + 245, + 35, + 179, + 239, + 145, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 80, + 80, + 86, + 91, + 96, + 0, + 96, + 32, + 128, + 131, + 82, + 131, + 81, + 128, + 130, + 133, + 1, + 82, + 96, + 0, + 91, + 129, + 129, + 16, + 21, + 97, + 7, + 182, + 87, + 133, + 129, + 1, + 131, + 1, + 81, + 133, + 130, + 1, + 96, + 64, + 1, + 82, + 130, + 1, + 97, + 7, + 154, + 86, + 91, + 80, + 96, + 0, + 96, + 64, + 130, + 134, + 1, + 1, + 82, + 96, + 64, + 96, + 31, + 25, + 96, + 31, + 131, + 1, + 22, + 133, + 1, + 1, + 146, + 80, + 80, + 80, + 146, + 145, + 80, + 80, + 86, + 91, + 128, + 53, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 129, + 22, + 129, + 20, + 97, + 7, + 238, + 87, + 96, + 0, + 128, + 253, + 91, + 145, + 144, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 64, + 131, + 133, + 3, + 18, + 21, + 97, + 8, + 6, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 8, + 15, + 131, + 97, + 7, + 215, + 86, + 91, + 148, + 96, + 32, + 147, + 144, + 147, + 1, + 53, + 147, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 96, + 96, + 132, + 134, + 3, + 18, + 21, + 97, + 8, + 50, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 8, + 59, + 132, + 97, + 7, + 215, + 86, + 91, + 146, + 80, + 97, + 8, + 73, + 96, + 32, + 133, + 1, + 97, + 7, + 215, + 86, + 91, + 145, + 80, + 96, + 64, + 132, + 1, + 53, + 144, + 80, + 146, + 80, + 146, + 80, + 146, + 86, + 91, + 96, + 0, + 96, + 32, + 130, + 132, + 3, + 18, + 21, + 97, + 8, + 107, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 8, + 116, + 130, + 97, + 7, + 215, + 86, + 91, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 64, + 131, + 133, + 3, + 18, + 21, + 97, + 8, + 142, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 8, + 151, + 131, + 97, + 7, + 215, + 86, + 91, + 145, + 80, + 97, + 8, + 165, + 96, + 32, + 132, + 1, + 97, + 7, + 215, + 86, + 91, + 144, + 80, + 146, + 80, + 146, + 144, + 80, + 86, + 91, + 96, + 1, + 129, + 129, + 28, + 144, + 130, + 22, + 128, + 97, + 8, + 194, + 87, + 96, + 127, + 130, + 22, + 145, + 80, + 91, + 96, + 32, + 130, + 16, + 129, + 3, + 97, + 8, + 226, + 87, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 34, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 80, + 145, + 144, + 80, + 86, + 91, + 128, + 130, + 1, + 128, + 130, + 17, + 21, + 97, + 2, + 102, + 87, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 17, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 254, + 162, + 100, + 105, + 112, + 102, + 115, + 88, + 34, + 18, + 32, + 85, + 80, + 215, + 26, + 179, + 119, + 121, + 19, + 132, + 71, + 232, + 203, + 243, + 118, + 195, + 91, + 218, + 77, + 79, + 81, + 26, + 20, + 175, + 132, + 134, + 90, + 127, + 78, + 196, + 226, + 36, + 60, + 100, + 115, + 111, + 108, + 99, + 67, + 0, + 8, + 19, + 0, + 51, + ]; ///The bytecode of the contract. - pub static ARBITERTOKEN_BYTECODE: ::ethers::contract::Lazy<::ethers::core::types::Bytes> = - ::ethers::contract::Lazy::new(|| { - "0x60806040523480156200001157600080fd5b5060405162000c3738038062000c37833981016040819052620000349162000123565b818160036200004483826200021c565b5060046200005382826200021c565b5050505050620002e8565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200008657600080fd5b81516001600160401b0380821115620000a357620000a36200005e565b604051601f8301601f19908116603f01168101908282118183101715620000ce57620000ce6200005e565b81604052838152602092508683858801011115620000eb57600080fd5b600091505b838210156200010f5785820183015181830184015290820190620000f0565b600093810190920192909252949350505050565b600080604083850312156200013757600080fd5b82516001600160401b03808211156200014f57600080fd5b6200015d8683870162000074565b935060208501519150808211156200017457600080fd5b50620001838582860162000074565b9150509250929050565b600181811c90821680620001a257607f821691505b602082108103620001c357634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200021757600081815260208120601f850160051c81016020861015620001f25750805b601f850160051c820191505b818110156200021357828155600101620001fe565b5050505b505050565b81516001600160401b038111156200023857620002386200005e565b62000250816200024984546200018d565b84620001c9565b602080601f8311600181146200028857600084156200026f5750858301515b600019600386901b1c1916600185901b17855562000213565b600085815260208120601f198616915b82811015620002b95788860151825594840194600190910190840162000298565b5085821015620002d85787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b61093f80620002f86000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c806340c10f191161007157806340c10f191461014157806370a082311461015657806395d89b411461017f578063a457c2d714610187578063a9059cbb1461019a578063dd62ed3e146101ad57600080fd5b806306fdde03146100b9578063095ea7b3146100d757806318160ddd146100fa57806323b872dd1461010c578063313ce5671461011f578063395093511461012e575b600080fd5b6100c16101c0565b6040516100ce9190610789565b60405180910390f35b6100ea6100e53660046107f3565b610252565b60405190151581526020016100ce565b6002545b6040519081526020016100ce565b6100ea61011a36600461081d565b61026c565b604051601281526020016100ce565b6100ea61013c3660046107f3565b610290565b61015461014f3660046107f3565b6102b2565b005b6100fe610164366004610859565b6001600160a01b031660009081526020819052604090205490565b6100c16102c0565b6100ea6101953660046107f3565b6102cf565b6100ea6101a83660046107f3565b61034f565b6100fe6101bb36600461087b565b61035d565b6060600380546101cf906108ae565b80601f01602080910402602001604051908101604052809291908181526020018280546101fb906108ae565b80156102485780601f1061021d57610100808354040283529160200191610248565b820191906000526020600020905b81548152906001019060200180831161022b57829003601f168201915b5050505050905090565b600033610260818585610388565b60019150505b92915050565b60003361027a8582856104ac565b610285858585610526565b506001949350505050565b6000336102608185856102a3838361035d565b6102ad91906108e8565b610388565b6102bc82826106ca565b5050565b6060600480546101cf906108ae565b600033816102dd828661035d565b9050838110156103425760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6102858286868403610388565b600033610260818585610526565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166103ea5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610339565b6001600160a01b03821661044b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610339565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006104b8848461035d565b9050600019811461052057818110156105135760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610339565b6105208484848403610388565b50505050565b6001600160a01b03831661058a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610339565b6001600160a01b0382166105ec5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610339565b6001600160a01b038316600090815260208190526040902054818110156106645760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610339565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610520565b6001600160a01b0382166107205760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610339565b806002600082825461073291906108e8565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b600060208083528351808285015260005b818110156107b65785810183015185820160400152820161079a565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b03811681146107ee57600080fd5b919050565b6000806040838503121561080657600080fd5b61080f836107d7565b946020939093013593505050565b60008060006060848603121561083257600080fd5b61083b846107d7565b9250610849602085016107d7565b9150604084013590509250925092565b60006020828403121561086b57600080fd5b610874826107d7565b9392505050565b6000806040838503121561088e57600080fd5b610897836107d7565b91506108a5602084016107d7565b90509250929050565b600181811c908216806108c257607f821691505b6020821081036108e257634e487b7160e01b600052602260045260246000fd5b50919050565b8082018082111561026657634e487b7160e01b600052601160045260246000fdfea2646970667358221220ce18b75f426b19b69f05ad01dd061a2e2f303f71de2f227a5009bf4965b14dca64736f6c63430008110033" - .parse() - .expect("invalid bytecode") - }); + pub static ARBITERTOKEN_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __BYTECODE, + ); + #[rustfmt::skip] + const __DEPLOYED_BYTECODE: &[u8] = &[ + 96, + 128, + 96, + 64, + 82, + 52, + 128, + 21, + 97, + 0, + 16, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 96, + 4, + 54, + 16, + 97, + 0, + 180, + 87, + 96, + 0, + 53, + 96, + 224, + 28, + 128, + 99, + 64, + 193, + 15, + 25, + 17, + 97, + 0, + 113, + 87, + 128, + 99, + 64, + 193, + 15, + 25, + 20, + 97, + 1, + 65, + 87, + 128, + 99, + 112, + 160, + 130, + 49, + 20, + 97, + 1, + 86, + 87, + 128, + 99, + 149, + 216, + 155, + 65, + 20, + 97, + 1, + 127, + 87, + 128, + 99, + 164, + 87, + 194, + 215, + 20, + 97, + 1, + 135, + 87, + 128, + 99, + 169, + 5, + 156, + 187, + 20, + 97, + 1, + 154, + 87, + 128, + 99, + 221, + 98, + 237, + 62, + 20, + 97, + 1, + 173, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 6, + 253, + 222, + 3, + 20, + 97, + 0, + 185, + 87, + 128, + 99, + 9, + 94, + 167, + 179, + 20, + 97, + 0, + 215, + 87, + 128, + 99, + 24, + 22, + 13, + 221, + 20, + 97, + 0, + 250, + 87, + 128, + 99, + 35, + 184, + 114, + 221, + 20, + 97, + 1, + 12, + 87, + 128, + 99, + 49, + 60, + 229, + 103, + 20, + 97, + 1, + 31, + 87, + 128, + 99, + 57, + 80, + 147, + 81, + 20, + 97, + 1, + 46, + 87, + 91, + 96, + 0, + 128, + 253, + 91, + 97, + 0, + 193, + 97, + 1, + 192, + 86, + 91, + 96, + 64, + 81, + 97, + 0, + 206, + 145, + 144, + 97, + 7, + 137, + 86, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 243, + 91, + 97, + 0, + 234, + 97, + 0, + 229, + 54, + 96, + 4, + 97, + 7, + 243, + 86, + 91, + 97, + 2, + 82, + 86, + 91, + 96, + 64, + 81, + 144, + 21, + 21, + 129, + 82, + 96, + 32, + 1, + 97, + 0, + 206, + 86, + 91, + 96, + 2, + 84, + 91, + 96, + 64, + 81, + 144, + 129, + 82, + 96, + 32, + 1, + 97, + 0, + 206, + 86, + 91, + 97, + 0, + 234, + 97, + 1, + 26, + 54, + 96, + 4, + 97, + 8, + 29, + 86, + 91, + 97, + 2, + 108, + 86, + 91, + 96, + 64, + 81, + 96, + 18, + 129, + 82, + 96, + 32, + 1, + 97, + 0, + 206, + 86, + 91, + 97, + 0, + 234, + 97, + 1, + 60, + 54, + 96, + 4, + 97, + 7, + 243, + 86, + 91, + 97, + 2, + 144, + 86, + 91, + 97, + 1, + 84, + 97, + 1, + 79, + 54, + 96, + 4, + 97, + 7, + 243, + 86, + 91, + 97, + 2, + 178, + 86, + 91, + 0, + 91, + 97, + 0, + 254, + 97, + 1, + 100, + 54, + 96, + 4, + 97, + 8, + 89, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 32, + 129, + 144, + 82, + 96, + 64, + 144, + 32, + 84, + 144, + 86, + 91, + 97, + 0, + 193, + 97, + 2, + 192, + 86, + 91, + 97, + 0, + 234, + 97, + 1, + 149, + 54, + 96, + 4, + 97, + 7, + 243, + 86, + 91, + 97, + 2, + 207, + 86, + 91, + 97, + 0, + 234, + 97, + 1, + 168, + 54, + 96, + 4, + 97, + 7, + 243, + 86, + 91, + 97, + 3, + 79, + 86, + 91, + 97, + 0, + 254, + 97, + 1, + 187, + 54, + 96, + 4, + 97, + 8, + 123, + 86, + 91, + 97, + 3, + 93, + 86, + 91, + 96, + 96, + 96, + 3, + 128, + 84, + 97, + 1, + 207, + 144, + 97, + 8, + 174, + 86, + 91, + 128, + 96, + 31, + 1, + 96, + 32, + 128, + 145, + 4, + 2, + 96, + 32, + 1, + 96, + 64, + 81, + 144, + 129, + 1, + 96, + 64, + 82, + 128, + 146, + 145, + 144, + 129, + 129, + 82, + 96, + 32, + 1, + 130, + 128, + 84, + 97, + 1, + 251, + 144, + 97, + 8, + 174, + 86, + 91, + 128, + 21, + 97, + 2, + 72, + 87, + 128, + 96, + 31, + 16, + 97, + 2, + 29, + 87, + 97, + 1, + 0, + 128, + 131, + 84, + 4, + 2, + 131, + 82, + 145, + 96, + 32, + 1, + 145, + 97, + 2, + 72, + 86, + 91, + 130, + 1, + 145, + 144, + 96, + 0, + 82, + 96, + 32, + 96, + 0, + 32, + 144, + 91, + 129, + 84, + 129, + 82, + 144, + 96, + 1, + 1, + 144, + 96, + 32, + 1, + 128, + 131, + 17, + 97, + 2, + 43, + 87, + 130, + 144, + 3, + 96, + 31, + 22, + 130, + 1, + 145, + 91, + 80, + 80, + 80, + 80, + 80, + 144, + 80, + 144, + 86, + 91, + 96, + 0, + 51, + 97, + 2, + 96, + 129, + 133, + 133, + 97, + 3, + 136, + 86, + 91, + 96, + 1, + 145, + 80, + 80, + 91, + 146, + 145, + 80, + 80, + 86, + 91, + 96, + 0, + 51, + 97, + 2, + 122, + 133, + 130, + 133, + 97, + 4, + 172, + 86, + 91, + 97, + 2, + 133, + 133, + 133, + 133, + 97, + 5, + 38, + 86, + 91, + 80, + 96, + 1, + 148, + 147, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 51, + 97, + 2, + 96, + 129, + 133, + 133, + 97, + 2, + 163, + 131, + 131, + 97, + 3, + 93, + 86, + 91, + 97, + 2, + 173, + 145, + 144, + 97, + 8, + 232, + 86, + 91, + 97, + 3, + 136, + 86, + 91, + 97, + 2, + 188, + 130, + 130, + 97, + 6, + 202, + 86, + 91, + 80, + 80, + 86, + 91, + 96, + 96, + 96, + 4, + 128, + 84, + 97, + 1, + 207, + 144, + 97, + 8, + 174, + 86, + 91, + 96, + 0, + 51, + 129, + 97, + 2, + 221, + 130, + 134, + 97, + 3, + 93, + 86, + 91, + 144, + 80, + 131, + 129, + 16, + 21, + 97, + 3, + 66, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 37, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 100, + 101, + 99, + 114, + 101, + 97, + 115, + 101, + 100, + 32, + 97, + 108, + 108, + 111, + 119, + 97, + 110, + 99, + 101, + 32, + 98, + 101, + 108, + 111, + 119, + 96, + 68, + 130, + 1, + 82, + 100, + 32, + 122, + 101, + 114, + 111, + 96, + 216, + 27, + 96, + 100, + 130, + 1, + 82, + 96, + 132, + 1, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 97, + 2, + 133, + 130, + 134, + 134, + 132, + 3, + 97, + 3, + 136, + 86, + 91, + 96, + 0, + 51, + 97, + 2, + 96, + 129, + 133, + 133, + 97, + 5, + 38, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 145, + 130, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 1, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 147, + 144, + 148, + 22, + 130, + 82, + 145, + 144, + 145, + 82, + 32, + 84, + 144, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 22, + 97, + 3, + 234, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 36, + 128, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 97, + 112, + 112, + 114, + 111, + 118, + 101, + 32, + 102, + 114, + 111, + 109, + 32, + 116, + 104, + 101, + 32, + 122, + 101, + 114, + 111, + 32, + 97, + 100, + 100, + 96, + 68, + 130, + 1, + 82, + 99, + 114, + 101, + 115, + 115, + 96, + 224, + 27, + 96, + 100, + 130, + 1, + 82, + 96, + 132, + 1, + 97, + 3, + 57, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 97, + 4, + 75, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 34, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 97, + 112, + 112, + 114, + 111, + 118, + 101, + 32, + 116, + 111, + 32, + 116, + 104, + 101, + 32, + 122, + 101, + 114, + 111, + 32, + 97, + 100, + 100, + 114, + 101, + 96, + 68, + 130, + 1, + 82, + 97, + 115, + 115, + 96, + 240, + 27, + 96, + 100, + 130, + 1, + 82, + 96, + 132, + 1, + 97, + 3, + 57, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 129, + 22, + 96, + 0, + 129, + 129, + 82, + 96, + 1, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 148, + 135, + 22, + 128, + 132, + 82, + 148, + 130, + 82, + 145, + 130, + 144, + 32, + 133, + 144, + 85, + 144, + 81, + 132, + 129, + 82, + 127, + 140, + 91, + 225, + 229, + 235, + 236, + 125, + 91, + 209, + 79, + 113, + 66, + 125, + 30, + 132, + 243, + 221, + 3, + 20, + 192, + 247, + 178, + 41, + 30, + 91, + 32, + 10, + 200, + 199, + 195, + 185, + 37, + 145, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 97, + 4, + 184, + 132, + 132, + 97, + 3, + 93, + 86, + 91, + 144, + 80, + 96, + 0, + 25, + 129, + 20, + 97, + 5, + 32, + 87, + 129, + 129, + 16, + 21, + 97, + 5, + 19, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 29, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 105, + 110, + 115, + 117, + 102, + 102, + 105, + 99, + 105, + 101, + 110, + 116, + 32, + 97, + 108, + 108, + 111, + 119, + 97, + 110, + 99, + 101, + 0, + 0, + 0, + 96, + 68, + 130, + 1, + 82, + 96, + 100, + 1, + 97, + 3, + 57, + 86, + 91, + 97, + 5, + 32, + 132, + 132, + 132, + 132, + 3, + 97, + 3, + 136, + 86, + 91, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 22, + 97, + 5, + 138, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 37, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 116, + 114, + 97, + 110, + 115, + 102, + 101, + 114, + 32, + 102, + 114, + 111, + 109, + 32, + 116, + 104, + 101, + 32, + 122, + 101, + 114, + 111, + 32, + 97, + 100, + 96, + 68, + 130, + 1, + 82, + 100, + 100, + 114, + 101, + 115, + 115, + 96, + 216, + 27, + 96, + 100, + 130, + 1, + 82, + 96, + 132, + 1, + 97, + 3, + 57, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 97, + 5, + 236, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 35, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 116, + 114, + 97, + 110, + 115, + 102, + 101, + 114, + 32, + 116, + 111, + 32, + 116, + 104, + 101, + 32, + 122, + 101, + 114, + 111, + 32, + 97, + 100, + 100, + 114, + 96, + 68, + 130, + 1, + 82, + 98, + 101, + 115, + 115, + 96, + 232, + 27, + 96, + 100, + 130, + 1, + 82, + 96, + 132, + 1, + 97, + 3, + 57, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 32, + 129, + 144, + 82, + 96, + 64, + 144, + 32, + 84, + 129, + 129, + 16, + 21, + 97, + 6, + 100, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 38, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 116, + 114, + 97, + 110, + 115, + 102, + 101, + 114, + 32, + 97, + 109, + 111, + 117, + 110, + 116, + 32, + 101, + 120, + 99, + 101, + 101, + 100, + 115, + 32, + 98, + 96, + 68, + 130, + 1, + 82, + 101, + 97, + 108, + 97, + 110, + 99, + 101, + 96, + 208, + 27, + 96, + 100, + 130, + 1, + 82, + 96, + 132, + 1, + 97, + 3, + 57, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 132, + 129, + 22, + 96, + 0, + 129, + 129, + 82, + 96, + 32, + 129, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 135, + 135, + 3, + 144, + 85, + 147, + 135, + 22, + 128, + 131, + 82, + 145, + 132, + 144, + 32, + 128, + 84, + 135, + 1, + 144, + 85, + 146, + 81, + 133, + 129, + 82, + 144, + 146, + 127, + 221, + 242, + 82, + 173, + 27, + 226, + 200, + 155, + 105, + 194, + 176, + 104, + 252, + 55, + 141, + 170, + 149, + 43, + 167, + 241, + 99, + 196, + 161, + 22, + 40, + 245, + 90, + 77, + 245, + 35, + 179, + 239, + 145, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 97, + 5, + 32, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 97, + 7, + 32, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 31, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 109, + 105, + 110, + 116, + 32, + 116, + 111, + 32, + 116, + 104, + 101, + 32, + 122, + 101, + 114, + 111, + 32, + 97, + 100, + 100, + 114, + 101, + 115, + 115, + 0, + 96, + 68, + 130, + 1, + 82, + 96, + 100, + 1, + 97, + 3, + 57, + 86, + 91, + 128, + 96, + 2, + 96, + 0, + 130, + 130, + 84, + 97, + 7, + 50, + 145, + 144, + 97, + 8, + 232, + 86, + 91, + 144, + 145, + 85, + 80, + 80, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 96, + 0, + 129, + 129, + 82, + 96, + 32, + 129, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 128, + 84, + 134, + 1, + 144, + 85, + 81, + 132, + 129, + 82, + 127, + 221, + 242, + 82, + 173, + 27, + 226, + 200, + 155, + 105, + 194, + 176, + 104, + 252, + 55, + 141, + 170, + 149, + 43, + 167, + 241, + 99, + 196, + 161, + 22, + 40, + 245, + 90, + 77, + 245, + 35, + 179, + 239, + 145, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 80, + 80, + 86, + 91, + 96, + 0, + 96, + 32, + 128, + 131, + 82, + 131, + 81, + 128, + 130, + 133, + 1, + 82, + 96, + 0, + 91, + 129, + 129, + 16, + 21, + 97, + 7, + 182, + 87, + 133, + 129, + 1, + 131, + 1, + 81, + 133, + 130, + 1, + 96, + 64, + 1, + 82, + 130, + 1, + 97, + 7, + 154, + 86, + 91, + 80, + 96, + 0, + 96, + 64, + 130, + 134, + 1, + 1, + 82, + 96, + 64, + 96, + 31, + 25, + 96, + 31, + 131, + 1, + 22, + 133, + 1, + 1, + 146, + 80, + 80, + 80, + 146, + 145, + 80, + 80, + 86, + 91, + 128, + 53, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 129, + 22, + 129, + 20, + 97, + 7, + 238, + 87, + 96, + 0, + 128, + 253, + 91, + 145, + 144, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 64, + 131, + 133, + 3, + 18, + 21, + 97, + 8, + 6, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 8, + 15, + 131, + 97, + 7, + 215, + 86, + 91, + 148, + 96, + 32, + 147, + 144, + 147, + 1, + 53, + 147, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 96, + 96, + 132, + 134, + 3, + 18, + 21, + 97, + 8, + 50, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 8, + 59, + 132, + 97, + 7, + 215, + 86, + 91, + 146, + 80, + 97, + 8, + 73, + 96, + 32, + 133, + 1, + 97, + 7, + 215, + 86, + 91, + 145, + 80, + 96, + 64, + 132, + 1, + 53, + 144, + 80, + 146, + 80, + 146, + 80, + 146, + 86, + 91, + 96, + 0, + 96, + 32, + 130, + 132, + 3, + 18, + 21, + 97, + 8, + 107, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 8, + 116, + 130, + 97, + 7, + 215, + 86, + 91, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 64, + 131, + 133, + 3, + 18, + 21, + 97, + 8, + 142, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 8, + 151, + 131, + 97, + 7, + 215, + 86, + 91, + 145, + 80, + 97, + 8, + 165, + 96, + 32, + 132, + 1, + 97, + 7, + 215, + 86, + 91, + 144, + 80, + 146, + 80, + 146, + 144, + 80, + 86, + 91, + 96, + 1, + 129, + 129, + 28, + 144, + 130, + 22, + 128, + 97, + 8, + 194, + 87, + 96, + 127, + 130, + 22, + 145, + 80, + 91, + 96, + 32, + 130, + 16, + 129, + 3, + 97, + 8, + 226, + 87, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 34, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 80, + 145, + 144, + 80, + 86, + 91, + 128, + 130, + 1, + 128, + 130, + 17, + 21, + 97, + 2, + 102, + 87, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 17, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 254, + 162, + 100, + 105, + 112, + 102, + 115, + 88, + 34, + 18, + 32, + 85, + 80, + 215, + 26, + 179, + 119, + 121, + 19, + 132, + 71, + 232, + 203, + 243, + 118, + 195, + 91, + 218, + 77, + 79, + 81, + 26, + 20, + 175, + 132, + 134, + 90, + 127, + 78, + 196, + 226, + 36, + 60, + 100, + 115, + 111, + 108, + 99, + 67, + 0, + 8, + 19, + 0, + 51, + ]; + ///The deployed bytecode of the contract. + pub static ARBITERTOKEN_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __DEPLOYED_BYTECODE, + ); + pub struct ArbiterToken(::ethers::contract::Contract); + impl ::core::clone::Clone for ArbiterToken { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for ArbiterToken { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for ArbiterToken { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for ArbiterToken { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(stringify!(ArbiterToken)).field(&self.address()).finish() + } + } + impl ArbiterToken { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + ARBITERTOKEN_ABI.clone(), + client, + ), + ) + } + /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. + /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction + /// + /// Notes: + /// - If there are no constructor arguments, you should pass `()` as the argument. + /// - The default poll duration is 7 seconds. + /// - The default number of confirmations is 1 block. + /// + /// + /// # Example + /// + /// Generate contract bindings with `abigen!` and deploy a new contract instance. + /// + /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. + /// + /// ```ignore + /// # async fn deploy(client: ::std::sync::Arc) { + /// abigen!(Greeter, "../greeter.json"); + /// + /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); + /// let msg = greeter_contract.greet().call().await.unwrap(); + /// # } + /// ``` + pub fn deploy( + client: ::std::sync::Arc, + constructor_args: T, + ) -> ::core::result::Result< + ::ethers::contract::builders::ContractDeployer, + ::ethers::contract::ContractError, + > { + let factory = ::ethers::contract::ContractFactory::new( + ARBITERTOKEN_ABI.clone(), + ARBITERTOKEN_BYTECODE.clone().into(), + client, + ); + let deployer = factory.deploy(constructor_args)?; + let deployer = ::ethers::contract::ContractDeployer::new(deployer); + Ok(deployer) + } + ///Calls the contract's `allowance` (0xdd62ed3e) function + pub fn allowance( + &self, + owner: ::ethers::core::types::Address, + spender: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([221, 98, 237, 62], (owner, spender)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `approve` (0x095ea7b3) function + pub fn approve( + &self, + spender: ::ethers::core::types::Address, + amount: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([9, 94, 167, 179], (spender, amount)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `balanceOf` (0x70a08231) function + pub fn balance_of( + &self, + account: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([112, 160, 130, 49], account) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `decimals` (0x313ce567) function + pub fn decimals(&self) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([49, 60, 229, 103], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `decreaseAllowance` (0xa457c2d7) function + pub fn decrease_allowance( + &self, + spender: ::ethers::core::types::Address, + subtracted_value: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([164, 87, 194, 215], (spender, subtracted_value)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `increaseAllowance` (0x39509351) function + pub fn increase_allowance( + &self, + spender: ::ethers::core::types::Address, + added_value: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([57, 80, 147, 81], (spender, added_value)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `mint` (0x40c10f19) function + pub fn mint( + &self, + receiver: ::ethers::core::types::Address, + amount: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([64, 193, 15, 25], (receiver, amount)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `name` (0x06fdde03) function + pub fn name( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([6, 253, 222, 3], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `symbol` (0x95d89b41) function + pub fn symbol( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([149, 216, 155, 65], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `totalSupply` (0x18160ddd) function + pub fn total_supply( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([24, 22, 13, 221], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `transfer` (0xa9059cbb) function + pub fn transfer( + &self, + to: ::ethers::core::types::Address, + amount: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([169, 5, 156, 187], (to, amount)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `transferFrom` (0x23b872dd) function + pub fn transfer_from( + &self, + from: ::ethers::core::types::Address, + to: ::ethers::core::types::Address, + amount: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([35, 184, 114, 221], (from, to, amount)) + .expect("method not found (this should never happen)") + } + ///Gets the contract's `Approval` event + pub fn approval_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + ApprovalFilter, + > { + self.0.event() + } + ///Gets the contract's `Transfer` event + pub fn transfer_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + TransferFilter, + > { + self.0.event() + } + /// Returns an `Event` builder for all the events of this contract. + pub fn events( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + ArbiterTokenEvents, + > { + self.0.event_with_filter(::core::default::Default::default()) + } + } + impl From<::ethers::contract::Contract> + for ArbiterToken { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "Approval", abi = "Approval(address,address,uint256)")] + pub struct ApprovalFilter { + #[ethevent(indexed)] + pub owner: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub spender: ::ethers::core::types::Address, + pub value: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "Transfer", abi = "Transfer(address,address,uint256)")] + pub struct TransferFilter { + #[ethevent(indexed)] + pub from: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub to: ::ethers::core::types::Address, + pub value: ::ethers::core::types::U256, + } + ///Container type for all of the contract's events + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum ArbiterTokenEvents { + ApprovalFilter(ApprovalFilter), + TransferFilter(TransferFilter), + } + impl ::ethers::contract::EthLogDecode for ArbiterTokenEvents { + fn decode_log( + log: &::ethers::core::abi::RawLog, + ) -> ::core::result::Result { + if let Ok(decoded) = ApprovalFilter::decode_log(log) { + return Ok(ArbiterTokenEvents::ApprovalFilter(decoded)); + } + if let Ok(decoded) = TransferFilter::decode_log(log) { + return Ok(ArbiterTokenEvents::TransferFilter(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData) + } + } + impl ::core::fmt::Display for ArbiterTokenEvents { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::ApprovalFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::TransferFilter(element) => ::core::fmt::Display::fmt(element, f), + } + } + } + impl ::core::convert::From for ArbiterTokenEvents { + fn from(value: ApprovalFilter) -> Self { + Self::ApprovalFilter(value) + } + } + impl ::core::convert::From for ArbiterTokenEvents { + fn from(value: TransferFilter) -> Self { + Self::TransferFilter(value) + } + } + ///Container type for all input parameters for the `allowance` function with signature `allowance(address,address)` and selector `0xdd62ed3e` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "allowance", abi = "allowance(address,address)")] + pub struct AllowanceCall { + pub owner: ::ethers::core::types::Address, + pub spender: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "approve", abi = "approve(address,uint256)")] + pub struct ApproveCall { + pub spender: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "balanceOf", abi = "balanceOf(address)")] + pub struct BalanceOfCall { + pub account: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `decimals` function with signature `decimals()` and selector `0x313ce567` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "decimals", abi = "decimals()")] + pub struct DecimalsCall; + ///Container type for all input parameters for the `decreaseAllowance` function with signature `decreaseAllowance(address,uint256)` and selector `0xa457c2d7` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "decreaseAllowance", abi = "decreaseAllowance(address,uint256)")] + pub struct DecreaseAllowanceCall { + pub spender: ::ethers::core::types::Address, + pub subtracted_value: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `increaseAllowance` function with signature `increaseAllowance(address,uint256)` and selector `0x39509351` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "increaseAllowance", abi = "increaseAllowance(address,uint256)")] + pub struct IncreaseAllowanceCall { + pub spender: ::ethers::core::types::Address, + pub added_value: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `mint` function with signature `mint(address,uint256)` and selector `0x40c10f19` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "mint", abi = "mint(address,uint256)")] + pub struct MintCall { + pub receiver: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `name` function with signature `name()` and selector `0x06fdde03` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "name", abi = "name()")] + pub struct NameCall; + ///Container type for all input parameters for the `symbol` function with signature `symbol()` and selector `0x95d89b41` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "symbol", abi = "symbol()")] + pub struct SymbolCall; + ///Container type for all input parameters for the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "totalSupply", abi = "totalSupply()")] + pub struct TotalSupplyCall; + ///Container type for all input parameters for the `transfer` function with signature `transfer(address,uint256)` and selector `0xa9059cbb` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "transfer", abi = "transfer(address,uint256)")] + pub struct TransferCall { + pub to: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "transferFrom", abi = "transferFrom(address,address,uint256)")] + pub struct TransferFromCall { + pub from: ::ethers::core::types::Address, + pub to: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + ///Container type for all of the contract's call + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum ArbiterTokenCalls { + Allowance(AllowanceCall), + Approve(ApproveCall), + BalanceOf(BalanceOfCall), + Decimals(DecimalsCall), + DecreaseAllowance(DecreaseAllowanceCall), + IncreaseAllowance(IncreaseAllowanceCall), + Mint(MintCall), + Name(NameCall), + Symbol(SymbolCall), + TotalSupply(TotalSupplyCall), + Transfer(TransferCall), + TransferFrom(TransferFromCall), + } + impl ::ethers::core::abi::AbiDecode for ArbiterTokenCalls { + fn decode( + data: impl AsRef<[u8]>, + ) -> ::core::result::Result { + let data = data.as_ref(); + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Allowance(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Approve(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::BalanceOf(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Decimals(decoded)); + } + if let Ok(decoded) + = ::decode( + data, + ) { + return Ok(Self::DecreaseAllowance(decoded)); + } + if let Ok(decoded) + = ::decode( + data, + ) { + return Ok(Self::IncreaseAllowance(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Mint(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Name(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Symbol(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::TotalSupply(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Transfer(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::TransferFrom(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData.into()) + } + } + impl ::ethers::core::abi::AbiEncode for ArbiterTokenCalls { + fn encode(self) -> Vec { + match self { + Self::Allowance(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Approve(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::BalanceOf(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Decimals(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::DecreaseAllowance(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::IncreaseAllowance(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Mint(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Name(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Symbol(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::TotalSupply(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Transfer(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::TransferFrom(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + } + } + } + impl ::core::fmt::Display for ArbiterTokenCalls { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::Allowance(element) => ::core::fmt::Display::fmt(element, f), + Self::Approve(element) => ::core::fmt::Display::fmt(element, f), + Self::BalanceOf(element) => ::core::fmt::Display::fmt(element, f), + Self::Decimals(element) => ::core::fmt::Display::fmt(element, f), + Self::DecreaseAllowance(element) => ::core::fmt::Display::fmt(element, f), + Self::IncreaseAllowance(element) => ::core::fmt::Display::fmt(element, f), + Self::Mint(element) => ::core::fmt::Display::fmt(element, f), + Self::Name(element) => ::core::fmt::Display::fmt(element, f), + Self::Symbol(element) => ::core::fmt::Display::fmt(element, f), + Self::TotalSupply(element) => ::core::fmt::Display::fmt(element, f), + Self::Transfer(element) => ::core::fmt::Display::fmt(element, f), + Self::TransferFrom(element) => ::core::fmt::Display::fmt(element, f), + } + } + } + impl ::core::convert::From for ArbiterTokenCalls { + fn from(value: AllowanceCall) -> Self { + Self::Allowance(value) + } + } + impl ::core::convert::From for ArbiterTokenCalls { + fn from(value: ApproveCall) -> Self { + Self::Approve(value) + } + } + impl ::core::convert::From for ArbiterTokenCalls { + fn from(value: BalanceOfCall) -> Self { + Self::BalanceOf(value) + } + } + impl ::core::convert::From for ArbiterTokenCalls { + fn from(value: DecimalsCall) -> Self { + Self::Decimals(value) + } + } + impl ::core::convert::From for ArbiterTokenCalls { + fn from(value: DecreaseAllowanceCall) -> Self { + Self::DecreaseAllowance(value) + } + } + impl ::core::convert::From for ArbiterTokenCalls { + fn from(value: IncreaseAllowanceCall) -> Self { + Self::IncreaseAllowance(value) + } + } + impl ::core::convert::From for ArbiterTokenCalls { + fn from(value: MintCall) -> Self { + Self::Mint(value) + } + } + impl ::core::convert::From for ArbiterTokenCalls { + fn from(value: NameCall) -> Self { + Self::Name(value) + } + } + impl ::core::convert::From for ArbiterTokenCalls { + fn from(value: SymbolCall) -> Self { + Self::Symbol(value) + } + } + impl ::core::convert::From for ArbiterTokenCalls { + fn from(value: TotalSupplyCall) -> Self { + Self::TotalSupply(value) + } + } + impl ::core::convert::From for ArbiterTokenCalls { + fn from(value: TransferCall) -> Self { + Self::Transfer(value) + } + } + impl ::core::convert::From for ArbiterTokenCalls { + fn from(value: TransferFromCall) -> Self { + Self::TransferFrom(value) + } + } + ///Container type for all return fields from the `allowance` function with signature `allowance(address,address)` and selector `0xdd62ed3e` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct AllowanceReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct ApproveReturn(pub bool); + ///Container type for all return fields from the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct BalanceOfReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `decimals` function with signature `decimals()` and selector `0x313ce567` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct DecimalsReturn(pub u8); + ///Container type for all return fields from the `decreaseAllowance` function with signature `decreaseAllowance(address,uint256)` and selector `0xa457c2d7` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct DecreaseAllowanceReturn(pub bool); + ///Container type for all return fields from the `increaseAllowance` function with signature `increaseAllowance(address,uint256)` and selector `0x39509351` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct IncreaseAllowanceReturn(pub bool); + ///Container type for all return fields from the `name` function with signature `name()` and selector `0x06fdde03` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct NameReturn(pub ::std::string::String); + ///Container type for all return fields from the `symbol` function with signature `symbol()` and selector `0x95d89b41` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct SymbolReturn(pub ::std::string::String); + ///Container type for all return fields from the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct TotalSupplyReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `transfer` function with signature `transfer(address,uint256)` and selector `0xa9059cbb` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct TransferReturn(pub bool); + ///Container type for all return fields from the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct TransferFromReturn(pub bool); } diff --git a/crates/bindings/src/assembly_lib.rs b/crates/bindings/src/assembly_lib.rs deleted file mode 100644 index 48d86f90..00000000 --- a/crates/bindings/src/assembly_lib.rs +++ /dev/null @@ -1,341 +0,0 @@ -pub use assembly_lib::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types -)] -pub mod assembly_lib { - #[rustfmt::skip] - const __ABI: &str = "[]"; - ///The parsed JSON ABI of the contract. - pub static ASSEMBLYLIB_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = - ::ethers::contract::Lazy::new(|| { - ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid") - }); - #[rustfmt::skip] - const __BYTECODE: &[u8] = &[ - 96, - 86, - 96, - 55, - 96, - 11, - 130, - 130, - 130, - 57, - 128, - 81, - 96, - 0, - 26, - 96, - 115, - 20, - 96, - 42, - 87, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 0, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 48, - 96, - 0, - 82, - 96, - 115, - 129, - 83, - 130, - 129, - 243, - 254, - 115, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 48, - 20, - 96, - 128, - 96, - 64, - 82, - 96, - 0, - 128, - 253, - 254, - 162, - 100, - 105, - 112, - 102, - 115, - 88, - 34, - 18, - 32, - 43, - 19, - 162, - 183, - 196, - 4, - 36, - 151, - 85, - 55, - 170, - 48, - 137, - 165, - 111, - 103, - 28, - 22, - 220, - 80, - 120, - 115, - 144, - 25, - 73, - 105, - 95, - 19, - 28, - 165, - 134, - 170, - 100, - 115, - 111, - 108, - 99, - 67, - 0, - 8, - 13, - 0, - 51, - ]; - ///The bytecode of the contract. - pub static ASSEMBLYLIB_BYTECODE: ::ethers::core::types::Bytes = - ::ethers::core::types::Bytes::from_static(__BYTECODE); - #[rustfmt::skip] - const __DEPLOYED_BYTECODE: &[u8] = &[ - 115, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 48, - 20, - 96, - 128, - 96, - 64, - 82, - 96, - 0, - 128, - 253, - 254, - 162, - 100, - 105, - 112, - 102, - 115, - 88, - 34, - 18, - 32, - 43, - 19, - 162, - 183, - 196, - 4, - 36, - 151, - 85, - 55, - 170, - 48, - 137, - 165, - 111, - 103, - 28, - 22, - 220, - 80, - 120, - 115, - 144, - 25, - 73, - 105, - 95, - 19, - 28, - 165, - 134, - 170, - 100, - 115, - 111, - 108, - 99, - 67, - 0, - 8, - 13, - 0, - 51, - ]; - ///The deployed bytecode of the contract. - pub static ASSEMBLYLIB_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = - ::ethers::core::types::Bytes::from_static(__DEPLOYED_BYTECODE); - pub struct AssemblyLib(::ethers::contract::Contract); - impl ::core::clone::Clone for AssemblyLib { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for AssemblyLib { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for AssemblyLib { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for AssemblyLib { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(stringify!(AssemblyLib)) - .field(&self.address()) - .finish() - } - } - impl AssemblyLib { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self(::ethers::contract::Contract::new( - address.into(), - ASSEMBLYLIB_ABI.clone(), - client, - )) - } - /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. - /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction - /// - /// Notes: - /// - If there are no constructor arguments, you should pass `()` as the argument. - /// - The default poll duration is 7 seconds. - /// - The default number of confirmations is 1 block. - /// - /// - /// # Example - /// - /// Generate contract bindings with `abigen!` and deploy a new contract instance. - /// - /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. - /// - /// ```ignore - /// # async fn deploy(client: ::std::sync::Arc) { - /// abigen!(Greeter, "../greeter.json"); - /// - /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); - /// let msg = greeter_contract.greet().call().await.unwrap(); - /// # } - /// ``` - pub fn deploy( - client: ::std::sync::Arc, - constructor_args: T, - ) -> ::core::result::Result< - ::ethers::contract::builders::ContractDeployer, - ::ethers::contract::ContractError, - > { - let factory = ::ethers::contract::ContractFactory::new( - ASSEMBLYLIB_ABI.clone(), - ASSEMBLYLIB_BYTECODE.clone().into(), - client, - ); - let deployer = factory.deploy(constructor_args)?; - let deployer = ::ethers::contract::ContractDeployer::new(deployer); - Ok(deployer) - } - } - impl From<::ethers::contract::Contract> for AssemblyLib { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } -} diff --git a/crates/bindings/src/simple_registry.rs b/crates/bindings/src/bar.rs similarity index 55% rename from crates/bindings/src/simple_registry.rs rename to crates/bindings/src/bar.rs index 644e00ed..81ff6695 100644 --- a/crates/bindings/src/simple_registry.rs +++ b/crates/bindings/src/bar.rs @@ -1,4 +1,4 @@ -pub use simple_registry::*; +pub use bar::*; /// This module was auto-generated with ethers-rs Abigen. /// More information at: #[allow( @@ -7,61 +7,62 @@ pub use simple_registry::*; clippy::upper_case_acronyms, clippy::type_complexity, dead_code, - non_camel_case_types + non_camel_case_types, )] -pub mod simple_registry { +pub mod bar { #[rustfmt::skip] - const __ABI: &str = "[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"portfolio\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"claimFee\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"controller\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"portfolio\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"setFee\",\"outputs\":[]}]"; + const __ABI: &str = "[{\"inputs\":[],\"stateMutability\":\"payable\",\"type\":\"constructor\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"expectedSender\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"bar\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"expectedSender\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"origin\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"expectedSender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"expectedOrigin\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"origin\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]}]"; ///The parsed JSON ABI of the contract. - pub static SIMPLEREGISTRY_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = - ::ethers::contract::Lazy::new(|| { - ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid") - }); + pub static BAR_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| + ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); #[rustfmt::skip] const __BYTECODE: &[u8] = &[ 96, 128, 96, 64, + 144, + 129, 82, - 52, - 128, - 21, - 97, - 0, - 16, - 87, - 96, + 105, + 2, + 30, + 25, + 224, + 201, + 186, + 178, + 64, 0, - 128, - 253, - 91, - 80, - 96, 0, - 128, - 84, 96, 1, + 129, + 144, + 85, + 48, 96, - 1, + 0, + 144, + 129, + 82, 96, - 160, - 27, - 3, - 25, - 22, - 51, - 23, + 32, + 129, 144, + 82, + 145, + 144, + 145, + 32, 85, 97, 2, - 166, + 126, 128, 97, 0, - 50, + 53, 96, 0, 57, @@ -74,26 +75,13 @@ pub mod simple_registry { 96, 64, 82, - 52, - 128, - 21, - 97, - 0, - 16, - 87, - 96, - 0, - 128, - 253, - 91, - 80, 96, 4, 54, 16, 97, 0, - 65, + 74, 87, 96, 0, @@ -103,36 +91,58 @@ pub mod simple_registry { 28, 128, 99, - 44, - 252, - 244, - 35, + 24, + 22, + 13, + 221, + 20, + 97, + 0, + 79, + 87, + 128, + 99, + 85, + 89, + 100, + 119, 20, 97, 0, - 70, + 119, 87, 128, 99, - 229, - 81, - 86, - 181, + 100, + 110, + 165, + 109, 20, 97, 0, - 91, + 140, 87, 128, 99, - 247, - 124, - 71, - 145, + 112, + 160, + 130, + 49, 20, 97, 0, - 110, + 159, + 87, + 128, + 99, + 169, + 178, + 226, + 138, + 20, + 97, + 0, + 204, 87, 91, 96, @@ -140,68 +150,151 @@ pub mod simple_registry { 128, 253, 91, + 52, + 128, + 21, 97, 0, - 89, + 91, + 87, + 96, + 0, + 128, + 253, + 91, + 80, 97, 0, + 101, + 96, + 1, 84, + 129, + 86, + 91, + 96, + 64, + 81, + 144, + 129, + 82, + 96, + 32, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 243, + 91, + 97, + 0, + 138, + 97, + 0, + 133, 54, 96, 4, 97, 1, - 249, + 211, 86, 91, 97, 0, - 157, + 223, 86, 91, 0, 91, 97, 0, - 89, + 138, 97, 0, - 105, + 154, 54, 96, 4, 97, - 2, - 70, + 1, + 211, 86, 91, 97, 1, - 70, + 59, 86, 91, + 52, + 128, + 21, + 97, + 0, + 171, + 87, 96, 0, - 84, + 128, + 253, + 91, + 80, 97, 0, - 129, - 144, + 101, + 97, + 0, + 186, + 54, 96, + 4, + 97, 1, + 211, + 86, + 91, 96, - 1, + 0, 96, - 160, - 27, - 3, - 22, + 32, + 129, + 144, + 82, + 144, + 129, + 82, + 96, + 64, + 144, + 32, + 84, 129, 86, 91, + 97, + 0, + 138, + 97, + 0, + 218, + 54, 96, - 64, - 81, + 4, + 97, + 1, + 245, + 86, + 91, + 97, + 1, + 99, + 86, + 91, + 51, 96, 1, 96, @@ -210,14 +303,37 @@ pub mod simple_registry { 160, 27, 3, - 144, - 145, + 130, 22, + 20, + 97, + 1, + 16, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, 129, 82, 96, - 32, + 4, + 1, + 97, 1, + 7, + 144, + 97, + 2, + 40, + 86, + 91, 96, 64, 81, @@ -225,13 +341,9 @@ pub mod simple_registry { 145, 3, 144, - 243, + 253, 91, - 96, - 0, - 128, - 84, - 48, + 50, 96, 1, 96, @@ -240,125 +352,41 @@ pub mod simple_registry { 160, 27, 3, - 25, 130, 22, - 23, - 144, - 145, - 85, + 20, + 97, + 1, + 56, + 87, 96, 64, 81, - 99, - 5, - 105, - 38, - 181, + 98, + 70, + 27, + 205, 96, 229, 27, 129, 82, 96, + 4, 1, - 96, + 97, 1, - 96, - 160, - 27, - 3, - 133, - 129, - 22, - 96, - 4, - 131, - 1, - 82, - 96, - 36, - 130, - 1, - 133, - 144, - 82, - 131, - 129, - 22, - 96, - 68, - 131, - 1, - 82, - 145, - 130, - 22, - 145, - 134, - 22, - 144, - 99, - 173, - 36, - 214, - 160, + 7, 144, - 96, - 100, - 1, - 96, - 0, - 96, - 64, - 81, - 128, - 131, - 3, - 129, - 96, - 0, - 135, - 128, - 59, - 21, - 128, - 21, 97, - 1, - 7, - 87, - 96, - 0, - 128, - 253, + 2, + 40, + 86, 91, 80, - 90, - 241, - 21, - 128, - 21, - 97, - 1, - 27, - 87, - 61, - 96, - 0, - 128, - 62, - 61, - 96, - 0, - 253, + 86, 91, - 80, - 80, - 96, - 0, - 128, - 84, + 51, 96, 1, 96, @@ -367,40 +395,38 @@ pub mod simple_registry { 160, 27, 3, - 25, + 130, 22, - 96, + 20, + 97, 1, + 56, + 87, 96, - 1, + 64, + 81, + 98, + 70, + 27, + 205, 96, - 160, + 229, 27, - 3, - 148, - 144, - 148, - 22, - 147, - 144, - 147, - 23, + 129, + 82, + 96, + 4, + 1, + 97, + 1, + 7, 144, - 146, - 85, - 80, - 80, - 80, - 80, - 80, - 80, + 97, + 2, + 40, 86, 91, - 96, - 0, - 128, - 84, - 48, + 51, 96, 1, 96, @@ -409,33 +435,38 @@ pub mod simple_registry { 160, 27, 3, - 25, - 130, + 131, 22, - 23, - 144, - 145, - 85, + 20, + 97, + 1, + 139, + 87, 96, 64, 81, - 99, - 120, - 125, - 206, - 61, + 98, + 70, + 27, + 205, 96, - 224, + 229, 27, 129, 82, 96, 4, - 129, 1, - 131, + 97, + 1, + 7, 144, - 82, + 97, + 2, + 40, + 86, + 91, + 50, 96, 1, 96, @@ -444,105 +475,37 @@ pub mod simple_registry { 160, 27, 3, - 145, 130, 22, - 145, - 132, - 22, - 144, - 99, - 120, - 125, - 206, - 61, - 144, - 96, - 36, - 1, - 96, - 0, - 96, - 64, - 81, - 128, - 131, - 3, - 129, - 96, - 0, - 135, - 128, - 59, - 21, - 128, - 21, - 97, - 1, - 160, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 90, - 241, - 21, - 128, - 21, + 20, 97, 1, - 180, + 179, 87, - 61, - 96, - 0, - 128, - 62, - 61, - 96, - 0, - 253, - 91, - 80, - 80, - 96, - 0, - 128, - 84, - 96, - 1, 96, - 1, + 64, + 81, + 98, + 70, + 27, + 205, 96, - 160, + 229, 27, - 3, - 25, - 22, + 129, + 82, 96, + 4, 1, - 96, + 97, 1, - 96, - 160, - 27, - 3, - 148, - 144, - 148, - 22, - 147, - 144, - 147, - 23, + 7, 144, - 146, - 85, - 80, - 80, + 97, + 2, + 40, + 86, + 91, 80, 80, 86, @@ -563,7 +526,7 @@ pub mod simple_registry { 20, 97, 1, - 244, + 206, 87, 96, 0, @@ -577,20 +540,16 @@ pub mod simple_registry { 91, 96, 0, - 128, - 96, - 0, - 128, 96, - 128, - 133, - 135, + 32, + 130, + 132, 3, 18, 21, 97, - 2, - 15, + 1, + 229, 87, 96, 0, @@ -598,57 +557,18 @@ pub mod simple_registry { 253, 91, 97, - 2, - 24, - 133, - 97, - 1, - 221, - 86, - 91, - 147, - 80, - 97, - 2, - 38, - 96, - 32, - 134, 1, + 238, + 130, 97, 1, - 221, + 183, 86, 91, + 147, 146, 80, - 96, - 64, - 133, - 1, - 53, - 145, - 80, - 97, - 2, - 59, - 96, - 96, - 134, - 1, - 97, - 1, - 221, - 86, - 91, - 144, - 80, - 146, - 149, - 145, - 148, 80, - 146, 80, 86, 91, @@ -664,7 +584,7 @@ pub mod simple_registry { 21, 97, 2, - 89, + 8, 87, 96, 0, @@ -673,26 +593,67 @@ pub mod simple_registry { 91, 97, 2, - 98, + 17, 131, 97, 1, - 221, + 183, 86, 91, - 148, + 145, + 80, + 97, + 2, + 31, 96, 32, - 147, - 144, - 147, + 132, 1, - 53, - 147, + 97, + 1, + 183, + 86, + 91, + 144, 80, + 146, 80, + 146, + 144, 80, 86, + 91, + 96, + 32, + 128, + 130, + 82, + 96, + 6, + 144, + 130, + 1, + 82, + 101, + 33, + 112, + 114, + 97, + 110, + 107, + 96, + 208, + 27, + 96, + 64, + 130, + 1, + 82, + 96, + 96, + 1, + 144, + 86, 254, 162, 100, @@ -704,38 +665,38 @@ pub mod simple_registry { 34, 18, 32, - 174, - 220, - 99, + 97, + 162, + 134, + 97, + 96, 54, - 158, - 73, - 248, - 187, - 2, - 6, - 151, - 3, - 14, - 86, - 41, - 126, - 81, - 138, - 178, - 70, - 6, + 97, 233, - 155, - 137, - 103, - 73, + 220, + 31, + 84, + 111, + 125, + 76, 120, - 136, - 65, - 88, - 230, - 222, + 178, + 96, + 39, + 159, + 107, + 144, + 61, + 255, + 202, + 188, + 102, + 190, + 48, + 17, + 29, + 248, + 17, 100, 115, 111, @@ -744,13 +705,14 @@ pub mod simple_registry { 67, 0, 8, - 13, + 19, 0, 51, ]; ///The bytecode of the contract. - pub static SIMPLEREGISTRY_BYTECODE: ::ethers::core::types::Bytes = - ::ethers::core::types::Bytes::from_static(__BYTECODE); + pub static BAR_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __BYTECODE, + ); #[rustfmt::skip] const __DEPLOYED_BYTECODE: &[u8] = &[ 96, @@ -758,26 +720,13 @@ pub mod simple_registry { 96, 64, 82, - 52, - 128, - 21, - 97, - 0, - 16, - 87, - 96, - 0, - 128, - 253, - 91, - 80, 96, 4, 54, 16, 97, 0, - 65, + 74, 87, 96, 0, @@ -787,36 +736,58 @@ pub mod simple_registry { 28, 128, 99, - 44, - 252, - 244, - 35, + 24, + 22, + 13, + 221, 20, 97, 0, - 70, + 79, 87, 128, 99, - 229, - 81, - 86, - 181, + 85, + 89, + 100, + 119, 20, 97, 0, - 91, + 119, 87, 128, 99, - 247, - 124, - 71, - 145, + 100, + 110, + 165, + 109, 20, 97, 0, - 110, + 140, + 87, + 128, + 99, + 112, + 160, + 130, + 49, + 20, + 97, + 0, + 159, + 87, + 128, + 99, + 169, + 178, + 226, + 138, + 20, + 97, + 0, + 204, 87, 91, 96, @@ -824,98 +795,151 @@ pub mod simple_registry { 128, 253, 91, + 52, + 128, + 21, 97, 0, - 89, + 91, + 87, + 96, + 0, + 128, + 253, + 91, + 80, 97, 0, + 101, + 96, + 1, 84, + 129, + 86, + 91, + 96, + 64, + 81, + 144, + 129, + 82, + 96, + 32, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 243, + 91, + 97, + 0, + 138, + 97, + 0, + 133, 54, 96, 4, 97, 1, - 249, + 211, 86, 91, 97, 0, - 157, + 223, 86, 91, 0, 91, 97, 0, - 89, + 138, 97, 0, - 105, + 154, 54, 96, 4, 97, - 2, - 70, + 1, + 211, 86, 91, 97, 1, - 70, + 59, 86, 91, + 52, + 128, + 21, + 97, + 0, + 171, + 87, 96, 0, - 84, + 128, + 253, + 91, + 80, 97, 0, - 129, - 144, - 96, - 1, + 101, + 97, + 0, + 186, + 54, 96, + 4, + 97, 1, - 96, - 160, - 27, - 3, - 22, - 129, + 211, 86, 91, 96, - 64, - 81, - 96, - 1, + 0, 96, - 1, - 96, - 160, - 27, - 3, + 32, + 129, + 144, + 82, 144, - 145, - 22, 129, 82, 96, - 32, - 1, - 96, 64, - 81, - 128, - 145, - 3, 144, - 243, + 32, + 84, + 129, + 86, 91, - 96, + 97, 0, - 128, - 84, - 48, + 138, + 97, + 0, + 218, + 54, + 96, + 4, + 97, + 1, + 245, + 86, + 91, + 97, + 1, + 99, + 86, + 91, + 51, 96, 1, 96, @@ -924,167 +948,47 @@ pub mod simple_registry { 160, 27, 3, - 25, 130, 22, - 23, - 144, - 145, - 85, + 20, + 97, + 1, + 16, + 87, 96, 64, 81, - 99, - 5, - 105, - 38, - 181, + 98, + 70, + 27, + 205, 96, 229, 27, 129, 82, 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 133, - 129, - 22, - 96, 4, - 131, - 1, - 82, - 96, - 36, - 130, - 1, - 133, - 144, - 82, - 131, - 129, - 22, - 96, - 68, - 131, - 1, - 82, - 145, - 130, - 22, - 145, - 134, - 22, - 144, - 99, - 173, - 36, - 214, - 160, - 144, - 96, - 100, 1, - 96, - 0, - 96, - 64, - 81, - 128, - 131, - 3, - 129, - 96, - 0, - 135, - 128, - 59, - 21, - 128, - 21, 97, 1, 7, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 90, - 241, - 21, - 128, - 21, + 144, 97, - 1, - 27, - 87, - 61, - 96, - 0, - 128, - 62, - 61, - 96, - 0, - 253, + 2, + 40, + 86, 91, - 80, - 80, 96, - 0, + 64, + 81, 128, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 25, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, + 145, 3, - 148, 144, - 148, - 22, - 147, - 144, - 147, - 23, - 144, - 146, - 85, - 80, - 80, - 80, - 80, - 80, - 80, - 86, + 253, 91, - 96, - 0, - 128, - 84, - 48, + 50, 96, 1, 96, @@ -1093,33 +997,41 @@ pub mod simple_registry { 160, 27, 3, - 25, 130, 22, - 23, - 144, - 145, - 85, + 20, + 97, + 1, + 56, + 87, 96, 64, 81, - 99, - 120, - 125, - 206, - 61, + 98, + 70, + 27, + 205, 96, - 224, + 229, 27, 129, 82, 96, 4, - 129, 1, - 131, + 97, + 1, + 7, 144, - 82, + 97, + 2, + 40, + 86, + 91, + 80, + 86, + 91, + 51, 96, 1, 96, @@ -1128,74 +1040,38 @@ pub mod simple_registry { 160, 27, 3, - 145, 130, 22, - 145, - 132, - 22, - 144, - 99, - 120, - 125, - 206, - 61, - 144, - 96, - 36, + 20, + 97, 1, - 96, - 0, + 56, + 87, 96, 64, 81, - 128, - 131, - 3, + 98, + 70, + 27, + 205, + 96, + 229, + 27, 129, + 82, 96, - 0, - 135, - 128, - 59, - 21, - 128, - 21, - 97, + 4, 1, - 160, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 90, - 241, - 21, - 128, - 21, 97, - 1, - 180, - 87, - 61, - 96, - 0, - 128, - 62, - 61, - 96, - 0, - 253, + 1, + 7, + 144, + 97, + 2, + 40, + 86, 91, - 80, - 80, - 96, - 0, - 128, - 84, + 51, 96, 1, 96, @@ -1204,8 +1080,38 @@ pub mod simple_registry { 160, 27, 3, - 25, + 131, 22, + 20, + 97, + 1, + 139, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 4, + 1, + 97, + 1, + 7, + 144, + 97, + 2, + 40, + 86, + 91, + 50, 96, 1, 96, @@ -1214,19 +1120,37 @@ pub mod simple_registry { 160, 27, 3, - 148, - 144, - 148, + 130, 22, - 147, - 144, - 147, - 23, + 20, + 97, + 1, + 179, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 4, + 1, + 97, + 1, + 7, 144, - 146, - 85, - 80, - 80, + 97, + 2, + 40, + 86, + 91, 80, 80, 86, @@ -1247,7 +1171,7 @@ pub mod simple_registry { 20, 97, 1, - 244, + 206, 87, 96, 0, @@ -1261,20 +1185,16 @@ pub mod simple_registry { 91, 96, 0, - 128, - 96, - 0, - 128, 96, - 128, - 133, - 135, + 32, + 130, + 132, 3, 18, 21, 97, - 2, - 15, + 1, + 229, 87, 96, 0, @@ -1282,57 +1202,18 @@ pub mod simple_registry { 253, 91, 97, - 2, - 24, - 133, - 97, - 1, - 221, - 86, - 91, - 147, - 80, - 97, - 2, - 38, - 96, - 32, - 134, 1, + 238, + 130, 97, 1, - 221, + 183, 86, 91, + 147, 146, 80, - 96, - 64, - 133, - 1, - 53, - 145, - 80, - 97, - 2, - 59, - 96, - 96, - 134, - 1, - 97, - 1, - 221, - 86, - 91, - 144, - 80, - 146, - 149, - 145, - 148, 80, - 146, 80, 86, 91, @@ -1348,7 +1229,7 @@ pub mod simple_registry { 21, 97, 2, - 89, + 8, 87, 96, 0, @@ -1357,26 +1238,67 @@ pub mod simple_registry { 91, 97, 2, - 98, + 17, 131, 97, 1, - 221, + 183, 86, 91, - 148, + 145, + 80, + 97, + 2, + 31, 96, 32, - 147, - 144, - 147, + 132, 1, - 53, - 147, + 97, + 1, + 183, + 86, + 91, + 144, 80, + 146, 80, + 146, + 144, 80, 86, + 91, + 96, + 32, + 128, + 130, + 82, + 96, + 6, + 144, + 130, + 1, + 82, + 101, + 33, + 112, + 114, + 97, + 110, + 107, + 96, + 208, + 27, + 96, + 64, + 130, + 1, + 82, + 96, + 96, + 1, + 144, + 86, 254, 162, 100, @@ -1388,38 +1310,38 @@ pub mod simple_registry { 34, 18, 32, - 174, - 220, - 99, + 97, + 162, + 134, + 97, + 96, 54, - 158, - 73, - 248, - 187, - 2, - 6, - 151, - 3, - 14, - 86, - 41, - 126, - 81, - 138, - 178, - 70, - 6, + 97, 233, - 155, - 137, - 103, - 73, + 220, + 31, + 84, + 111, + 125, + 76, 120, - 136, - 65, - 88, - 230, - 222, + 178, + 96, + 39, + 159, + 107, + 144, + 61, + 255, + 202, + 188, + 102, + 190, + 48, + 17, + 29, + 248, + 17, 100, 115, 111, @@ -1428,49 +1350,50 @@ pub mod simple_registry { 67, 0, 8, - 13, + 19, 0, 51, ]; ///The deployed bytecode of the contract. - pub static SIMPLEREGISTRY_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = - ::ethers::core::types::Bytes::from_static(__DEPLOYED_BYTECODE); - pub struct SimpleRegistry(::ethers::contract::Contract); - impl ::core::clone::Clone for SimpleRegistry { + pub static BAR_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __DEPLOYED_BYTECODE, + ); + pub struct Bar(::ethers::contract::Contract); + impl ::core::clone::Clone for Bar { fn clone(&self) -> Self { Self(::core::clone::Clone::clone(&self.0)) } } - impl ::core::ops::Deref for SimpleRegistry { + impl ::core::ops::Deref for Bar { type Target = ::ethers::contract::Contract; fn deref(&self) -> &Self::Target { &self.0 } } - impl ::core::ops::DerefMut for SimpleRegistry { + impl ::core::ops::DerefMut for Bar { fn deref_mut(&mut self) -> &mut Self::Target { &mut self.0 } } - impl ::core::fmt::Debug for SimpleRegistry { + impl ::core::fmt::Debug for Bar { fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(stringify!(SimpleRegistry)) - .field(&self.address()) - .finish() + f.debug_tuple(stringify!(Bar)).field(&self.address()).finish() } } - impl SimpleRegistry { + impl Bar { /// Creates a new contract instance with the specified `ethers` client at /// `address`. The contract derefs to a `ethers::Contract` object. pub fn new>( address: T, client: ::std::sync::Arc, ) -> Self { - Self(::ethers::contract::Contract::new( - address.into(), - SIMPLEREGISTRY_ABI.clone(), - client, - )) + Self( + ::ethers::contract::Contract::new( + address.into(), + BAR_ABI.clone(), + client, + ), + ) } /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction @@ -1503,53 +1426,80 @@ pub mod simple_registry { ::ethers::contract::ContractError, > { let factory = ::ethers::contract::ContractFactory::new( - SIMPLEREGISTRY_ABI.clone(), - SIMPLEREGISTRY_BYTECODE.clone().into(), + BAR_ABI.clone(), + BAR_BYTECODE.clone().into(), client, ); let deployer = factory.deploy(constructor_args)?; let deployer = ::ethers::contract::ContractDeployer::new(deployer); Ok(deployer) } - ///Calls the contract's `claimFee` (0x2cfcf423) function - pub fn claim_fee( + ///Calls the contract's `balanceOf` (0x70a08231) function + pub fn balance_of( + &self, + p0: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([112, 160, 130, 49], p0) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `bar` (0x646ea56d) function + pub fn bar( &self, - portfolio: ::ethers::core::types::Address, - token: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - to: ::ethers::core::types::Address, + expected_sender: ::ethers::core::types::Address, ) -> ::ethers::contract::builders::ContractCall { self.0 - .method_hash([44, 252, 244, 35], (portfolio, token, amount, to)) + .method_hash([100, 110, 165, 109], expected_sender) .expect("method not found (this should never happen)") } - ///Calls the contract's `controller` (0xf77c4791) function - pub fn controller( + ///Calls the contract's `origin` (0x55596477) function + pub fn origin( &self, - ) -> ::ethers::contract::builders::ContractCall { + expected_sender: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { self.0 - .method_hash([247, 124, 71, 145], ()) + .method_hash([85, 89, 100, 119], expected_sender) .expect("method not found (this should never happen)") } - ///Calls the contract's `setFee` (0xe55156b5) function - pub fn set_fee( + ///Calls the contract's `origin` (0xa9b2e28a) function + pub fn origin_with_expected_origin( &self, - portfolio: ::ethers::core::types::Address, - fee: ::ethers::core::types::U256, + expected_sender: ::ethers::core::types::Address, + expected_origin: ::ethers::core::types::Address, ) -> ::ethers::contract::builders::ContractCall { self.0 - .method_hash([229, 81, 86, 181], (portfolio, fee)) + .method_hash([169, 178, 226, 138], (expected_sender, expected_origin)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `totalSupply` (0x18160ddd) function + pub fn total_supply( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([24, 22, 13, 221], ()) .expect("method not found (this should never happen)") } } impl From<::ethers::contract::Contract> - for SimpleRegistry - { + for Bar { fn from(contract: ::ethers::contract::Contract) -> Self { Self::new(contract.address(), contract.client()) } } - ///Container type for all input parameters for the `claimFee` function with signature `claimFee(address,address,uint256,address)` and selector `0x2cfcf423` + ///Container type for all input parameters for the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "balanceOf", abi = "balanceOf(address)")] + pub struct BalanceOfCall(pub ::ethers::core::types::Address); + ///Container type for all input parameters for the `bar` function with signature `bar(address)` and selector `0x646ea56d` #[derive( Clone, ::ethers::contract::EthCall, @@ -1558,16 +1508,13 @@ pub mod simple_registry { Debug, PartialEq, Eq, - Hash, + Hash )] - #[ethcall(name = "claimFee", abi = "claimFee(address,address,uint256,address)")] - pub struct ClaimFeeCall { - pub portfolio: ::ethers::core::types::Address, - pub token: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - pub to: ::ethers::core::types::Address, + #[ethcall(name = "bar", abi = "bar(address)")] + pub struct BarCall { + pub expected_sender: ::ethers::core::types::Address, } - ///Container type for all input parameters for the `controller` function with signature `controller()` and selector `0xf77c4791` + ///Container type for all input parameters for the `origin` function with signature `origin(address)` and selector `0x55596477` #[derive( Clone, ::ethers::contract::EthCall, @@ -1576,11 +1523,13 @@ pub mod simple_registry { Debug, PartialEq, Eq, - Hash, + Hash )] - #[ethcall(name = "controller", abi = "controller()")] - pub struct ControllerCall; - ///Container type for all input parameters for the `setFee` function with signature `setFee(address,uint256)` and selector `0xe55156b5` + #[ethcall(name = "origin", abi = "origin(address)")] + pub struct OriginCall { + pub expected_sender: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `origin` function with signature `origin(address,address)` and selector `0xa9b2e28a` #[derive( Clone, ::ethers::contract::EthCall, @@ -1589,71 +1538,133 @@ pub mod simple_registry { Debug, PartialEq, Eq, - Hash, + Hash )] - #[ethcall(name = "setFee", abi = "setFee(address,uint256)")] - pub struct SetFeeCall { - pub portfolio: ::ethers::core::types::Address, - pub fee: ::ethers::core::types::U256, + #[ethcall(name = "origin", abi = "origin(address,address)")] + pub struct OriginWithExpectedOriginCall { + pub expected_sender: ::ethers::core::types::Address, + pub expected_origin: ::ethers::core::types::Address, } + ///Container type for all input parameters for the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "totalSupply", abi = "totalSupply()")] + pub struct TotalSupplyCall; ///Container type for all of the contract's call #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] - pub enum SimpleRegistryCalls { - ClaimFee(ClaimFeeCall), - Controller(ControllerCall), - SetFee(SetFeeCall), + pub enum BarCalls { + BalanceOf(BalanceOfCall), + Bar(BarCall), + Origin(OriginCall), + OriginWithExpectedOrigin(OriginWithExpectedOriginCall), + TotalSupply(TotalSupplyCall), } - impl ::ethers::core::abi::AbiDecode for SimpleRegistryCalls { + impl ::ethers::core::abi::AbiDecode for BarCalls { fn decode( data: impl AsRef<[u8]>, ) -> ::core::result::Result { let data = data.as_ref(); - if let Ok(decoded) = ::decode(data) { - return Ok(Self::ClaimFee(decoded)); + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::BalanceOf(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Bar(decoded)); } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Controller(decoded)); + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Origin(decoded)); } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::SetFee(decoded)); + if let Ok(decoded) + = ::decode( + data, + ) { + return Ok(Self::OriginWithExpectedOrigin(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::TotalSupply(decoded)); } Err(::ethers::core::abi::Error::InvalidData.into()) } } - impl ::ethers::core::abi::AbiEncode for SimpleRegistryCalls { + impl ::ethers::core::abi::AbiEncode for BarCalls { fn encode(self) -> Vec { match self { - Self::ClaimFee(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Controller(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::SetFee(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::BalanceOf(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Bar(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Origin(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::OriginWithExpectedOrigin(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::TotalSupply(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } } } } - impl ::core::fmt::Display for SimpleRegistryCalls { + impl ::core::fmt::Display for BarCalls { fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { match self { - Self::ClaimFee(element) => ::core::fmt::Display::fmt(element, f), - Self::Controller(element) => ::core::fmt::Display::fmt(element, f), - Self::SetFee(element) => ::core::fmt::Display::fmt(element, f), + Self::BalanceOf(element) => ::core::fmt::Display::fmt(element, f), + Self::Bar(element) => ::core::fmt::Display::fmt(element, f), + Self::Origin(element) => ::core::fmt::Display::fmt(element, f), + Self::OriginWithExpectedOrigin(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::TotalSupply(element) => ::core::fmt::Display::fmt(element, f), } } } - impl ::core::convert::From for SimpleRegistryCalls { - fn from(value: ClaimFeeCall) -> Self { - Self::ClaimFee(value) + impl ::core::convert::From for BarCalls { + fn from(value: BalanceOfCall) -> Self { + Self::BalanceOf(value) + } + } + impl ::core::convert::From for BarCalls { + fn from(value: BarCall) -> Self { + Self::Bar(value) + } + } + impl ::core::convert::From for BarCalls { + fn from(value: OriginCall) -> Self { + Self::Origin(value) } } - impl ::core::convert::From for SimpleRegistryCalls { - fn from(value: ControllerCall) -> Self { - Self::Controller(value) + impl ::core::convert::From for BarCalls { + fn from(value: OriginWithExpectedOriginCall) -> Self { + Self::OriginWithExpectedOrigin(value) } } - impl ::core::convert::From for SimpleRegistryCalls { - fn from(value: SetFeeCall) -> Self { - Self::SetFee(value) + impl ::core::convert::From for BarCalls { + fn from(value: TotalSupplyCall) -> Self { + Self::TotalSupply(value) } } - ///Container type for all return fields from the `controller` function with signature `controller()` and selector `0xf77c4791` + ///Container type for all return fields from the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct BalanceOfReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd` #[derive( Clone, ::ethers::contract::EthAbiType, @@ -1662,7 +1673,7 @@ pub mod simple_registry { Debug, PartialEq, Eq, - Hash, + Hash )] - pub struct ControllerReturn(pub ::ethers::core::types::Address); + pub struct TotalSupplyReturn(pub ::ethers::core::types::U256); } diff --git a/crates/bindings/src/bar_erc1155.rs b/crates/bindings/src/bar_erc1155.rs new file mode 100644 index 00000000..2e3bc052 --- /dev/null +++ b/crates/bindings/src/bar_erc1155.rs @@ -0,0 +1,918 @@ +pub use bar_erc1155::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod bar_erc1155 { + #[rustfmt::skip] + const __ABI: &str = "[{\"inputs\":[],\"stateMutability\":\"payable\",\"type\":\"constructor\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]}]"; + ///The parsed JSON ABI of the contract. + pub static BARERC1155_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| + ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); + #[rustfmt::skip] + const __BYTECODE: &[u8] = &[ + 96, + 128, + 96, + 64, + 144, + 129, + 82, + 105, + 2, + 30, + 25, + 224, + 201, + 186, + 178, + 64, + 0, + 0, + 127, + 166, + 238, + 247, + 227, + 90, + 190, + 112, + 38, + 114, + 150, + 65, + 20, + 127, + 121, + 21, + 87, + 60, + 126, + 151, + 180, + 126, + 250, + 84, + 111, + 95, + 110, + 50, + 48, + 38, + 59, + 203, + 73, + 129, + 144, + 85, + 48, + 96, + 0, + 144, + 129, + 82, + 127, + 173, + 50, + 40, + 182, + 118, + 247, + 211, + 205, + 66, + 132, + 165, + 68, + 63, + 23, + 241, + 150, + 43, + 54, + 228, + 145, + 179, + 10, + 64, + 178, + 64, + 88, + 73, + 229, + 151, + 186, + 95, + 181, + 96, + 32, + 82, + 145, + 144, + 145, + 32, + 85, + 97, + 1, + 25, + 128, + 97, + 0, + 115, + 96, + 0, + 57, + 96, + 0, + 243, + 254, + 96, + 128, + 96, + 64, + 82, + 52, + 128, + 21, + 96, + 15, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 96, + 4, + 54, + 16, + 96, + 49, + 87, + 96, + 0, + 53, + 96, + 224, + 28, + 128, + 98, + 253, + 213, + 142, + 20, + 96, + 54, + 87, + 128, + 99, + 189, + 133, + 176, + 57, + 20, + 96, + 120, + 87, + 91, + 96, + 0, + 128, + 253, + 91, + 96, + 102, + 96, + 65, + 54, + 96, + 4, + 96, + 149, + 86, + 91, + 96, + 0, + 144, + 129, + 82, + 96, + 32, + 129, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 148, + 144, + 148, + 22, + 131, + 82, + 146, + 144, + 82, + 32, + 84, + 144, + 86, + 91, + 96, + 64, + 81, + 144, + 129, + 82, + 96, + 32, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 243, + 91, + 96, + 102, + 96, + 131, + 54, + 96, + 4, + 96, + 203, + 86, + 91, + 96, + 0, + 144, + 129, + 82, + 96, + 1, + 96, + 32, + 82, + 96, + 64, + 144, + 32, + 84, + 144, + 86, + 91, + 96, + 0, + 128, + 96, + 64, + 131, + 133, + 3, + 18, + 21, + 96, + 167, + 87, + 96, + 0, + 128, + 253, + 91, + 130, + 53, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 129, + 22, + 129, + 20, + 96, + 189, + 87, + 96, + 0, + 128, + 253, + 91, + 148, + 96, + 32, + 147, + 144, + 147, + 1, + 53, + 147, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 96, + 32, + 130, + 132, + 3, + 18, + 21, + 96, + 220, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 53, + 145, + 144, + 80, + 86, + 254, + 162, + 100, + 105, + 112, + 102, + 115, + 88, + 34, + 18, + 32, + 86, + 252, + 185, + 243, + 219, + 17, + 221, + 127, + 2, + 57, + 142, + 186, + 233, + 143, + 99, + 251, + 46, + 37, + 64, + 238, + 184, + 17, + 138, + 72, + 139, + 93, + 137, + 121, + 8, + 252, + 116, + 171, + 100, + 115, + 111, + 108, + 99, + 67, + 0, + 8, + 19, + 0, + 51, + ]; + ///The bytecode of the contract. + pub static BARERC1155_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __BYTECODE, + ); + #[rustfmt::skip] + const __DEPLOYED_BYTECODE: &[u8] = &[ + 96, + 128, + 96, + 64, + 82, + 52, + 128, + 21, + 96, + 15, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 96, + 4, + 54, + 16, + 96, + 49, + 87, + 96, + 0, + 53, + 96, + 224, + 28, + 128, + 98, + 253, + 213, + 142, + 20, + 96, + 54, + 87, + 128, + 99, + 189, + 133, + 176, + 57, + 20, + 96, + 120, + 87, + 91, + 96, + 0, + 128, + 253, + 91, + 96, + 102, + 96, + 65, + 54, + 96, + 4, + 96, + 149, + 86, + 91, + 96, + 0, + 144, + 129, + 82, + 96, + 32, + 129, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 148, + 144, + 148, + 22, + 131, + 82, + 146, + 144, + 82, + 32, + 84, + 144, + 86, + 91, + 96, + 64, + 81, + 144, + 129, + 82, + 96, + 32, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 243, + 91, + 96, + 102, + 96, + 131, + 54, + 96, + 4, + 96, + 203, + 86, + 91, + 96, + 0, + 144, + 129, + 82, + 96, + 1, + 96, + 32, + 82, + 96, + 64, + 144, + 32, + 84, + 144, + 86, + 91, + 96, + 0, + 128, + 96, + 64, + 131, + 133, + 3, + 18, + 21, + 96, + 167, + 87, + 96, + 0, + 128, + 253, + 91, + 130, + 53, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 129, + 22, + 129, + 20, + 96, + 189, + 87, + 96, + 0, + 128, + 253, + 91, + 148, + 96, + 32, + 147, + 144, + 147, + 1, + 53, + 147, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 96, + 32, + 130, + 132, + 3, + 18, + 21, + 96, + 220, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 53, + 145, + 144, + 80, + 86, + 254, + 162, + 100, + 105, + 112, + 102, + 115, + 88, + 34, + 18, + 32, + 86, + 252, + 185, + 243, + 219, + 17, + 221, + 127, + 2, + 57, + 142, + 186, + 233, + 143, + 99, + 251, + 46, + 37, + 64, + 238, + 184, + 17, + 138, + 72, + 139, + 93, + 137, + 121, + 8, + 252, + 116, + 171, + 100, + 115, + 111, + 108, + 99, + 67, + 0, + 8, + 19, + 0, + 51, + ]; + ///The deployed bytecode of the contract. + pub static BARERC1155_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __DEPLOYED_BYTECODE, + ); + pub struct BarERC1155(::ethers::contract::Contract); + impl ::core::clone::Clone for BarERC1155 { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for BarERC1155 { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for BarERC1155 { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for BarERC1155 { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(stringify!(BarERC1155)).field(&self.address()).finish() + } + } + impl BarERC1155 { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + BARERC1155_ABI.clone(), + client, + ), + ) + } + /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. + /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction + /// + /// Notes: + /// - If there are no constructor arguments, you should pass `()` as the argument. + /// - The default poll duration is 7 seconds. + /// - The default number of confirmations is 1 block. + /// + /// + /// # Example + /// + /// Generate contract bindings with `abigen!` and deploy a new contract instance. + /// + /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. + /// + /// ```ignore + /// # async fn deploy(client: ::std::sync::Arc) { + /// abigen!(Greeter, "../greeter.json"); + /// + /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); + /// let msg = greeter_contract.greet().call().await.unwrap(); + /// # } + /// ``` + pub fn deploy( + client: ::std::sync::Arc, + constructor_args: T, + ) -> ::core::result::Result< + ::ethers::contract::builders::ContractDeployer, + ::ethers::contract::ContractError, + > { + let factory = ::ethers::contract::ContractFactory::new( + BARERC1155_ABI.clone(), + BARERC1155_BYTECODE.clone().into(), + client, + ); + let deployer = factory.deploy(constructor_args)?; + let deployer = ::ethers::contract::ContractDeployer::new(deployer); + Ok(deployer) + } + ///Calls the contract's `balanceOf` (0x00fdd58e) function + pub fn balance_of( + &self, + account: ::ethers::core::types::Address, + id: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([0, 253, 213, 142], (account, id)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `totalSupply` (0xbd85b039) function + pub fn total_supply( + &self, + id: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([189, 133, 176, 57], id) + .expect("method not found (this should never happen)") + } + } + impl From<::ethers::contract::Contract> + for BarERC1155 { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } + ///Container type for all input parameters for the `balanceOf` function with signature `balanceOf(address,uint256)` and selector `0x00fdd58e` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "balanceOf", abi = "balanceOf(address,uint256)")] + pub struct BalanceOfCall { + pub account: ::ethers::core::types::Address, + pub id: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `totalSupply` function with signature `totalSupply(uint256)` and selector `0xbd85b039` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "totalSupply", abi = "totalSupply(uint256)")] + pub struct TotalSupplyCall { + pub id: ::ethers::core::types::U256, + } + ///Container type for all of the contract's call + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum BarERC1155Calls { + BalanceOf(BalanceOfCall), + TotalSupply(TotalSupplyCall), + } + impl ::ethers::core::abi::AbiDecode for BarERC1155Calls { + fn decode( + data: impl AsRef<[u8]>, + ) -> ::core::result::Result { + let data = data.as_ref(); + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::BalanceOf(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::TotalSupply(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData.into()) + } + } + impl ::ethers::core::abi::AbiEncode for BarERC1155Calls { + fn encode(self) -> Vec { + match self { + Self::BalanceOf(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::TotalSupply(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + } + } + } + impl ::core::fmt::Display for BarERC1155Calls { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::BalanceOf(element) => ::core::fmt::Display::fmt(element, f), + Self::TotalSupply(element) => ::core::fmt::Display::fmt(element, f), + } + } + } + impl ::core::convert::From for BarERC1155Calls { + fn from(value: BalanceOfCall) -> Self { + Self::BalanceOf(value) + } + } + impl ::core::convert::From for BarERC1155Calls { + fn from(value: TotalSupplyCall) -> Self { + Self::TotalSupply(value) + } + } + ///Container type for all return fields from the `balanceOf` function with signature `balanceOf(address,uint256)` and selector `0x00fdd58e` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct BalanceOfReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `totalSupply` function with signature `totalSupply(uint256)` and selector `0xbd85b039` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct TotalSupplyReturn(pub ::ethers::core::types::U256); +} diff --git a/crates/bindings/src/bar_erc721.rs b/crates/bindings/src/bar_erc721.rs new file mode 100644 index 00000000..a4349765 --- /dev/null +++ b/crates/bindings/src/bar_erc721.rs @@ -0,0 +1,1049 @@ +pub use bar_erc721::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod bar_erc721 { + #[rustfmt::skip] + const __ABI: &str = "[{\"inputs\":[],\"stateMutability\":\"payable\",\"type\":\"constructor\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]}]"; + ///The parsed JSON ABI of the contract. + pub static BARERC721_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| + ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); + #[rustfmt::skip] + const __BYTECODE: &[u8] = &[ + 96, + 128, + 96, + 64, + 144, + 129, + 82, + 127, + 173, + 165, + 1, + 49, + 34, + 211, + 149, + 186, + 60, + 84, + 119, + 34, + 131, + 251, + 6, + 155, + 16, + 66, + 96, + 86, + 239, + 140, + 165, + 71, + 80, + 203, + 155, + 181, + 82, + 165, + 158, + 125, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 25, + 144, + 129, + 22, + 96, + 1, + 144, + 129, + 23, + 144, + 146, + 85, + 127, + 204, + 105, + 136, + 95, + 218, + 107, + 204, + 26, + 74, + 206, + 5, + 139, + 74, + 98, + 191, + 94, + 23, + 158, + 167, + 143, + 213, + 138, + 28, + 205, + 113, + 194, + 44, + 201, + 182, + 136, + 121, + 47, + 130, + 144, + 85, + 127, + 171, + 187, + 92, + 170, + 125, + 218, + 133, + 14, + 96, + 147, + 45, + 224, + 147, + 78, + 177, + 249, + 208, + 245, + 150, + 149, + 5, + 15, + 118, + 29, + 198, + 78, + 68, + 62, + 80, + 48, + 165, + 105, + 128, + 84, + 130, + 22, + 48, + 144, + 129, + 23, + 144, + 145, + 85, + 127, + 16, + 30, + 54, + 135, + 118, + 88, + 46, + 87, + 171, + 61, + 17, + 111, + 254, + 37, + 23, + 192, + 165, + 133, + 205, + 91, + 35, + 23, + 75, + 1, + 226, + 117, + 194, + 216, + 50, + 156, + 61, + 131, + 128, + 84, + 144, + 146, + 22, + 129, + 23, + 144, + 145, + 85, + 96, + 0, + 144, + 129, + 82, + 96, + 32, + 145, + 144, + 145, + 82, + 32, + 96, + 2, + 144, + 85, + 97, + 1, + 41, + 128, + 97, + 0, + 215, + 96, + 0, + 57, + 96, + 0, + 243, + 254, + 96, + 128, + 96, + 64, + 82, + 52, + 128, + 21, + 96, + 15, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 96, + 4, + 54, + 16, + 96, + 50, + 87, + 96, + 0, + 53, + 96, + 224, + 28, + 128, + 99, + 99, + 82, + 33, + 30, + 20, + 96, + 55, + 87, + 128, + 99, + 112, + 160, + 130, + 49, + 20, + 96, + 122, + 87, + 91, + 96, + 0, + 128, + 253, + 91, + 96, + 93, + 96, + 66, + 54, + 96, + 4, + 96, + 173, + 86, + 91, + 96, + 0, + 144, + 129, + 82, + 96, + 32, + 129, + 144, + 82, + 96, + 64, + 144, + 32, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 144, + 86, + 91, + 96, + 64, + 81, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 144, + 145, + 22, + 129, + 82, + 96, + 32, + 1, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 243, + 91, + 96, + 160, + 96, + 133, + 54, + 96, + 4, + 96, + 197, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 1, + 96, + 32, + 82, + 96, + 64, + 144, + 32, + 84, + 144, + 86, + 91, + 96, + 64, + 81, + 144, + 129, + 82, + 96, + 32, + 1, + 96, + 113, + 86, + 91, + 96, + 0, + 96, + 32, + 130, + 132, + 3, + 18, + 21, + 96, + 190, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 53, + 145, + 144, + 80, + 86, + 91, + 96, + 0, + 96, + 32, + 130, + 132, + 3, + 18, + 21, + 96, + 214, + 87, + 96, + 0, + 128, + 253, + 91, + 129, + 53, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 129, + 22, + 129, + 20, + 96, + 236, + 87, + 96, + 0, + 128, + 253, + 91, + 147, + 146, + 80, + 80, + 80, + 86, + 254, + 162, + 100, + 105, + 112, + 102, + 115, + 88, + 34, + 18, + 32, + 82, + 164, + 254, + 166, + 34, + 152, + 17, + 227, + 136, + 39, + 207, + 30, + 46, + 229, + 84, + 244, + 235, + 182, + 236, + 3, + 177, + 78, + 246, + 58, + 188, + 180, + 171, + 197, + 185, + 99, + 219, + 4, + 100, + 115, + 111, + 108, + 99, + 67, + 0, + 8, + 19, + 0, + 51, + ]; + ///The bytecode of the contract. + pub static BARERC721_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __BYTECODE, + ); + #[rustfmt::skip] + const __DEPLOYED_BYTECODE: &[u8] = &[ + 96, + 128, + 96, + 64, + 82, + 52, + 128, + 21, + 96, + 15, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 96, + 4, + 54, + 16, + 96, + 50, + 87, + 96, + 0, + 53, + 96, + 224, + 28, + 128, + 99, + 99, + 82, + 33, + 30, + 20, + 96, + 55, + 87, + 128, + 99, + 112, + 160, + 130, + 49, + 20, + 96, + 122, + 87, + 91, + 96, + 0, + 128, + 253, + 91, + 96, + 93, + 96, + 66, + 54, + 96, + 4, + 96, + 173, + 86, + 91, + 96, + 0, + 144, + 129, + 82, + 96, + 32, + 129, + 144, + 82, + 96, + 64, + 144, + 32, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 144, + 86, + 91, + 96, + 64, + 81, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 144, + 145, + 22, + 129, + 82, + 96, + 32, + 1, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 243, + 91, + 96, + 160, + 96, + 133, + 54, + 96, + 4, + 96, + 197, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 1, + 96, + 32, + 82, + 96, + 64, + 144, + 32, + 84, + 144, + 86, + 91, + 96, + 64, + 81, + 144, + 129, + 82, + 96, + 32, + 1, + 96, + 113, + 86, + 91, + 96, + 0, + 96, + 32, + 130, + 132, + 3, + 18, + 21, + 96, + 190, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 53, + 145, + 144, + 80, + 86, + 91, + 96, + 0, + 96, + 32, + 130, + 132, + 3, + 18, + 21, + 96, + 214, + 87, + 96, + 0, + 128, + 253, + 91, + 129, + 53, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 129, + 22, + 129, + 20, + 96, + 236, + 87, + 96, + 0, + 128, + 253, + 91, + 147, + 146, + 80, + 80, + 80, + 86, + 254, + 162, + 100, + 105, + 112, + 102, + 115, + 88, + 34, + 18, + 32, + 82, + 164, + 254, + 166, + 34, + 152, + 17, + 227, + 136, + 39, + 207, + 30, + 46, + 229, + 84, + 244, + 235, + 182, + 236, + 3, + 177, + 78, + 246, + 58, + 188, + 180, + 171, + 197, + 185, + 99, + 219, + 4, + 100, + 115, + 111, + 108, + 99, + 67, + 0, + 8, + 19, + 0, + 51, + ]; + ///The deployed bytecode of the contract. + pub static BARERC721_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __DEPLOYED_BYTECODE, + ); + pub struct BarERC721(::ethers::contract::Contract); + impl ::core::clone::Clone for BarERC721 { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for BarERC721 { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for BarERC721 { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for BarERC721 { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(stringify!(BarERC721)).field(&self.address()).finish() + } + } + impl BarERC721 { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + BARERC721_ABI.clone(), + client, + ), + ) + } + /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. + /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction + /// + /// Notes: + /// - If there are no constructor arguments, you should pass `()` as the argument. + /// - The default poll duration is 7 seconds. + /// - The default number of confirmations is 1 block. + /// + /// + /// # Example + /// + /// Generate contract bindings with `abigen!` and deploy a new contract instance. + /// + /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. + /// + /// ```ignore + /// # async fn deploy(client: ::std::sync::Arc) { + /// abigen!(Greeter, "../greeter.json"); + /// + /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); + /// let msg = greeter_contract.greet().call().await.unwrap(); + /// # } + /// ``` + pub fn deploy( + client: ::std::sync::Arc, + constructor_args: T, + ) -> ::core::result::Result< + ::ethers::contract::builders::ContractDeployer, + ::ethers::contract::ContractError, + > { + let factory = ::ethers::contract::ContractFactory::new( + BARERC721_ABI.clone(), + BARERC721_BYTECODE.clone().into(), + client, + ); + let deployer = factory.deploy(constructor_args)?; + let deployer = ::ethers::contract::ContractDeployer::new(deployer); + Ok(deployer) + } + ///Calls the contract's `balanceOf` (0x70a08231) function + pub fn balance_of( + &self, + owner: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([112, 160, 130, 49], owner) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `ownerOf` (0x6352211e) function + pub fn owner_of( + &self, + token_id: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall< + M, + ::ethers::core::types::Address, + > { + self.0 + .method_hash([99, 82, 33, 30], token_id) + .expect("method not found (this should never happen)") + } + } + impl From<::ethers::contract::Contract> + for BarERC721 { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } + ///Container type for all input parameters for the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "balanceOf", abi = "balanceOf(address)")] + pub struct BalanceOfCall { + pub owner: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `ownerOf` function with signature `ownerOf(uint256)` and selector `0x6352211e` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "ownerOf", abi = "ownerOf(uint256)")] + pub struct OwnerOfCall { + pub token_id: ::ethers::core::types::U256, + } + ///Container type for all of the contract's call + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum BarERC721Calls { + BalanceOf(BalanceOfCall), + OwnerOf(OwnerOfCall), + } + impl ::ethers::core::abi::AbiDecode for BarERC721Calls { + fn decode( + data: impl AsRef<[u8]>, + ) -> ::core::result::Result { + let data = data.as_ref(); + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::BalanceOf(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::OwnerOf(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData.into()) + } + } + impl ::ethers::core::abi::AbiEncode for BarERC721Calls { + fn encode(self) -> Vec { + match self { + Self::BalanceOf(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::OwnerOf(element) => ::ethers::core::abi::AbiEncode::encode(element), + } + } + } + impl ::core::fmt::Display for BarERC721Calls { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::BalanceOf(element) => ::core::fmt::Display::fmt(element, f), + Self::OwnerOf(element) => ::core::fmt::Display::fmt(element, f), + } + } + } + impl ::core::convert::From for BarERC721Calls { + fn from(value: BalanceOfCall) -> Self { + Self::BalanceOf(value) + } + } + impl ::core::convert::From for BarERC721Calls { + fn from(value: OwnerOfCall) -> Self { + Self::OwnerOf(value) + } + } + ///Container type for all return fields from the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct BalanceOfReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `ownerOf` function with signature `ownerOf(uint256)` and selector `0x6352211e` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct OwnerOfReturn(pub ::ethers::core::types::Address); +} diff --git a/crates/bindings/src/fvm_lib.rs b/crates/bindings/src/context.rs similarity index 59% rename from crates/bindings/src/fvm_lib.rs rename to crates/bindings/src/context.rs index 840d3cf3..dc4fd33b 100644 --- a/crates/bindings/src/fvm_lib.rs +++ b/crates/bindings/src/context.rs @@ -1,4 +1,4 @@ -pub use fvm_lib::*; +pub use context::*; /// This module was auto-generated with ethers-rs Abigen. /// More information at: #[allow( @@ -7,55 +7,54 @@ pub use fvm_lib::*; clippy::upper_case_acronyms, clippy::type_complexity, dead_code, - non_camel_case_types + non_camel_case_types, )] -pub mod fvm_lib { +pub mod context { #[rustfmt::skip] const __ABI: &str = "[]"; ///The parsed JSON ABI of the contract. - pub static FVMLIB_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = - ::ethers::contract::Lazy::new(|| { - ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid") - }); - pub struct FVMLib(::ethers::contract::Contract); - impl ::core::clone::Clone for FVMLib { + pub static CONTEXT_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| + ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); + pub struct Context(::ethers::contract::Contract); + impl ::core::clone::Clone for Context { fn clone(&self) -> Self { Self(::core::clone::Clone::clone(&self.0)) } } - impl ::core::ops::Deref for FVMLib { + impl ::core::ops::Deref for Context { type Target = ::ethers::contract::Contract; fn deref(&self) -> &Self::Target { &self.0 } } - impl ::core::ops::DerefMut for FVMLib { + impl ::core::ops::DerefMut for Context { fn deref_mut(&mut self) -> &mut Self::Target { &mut self.0 } } - impl ::core::fmt::Debug for FVMLib { + impl ::core::fmt::Debug for Context { fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(stringify!(FVMLib)) - .field(&self.address()) - .finish() + f.debug_tuple(stringify!(Context)).field(&self.address()).finish() } } - impl FVMLib { + impl Context { /// Creates a new contract instance with the specified `ethers` client at /// `address`. The contract derefs to a `ethers::Contract` object. pub fn new>( address: T, client: ::std::sync::Arc, ) -> Self { - Self(::ethers::contract::Contract::new( - address.into(), - FVMLIB_ABI.clone(), - client, - )) + Self( + ::ethers::contract::Contract::new( + address.into(), + CONTEXT_ABI.clone(), + client, + ), + ) } } - impl From<::ethers::contract::Contract> for FVMLib { + impl From<::ethers::contract::Contract> + for Context { fn from(contract: ::ethers::contract::Contract) -> Self { Self::new(contract.address(), contract.client()) } diff --git a/crates/bindings/src/echidna_erc20.rs b/crates/bindings/src/echidna_erc20.rs deleted file mode 100644 index 937acfe8..00000000 --- a/crates/bindings/src/echidna_erc20.rs +++ /dev/null @@ -1,7911 +0,0 @@ -pub use echidna_erc20::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types -)] -pub mod echidna_erc20 { - #[rustfmt::skip] - const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\",\"components\":[]},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimals_\",\"type\":\"uint8\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"_Portfolio\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Approval\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Transfer\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"Portfolio\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"burn\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"mint\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"decimals_\",\"type\":\"uint8\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"setDecimals\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]}]"; - ///The parsed JSON ABI of the contract. - pub static ECHIDNAERC20_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = - ::ethers::contract::Lazy::new(|| { - ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid") - }); - #[rustfmt::skip] - const __BYTECODE: &[u8] = &[ - 96, - 128, - 96, - 64, - 82, - 52, - 128, - 21, - 98, - 0, - 0, - 17, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 96, - 64, - 81, - 98, - 0, - 15, - 43, - 56, - 3, - 128, - 98, - 0, - 15, - 43, - 131, - 57, - 129, - 1, - 96, - 64, - 129, - 144, - 82, - 98, - 0, - 0, - 52, - 145, - 98, - 0, - 2, - 7, - 86, - 91, - 131, - 81, - 98, - 0, - 0, - 73, - 144, - 96, - 3, - 144, - 96, - 32, - 135, - 1, - 144, - 98, - 0, - 0, - 148, - 86, - 91, - 80, - 130, - 81, - 98, - 0, - 0, - 95, - 144, - 96, - 4, - 144, - 96, - 32, - 134, - 1, - 144, - 98, - 0, - 0, - 148, - 86, - 91, - 80, - 96, - 5, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 144, - 146, - 22, - 97, - 1, - 0, - 2, - 96, - 1, - 96, - 1, - 96, - 168, - 27, - 3, - 25, - 144, - 146, - 22, - 96, - 255, - 144, - 147, - 22, - 146, - 144, - 146, - 23, - 23, - 144, - 85, - 80, - 98, - 0, - 2, - 231, - 144, - 80, - 86, - 91, - 130, - 128, - 84, - 98, - 0, - 0, - 162, - 144, - 98, - 0, - 2, - 171, - 86, - 91, - 144, - 96, - 0, - 82, - 96, - 32, - 96, - 0, - 32, - 144, - 96, - 31, - 1, - 96, - 32, - 144, - 4, - 129, - 1, - 146, - 130, - 98, - 0, - 0, - 198, - 87, - 96, - 0, - 133, - 85, - 98, - 0, - 1, - 17, - 86, - 91, - 130, - 96, - 31, - 16, - 98, - 0, - 0, - 225, - 87, - 128, - 81, - 96, - 255, - 25, - 22, - 131, - 128, - 1, - 23, - 133, - 85, - 98, - 0, - 1, - 17, - 86, - 91, - 130, - 128, - 1, - 96, - 1, - 1, - 133, - 85, - 130, - 21, - 98, - 0, - 1, - 17, - 87, - 145, - 130, - 1, - 91, - 130, - 129, - 17, - 21, - 98, - 0, - 1, - 17, - 87, - 130, - 81, - 130, - 85, - 145, - 96, - 32, - 1, - 145, - 144, - 96, - 1, - 1, - 144, - 98, - 0, - 0, - 244, - 86, - 91, - 80, - 98, - 0, - 1, - 31, - 146, - 145, - 80, - 98, - 0, - 1, - 35, - 86, - 91, - 80, - 144, - 86, - 91, - 91, - 128, - 130, - 17, - 21, - 98, - 0, - 1, - 31, - 87, - 96, - 0, - 129, - 85, - 96, - 1, - 1, - 98, - 0, - 1, - 36, - 86, - 91, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 65, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 96, - 0, - 130, - 96, - 31, - 131, - 1, - 18, - 98, - 0, - 1, - 98, - 87, - 96, - 0, - 128, - 253, - 91, - 129, - 81, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 128, - 130, - 17, - 21, - 98, - 0, - 1, - 127, - 87, - 98, - 0, - 1, - 127, - 98, - 0, - 1, - 58, - 86, - 91, - 96, - 64, - 81, - 96, - 31, - 131, - 1, - 96, - 31, - 25, - 144, - 129, - 22, - 96, - 63, - 1, - 22, - 129, - 1, - 144, - 130, - 130, - 17, - 129, - 131, - 16, - 23, - 21, - 98, - 0, - 1, - 170, - 87, - 98, - 0, - 1, - 170, - 98, - 0, - 1, - 58, - 86, - 91, - 129, - 96, - 64, - 82, - 131, - 129, - 82, - 96, - 32, - 146, - 80, - 134, - 131, - 133, - 136, - 1, - 1, - 17, - 21, - 98, - 0, - 1, - 199, - 87, - 96, - 0, - 128, - 253, - 91, - 96, - 0, - 145, - 80, - 91, - 131, - 130, - 16, - 21, - 98, - 0, - 1, - 235, - 87, - 133, - 130, - 1, - 131, - 1, - 81, - 129, - 131, - 1, - 132, - 1, - 82, - 144, - 130, - 1, - 144, - 98, - 0, - 1, - 204, - 86, - 91, - 131, - 130, - 17, - 21, - 98, - 0, - 1, - 253, - 87, - 96, - 0, - 131, - 133, - 131, - 1, - 1, - 82, - 91, - 150, - 149, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 128, - 96, - 128, - 133, - 135, - 3, - 18, - 21, - 98, - 0, - 2, - 30, - 87, - 96, - 0, - 128, - 253, - 91, - 132, - 81, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 128, - 130, - 17, - 21, - 98, - 0, - 2, - 54, - 87, - 96, - 0, - 128, - 253, - 91, - 98, - 0, - 2, - 68, - 136, - 131, - 137, - 1, - 98, - 0, - 1, - 80, - 86, - 91, - 149, - 80, - 96, - 32, - 135, - 1, - 81, - 145, - 80, - 128, - 130, - 17, - 21, - 98, - 0, - 2, - 91, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 98, - 0, - 2, - 106, - 135, - 130, - 136, - 1, - 98, - 0, - 1, - 80, - 86, - 91, - 147, - 80, - 80, - 96, - 64, - 133, - 1, - 81, - 96, - 255, - 129, - 22, - 129, - 20, - 98, - 0, - 2, - 130, - 87, - 96, - 0, - 128, - 253, - 91, - 96, - 96, - 134, - 1, - 81, - 144, - 146, - 80, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 129, - 22, - 129, - 20, - 98, - 0, - 2, - 160, - 87, - 96, - 0, - 128, - 253, - 91, - 147, - 150, - 146, - 149, - 80, - 144, - 147, - 80, - 80, - 86, - 91, - 96, - 1, - 129, - 129, - 28, - 144, - 130, - 22, - 128, - 98, - 0, - 2, - 192, - 87, - 96, - 127, - 130, - 22, - 145, - 80, - 91, - 96, - 32, - 130, - 16, - 129, - 3, - 98, - 0, - 2, - 225, - 87, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 34, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 80, - 145, - 144, - 80, - 86, - 91, - 97, - 12, - 52, - 128, - 98, - 0, - 2, - 247, - 96, - 0, - 57, - 96, - 0, - 243, - 254, - 96, - 128, - 96, - 64, - 82, - 52, - 128, - 21, - 97, - 0, - 16, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 96, - 4, - 54, - 16, - 97, - 0, - 245, - 87, - 96, - 0, - 53, - 96, - 224, - 28, - 128, - 99, - 80, - 211, - 244, - 124, - 17, - 97, - 0, - 151, - 87, - 128, - 99, - 157, - 194, - 159, - 172, - 17, - 97, - 0, - 102, - 87, - 128, - 99, - 157, - 194, - 159, - 172, - 20, - 97, - 2, - 44, - 87, - 128, - 99, - 164, - 87, - 194, - 215, - 20, - 97, - 2, - 63, - 87, - 128, - 99, - 169, - 5, - 156, - 187, - 20, - 97, - 2, - 82, - 87, - 128, - 99, - 221, - 98, - 237, - 62, - 20, - 97, - 2, - 101, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 99, - 80, - 211, - 244, - 124, - 20, - 97, - 1, - 167, - 87, - 128, - 99, - 112, - 160, - 130, - 49, - 20, - 97, - 1, - 215, - 87, - 128, - 99, - 122, - 19, - 149, - 170, - 20, - 97, - 2, - 0, - 87, - 128, - 99, - 149, - 216, - 155, - 65, - 20, - 97, - 2, - 36, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 99, - 35, - 184, - 114, - 221, - 17, - 97, - 0, - 211, - 87, - 128, - 99, - 35, - 184, - 114, - 221, - 20, - 97, - 1, - 77, - 87, - 128, - 99, - 49, - 60, - 229, - 103, - 20, - 97, - 1, - 96, - 87, - 128, - 99, - 57, - 80, - 147, - 81, - 20, - 97, - 1, - 127, - 87, - 128, - 99, - 64, - 193, - 15, - 25, - 20, - 97, - 1, - 146, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 99, - 6, - 253, - 222, - 3, - 20, - 97, - 0, - 250, - 87, - 128, - 99, - 9, - 94, - 167, - 179, - 20, - 97, - 1, - 24, - 87, - 128, - 99, - 24, - 22, - 13, - 221, - 20, - 97, - 1, - 59, - 87, - 91, - 96, - 0, - 128, - 253, - 91, - 97, - 1, - 2, - 97, - 2, - 158, - 86, - 91, - 96, - 64, - 81, - 97, - 1, - 15, - 145, - 144, - 97, - 10, - 48, - 86, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 243, - 91, - 97, - 1, - 43, - 97, - 1, - 38, - 54, - 96, - 4, - 97, - 10, - 161, - 86, - 91, - 97, - 3, - 44, - 86, - 91, - 96, - 64, - 81, - 144, - 21, - 21, - 129, - 82, - 96, - 32, - 1, - 97, - 1, - 15, - 86, - 91, - 96, - 2, - 84, - 91, - 96, - 64, - 81, - 144, - 129, - 82, - 96, - 32, - 1, - 97, - 1, - 15, - 86, - 91, - 97, - 1, - 43, - 97, - 1, - 91, - 54, - 96, - 4, - 97, - 10, - 203, - 86, - 91, - 97, - 3, - 66, - 86, - 91, - 96, - 5, - 84, - 97, - 1, - 109, - 144, - 96, - 255, - 22, - 129, - 86, - 91, - 96, - 64, - 81, - 96, - 255, - 144, - 145, - 22, - 129, - 82, - 96, - 32, - 1, - 97, - 1, - 15, - 86, - 91, - 97, - 1, - 43, - 97, - 1, - 141, - 54, - 96, - 4, - 97, - 10, - 161, - 86, - 91, - 97, - 3, - 241, - 86, - 91, - 97, - 1, - 165, - 97, - 1, - 160, - 54, - 96, - 4, - 97, - 10, - 161, - 86, - 91, - 97, - 4, - 45, - 86, - 91, - 0, - 91, - 96, - 5, - 84, - 97, - 1, - 191, - 144, - 97, - 1, - 0, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 86, - 91, - 96, - 64, - 81, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 144, - 145, - 22, - 129, - 82, - 96, - 32, - 1, - 97, - 1, - 15, - 86, - 91, - 97, - 1, - 63, - 97, - 1, - 229, - 54, - 96, - 4, - 97, - 11, - 7, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 32, - 129, - 144, - 82, - 96, - 64, - 144, - 32, - 84, - 144, - 86, - 91, - 97, - 1, - 165, - 97, - 2, - 14, - 54, - 96, - 4, - 97, - 11, - 41, - 86, - 91, - 96, - 5, - 128, - 84, - 96, - 255, - 25, - 22, - 96, - 255, - 146, - 144, - 146, - 22, - 145, - 144, - 145, - 23, - 144, - 85, - 86, - 91, - 97, - 1, - 2, - 97, - 4, - 90, - 86, - 91, - 97, - 1, - 165, - 97, - 2, - 58, - 54, - 96, - 4, - 97, - 10, - 161, - 86, - 91, - 97, - 4, - 103, - 86, - 91, - 97, - 1, - 43, - 97, - 2, - 77, - 54, - 96, - 4, - 97, - 10, - 161, - 86, - 91, - 97, - 4, - 113, - 86, - 91, - 97, - 1, - 43, - 97, - 2, - 96, - 54, - 96, - 4, - 97, - 10, - 161, - 86, - 91, - 97, - 5, - 10, - 86, - 91, - 97, - 1, - 63, - 97, - 2, - 115, - 54, - 96, - 4, - 97, - 11, - 76, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 145, - 130, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 1, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 147, - 144, - 148, - 22, - 130, - 82, - 145, - 144, - 145, - 82, - 32, - 84, - 144, - 86, - 91, - 96, - 3, - 128, - 84, - 97, - 2, - 171, - 144, - 97, - 11, - 127, - 86, - 91, - 128, - 96, - 31, - 1, - 96, - 32, - 128, - 145, - 4, - 2, - 96, - 32, - 1, - 96, - 64, - 81, - 144, - 129, - 1, - 96, - 64, - 82, - 128, - 146, - 145, - 144, - 129, - 129, - 82, - 96, - 32, - 1, - 130, - 128, - 84, - 97, - 2, - 215, - 144, - 97, - 11, - 127, - 86, - 91, - 128, - 21, - 97, - 3, - 36, - 87, - 128, - 96, - 31, - 16, - 97, - 2, - 249, - 87, - 97, - 1, - 0, - 128, - 131, - 84, - 4, - 2, - 131, - 82, - 145, - 96, - 32, - 1, - 145, - 97, - 3, - 36, - 86, - 91, - 130, - 1, - 145, - 144, - 96, - 0, - 82, - 96, - 32, - 96, - 0, - 32, - 144, - 91, - 129, - 84, - 129, - 82, - 144, - 96, - 1, - 1, - 144, - 96, - 32, - 1, - 128, - 131, - 17, - 97, - 3, - 7, - 87, - 130, - 144, - 3, - 96, - 31, - 22, - 130, - 1, - 145, - 91, - 80, - 80, - 80, - 80, - 80, - 129, - 86, - 91, - 96, - 0, - 97, - 3, - 57, - 51, - 132, - 132, - 97, - 5, - 23, - 86, - 91, - 80, - 96, - 1, - 146, - 145, - 80, - 80, - 86, - 91, - 96, - 0, - 97, - 3, - 79, - 132, - 132, - 132, - 97, - 6, - 60, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 132, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 1, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 51, - 132, - 82, - 144, - 145, - 82, - 144, - 32, - 84, - 130, - 129, - 16, - 21, - 97, - 3, - 217, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 40, - 96, - 36, - 130, - 1, - 82, - 127, - 69, - 82, - 67, - 50, - 48, - 58, - 32, - 116, - 114, - 97, - 110, - 115, - 102, - 101, - 114, - 32, - 97, - 109, - 111, - 117, - 110, - 116, - 32, - 101, - 120, - 99, - 101, - 101, - 100, - 115, - 32, - 97, - 96, - 68, - 130, - 1, - 82, - 103, - 108, - 108, - 111, - 119, - 97, - 110, - 99, - 101, - 96, - 192, - 27, - 96, - 100, - 130, - 1, - 82, - 96, - 132, - 1, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 97, - 3, - 230, - 133, - 51, - 133, - 132, - 3, - 97, - 5, - 23, - 86, - 91, - 80, - 96, - 1, - 148, - 147, - 80, - 80, - 80, - 80, - 86, - 91, - 51, - 96, - 0, - 129, - 129, - 82, - 96, - 1, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 135, - 22, - 132, - 82, - 144, - 145, - 82, - 129, - 32, - 84, - 144, - 145, - 97, - 3, - 57, - 145, - 133, - 144, - 97, - 4, - 40, - 144, - 134, - 144, - 97, - 11, - 207, - 86, - 91, - 97, - 5, - 23, - 86, - 91, - 96, - 5, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 97, - 1, - 0, - 144, - 145, - 4, - 129, - 22, - 144, - 131, - 22, - 3, - 97, - 4, - 76, - 87, - 80, - 80, - 86, - 91, - 97, - 4, - 86, - 130, - 130, - 97, - 8, - 11, - 86, - 91, - 80, - 80, - 86, - 91, - 96, - 4, - 128, - 84, - 97, - 2, - 171, - 144, - 97, - 11, - 127, - 86, - 91, - 97, - 4, - 86, - 130, - 130, - 97, - 8, - 234, - 86, - 91, - 51, - 96, - 0, - 144, - 129, - 82, - 96, - 1, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 134, - 22, - 132, - 82, - 144, - 145, - 82, - 129, - 32, - 84, - 130, - 129, - 16, - 21, - 97, - 4, - 243, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 37, - 96, - 36, - 130, - 1, - 82, - 127, - 69, - 82, - 67, - 50, - 48, - 58, - 32, - 100, - 101, - 99, - 114, - 101, - 97, - 115, - 101, - 100, - 32, - 97, - 108, - 108, - 111, - 119, - 97, - 110, - 99, - 101, - 32, - 98, - 101, - 108, - 111, - 119, - 96, - 68, - 130, - 1, - 82, - 100, - 32, - 122, - 101, - 114, - 111, - 96, - 216, - 27, - 96, - 100, - 130, - 1, - 82, - 96, - 132, - 1, - 97, - 3, - 208, - 86, - 91, - 97, - 5, - 0, - 51, - 133, - 133, - 132, - 3, - 97, - 5, - 23, - 86, - 91, - 80, - 96, - 1, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 97, - 3, - 57, - 51, - 132, - 132, - 97, - 6, - 60, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 131, - 22, - 97, - 5, - 121, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 36, - 128, - 130, - 1, - 82, - 127, - 69, - 82, - 67, - 50, - 48, - 58, - 32, - 97, - 112, - 112, - 114, - 111, - 118, - 101, - 32, - 102, - 114, - 111, - 109, - 32, - 116, - 104, - 101, - 32, - 122, - 101, - 114, - 111, - 32, - 97, - 100, - 100, - 96, - 68, - 130, - 1, - 82, - 99, - 114, - 101, - 115, - 115, - 96, - 224, - 27, - 96, - 100, - 130, - 1, - 82, - 96, - 132, - 1, - 97, - 3, - 208, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 130, - 22, - 97, - 5, - 218, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 34, - 96, - 36, - 130, - 1, - 82, - 127, - 69, - 82, - 67, - 50, - 48, - 58, - 32, - 97, - 112, - 112, - 114, - 111, - 118, - 101, - 32, - 116, - 111, - 32, - 116, - 104, - 101, - 32, - 122, - 101, - 114, - 111, - 32, - 97, - 100, - 100, - 114, - 101, - 96, - 68, - 130, - 1, - 82, - 97, - 115, - 115, - 96, - 240, - 27, - 96, - 100, - 130, - 1, - 82, - 96, - 132, - 1, - 97, - 3, - 208, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 131, - 129, - 22, - 96, - 0, - 129, - 129, - 82, - 96, - 1, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 148, - 135, - 22, - 128, - 132, - 82, - 148, - 130, - 82, - 145, - 130, - 144, - 32, - 133, - 144, - 85, - 144, - 81, - 132, - 129, - 82, - 127, - 140, - 91, - 225, - 229, - 235, - 236, - 125, - 91, - 209, - 79, - 113, - 66, - 125, - 30, - 132, - 243, - 221, - 3, - 20, - 192, - 247, - 178, - 41, - 30, - 91, - 32, - 10, - 200, - 199, - 195, - 185, - 37, - 145, - 1, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 163, - 80, - 80, - 80, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 131, - 22, - 97, - 6, - 160, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 37, - 96, - 36, - 130, - 1, - 82, - 127, - 69, - 82, - 67, - 50, - 48, - 58, - 32, - 116, - 114, - 97, - 110, - 115, - 102, - 101, - 114, - 32, - 102, - 114, - 111, - 109, - 32, - 116, - 104, - 101, - 32, - 122, - 101, - 114, - 111, - 32, - 97, - 100, - 96, - 68, - 130, - 1, - 82, - 100, - 100, - 114, - 101, - 115, - 115, - 96, - 216, - 27, - 96, - 100, - 130, - 1, - 82, - 96, - 132, - 1, - 97, - 3, - 208, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 130, - 22, - 97, - 7, - 2, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 35, - 96, - 36, - 130, - 1, - 82, - 127, - 69, - 82, - 67, - 50, - 48, - 58, - 32, - 116, - 114, - 97, - 110, - 115, - 102, - 101, - 114, - 32, - 116, - 111, - 32, - 116, - 104, - 101, - 32, - 122, - 101, - 114, - 111, - 32, - 97, - 100, - 100, - 114, - 96, - 68, - 130, - 1, - 82, - 98, - 101, - 115, - 115, - 96, - 232, - 27, - 96, - 100, - 130, - 1, - 82, - 96, - 132, - 1, - 97, - 3, - 208, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 131, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 32, - 129, - 144, - 82, - 96, - 64, - 144, - 32, - 84, - 129, - 129, - 16, - 21, - 97, - 7, - 122, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 38, - 96, - 36, - 130, - 1, - 82, - 127, - 69, - 82, - 67, - 50, - 48, - 58, - 32, - 116, - 114, - 97, - 110, - 115, - 102, - 101, - 114, - 32, - 97, - 109, - 111, - 117, - 110, - 116, - 32, - 101, - 120, - 99, - 101, - 101, - 100, - 115, - 32, - 98, - 96, - 68, - 130, - 1, - 82, - 101, - 97, - 108, - 97, - 110, - 99, - 101, - 96, - 208, - 27, - 96, - 100, - 130, - 1, - 82, - 96, - 132, - 1, - 97, - 3, - 208, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 128, - 133, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 32, - 129, - 144, - 82, - 96, - 64, - 128, - 130, - 32, - 133, - 133, - 3, - 144, - 85, - 145, - 133, - 22, - 129, - 82, - 144, - 129, - 32, - 128, - 84, - 132, - 146, - 144, - 97, - 7, - 177, - 144, - 132, - 144, - 97, - 11, - 207, - 86, - 91, - 146, - 80, - 80, - 129, - 144, - 85, - 80, - 130, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 132, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 127, - 221, - 242, - 82, - 173, - 27, - 226, - 200, - 155, - 105, - 194, - 176, - 104, - 252, - 55, - 141, - 170, - 149, - 43, - 167, - 241, - 99, - 196, - 161, - 22, - 40, - 245, - 90, - 77, - 245, - 35, - 179, - 239, - 132, - 96, - 64, - 81, - 97, - 7, - 253, - 145, - 129, - 82, - 96, - 32, - 1, - 144, - 86, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 163, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 130, - 22, - 97, - 8, - 97, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 31, - 96, - 36, - 130, - 1, - 82, - 127, - 69, - 82, - 67, - 50, - 48, - 58, - 32, - 109, - 105, - 110, - 116, - 32, - 116, - 111, - 32, - 116, - 104, - 101, - 32, - 122, - 101, - 114, - 111, - 32, - 97, - 100, - 100, - 114, - 101, - 115, - 115, - 0, - 96, - 68, - 130, - 1, - 82, - 96, - 100, - 1, - 97, - 3, - 208, - 86, - 91, - 128, - 96, - 2, - 96, - 0, - 130, - 130, - 84, - 97, - 8, - 115, - 145, - 144, - 97, - 11, - 207, - 86, - 91, - 144, - 145, - 85, - 80, - 80, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 130, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 32, - 129, - 144, - 82, - 96, - 64, - 129, - 32, - 128, - 84, - 131, - 146, - 144, - 97, - 8, - 160, - 144, - 132, - 144, - 97, - 11, - 207, - 86, - 91, - 144, - 145, - 85, - 80, - 80, - 96, - 64, - 81, - 129, - 129, - 82, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 131, - 22, - 144, - 96, - 0, - 144, - 127, - 221, - 242, - 82, - 173, - 27, - 226, - 200, - 155, - 105, - 194, - 176, - 104, - 252, - 55, - 141, - 170, - 149, - 43, - 167, - 241, - 99, - 196, - 161, - 22, - 40, - 245, - 90, - 77, - 245, - 35, - 179, - 239, - 144, - 96, - 32, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 163, - 80, - 80, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 130, - 22, - 97, - 9, - 74, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 33, - 96, - 36, - 130, - 1, - 82, - 127, - 69, - 82, - 67, - 50, - 48, - 58, - 32, - 98, - 117, - 114, - 110, - 32, - 102, - 114, - 111, - 109, - 32, - 116, - 104, - 101, - 32, - 122, - 101, - 114, - 111, - 32, - 97, - 100, - 100, - 114, - 101, - 115, - 96, - 68, - 130, - 1, - 82, - 96, - 115, - 96, - 248, - 27, - 96, - 100, - 130, - 1, - 82, - 96, - 132, - 1, - 97, - 3, - 208, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 130, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 32, - 129, - 144, - 82, - 96, - 64, - 144, - 32, - 84, - 129, - 129, - 16, - 21, - 97, - 9, - 190, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 34, - 96, - 36, - 130, - 1, - 82, - 127, - 69, - 82, - 67, - 50, - 48, - 58, - 32, - 98, - 117, - 114, - 110, - 32, - 97, - 109, - 111, - 117, - 110, - 116, - 32, - 101, - 120, - 99, - 101, - 101, - 100, - 115, - 32, - 98, - 97, - 108, - 97, - 110, - 96, - 68, - 130, - 1, - 82, - 97, - 99, - 101, - 96, - 240, - 27, - 96, - 100, - 130, - 1, - 82, - 96, - 132, - 1, - 97, - 3, - 208, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 131, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 32, - 129, - 144, - 82, - 96, - 64, - 129, - 32, - 131, - 131, - 3, - 144, - 85, - 96, - 2, - 128, - 84, - 132, - 146, - 144, - 97, - 9, - 237, - 144, - 132, - 144, - 97, - 11, - 231, - 86, - 91, - 144, - 145, - 85, - 80, - 80, - 96, - 64, - 81, - 130, - 129, - 82, - 96, - 0, - 144, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 133, - 22, - 144, - 127, - 221, - 242, - 82, - 173, - 27, - 226, - 200, - 155, - 105, - 194, - 176, - 104, - 252, - 55, - 141, - 170, - 149, - 43, - 167, - 241, - 99, - 196, - 161, - 22, - 40, - 245, - 90, - 77, - 245, - 35, - 179, - 239, - 144, - 96, - 32, - 1, - 97, - 6, - 47, - 86, - 91, - 96, - 0, - 96, - 32, - 128, - 131, - 82, - 131, - 81, - 128, - 130, - 133, - 1, - 82, - 96, - 0, - 91, - 129, - 129, - 16, - 21, - 97, - 10, - 93, - 87, - 133, - 129, - 1, - 131, - 1, - 81, - 133, - 130, - 1, - 96, - 64, - 1, - 82, - 130, - 1, - 97, - 10, - 65, - 86, - 91, - 129, - 129, - 17, - 21, - 97, - 10, - 111, - 87, - 96, - 0, - 96, - 64, - 131, - 135, - 1, - 1, - 82, - 91, - 80, - 96, - 31, - 1, - 96, - 31, - 25, - 22, - 146, - 144, - 146, - 1, - 96, - 64, - 1, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 128, - 53, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 129, - 22, - 129, - 20, - 97, - 10, - 156, - 87, - 96, - 0, - 128, - 253, - 91, - 145, - 144, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 64, - 131, - 133, - 3, - 18, - 21, - 97, - 10, - 180, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 10, - 189, - 131, - 97, - 10, - 133, - 86, - 91, - 148, - 96, - 32, - 147, - 144, - 147, - 1, - 53, - 147, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 96, - 96, - 132, - 134, - 3, - 18, - 21, - 97, - 10, - 224, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 10, - 233, - 132, - 97, - 10, - 133, - 86, - 91, - 146, - 80, - 97, - 10, - 247, - 96, - 32, - 133, - 1, - 97, - 10, - 133, - 86, - 91, - 145, - 80, - 96, - 64, - 132, - 1, - 53, - 144, - 80, - 146, - 80, - 146, - 80, - 146, - 86, - 91, - 96, - 0, - 96, - 32, - 130, - 132, - 3, - 18, - 21, - 97, - 11, - 25, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 11, - 34, - 130, - 97, - 10, - 133, - 86, - 91, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 96, - 32, - 130, - 132, - 3, - 18, - 21, - 97, - 11, - 59, - 87, - 96, - 0, - 128, - 253, - 91, - 129, - 53, - 96, - 255, - 129, - 22, - 129, - 20, - 97, - 11, - 34, - 87, - 96, - 0, - 128, - 253, - 91, - 96, - 0, - 128, - 96, - 64, - 131, - 133, - 3, - 18, - 21, - 97, - 11, - 95, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 11, - 104, - 131, - 97, - 10, - 133, - 86, - 91, - 145, - 80, - 97, - 11, - 118, - 96, - 32, - 132, - 1, - 97, - 10, - 133, - 86, - 91, - 144, - 80, - 146, - 80, - 146, - 144, - 80, - 86, - 91, - 96, - 1, - 129, - 129, - 28, - 144, - 130, - 22, - 128, - 97, - 11, - 147, - 87, - 96, - 127, - 130, - 22, - 145, - 80, - 91, - 96, - 32, - 130, - 16, - 129, - 3, - 97, - 11, - 179, - 87, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 34, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 80, - 145, - 144, - 80, - 86, - 91, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 17, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 96, - 0, - 130, - 25, - 130, - 17, - 21, - 97, - 11, - 226, - 87, - 97, - 11, - 226, - 97, - 11, - 185, - 86, - 91, - 80, - 1, - 144, - 86, - 91, - 96, - 0, - 130, - 130, - 16, - 21, - 97, - 11, - 249, - 87, - 97, - 11, - 249, - 97, - 11, - 185, - 86, - 91, - 80, - 3, - 144, - 86, - 254, - 162, - 100, - 105, - 112, - 102, - 115, - 88, - 34, - 18, - 32, - 166, - 44, - 153, - 42, - 224, - 36, - 116, - 191, - 120, - 218, - 156, - 103, - 148, - 20, - 85, - 38, - 51, - 187, - 136, - 5, - 167, - 211, - 232, - 254, - 190, - 112, - 225, - 133, - 128, - 8, - 123, - 109, - 100, - 115, - 111, - 108, - 99, - 67, - 0, - 8, - 13, - 0, - 51, - ]; - ///The bytecode of the contract. - pub static ECHIDNAERC20_BYTECODE: ::ethers::core::types::Bytes = - ::ethers::core::types::Bytes::from_static(__BYTECODE); - #[rustfmt::skip] - const __DEPLOYED_BYTECODE: &[u8] = &[ - 96, - 128, - 96, - 64, - 82, - 52, - 128, - 21, - 97, - 0, - 16, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 96, - 4, - 54, - 16, - 97, - 0, - 245, - 87, - 96, - 0, - 53, - 96, - 224, - 28, - 128, - 99, - 80, - 211, - 244, - 124, - 17, - 97, - 0, - 151, - 87, - 128, - 99, - 157, - 194, - 159, - 172, - 17, - 97, - 0, - 102, - 87, - 128, - 99, - 157, - 194, - 159, - 172, - 20, - 97, - 2, - 44, - 87, - 128, - 99, - 164, - 87, - 194, - 215, - 20, - 97, - 2, - 63, - 87, - 128, - 99, - 169, - 5, - 156, - 187, - 20, - 97, - 2, - 82, - 87, - 128, - 99, - 221, - 98, - 237, - 62, - 20, - 97, - 2, - 101, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 99, - 80, - 211, - 244, - 124, - 20, - 97, - 1, - 167, - 87, - 128, - 99, - 112, - 160, - 130, - 49, - 20, - 97, - 1, - 215, - 87, - 128, - 99, - 122, - 19, - 149, - 170, - 20, - 97, - 2, - 0, - 87, - 128, - 99, - 149, - 216, - 155, - 65, - 20, - 97, - 2, - 36, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 99, - 35, - 184, - 114, - 221, - 17, - 97, - 0, - 211, - 87, - 128, - 99, - 35, - 184, - 114, - 221, - 20, - 97, - 1, - 77, - 87, - 128, - 99, - 49, - 60, - 229, - 103, - 20, - 97, - 1, - 96, - 87, - 128, - 99, - 57, - 80, - 147, - 81, - 20, - 97, - 1, - 127, - 87, - 128, - 99, - 64, - 193, - 15, - 25, - 20, - 97, - 1, - 146, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 99, - 6, - 253, - 222, - 3, - 20, - 97, - 0, - 250, - 87, - 128, - 99, - 9, - 94, - 167, - 179, - 20, - 97, - 1, - 24, - 87, - 128, - 99, - 24, - 22, - 13, - 221, - 20, - 97, - 1, - 59, - 87, - 91, - 96, - 0, - 128, - 253, - 91, - 97, - 1, - 2, - 97, - 2, - 158, - 86, - 91, - 96, - 64, - 81, - 97, - 1, - 15, - 145, - 144, - 97, - 10, - 48, - 86, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 243, - 91, - 97, - 1, - 43, - 97, - 1, - 38, - 54, - 96, - 4, - 97, - 10, - 161, - 86, - 91, - 97, - 3, - 44, - 86, - 91, - 96, - 64, - 81, - 144, - 21, - 21, - 129, - 82, - 96, - 32, - 1, - 97, - 1, - 15, - 86, - 91, - 96, - 2, - 84, - 91, - 96, - 64, - 81, - 144, - 129, - 82, - 96, - 32, - 1, - 97, - 1, - 15, - 86, - 91, - 97, - 1, - 43, - 97, - 1, - 91, - 54, - 96, - 4, - 97, - 10, - 203, - 86, - 91, - 97, - 3, - 66, - 86, - 91, - 96, - 5, - 84, - 97, - 1, - 109, - 144, - 96, - 255, - 22, - 129, - 86, - 91, - 96, - 64, - 81, - 96, - 255, - 144, - 145, - 22, - 129, - 82, - 96, - 32, - 1, - 97, - 1, - 15, - 86, - 91, - 97, - 1, - 43, - 97, - 1, - 141, - 54, - 96, - 4, - 97, - 10, - 161, - 86, - 91, - 97, - 3, - 241, - 86, - 91, - 97, - 1, - 165, - 97, - 1, - 160, - 54, - 96, - 4, - 97, - 10, - 161, - 86, - 91, - 97, - 4, - 45, - 86, - 91, - 0, - 91, - 96, - 5, - 84, - 97, - 1, - 191, - 144, - 97, - 1, - 0, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 86, - 91, - 96, - 64, - 81, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 144, - 145, - 22, - 129, - 82, - 96, - 32, - 1, - 97, - 1, - 15, - 86, - 91, - 97, - 1, - 63, - 97, - 1, - 229, - 54, - 96, - 4, - 97, - 11, - 7, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 32, - 129, - 144, - 82, - 96, - 64, - 144, - 32, - 84, - 144, - 86, - 91, - 97, - 1, - 165, - 97, - 2, - 14, - 54, - 96, - 4, - 97, - 11, - 41, - 86, - 91, - 96, - 5, - 128, - 84, - 96, - 255, - 25, - 22, - 96, - 255, - 146, - 144, - 146, - 22, - 145, - 144, - 145, - 23, - 144, - 85, - 86, - 91, - 97, - 1, - 2, - 97, - 4, - 90, - 86, - 91, - 97, - 1, - 165, - 97, - 2, - 58, - 54, - 96, - 4, - 97, - 10, - 161, - 86, - 91, - 97, - 4, - 103, - 86, - 91, - 97, - 1, - 43, - 97, - 2, - 77, - 54, - 96, - 4, - 97, - 10, - 161, - 86, - 91, - 97, - 4, - 113, - 86, - 91, - 97, - 1, - 43, - 97, - 2, - 96, - 54, - 96, - 4, - 97, - 10, - 161, - 86, - 91, - 97, - 5, - 10, - 86, - 91, - 97, - 1, - 63, - 97, - 2, - 115, - 54, - 96, - 4, - 97, - 11, - 76, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 145, - 130, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 1, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 147, - 144, - 148, - 22, - 130, - 82, - 145, - 144, - 145, - 82, - 32, - 84, - 144, - 86, - 91, - 96, - 3, - 128, - 84, - 97, - 2, - 171, - 144, - 97, - 11, - 127, - 86, - 91, - 128, - 96, - 31, - 1, - 96, - 32, - 128, - 145, - 4, - 2, - 96, - 32, - 1, - 96, - 64, - 81, - 144, - 129, - 1, - 96, - 64, - 82, - 128, - 146, - 145, - 144, - 129, - 129, - 82, - 96, - 32, - 1, - 130, - 128, - 84, - 97, - 2, - 215, - 144, - 97, - 11, - 127, - 86, - 91, - 128, - 21, - 97, - 3, - 36, - 87, - 128, - 96, - 31, - 16, - 97, - 2, - 249, - 87, - 97, - 1, - 0, - 128, - 131, - 84, - 4, - 2, - 131, - 82, - 145, - 96, - 32, - 1, - 145, - 97, - 3, - 36, - 86, - 91, - 130, - 1, - 145, - 144, - 96, - 0, - 82, - 96, - 32, - 96, - 0, - 32, - 144, - 91, - 129, - 84, - 129, - 82, - 144, - 96, - 1, - 1, - 144, - 96, - 32, - 1, - 128, - 131, - 17, - 97, - 3, - 7, - 87, - 130, - 144, - 3, - 96, - 31, - 22, - 130, - 1, - 145, - 91, - 80, - 80, - 80, - 80, - 80, - 129, - 86, - 91, - 96, - 0, - 97, - 3, - 57, - 51, - 132, - 132, - 97, - 5, - 23, - 86, - 91, - 80, - 96, - 1, - 146, - 145, - 80, - 80, - 86, - 91, - 96, - 0, - 97, - 3, - 79, - 132, - 132, - 132, - 97, - 6, - 60, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 132, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 1, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 51, - 132, - 82, - 144, - 145, - 82, - 144, - 32, - 84, - 130, - 129, - 16, - 21, - 97, - 3, - 217, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 40, - 96, - 36, - 130, - 1, - 82, - 127, - 69, - 82, - 67, - 50, - 48, - 58, - 32, - 116, - 114, - 97, - 110, - 115, - 102, - 101, - 114, - 32, - 97, - 109, - 111, - 117, - 110, - 116, - 32, - 101, - 120, - 99, - 101, - 101, - 100, - 115, - 32, - 97, - 96, - 68, - 130, - 1, - 82, - 103, - 108, - 108, - 111, - 119, - 97, - 110, - 99, - 101, - 96, - 192, - 27, - 96, - 100, - 130, - 1, - 82, - 96, - 132, - 1, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 97, - 3, - 230, - 133, - 51, - 133, - 132, - 3, - 97, - 5, - 23, - 86, - 91, - 80, - 96, - 1, - 148, - 147, - 80, - 80, - 80, - 80, - 86, - 91, - 51, - 96, - 0, - 129, - 129, - 82, - 96, - 1, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 135, - 22, - 132, - 82, - 144, - 145, - 82, - 129, - 32, - 84, - 144, - 145, - 97, - 3, - 57, - 145, - 133, - 144, - 97, - 4, - 40, - 144, - 134, - 144, - 97, - 11, - 207, - 86, - 91, - 97, - 5, - 23, - 86, - 91, - 96, - 5, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 97, - 1, - 0, - 144, - 145, - 4, - 129, - 22, - 144, - 131, - 22, - 3, - 97, - 4, - 76, - 87, - 80, - 80, - 86, - 91, - 97, - 4, - 86, - 130, - 130, - 97, - 8, - 11, - 86, - 91, - 80, - 80, - 86, - 91, - 96, - 4, - 128, - 84, - 97, - 2, - 171, - 144, - 97, - 11, - 127, - 86, - 91, - 97, - 4, - 86, - 130, - 130, - 97, - 8, - 234, - 86, - 91, - 51, - 96, - 0, - 144, - 129, - 82, - 96, - 1, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 134, - 22, - 132, - 82, - 144, - 145, - 82, - 129, - 32, - 84, - 130, - 129, - 16, - 21, - 97, - 4, - 243, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 37, - 96, - 36, - 130, - 1, - 82, - 127, - 69, - 82, - 67, - 50, - 48, - 58, - 32, - 100, - 101, - 99, - 114, - 101, - 97, - 115, - 101, - 100, - 32, - 97, - 108, - 108, - 111, - 119, - 97, - 110, - 99, - 101, - 32, - 98, - 101, - 108, - 111, - 119, - 96, - 68, - 130, - 1, - 82, - 100, - 32, - 122, - 101, - 114, - 111, - 96, - 216, - 27, - 96, - 100, - 130, - 1, - 82, - 96, - 132, - 1, - 97, - 3, - 208, - 86, - 91, - 97, - 5, - 0, - 51, - 133, - 133, - 132, - 3, - 97, - 5, - 23, - 86, - 91, - 80, - 96, - 1, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 97, - 3, - 57, - 51, - 132, - 132, - 97, - 6, - 60, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 131, - 22, - 97, - 5, - 121, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 36, - 128, - 130, - 1, - 82, - 127, - 69, - 82, - 67, - 50, - 48, - 58, - 32, - 97, - 112, - 112, - 114, - 111, - 118, - 101, - 32, - 102, - 114, - 111, - 109, - 32, - 116, - 104, - 101, - 32, - 122, - 101, - 114, - 111, - 32, - 97, - 100, - 100, - 96, - 68, - 130, - 1, - 82, - 99, - 114, - 101, - 115, - 115, - 96, - 224, - 27, - 96, - 100, - 130, - 1, - 82, - 96, - 132, - 1, - 97, - 3, - 208, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 130, - 22, - 97, - 5, - 218, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 34, - 96, - 36, - 130, - 1, - 82, - 127, - 69, - 82, - 67, - 50, - 48, - 58, - 32, - 97, - 112, - 112, - 114, - 111, - 118, - 101, - 32, - 116, - 111, - 32, - 116, - 104, - 101, - 32, - 122, - 101, - 114, - 111, - 32, - 97, - 100, - 100, - 114, - 101, - 96, - 68, - 130, - 1, - 82, - 97, - 115, - 115, - 96, - 240, - 27, - 96, - 100, - 130, - 1, - 82, - 96, - 132, - 1, - 97, - 3, - 208, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 131, - 129, - 22, - 96, - 0, - 129, - 129, - 82, - 96, - 1, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 148, - 135, - 22, - 128, - 132, - 82, - 148, - 130, - 82, - 145, - 130, - 144, - 32, - 133, - 144, - 85, - 144, - 81, - 132, - 129, - 82, - 127, - 140, - 91, - 225, - 229, - 235, - 236, - 125, - 91, - 209, - 79, - 113, - 66, - 125, - 30, - 132, - 243, - 221, - 3, - 20, - 192, - 247, - 178, - 41, - 30, - 91, - 32, - 10, - 200, - 199, - 195, - 185, - 37, - 145, - 1, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 163, - 80, - 80, - 80, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 131, - 22, - 97, - 6, - 160, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 37, - 96, - 36, - 130, - 1, - 82, - 127, - 69, - 82, - 67, - 50, - 48, - 58, - 32, - 116, - 114, - 97, - 110, - 115, - 102, - 101, - 114, - 32, - 102, - 114, - 111, - 109, - 32, - 116, - 104, - 101, - 32, - 122, - 101, - 114, - 111, - 32, - 97, - 100, - 96, - 68, - 130, - 1, - 82, - 100, - 100, - 114, - 101, - 115, - 115, - 96, - 216, - 27, - 96, - 100, - 130, - 1, - 82, - 96, - 132, - 1, - 97, - 3, - 208, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 130, - 22, - 97, - 7, - 2, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 35, - 96, - 36, - 130, - 1, - 82, - 127, - 69, - 82, - 67, - 50, - 48, - 58, - 32, - 116, - 114, - 97, - 110, - 115, - 102, - 101, - 114, - 32, - 116, - 111, - 32, - 116, - 104, - 101, - 32, - 122, - 101, - 114, - 111, - 32, - 97, - 100, - 100, - 114, - 96, - 68, - 130, - 1, - 82, - 98, - 101, - 115, - 115, - 96, - 232, - 27, - 96, - 100, - 130, - 1, - 82, - 96, - 132, - 1, - 97, - 3, - 208, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 131, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 32, - 129, - 144, - 82, - 96, - 64, - 144, - 32, - 84, - 129, - 129, - 16, - 21, - 97, - 7, - 122, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 38, - 96, - 36, - 130, - 1, - 82, - 127, - 69, - 82, - 67, - 50, - 48, - 58, - 32, - 116, - 114, - 97, - 110, - 115, - 102, - 101, - 114, - 32, - 97, - 109, - 111, - 117, - 110, - 116, - 32, - 101, - 120, - 99, - 101, - 101, - 100, - 115, - 32, - 98, - 96, - 68, - 130, - 1, - 82, - 101, - 97, - 108, - 97, - 110, - 99, - 101, - 96, - 208, - 27, - 96, - 100, - 130, - 1, - 82, - 96, - 132, - 1, - 97, - 3, - 208, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 128, - 133, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 32, - 129, - 144, - 82, - 96, - 64, - 128, - 130, - 32, - 133, - 133, - 3, - 144, - 85, - 145, - 133, - 22, - 129, - 82, - 144, - 129, - 32, - 128, - 84, - 132, - 146, - 144, - 97, - 7, - 177, - 144, - 132, - 144, - 97, - 11, - 207, - 86, - 91, - 146, - 80, - 80, - 129, - 144, - 85, - 80, - 130, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 132, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 127, - 221, - 242, - 82, - 173, - 27, - 226, - 200, - 155, - 105, - 194, - 176, - 104, - 252, - 55, - 141, - 170, - 149, - 43, - 167, - 241, - 99, - 196, - 161, - 22, - 40, - 245, - 90, - 77, - 245, - 35, - 179, - 239, - 132, - 96, - 64, - 81, - 97, - 7, - 253, - 145, - 129, - 82, - 96, - 32, - 1, - 144, - 86, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 163, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 130, - 22, - 97, - 8, - 97, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 31, - 96, - 36, - 130, - 1, - 82, - 127, - 69, - 82, - 67, - 50, - 48, - 58, - 32, - 109, - 105, - 110, - 116, - 32, - 116, - 111, - 32, - 116, - 104, - 101, - 32, - 122, - 101, - 114, - 111, - 32, - 97, - 100, - 100, - 114, - 101, - 115, - 115, - 0, - 96, - 68, - 130, - 1, - 82, - 96, - 100, - 1, - 97, - 3, - 208, - 86, - 91, - 128, - 96, - 2, - 96, - 0, - 130, - 130, - 84, - 97, - 8, - 115, - 145, - 144, - 97, - 11, - 207, - 86, - 91, - 144, - 145, - 85, - 80, - 80, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 130, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 32, - 129, - 144, - 82, - 96, - 64, - 129, - 32, - 128, - 84, - 131, - 146, - 144, - 97, - 8, - 160, - 144, - 132, - 144, - 97, - 11, - 207, - 86, - 91, - 144, - 145, - 85, - 80, - 80, - 96, - 64, - 81, - 129, - 129, - 82, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 131, - 22, - 144, - 96, - 0, - 144, - 127, - 221, - 242, - 82, - 173, - 27, - 226, - 200, - 155, - 105, - 194, - 176, - 104, - 252, - 55, - 141, - 170, - 149, - 43, - 167, - 241, - 99, - 196, - 161, - 22, - 40, - 245, - 90, - 77, - 245, - 35, - 179, - 239, - 144, - 96, - 32, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 163, - 80, - 80, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 130, - 22, - 97, - 9, - 74, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 33, - 96, - 36, - 130, - 1, - 82, - 127, - 69, - 82, - 67, - 50, - 48, - 58, - 32, - 98, - 117, - 114, - 110, - 32, - 102, - 114, - 111, - 109, - 32, - 116, - 104, - 101, - 32, - 122, - 101, - 114, - 111, - 32, - 97, - 100, - 100, - 114, - 101, - 115, - 96, - 68, - 130, - 1, - 82, - 96, - 115, - 96, - 248, - 27, - 96, - 100, - 130, - 1, - 82, - 96, - 132, - 1, - 97, - 3, - 208, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 130, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 32, - 129, - 144, - 82, - 96, - 64, - 144, - 32, - 84, - 129, - 129, - 16, - 21, - 97, - 9, - 190, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 34, - 96, - 36, - 130, - 1, - 82, - 127, - 69, - 82, - 67, - 50, - 48, - 58, - 32, - 98, - 117, - 114, - 110, - 32, - 97, - 109, - 111, - 117, - 110, - 116, - 32, - 101, - 120, - 99, - 101, - 101, - 100, - 115, - 32, - 98, - 97, - 108, - 97, - 110, - 96, - 68, - 130, - 1, - 82, - 97, - 99, - 101, - 96, - 240, - 27, - 96, - 100, - 130, - 1, - 82, - 96, - 132, - 1, - 97, - 3, - 208, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 131, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 32, - 129, - 144, - 82, - 96, - 64, - 129, - 32, - 131, - 131, - 3, - 144, - 85, - 96, - 2, - 128, - 84, - 132, - 146, - 144, - 97, - 9, - 237, - 144, - 132, - 144, - 97, - 11, - 231, - 86, - 91, - 144, - 145, - 85, - 80, - 80, - 96, - 64, - 81, - 130, - 129, - 82, - 96, - 0, - 144, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 133, - 22, - 144, - 127, - 221, - 242, - 82, - 173, - 27, - 226, - 200, - 155, - 105, - 194, - 176, - 104, - 252, - 55, - 141, - 170, - 149, - 43, - 167, - 241, - 99, - 196, - 161, - 22, - 40, - 245, - 90, - 77, - 245, - 35, - 179, - 239, - 144, - 96, - 32, - 1, - 97, - 6, - 47, - 86, - 91, - 96, - 0, - 96, - 32, - 128, - 131, - 82, - 131, - 81, - 128, - 130, - 133, - 1, - 82, - 96, - 0, - 91, - 129, - 129, - 16, - 21, - 97, - 10, - 93, - 87, - 133, - 129, - 1, - 131, - 1, - 81, - 133, - 130, - 1, - 96, - 64, - 1, - 82, - 130, - 1, - 97, - 10, - 65, - 86, - 91, - 129, - 129, - 17, - 21, - 97, - 10, - 111, - 87, - 96, - 0, - 96, - 64, - 131, - 135, - 1, - 1, - 82, - 91, - 80, - 96, - 31, - 1, - 96, - 31, - 25, - 22, - 146, - 144, - 146, - 1, - 96, - 64, - 1, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 128, - 53, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 129, - 22, - 129, - 20, - 97, - 10, - 156, - 87, - 96, - 0, - 128, - 253, - 91, - 145, - 144, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 64, - 131, - 133, - 3, - 18, - 21, - 97, - 10, - 180, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 10, - 189, - 131, - 97, - 10, - 133, - 86, - 91, - 148, - 96, - 32, - 147, - 144, - 147, - 1, - 53, - 147, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 96, - 96, - 132, - 134, - 3, - 18, - 21, - 97, - 10, - 224, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 10, - 233, - 132, - 97, - 10, - 133, - 86, - 91, - 146, - 80, - 97, - 10, - 247, - 96, - 32, - 133, - 1, - 97, - 10, - 133, - 86, - 91, - 145, - 80, - 96, - 64, - 132, - 1, - 53, - 144, - 80, - 146, - 80, - 146, - 80, - 146, - 86, - 91, - 96, - 0, - 96, - 32, - 130, - 132, - 3, - 18, - 21, - 97, - 11, - 25, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 11, - 34, - 130, - 97, - 10, - 133, - 86, - 91, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 96, - 32, - 130, - 132, - 3, - 18, - 21, - 97, - 11, - 59, - 87, - 96, - 0, - 128, - 253, - 91, - 129, - 53, - 96, - 255, - 129, - 22, - 129, - 20, - 97, - 11, - 34, - 87, - 96, - 0, - 128, - 253, - 91, - 96, - 0, - 128, - 96, - 64, - 131, - 133, - 3, - 18, - 21, - 97, - 11, - 95, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 11, - 104, - 131, - 97, - 10, - 133, - 86, - 91, - 145, - 80, - 97, - 11, - 118, - 96, - 32, - 132, - 1, - 97, - 10, - 133, - 86, - 91, - 144, - 80, - 146, - 80, - 146, - 144, - 80, - 86, - 91, - 96, - 1, - 129, - 129, - 28, - 144, - 130, - 22, - 128, - 97, - 11, - 147, - 87, - 96, - 127, - 130, - 22, - 145, - 80, - 91, - 96, - 32, - 130, - 16, - 129, - 3, - 97, - 11, - 179, - 87, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 34, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 80, - 145, - 144, - 80, - 86, - 91, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 17, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 96, - 0, - 130, - 25, - 130, - 17, - 21, - 97, - 11, - 226, - 87, - 97, - 11, - 226, - 97, - 11, - 185, - 86, - 91, - 80, - 1, - 144, - 86, - 91, - 96, - 0, - 130, - 130, - 16, - 21, - 97, - 11, - 249, - 87, - 97, - 11, - 249, - 97, - 11, - 185, - 86, - 91, - 80, - 3, - 144, - 86, - 254, - 162, - 100, - 105, - 112, - 102, - 115, - 88, - 34, - 18, - 32, - 166, - 44, - 153, - 42, - 224, - 36, - 116, - 191, - 120, - 218, - 156, - 103, - 148, - 20, - 85, - 38, - 51, - 187, - 136, - 5, - 167, - 211, - 232, - 254, - 190, - 112, - 225, - 133, - 128, - 8, - 123, - 109, - 100, - 115, - 111, - 108, - 99, - 67, - 0, - 8, - 13, - 0, - 51, - ]; - ///The deployed bytecode of the contract. - pub static ECHIDNAERC20_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = - ::ethers::core::types::Bytes::from_static(__DEPLOYED_BYTECODE); - pub struct EchidnaERC20(::ethers::contract::Contract); - impl ::core::clone::Clone for EchidnaERC20 { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for EchidnaERC20 { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for EchidnaERC20 { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for EchidnaERC20 { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(stringify!(EchidnaERC20)) - .field(&self.address()) - .finish() - } - } - impl EchidnaERC20 { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self(::ethers::contract::Contract::new( - address.into(), - ECHIDNAERC20_ABI.clone(), - client, - )) - } - /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. - /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction - /// - /// Notes: - /// - If there are no constructor arguments, you should pass `()` as the argument. - /// - The default poll duration is 7 seconds. - /// - The default number of confirmations is 1 block. - /// - /// - /// # Example - /// - /// Generate contract bindings with `abigen!` and deploy a new contract instance. - /// - /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. - /// - /// ```ignore - /// # async fn deploy(client: ::std::sync::Arc) { - /// abigen!(Greeter, "../greeter.json"); - /// - /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); - /// let msg = greeter_contract.greet().call().await.unwrap(); - /// # } - /// ``` - pub fn deploy( - client: ::std::sync::Arc, - constructor_args: T, - ) -> ::core::result::Result< - ::ethers::contract::builders::ContractDeployer, - ::ethers::contract::ContractError, - > { - let factory = ::ethers::contract::ContractFactory::new( - ECHIDNAERC20_ABI.clone(), - ECHIDNAERC20_BYTECODE.clone().into(), - client, - ); - let deployer = factory.deploy(constructor_args)?; - let deployer = ::ethers::contract::ContractDeployer::new(deployer); - Ok(deployer) - } - ///Calls the contract's `Portfolio` (0x50d3f47c) function - pub fn portfolio( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([80, 211, 244, 124], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `allowance` (0xdd62ed3e) function - pub fn allowance( - &self, - owner: ::ethers::core::types::Address, - spender: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([221, 98, 237, 62], (owner, spender)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `approve` (0x095ea7b3) function - pub fn approve( - &self, - spender: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([9, 94, 167, 179], (spender, amount)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `balanceOf` (0x70a08231) function - pub fn balance_of( - &self, - account: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([112, 160, 130, 49], account) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `burn` (0x9dc29fac) function - pub fn burn( - &self, - to: ::ethers::core::types::Address, - wad: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([157, 194, 159, 172], (to, wad)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `decimals` (0x313ce567) function - pub fn decimals(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([49, 60, 229, 103], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `decreaseAllowance` (0xa457c2d7) function - pub fn decrease_allowance( - &self, - spender: ::ethers::core::types::Address, - subtracted_value: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([164, 87, 194, 215], (spender, subtracted_value)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `increaseAllowance` (0x39509351) function - pub fn increase_allowance( - &self, - spender: ::ethers::core::types::Address, - added_value: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([57, 80, 147, 81], (spender, added_value)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `mint` (0x40c10f19) function - pub fn mint( - &self, - to: ::ethers::core::types::Address, - wad: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([64, 193, 15, 25], (to, wad)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `name` (0x06fdde03) function - pub fn name(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([6, 253, 222, 3], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `setDecimals` (0x7a1395aa) function - pub fn set_decimals( - &self, - decimals: u8, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([122, 19, 149, 170], decimals) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `symbol` (0x95d89b41) function - pub fn symbol( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([149, 216, 155, 65], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `totalSupply` (0x18160ddd) function - pub fn total_supply( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([24, 22, 13, 221], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `transfer` (0xa9059cbb) function - pub fn transfer( - &self, - recipient: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([169, 5, 156, 187], (recipient, amount)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `transferFrom` (0x23b872dd) function - pub fn transfer_from( - &self, - sender: ::ethers::core::types::Address, - recipient: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([35, 184, 114, 221], (sender, recipient, amount)) - .expect("method not found (this should never happen)") - } - ///Gets the contract's `Approval` event - pub fn approval_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, ApprovalFilter> { - self.0.event() - } - ///Gets the contract's `Transfer` event - pub fn transfer_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, TransferFilter> { - self.0.event() - } - /// Returns an `Event` builder for all the events of this contract. - pub fn events( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, EchidnaERC20Events> - { - self.0 - .event_with_filter(::core::default::Default::default()) - } - } - impl From<::ethers::contract::Contract> for EchidnaERC20 { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent(name = "Approval", abi = "Approval(address,address,uint256)")] - pub struct ApprovalFilter { - #[ethevent(indexed)] - pub owner: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub spender: ::ethers::core::types::Address, - pub value: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent(name = "Transfer", abi = "Transfer(address,address,uint256)")] - pub struct TransferFilter { - #[ethevent(indexed)] - pub from: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub to: ::ethers::core::types::Address, - pub value: ::ethers::core::types::U256, - } - ///Container type for all of the contract's events - #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] - pub enum EchidnaERC20Events { - ApprovalFilter(ApprovalFilter), - TransferFilter(TransferFilter), - } - impl ::ethers::contract::EthLogDecode for EchidnaERC20Events { - fn decode_log( - log: &::ethers::core::abi::RawLog, - ) -> ::core::result::Result { - if let Ok(decoded) = ApprovalFilter::decode_log(log) { - return Ok(EchidnaERC20Events::ApprovalFilter(decoded)); - } - if let Ok(decoded) = TransferFilter::decode_log(log) { - return Ok(EchidnaERC20Events::TransferFilter(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData) - } - } - impl ::core::fmt::Display for EchidnaERC20Events { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::ApprovalFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::TransferFilter(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for EchidnaERC20Events { - fn from(value: ApprovalFilter) -> Self { - Self::ApprovalFilter(value) - } - } - impl ::core::convert::From for EchidnaERC20Events { - fn from(value: TransferFilter) -> Self { - Self::TransferFilter(value) - } - } - ///Container type for all input parameters for the `Portfolio` function with signature `Portfolio()` and selector `0x50d3f47c` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "Portfolio", abi = "Portfolio()")] - pub struct PortfolioCall; - ///Container type for all input parameters for the `allowance` function with signature `allowance(address,address)` and selector `0xdd62ed3e` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "allowance", abi = "allowance(address,address)")] - pub struct AllowanceCall { - pub owner: ::ethers::core::types::Address, - pub spender: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "approve", abi = "approve(address,uint256)")] - pub struct ApproveCall { - pub spender: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "balanceOf", abi = "balanceOf(address)")] - pub struct BalanceOfCall { - pub account: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `burn` function with signature `burn(address,uint256)` and selector `0x9dc29fac` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "burn", abi = "burn(address,uint256)")] - pub struct BurnCall { - pub to: ::ethers::core::types::Address, - pub wad: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `decimals` function with signature `decimals()` and selector `0x313ce567` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "decimals", abi = "decimals()")] - pub struct DecimalsCall; - ///Container type for all input parameters for the `decreaseAllowance` function with signature `decreaseAllowance(address,uint256)` and selector `0xa457c2d7` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "decreaseAllowance", abi = "decreaseAllowance(address,uint256)")] - pub struct DecreaseAllowanceCall { - pub spender: ::ethers::core::types::Address, - pub subtracted_value: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `increaseAllowance` function with signature `increaseAllowance(address,uint256)` and selector `0x39509351` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "increaseAllowance", abi = "increaseAllowance(address,uint256)")] - pub struct IncreaseAllowanceCall { - pub spender: ::ethers::core::types::Address, - pub added_value: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `mint` function with signature `mint(address,uint256)` and selector `0x40c10f19` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "mint", abi = "mint(address,uint256)")] - pub struct MintCall { - pub to: ::ethers::core::types::Address, - pub wad: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `name` function with signature `name()` and selector `0x06fdde03` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "name", abi = "name()")] - pub struct NameCall; - ///Container type for all input parameters for the `setDecimals` function with signature `setDecimals(uint8)` and selector `0x7a1395aa` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "setDecimals", abi = "setDecimals(uint8)")] - pub struct SetDecimalsCall { - pub decimals: u8, - } - ///Container type for all input parameters for the `symbol` function with signature `symbol()` and selector `0x95d89b41` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "symbol", abi = "symbol()")] - pub struct SymbolCall; - ///Container type for all input parameters for the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "totalSupply", abi = "totalSupply()")] - pub struct TotalSupplyCall; - ///Container type for all input parameters for the `transfer` function with signature `transfer(address,uint256)` and selector `0xa9059cbb` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "transfer", abi = "transfer(address,uint256)")] - pub struct TransferCall { - pub recipient: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "transferFrom", abi = "transferFrom(address,address,uint256)")] - pub struct TransferFromCall { - pub sender: ::ethers::core::types::Address, - pub recipient: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - ///Container type for all of the contract's call - #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] - pub enum EchidnaERC20Calls { - Portfolio(PortfolioCall), - Allowance(AllowanceCall), - Approve(ApproveCall), - BalanceOf(BalanceOfCall), - Burn(BurnCall), - Decimals(DecimalsCall), - DecreaseAllowance(DecreaseAllowanceCall), - IncreaseAllowance(IncreaseAllowanceCall), - Mint(MintCall), - Name(NameCall), - SetDecimals(SetDecimalsCall), - Symbol(SymbolCall), - TotalSupply(TotalSupplyCall), - Transfer(TransferCall), - TransferFrom(TransferFromCall), - } - impl ::ethers::core::abi::AbiDecode for EchidnaERC20Calls { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Portfolio(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Allowance(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Approve(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::BalanceOf(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Burn(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Decimals(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::DecreaseAllowance(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::IncreaseAllowance(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Mint(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Name(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::SetDecimals(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Symbol(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::TotalSupply(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Transfer(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::TransferFrom(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for EchidnaERC20Calls { - fn encode(self) -> Vec { - match self { - Self::Portfolio(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Allowance(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Approve(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::BalanceOf(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Burn(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Decimals(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::DecreaseAllowance(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::IncreaseAllowance(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Mint(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Name(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::SetDecimals(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Symbol(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::TotalSupply(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Transfer(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::TransferFrom(element) => ::ethers::core::abi::AbiEncode::encode(element), - } - } - } - impl ::core::fmt::Display for EchidnaERC20Calls { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::Portfolio(element) => ::core::fmt::Display::fmt(element, f), - Self::Allowance(element) => ::core::fmt::Display::fmt(element, f), - Self::Approve(element) => ::core::fmt::Display::fmt(element, f), - Self::BalanceOf(element) => ::core::fmt::Display::fmt(element, f), - Self::Burn(element) => ::core::fmt::Display::fmt(element, f), - Self::Decimals(element) => ::core::fmt::Display::fmt(element, f), - Self::DecreaseAllowance(element) => ::core::fmt::Display::fmt(element, f), - Self::IncreaseAllowance(element) => ::core::fmt::Display::fmt(element, f), - Self::Mint(element) => ::core::fmt::Display::fmt(element, f), - Self::Name(element) => ::core::fmt::Display::fmt(element, f), - Self::SetDecimals(element) => ::core::fmt::Display::fmt(element, f), - Self::Symbol(element) => ::core::fmt::Display::fmt(element, f), - Self::TotalSupply(element) => ::core::fmt::Display::fmt(element, f), - Self::Transfer(element) => ::core::fmt::Display::fmt(element, f), - Self::TransferFrom(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for EchidnaERC20Calls { - fn from(value: PortfolioCall) -> Self { - Self::Portfolio(value) - } - } - impl ::core::convert::From for EchidnaERC20Calls { - fn from(value: AllowanceCall) -> Self { - Self::Allowance(value) - } - } - impl ::core::convert::From for EchidnaERC20Calls { - fn from(value: ApproveCall) -> Self { - Self::Approve(value) - } - } - impl ::core::convert::From for EchidnaERC20Calls { - fn from(value: BalanceOfCall) -> Self { - Self::BalanceOf(value) - } - } - impl ::core::convert::From for EchidnaERC20Calls { - fn from(value: BurnCall) -> Self { - Self::Burn(value) - } - } - impl ::core::convert::From for EchidnaERC20Calls { - fn from(value: DecimalsCall) -> Self { - Self::Decimals(value) - } - } - impl ::core::convert::From for EchidnaERC20Calls { - fn from(value: DecreaseAllowanceCall) -> Self { - Self::DecreaseAllowance(value) - } - } - impl ::core::convert::From for EchidnaERC20Calls { - fn from(value: IncreaseAllowanceCall) -> Self { - Self::IncreaseAllowance(value) - } - } - impl ::core::convert::From for EchidnaERC20Calls { - fn from(value: MintCall) -> Self { - Self::Mint(value) - } - } - impl ::core::convert::From for EchidnaERC20Calls { - fn from(value: NameCall) -> Self { - Self::Name(value) - } - } - impl ::core::convert::From for EchidnaERC20Calls { - fn from(value: SetDecimalsCall) -> Self { - Self::SetDecimals(value) - } - } - impl ::core::convert::From for EchidnaERC20Calls { - fn from(value: SymbolCall) -> Self { - Self::Symbol(value) - } - } - impl ::core::convert::From for EchidnaERC20Calls { - fn from(value: TotalSupplyCall) -> Self { - Self::TotalSupply(value) - } - } - impl ::core::convert::From for EchidnaERC20Calls { - fn from(value: TransferCall) -> Self { - Self::Transfer(value) - } - } - impl ::core::convert::From for EchidnaERC20Calls { - fn from(value: TransferFromCall) -> Self { - Self::TransferFrom(value) - } - } - ///Container type for all return fields from the `Portfolio` function with signature `Portfolio()` and selector `0x50d3f47c` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct PortfolioReturn(pub ::ethers::core::types::Address); - ///Container type for all return fields from the `allowance` function with signature `allowance(address,address)` and selector `0xdd62ed3e` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct AllowanceReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct ApproveReturn(pub bool); - ///Container type for all return fields from the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct BalanceOfReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `decimals` function with signature `decimals()` and selector `0x313ce567` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct DecimalsReturn(pub u8); - ///Container type for all return fields from the `decreaseAllowance` function with signature `decreaseAllowance(address,uint256)` and selector `0xa457c2d7` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct DecreaseAllowanceReturn(pub bool); - ///Container type for all return fields from the `increaseAllowance` function with signature `increaseAllowance(address,uint256)` and selector `0x39509351` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct IncreaseAllowanceReturn(pub bool); - ///Container type for all return fields from the `name` function with signature `name()` and selector `0x06fdde03` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct NameReturn(pub ::std::string::String); - ///Container type for all return fields from the `symbol` function with signature `symbol()` and selector `0x95d89b41` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct SymbolReturn(pub ::std::string::String); - ///Container type for all return fields from the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct TotalSupplyReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `transfer` function with signature `transfer(address,uint256)` and selector `0xa9059cbb` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct TransferReturn(pub bool); - ///Container type for all return fields from the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct TransferFromReturn(pub bool); -} diff --git a/crates/bindings/src/erc20.rs b/crates/bindings/src/erc20.rs index c6c28b41..1aaa2886 100644 --- a/crates/bindings/src/erc20.rs +++ b/crates/bindings/src/erc20.rs @@ -7,16 +7,5044 @@ pub use erc20::*; clippy::upper_case_acronyms, clippy::type_complexity, dead_code, - non_camel_case_types + non_camel_case_types, )] pub mod erc20 { #[rustfmt::skip] - const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Approval\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Transfer\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\",\"components\":[]},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\",\"components\":[]},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"permit\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]}]"; + const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\",\"components\":[]},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Approval\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Transfer\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]}]"; ///The parsed JSON ABI of the contract. - pub static ERC20_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = - ::ethers::contract::Lazy::new(|| { - ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid") - }); + pub static ERC20_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| + ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); + #[rustfmt::skip] + const __BYTECODE: &[u8] = &[ + 96, + 128, + 96, + 64, + 82, + 52, + 128, + 21, + 98, + 0, + 0, + 17, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 96, + 64, + 81, + 98, + 0, + 11, + 70, + 56, + 3, + 128, + 98, + 0, + 11, + 70, + 131, + 57, + 129, + 1, + 96, + 64, + 129, + 144, + 82, + 98, + 0, + 0, + 52, + 145, + 98, + 0, + 1, + 31, + 86, + 91, + 96, + 3, + 98, + 0, + 0, + 66, + 131, + 130, + 98, + 0, + 2, + 24, + 86, + 91, + 80, + 96, + 4, + 98, + 0, + 0, + 81, + 130, + 130, + 98, + 0, + 2, + 24, + 86, + 91, + 80, + 80, + 80, + 98, + 0, + 2, + 228, + 86, + 91, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 65, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 96, + 0, + 130, + 96, + 31, + 131, + 1, + 18, + 98, + 0, + 0, + 130, + 87, + 96, + 0, + 128, + 253, + 91, + 129, + 81, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 128, + 130, + 17, + 21, + 98, + 0, + 0, + 159, + 87, + 98, + 0, + 0, + 159, + 98, + 0, + 0, + 90, + 86, + 91, + 96, + 64, + 81, + 96, + 31, + 131, + 1, + 96, + 31, + 25, + 144, + 129, + 22, + 96, + 63, + 1, + 22, + 129, + 1, + 144, + 130, + 130, + 17, + 129, + 131, + 16, + 23, + 21, + 98, + 0, + 0, + 202, + 87, + 98, + 0, + 0, + 202, + 98, + 0, + 0, + 90, + 86, + 91, + 129, + 96, + 64, + 82, + 131, + 129, + 82, + 96, + 32, + 146, + 80, + 134, + 131, + 133, + 136, + 1, + 1, + 17, + 21, + 98, + 0, + 0, + 231, + 87, + 96, + 0, + 128, + 253, + 91, + 96, + 0, + 145, + 80, + 91, + 131, + 130, + 16, + 21, + 98, + 0, + 1, + 11, + 87, + 133, + 130, + 1, + 131, + 1, + 81, + 129, + 131, + 1, + 132, + 1, + 82, + 144, + 130, + 1, + 144, + 98, + 0, + 0, + 236, + 86, + 91, + 96, + 0, + 147, + 129, + 1, + 144, + 146, + 1, + 146, + 144, + 146, + 82, + 148, + 147, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 64, + 131, + 133, + 3, + 18, + 21, + 98, + 0, + 1, + 51, + 87, + 96, + 0, + 128, + 253, + 91, + 130, + 81, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 128, + 130, + 17, + 21, + 98, + 0, + 1, + 75, + 87, + 96, + 0, + 128, + 253, + 91, + 98, + 0, + 1, + 89, + 134, + 131, + 135, + 1, + 98, + 0, + 0, + 112, + 86, + 91, + 147, + 80, + 96, + 32, + 133, + 1, + 81, + 145, + 80, + 128, + 130, + 17, + 21, + 98, + 0, + 1, + 112, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 98, + 0, + 1, + 127, + 133, + 130, + 134, + 1, + 98, + 0, + 0, + 112, + 86, + 91, + 145, + 80, + 80, + 146, + 80, + 146, + 144, + 80, + 86, + 91, + 96, + 1, + 129, + 129, + 28, + 144, + 130, + 22, + 128, + 98, + 0, + 1, + 158, + 87, + 96, + 127, + 130, + 22, + 145, + 80, + 91, + 96, + 32, + 130, + 16, + 129, + 3, + 98, + 0, + 1, + 191, + 87, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 34, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 80, + 145, + 144, + 80, + 86, + 91, + 96, + 31, + 130, + 17, + 21, + 98, + 0, + 2, + 19, + 87, + 96, + 0, + 129, + 129, + 82, + 96, + 32, + 129, + 32, + 96, + 31, + 133, + 1, + 96, + 5, + 28, + 129, + 1, + 96, + 32, + 134, + 16, + 21, + 98, + 0, + 1, + 238, + 87, + 80, + 128, + 91, + 96, + 31, + 133, + 1, + 96, + 5, + 28, + 130, + 1, + 145, + 80, + 91, + 129, + 129, + 16, + 21, + 98, + 0, + 2, + 15, + 87, + 130, + 129, + 85, + 96, + 1, + 1, + 98, + 0, + 1, + 250, + 86, + 91, + 80, + 80, + 80, + 91, + 80, + 80, + 80, + 86, + 91, + 129, + 81, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 129, + 17, + 21, + 98, + 0, + 2, + 52, + 87, + 98, + 0, + 2, + 52, + 98, + 0, + 0, + 90, + 86, + 91, + 98, + 0, + 2, + 76, + 129, + 98, + 0, + 2, + 69, + 132, + 84, + 98, + 0, + 1, + 137, + 86, + 91, + 132, + 98, + 0, + 1, + 197, + 86, + 91, + 96, + 32, + 128, + 96, + 31, + 131, + 17, + 96, + 1, + 129, + 20, + 98, + 0, + 2, + 132, + 87, + 96, + 0, + 132, + 21, + 98, + 0, + 2, + 107, + 87, + 80, + 133, + 131, + 1, + 81, + 91, + 96, + 0, + 25, + 96, + 3, + 134, + 144, + 27, + 28, + 25, + 22, + 96, + 1, + 133, + 144, + 27, + 23, + 133, + 85, + 98, + 0, + 2, + 15, + 86, + 91, + 96, + 0, + 133, + 129, + 82, + 96, + 32, + 129, + 32, + 96, + 31, + 25, + 134, + 22, + 145, + 91, + 130, + 129, + 16, + 21, + 98, + 0, + 2, + 181, + 87, + 136, + 134, + 1, + 81, + 130, + 85, + 148, + 132, + 1, + 148, + 96, + 1, + 144, + 145, + 1, + 144, + 132, + 1, + 98, + 0, + 2, + 148, + 86, + 91, + 80, + 133, + 130, + 16, + 21, + 98, + 0, + 2, + 212, + 87, + 135, + 133, + 1, + 81, + 96, + 0, + 25, + 96, + 3, + 136, + 144, + 27, + 96, + 248, + 22, + 28, + 25, + 22, + 129, + 85, + 91, + 80, + 80, + 80, + 80, + 80, + 96, + 1, + 144, + 129, + 27, + 1, + 144, + 85, + 80, + 86, + 91, + 97, + 8, + 82, + 128, + 98, + 0, + 2, + 244, + 96, + 0, + 57, + 96, + 0, + 243, + 254, + 96, + 128, + 96, + 64, + 82, + 52, + 128, + 21, + 97, + 0, + 16, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 96, + 4, + 54, + 16, + 97, + 0, + 169, + 87, + 96, + 0, + 53, + 96, + 224, + 28, + 128, + 99, + 57, + 80, + 147, + 81, + 17, + 97, + 0, + 113, + 87, + 128, + 99, + 57, + 80, + 147, + 81, + 20, + 97, + 1, + 35, + 87, + 128, + 99, + 112, + 160, + 130, + 49, + 20, + 97, + 1, + 54, + 87, + 128, + 99, + 149, + 216, + 155, + 65, + 20, + 97, + 1, + 95, + 87, + 128, + 99, + 164, + 87, + 194, + 215, + 20, + 97, + 1, + 103, + 87, + 128, + 99, + 169, + 5, + 156, + 187, + 20, + 97, + 1, + 122, + 87, + 128, + 99, + 221, + 98, + 237, + 62, + 20, + 97, + 1, + 141, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 6, + 253, + 222, + 3, + 20, + 97, + 0, + 174, + 87, + 128, + 99, + 9, + 94, + 167, + 179, + 20, + 97, + 0, + 204, + 87, + 128, + 99, + 24, + 22, + 13, + 221, + 20, + 97, + 0, + 239, + 87, + 128, + 99, + 35, + 184, + 114, + 221, + 20, + 97, + 1, + 1, + 87, + 128, + 99, + 49, + 60, + 229, + 103, + 20, + 97, + 1, + 20, + 87, + 91, + 96, + 0, + 128, + 253, + 91, + 97, + 0, + 182, + 97, + 1, + 160, + 86, + 91, + 96, + 64, + 81, + 97, + 0, + 195, + 145, + 144, + 97, + 6, + 156, + 86, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 243, + 91, + 97, + 0, + 223, + 97, + 0, + 218, + 54, + 96, + 4, + 97, + 7, + 6, + 86, + 91, + 97, + 2, + 50, + 86, + 91, + 96, + 64, + 81, + 144, + 21, + 21, + 129, + 82, + 96, + 32, + 1, + 97, + 0, + 195, + 86, + 91, + 96, + 2, + 84, + 91, + 96, + 64, + 81, + 144, + 129, + 82, + 96, + 32, + 1, + 97, + 0, + 195, + 86, + 91, + 97, + 0, + 223, + 97, + 1, + 15, + 54, + 96, + 4, + 97, + 7, + 48, + 86, + 91, + 97, + 2, + 76, + 86, + 91, + 96, + 64, + 81, + 96, + 18, + 129, + 82, + 96, + 32, + 1, + 97, + 0, + 195, + 86, + 91, + 97, + 0, + 223, + 97, + 1, + 49, + 54, + 96, + 4, + 97, + 7, + 6, + 86, + 91, + 97, + 2, + 112, + 86, + 91, + 97, + 0, + 243, + 97, + 1, + 68, + 54, + 96, + 4, + 97, + 7, + 108, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 32, + 129, + 144, + 82, + 96, + 64, + 144, + 32, + 84, + 144, + 86, + 91, + 97, + 0, + 182, + 97, + 2, + 146, + 86, + 91, + 97, + 0, + 223, + 97, + 1, + 117, + 54, + 96, + 4, + 97, + 7, + 6, + 86, + 91, + 97, + 2, + 161, + 86, + 91, + 97, + 0, + 223, + 97, + 1, + 136, + 54, + 96, + 4, + 97, + 7, + 6, + 86, + 91, + 97, + 3, + 33, + 86, + 91, + 97, + 0, + 243, + 97, + 1, + 155, + 54, + 96, + 4, + 97, + 7, + 142, + 86, + 91, + 97, + 3, + 47, + 86, + 91, + 96, + 96, + 96, + 3, + 128, + 84, + 97, + 1, + 175, + 144, + 97, + 7, + 193, + 86, + 91, + 128, + 96, + 31, + 1, + 96, + 32, + 128, + 145, + 4, + 2, + 96, + 32, + 1, + 96, + 64, + 81, + 144, + 129, + 1, + 96, + 64, + 82, + 128, + 146, + 145, + 144, + 129, + 129, + 82, + 96, + 32, + 1, + 130, + 128, + 84, + 97, + 1, + 219, + 144, + 97, + 7, + 193, + 86, + 91, + 128, + 21, + 97, + 2, + 40, + 87, + 128, + 96, + 31, + 16, + 97, + 1, + 253, + 87, + 97, + 1, + 0, + 128, + 131, + 84, + 4, + 2, + 131, + 82, + 145, + 96, + 32, + 1, + 145, + 97, + 2, + 40, + 86, + 91, + 130, + 1, + 145, + 144, + 96, + 0, + 82, + 96, + 32, + 96, + 0, + 32, + 144, + 91, + 129, + 84, + 129, + 82, + 144, + 96, + 1, + 1, + 144, + 96, + 32, + 1, + 128, + 131, + 17, + 97, + 2, + 11, + 87, + 130, + 144, + 3, + 96, + 31, + 22, + 130, + 1, + 145, + 91, + 80, + 80, + 80, + 80, + 80, + 144, + 80, + 144, + 86, + 91, + 96, + 0, + 51, + 97, + 2, + 64, + 129, + 133, + 133, + 97, + 3, + 90, + 86, + 91, + 96, + 1, + 145, + 80, + 80, + 91, + 146, + 145, + 80, + 80, + 86, + 91, + 96, + 0, + 51, + 97, + 2, + 90, + 133, + 130, + 133, + 97, + 4, + 126, + 86, + 91, + 97, + 2, + 101, + 133, + 133, + 133, + 97, + 4, + 248, + 86, + 91, + 80, + 96, + 1, + 148, + 147, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 51, + 97, + 2, + 64, + 129, + 133, + 133, + 97, + 2, + 131, + 131, + 131, + 97, + 3, + 47, + 86, + 91, + 97, + 2, + 141, + 145, + 144, + 97, + 7, + 251, + 86, + 91, + 97, + 3, + 90, + 86, + 91, + 96, + 96, + 96, + 4, + 128, + 84, + 97, + 1, + 175, + 144, + 97, + 7, + 193, + 86, + 91, + 96, + 0, + 51, + 129, + 97, + 2, + 175, + 130, + 134, + 97, + 3, + 47, + 86, + 91, + 144, + 80, + 131, + 129, + 16, + 21, + 97, + 3, + 20, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 37, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 100, + 101, + 99, + 114, + 101, + 97, + 115, + 101, + 100, + 32, + 97, + 108, + 108, + 111, + 119, + 97, + 110, + 99, + 101, + 32, + 98, + 101, + 108, + 111, + 119, + 96, + 68, + 130, + 1, + 82, + 100, + 32, + 122, + 101, + 114, + 111, + 96, + 216, + 27, + 96, + 100, + 130, + 1, + 82, + 96, + 132, + 1, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 97, + 2, + 101, + 130, + 134, + 134, + 132, + 3, + 97, + 3, + 90, + 86, + 91, + 96, + 0, + 51, + 97, + 2, + 64, + 129, + 133, + 133, + 97, + 4, + 248, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 145, + 130, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 1, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 147, + 144, + 148, + 22, + 130, + 82, + 145, + 144, + 145, + 82, + 32, + 84, + 144, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 22, + 97, + 3, + 188, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 36, + 128, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 97, + 112, + 112, + 114, + 111, + 118, + 101, + 32, + 102, + 114, + 111, + 109, + 32, + 116, + 104, + 101, + 32, + 122, + 101, + 114, + 111, + 32, + 97, + 100, + 100, + 96, + 68, + 130, + 1, + 82, + 99, + 114, + 101, + 115, + 115, + 96, + 224, + 27, + 96, + 100, + 130, + 1, + 82, + 96, + 132, + 1, + 97, + 3, + 11, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 97, + 4, + 29, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 34, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 97, + 112, + 112, + 114, + 111, + 118, + 101, + 32, + 116, + 111, + 32, + 116, + 104, + 101, + 32, + 122, + 101, + 114, + 111, + 32, + 97, + 100, + 100, + 114, + 101, + 96, + 68, + 130, + 1, + 82, + 97, + 115, + 115, + 96, + 240, + 27, + 96, + 100, + 130, + 1, + 82, + 96, + 132, + 1, + 97, + 3, + 11, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 129, + 22, + 96, + 0, + 129, + 129, + 82, + 96, + 1, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 148, + 135, + 22, + 128, + 132, + 82, + 148, + 130, + 82, + 145, + 130, + 144, + 32, + 133, + 144, + 85, + 144, + 81, + 132, + 129, + 82, + 127, + 140, + 91, + 225, + 229, + 235, + 236, + 125, + 91, + 209, + 79, + 113, + 66, + 125, + 30, + 132, + 243, + 221, + 3, + 20, + 192, + 247, + 178, + 41, + 30, + 91, + 32, + 10, + 200, + 199, + 195, + 185, + 37, + 145, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 97, + 4, + 138, + 132, + 132, + 97, + 3, + 47, + 86, + 91, + 144, + 80, + 96, + 0, + 25, + 129, + 20, + 97, + 4, + 242, + 87, + 129, + 129, + 16, + 21, + 97, + 4, + 229, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 29, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 105, + 110, + 115, + 117, + 102, + 102, + 105, + 99, + 105, + 101, + 110, + 116, + 32, + 97, + 108, + 108, + 111, + 119, + 97, + 110, + 99, + 101, + 0, + 0, + 0, + 96, + 68, + 130, + 1, + 82, + 96, + 100, + 1, + 97, + 3, + 11, + 86, + 91, + 97, + 4, + 242, + 132, + 132, + 132, + 132, + 3, + 97, + 3, + 90, + 86, + 91, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 22, + 97, + 5, + 92, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 37, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 116, + 114, + 97, + 110, + 115, + 102, + 101, + 114, + 32, + 102, + 114, + 111, + 109, + 32, + 116, + 104, + 101, + 32, + 122, + 101, + 114, + 111, + 32, + 97, + 100, + 96, + 68, + 130, + 1, + 82, + 100, + 100, + 114, + 101, + 115, + 115, + 96, + 216, + 27, + 96, + 100, + 130, + 1, + 82, + 96, + 132, + 1, + 97, + 3, + 11, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 97, + 5, + 190, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 35, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 116, + 114, + 97, + 110, + 115, + 102, + 101, + 114, + 32, + 116, + 111, + 32, + 116, + 104, + 101, + 32, + 122, + 101, + 114, + 111, + 32, + 97, + 100, + 100, + 114, + 96, + 68, + 130, + 1, + 82, + 98, + 101, + 115, + 115, + 96, + 232, + 27, + 96, + 100, + 130, + 1, + 82, + 96, + 132, + 1, + 97, + 3, + 11, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 32, + 129, + 144, + 82, + 96, + 64, + 144, + 32, + 84, + 129, + 129, + 16, + 21, + 97, + 6, + 54, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 38, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 116, + 114, + 97, + 110, + 115, + 102, + 101, + 114, + 32, + 97, + 109, + 111, + 117, + 110, + 116, + 32, + 101, + 120, + 99, + 101, + 101, + 100, + 115, + 32, + 98, + 96, + 68, + 130, + 1, + 82, + 101, + 97, + 108, + 97, + 110, + 99, + 101, + 96, + 208, + 27, + 96, + 100, + 130, + 1, + 82, + 96, + 132, + 1, + 97, + 3, + 11, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 132, + 129, + 22, + 96, + 0, + 129, + 129, + 82, + 96, + 32, + 129, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 135, + 135, + 3, + 144, + 85, + 147, + 135, + 22, + 128, + 131, + 82, + 145, + 132, + 144, + 32, + 128, + 84, + 135, + 1, + 144, + 85, + 146, + 81, + 133, + 129, + 82, + 144, + 146, + 127, + 221, + 242, + 82, + 173, + 27, + 226, + 200, + 155, + 105, + 194, + 176, + 104, + 252, + 55, + 141, + 170, + 149, + 43, + 167, + 241, + 99, + 196, + 161, + 22, + 40, + 245, + 90, + 77, + 245, + 35, + 179, + 239, + 145, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 97, + 4, + 242, + 86, + 91, + 96, + 0, + 96, + 32, + 128, + 131, + 82, + 131, + 81, + 128, + 130, + 133, + 1, + 82, + 96, + 0, + 91, + 129, + 129, + 16, + 21, + 97, + 6, + 201, + 87, + 133, + 129, + 1, + 131, + 1, + 81, + 133, + 130, + 1, + 96, + 64, + 1, + 82, + 130, + 1, + 97, + 6, + 173, + 86, + 91, + 80, + 96, + 0, + 96, + 64, + 130, + 134, + 1, + 1, + 82, + 96, + 64, + 96, + 31, + 25, + 96, + 31, + 131, + 1, + 22, + 133, + 1, + 1, + 146, + 80, + 80, + 80, + 146, + 145, + 80, + 80, + 86, + 91, + 128, + 53, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 129, + 22, + 129, + 20, + 97, + 7, + 1, + 87, + 96, + 0, + 128, + 253, + 91, + 145, + 144, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 64, + 131, + 133, + 3, + 18, + 21, + 97, + 7, + 25, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 7, + 34, + 131, + 97, + 6, + 234, + 86, + 91, + 148, + 96, + 32, + 147, + 144, + 147, + 1, + 53, + 147, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 96, + 96, + 132, + 134, + 3, + 18, + 21, + 97, + 7, + 69, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 7, + 78, + 132, + 97, + 6, + 234, + 86, + 91, + 146, + 80, + 97, + 7, + 92, + 96, + 32, + 133, + 1, + 97, + 6, + 234, + 86, + 91, + 145, + 80, + 96, + 64, + 132, + 1, + 53, + 144, + 80, + 146, + 80, + 146, + 80, + 146, + 86, + 91, + 96, + 0, + 96, + 32, + 130, + 132, + 3, + 18, + 21, + 97, + 7, + 126, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 7, + 135, + 130, + 97, + 6, + 234, + 86, + 91, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 64, + 131, + 133, + 3, + 18, + 21, + 97, + 7, + 161, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 7, + 170, + 131, + 97, + 6, + 234, + 86, + 91, + 145, + 80, + 97, + 7, + 184, + 96, + 32, + 132, + 1, + 97, + 6, + 234, + 86, + 91, + 144, + 80, + 146, + 80, + 146, + 144, + 80, + 86, + 91, + 96, + 1, + 129, + 129, + 28, + 144, + 130, + 22, + 128, + 97, + 7, + 213, + 87, + 96, + 127, + 130, + 22, + 145, + 80, + 91, + 96, + 32, + 130, + 16, + 129, + 3, + 97, + 7, + 245, + 87, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 34, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 80, + 145, + 144, + 80, + 86, + 91, + 128, + 130, + 1, + 128, + 130, + 17, + 21, + 97, + 2, + 70, + 87, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 17, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 254, + 162, + 100, + 105, + 112, + 102, + 115, + 88, + 34, + 18, + 32, + 152, + 108, + 46, + 235, + 149, + 232, + 158, + 70, + 135, + 4, + 97, + 133, + 183, + 143, + 90, + 171, + 132, + 145, + 136, + 153, + 102, + 165, + 158, + 35, + 83, + 97, + 171, + 107, + 141, + 170, + 134, + 101, + 100, + 115, + 111, + 108, + 99, + 67, + 0, + 8, + 19, + 0, + 51, + ]; + ///The bytecode of the contract. + pub static ERC20_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __BYTECODE, + ); + #[rustfmt::skip] + const __DEPLOYED_BYTECODE: &[u8] = &[ + 96, + 128, + 96, + 64, + 82, + 52, + 128, + 21, + 97, + 0, + 16, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 96, + 4, + 54, + 16, + 97, + 0, + 169, + 87, + 96, + 0, + 53, + 96, + 224, + 28, + 128, + 99, + 57, + 80, + 147, + 81, + 17, + 97, + 0, + 113, + 87, + 128, + 99, + 57, + 80, + 147, + 81, + 20, + 97, + 1, + 35, + 87, + 128, + 99, + 112, + 160, + 130, + 49, + 20, + 97, + 1, + 54, + 87, + 128, + 99, + 149, + 216, + 155, + 65, + 20, + 97, + 1, + 95, + 87, + 128, + 99, + 164, + 87, + 194, + 215, + 20, + 97, + 1, + 103, + 87, + 128, + 99, + 169, + 5, + 156, + 187, + 20, + 97, + 1, + 122, + 87, + 128, + 99, + 221, + 98, + 237, + 62, + 20, + 97, + 1, + 141, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 6, + 253, + 222, + 3, + 20, + 97, + 0, + 174, + 87, + 128, + 99, + 9, + 94, + 167, + 179, + 20, + 97, + 0, + 204, + 87, + 128, + 99, + 24, + 22, + 13, + 221, + 20, + 97, + 0, + 239, + 87, + 128, + 99, + 35, + 184, + 114, + 221, + 20, + 97, + 1, + 1, + 87, + 128, + 99, + 49, + 60, + 229, + 103, + 20, + 97, + 1, + 20, + 87, + 91, + 96, + 0, + 128, + 253, + 91, + 97, + 0, + 182, + 97, + 1, + 160, + 86, + 91, + 96, + 64, + 81, + 97, + 0, + 195, + 145, + 144, + 97, + 6, + 156, + 86, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 243, + 91, + 97, + 0, + 223, + 97, + 0, + 218, + 54, + 96, + 4, + 97, + 7, + 6, + 86, + 91, + 97, + 2, + 50, + 86, + 91, + 96, + 64, + 81, + 144, + 21, + 21, + 129, + 82, + 96, + 32, + 1, + 97, + 0, + 195, + 86, + 91, + 96, + 2, + 84, + 91, + 96, + 64, + 81, + 144, + 129, + 82, + 96, + 32, + 1, + 97, + 0, + 195, + 86, + 91, + 97, + 0, + 223, + 97, + 1, + 15, + 54, + 96, + 4, + 97, + 7, + 48, + 86, + 91, + 97, + 2, + 76, + 86, + 91, + 96, + 64, + 81, + 96, + 18, + 129, + 82, + 96, + 32, + 1, + 97, + 0, + 195, + 86, + 91, + 97, + 0, + 223, + 97, + 1, + 49, + 54, + 96, + 4, + 97, + 7, + 6, + 86, + 91, + 97, + 2, + 112, + 86, + 91, + 97, + 0, + 243, + 97, + 1, + 68, + 54, + 96, + 4, + 97, + 7, + 108, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 32, + 129, + 144, + 82, + 96, + 64, + 144, + 32, + 84, + 144, + 86, + 91, + 97, + 0, + 182, + 97, + 2, + 146, + 86, + 91, + 97, + 0, + 223, + 97, + 1, + 117, + 54, + 96, + 4, + 97, + 7, + 6, + 86, + 91, + 97, + 2, + 161, + 86, + 91, + 97, + 0, + 223, + 97, + 1, + 136, + 54, + 96, + 4, + 97, + 7, + 6, + 86, + 91, + 97, + 3, + 33, + 86, + 91, + 97, + 0, + 243, + 97, + 1, + 155, + 54, + 96, + 4, + 97, + 7, + 142, + 86, + 91, + 97, + 3, + 47, + 86, + 91, + 96, + 96, + 96, + 3, + 128, + 84, + 97, + 1, + 175, + 144, + 97, + 7, + 193, + 86, + 91, + 128, + 96, + 31, + 1, + 96, + 32, + 128, + 145, + 4, + 2, + 96, + 32, + 1, + 96, + 64, + 81, + 144, + 129, + 1, + 96, + 64, + 82, + 128, + 146, + 145, + 144, + 129, + 129, + 82, + 96, + 32, + 1, + 130, + 128, + 84, + 97, + 1, + 219, + 144, + 97, + 7, + 193, + 86, + 91, + 128, + 21, + 97, + 2, + 40, + 87, + 128, + 96, + 31, + 16, + 97, + 1, + 253, + 87, + 97, + 1, + 0, + 128, + 131, + 84, + 4, + 2, + 131, + 82, + 145, + 96, + 32, + 1, + 145, + 97, + 2, + 40, + 86, + 91, + 130, + 1, + 145, + 144, + 96, + 0, + 82, + 96, + 32, + 96, + 0, + 32, + 144, + 91, + 129, + 84, + 129, + 82, + 144, + 96, + 1, + 1, + 144, + 96, + 32, + 1, + 128, + 131, + 17, + 97, + 2, + 11, + 87, + 130, + 144, + 3, + 96, + 31, + 22, + 130, + 1, + 145, + 91, + 80, + 80, + 80, + 80, + 80, + 144, + 80, + 144, + 86, + 91, + 96, + 0, + 51, + 97, + 2, + 64, + 129, + 133, + 133, + 97, + 3, + 90, + 86, + 91, + 96, + 1, + 145, + 80, + 80, + 91, + 146, + 145, + 80, + 80, + 86, + 91, + 96, + 0, + 51, + 97, + 2, + 90, + 133, + 130, + 133, + 97, + 4, + 126, + 86, + 91, + 97, + 2, + 101, + 133, + 133, + 133, + 97, + 4, + 248, + 86, + 91, + 80, + 96, + 1, + 148, + 147, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 51, + 97, + 2, + 64, + 129, + 133, + 133, + 97, + 2, + 131, + 131, + 131, + 97, + 3, + 47, + 86, + 91, + 97, + 2, + 141, + 145, + 144, + 97, + 7, + 251, + 86, + 91, + 97, + 3, + 90, + 86, + 91, + 96, + 96, + 96, + 4, + 128, + 84, + 97, + 1, + 175, + 144, + 97, + 7, + 193, + 86, + 91, + 96, + 0, + 51, + 129, + 97, + 2, + 175, + 130, + 134, + 97, + 3, + 47, + 86, + 91, + 144, + 80, + 131, + 129, + 16, + 21, + 97, + 3, + 20, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 37, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 100, + 101, + 99, + 114, + 101, + 97, + 115, + 101, + 100, + 32, + 97, + 108, + 108, + 111, + 119, + 97, + 110, + 99, + 101, + 32, + 98, + 101, + 108, + 111, + 119, + 96, + 68, + 130, + 1, + 82, + 100, + 32, + 122, + 101, + 114, + 111, + 96, + 216, + 27, + 96, + 100, + 130, + 1, + 82, + 96, + 132, + 1, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 97, + 2, + 101, + 130, + 134, + 134, + 132, + 3, + 97, + 3, + 90, + 86, + 91, + 96, + 0, + 51, + 97, + 2, + 64, + 129, + 133, + 133, + 97, + 4, + 248, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 145, + 130, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 1, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 147, + 144, + 148, + 22, + 130, + 82, + 145, + 144, + 145, + 82, + 32, + 84, + 144, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 22, + 97, + 3, + 188, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 36, + 128, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 97, + 112, + 112, + 114, + 111, + 118, + 101, + 32, + 102, + 114, + 111, + 109, + 32, + 116, + 104, + 101, + 32, + 122, + 101, + 114, + 111, + 32, + 97, + 100, + 100, + 96, + 68, + 130, + 1, + 82, + 99, + 114, + 101, + 115, + 115, + 96, + 224, + 27, + 96, + 100, + 130, + 1, + 82, + 96, + 132, + 1, + 97, + 3, + 11, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 97, + 4, + 29, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 34, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 97, + 112, + 112, + 114, + 111, + 118, + 101, + 32, + 116, + 111, + 32, + 116, + 104, + 101, + 32, + 122, + 101, + 114, + 111, + 32, + 97, + 100, + 100, + 114, + 101, + 96, + 68, + 130, + 1, + 82, + 97, + 115, + 115, + 96, + 240, + 27, + 96, + 100, + 130, + 1, + 82, + 96, + 132, + 1, + 97, + 3, + 11, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 129, + 22, + 96, + 0, + 129, + 129, + 82, + 96, + 1, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 148, + 135, + 22, + 128, + 132, + 82, + 148, + 130, + 82, + 145, + 130, + 144, + 32, + 133, + 144, + 85, + 144, + 81, + 132, + 129, + 82, + 127, + 140, + 91, + 225, + 229, + 235, + 236, + 125, + 91, + 209, + 79, + 113, + 66, + 125, + 30, + 132, + 243, + 221, + 3, + 20, + 192, + 247, + 178, + 41, + 30, + 91, + 32, + 10, + 200, + 199, + 195, + 185, + 37, + 145, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 97, + 4, + 138, + 132, + 132, + 97, + 3, + 47, + 86, + 91, + 144, + 80, + 96, + 0, + 25, + 129, + 20, + 97, + 4, + 242, + 87, + 129, + 129, + 16, + 21, + 97, + 4, + 229, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 29, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 105, + 110, + 115, + 117, + 102, + 102, + 105, + 99, + 105, + 101, + 110, + 116, + 32, + 97, + 108, + 108, + 111, + 119, + 97, + 110, + 99, + 101, + 0, + 0, + 0, + 96, + 68, + 130, + 1, + 82, + 96, + 100, + 1, + 97, + 3, + 11, + 86, + 91, + 97, + 4, + 242, + 132, + 132, + 132, + 132, + 3, + 97, + 3, + 90, + 86, + 91, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 22, + 97, + 5, + 92, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 37, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 116, + 114, + 97, + 110, + 115, + 102, + 101, + 114, + 32, + 102, + 114, + 111, + 109, + 32, + 116, + 104, + 101, + 32, + 122, + 101, + 114, + 111, + 32, + 97, + 100, + 96, + 68, + 130, + 1, + 82, + 100, + 100, + 114, + 101, + 115, + 115, + 96, + 216, + 27, + 96, + 100, + 130, + 1, + 82, + 96, + 132, + 1, + 97, + 3, + 11, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 97, + 5, + 190, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 35, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 116, + 114, + 97, + 110, + 115, + 102, + 101, + 114, + 32, + 116, + 111, + 32, + 116, + 104, + 101, + 32, + 122, + 101, + 114, + 111, + 32, + 97, + 100, + 100, + 114, + 96, + 68, + 130, + 1, + 82, + 98, + 101, + 115, + 115, + 96, + 232, + 27, + 96, + 100, + 130, + 1, + 82, + 96, + 132, + 1, + 97, + 3, + 11, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 32, + 129, + 144, + 82, + 96, + 64, + 144, + 32, + 84, + 129, + 129, + 16, + 21, + 97, + 6, + 54, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 38, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 116, + 114, + 97, + 110, + 115, + 102, + 101, + 114, + 32, + 97, + 109, + 111, + 117, + 110, + 116, + 32, + 101, + 120, + 99, + 101, + 101, + 100, + 115, + 32, + 98, + 96, + 68, + 130, + 1, + 82, + 101, + 97, + 108, + 97, + 110, + 99, + 101, + 96, + 208, + 27, + 96, + 100, + 130, + 1, + 82, + 96, + 132, + 1, + 97, + 3, + 11, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 132, + 129, + 22, + 96, + 0, + 129, + 129, + 82, + 96, + 32, + 129, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 135, + 135, + 3, + 144, + 85, + 147, + 135, + 22, + 128, + 131, + 82, + 145, + 132, + 144, + 32, + 128, + 84, + 135, + 1, + 144, + 85, + 146, + 81, + 133, + 129, + 82, + 144, + 146, + 127, + 221, + 242, + 82, + 173, + 27, + 226, + 200, + 155, + 105, + 194, + 176, + 104, + 252, + 55, + 141, + 170, + 149, + 43, + 167, + 241, + 99, + 196, + 161, + 22, + 40, + 245, + 90, + 77, + 245, + 35, + 179, + 239, + 145, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 97, + 4, + 242, + 86, + 91, + 96, + 0, + 96, + 32, + 128, + 131, + 82, + 131, + 81, + 128, + 130, + 133, + 1, + 82, + 96, + 0, + 91, + 129, + 129, + 16, + 21, + 97, + 6, + 201, + 87, + 133, + 129, + 1, + 131, + 1, + 81, + 133, + 130, + 1, + 96, + 64, + 1, + 82, + 130, + 1, + 97, + 6, + 173, + 86, + 91, + 80, + 96, + 0, + 96, + 64, + 130, + 134, + 1, + 1, + 82, + 96, + 64, + 96, + 31, + 25, + 96, + 31, + 131, + 1, + 22, + 133, + 1, + 1, + 146, + 80, + 80, + 80, + 146, + 145, + 80, + 80, + 86, + 91, + 128, + 53, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 129, + 22, + 129, + 20, + 97, + 7, + 1, + 87, + 96, + 0, + 128, + 253, + 91, + 145, + 144, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 64, + 131, + 133, + 3, + 18, + 21, + 97, + 7, + 25, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 7, + 34, + 131, + 97, + 6, + 234, + 86, + 91, + 148, + 96, + 32, + 147, + 144, + 147, + 1, + 53, + 147, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 96, + 96, + 132, + 134, + 3, + 18, + 21, + 97, + 7, + 69, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 7, + 78, + 132, + 97, + 6, + 234, + 86, + 91, + 146, + 80, + 97, + 7, + 92, + 96, + 32, + 133, + 1, + 97, + 6, + 234, + 86, + 91, + 145, + 80, + 96, + 64, + 132, + 1, + 53, + 144, + 80, + 146, + 80, + 146, + 80, + 146, + 86, + 91, + 96, + 0, + 96, + 32, + 130, + 132, + 3, + 18, + 21, + 97, + 7, + 126, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 7, + 135, + 130, + 97, + 6, + 234, + 86, + 91, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 64, + 131, + 133, + 3, + 18, + 21, + 97, + 7, + 161, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 7, + 170, + 131, + 97, + 6, + 234, + 86, + 91, + 145, + 80, + 97, + 7, + 184, + 96, + 32, + 132, + 1, + 97, + 6, + 234, + 86, + 91, + 144, + 80, + 146, + 80, + 146, + 144, + 80, + 86, + 91, + 96, + 1, + 129, + 129, + 28, + 144, + 130, + 22, + 128, + 97, + 7, + 213, + 87, + 96, + 127, + 130, + 22, + 145, + 80, + 91, + 96, + 32, + 130, + 16, + 129, + 3, + 97, + 7, + 245, + 87, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 34, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 80, + 145, + 144, + 80, + 86, + 91, + 128, + 130, + 1, + 128, + 130, + 17, + 21, + 97, + 2, + 70, + 87, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 17, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 254, + 162, + 100, + 105, + 112, + 102, + 115, + 88, + 34, + 18, + 32, + 152, + 108, + 46, + 235, + 149, + 232, + 158, + 70, + 135, + 4, + 97, + 133, + 183, + 143, + 90, + 171, + 132, + 145, + 136, + 153, + 102, + 165, + 158, + 35, + 83, + 97, + 171, + 107, + 141, + 170, + 134, + 101, + 100, + 115, + 111, + 108, + 99, + 67, + 0, + 8, + 19, + 0, + 51, + ]; + ///The deployed bytecode of the contract. + pub static ERC20_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __DEPLOYED_BYTECODE, + ); pub struct ERC20(::ethers::contract::Contract); impl ::core::clone::Clone for ERC20 { fn clone(&self) -> Self { @@ -36,9 +5064,7 @@ pub mod erc20 { } impl ::core::fmt::Debug for ERC20 { fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(stringify!(ERC20)) - .field(&self.address()) - .finish() + f.debug_tuple(stringify!(ERC20)).field(&self.address()).finish() } } impl ERC20 { @@ -48,26 +5074,61 @@ pub mod erc20 { address: T, client: ::std::sync::Arc, ) -> Self { - Self(::ethers::contract::Contract::new( - address.into(), + Self( + ::ethers::contract::Contract::new( + address.into(), + ERC20_ABI.clone(), + client, + ), + ) + } + /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. + /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction + /// + /// Notes: + /// - If there are no constructor arguments, you should pass `()` as the argument. + /// - The default poll duration is 7 seconds. + /// - The default number of confirmations is 1 block. + /// + /// + /// # Example + /// + /// Generate contract bindings with `abigen!` and deploy a new contract instance. + /// + /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. + /// + /// ```ignore + /// # async fn deploy(client: ::std::sync::Arc) { + /// abigen!(Greeter, "../greeter.json"); + /// + /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); + /// let msg = greeter_contract.greet().call().await.unwrap(); + /// # } + /// ``` + pub fn deploy( + client: ::std::sync::Arc, + constructor_args: T, + ) -> ::core::result::Result< + ::ethers::contract::builders::ContractDeployer, + ::ethers::contract::ContractError, + > { + let factory = ::ethers::contract::ContractFactory::new( ERC20_ABI.clone(), + ERC20_BYTECODE.clone().into(), client, - )) - } - ///Calls the contract's `DOMAIN_SEPARATOR` (0x3644e515) function - pub fn domain_separator(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([54, 68, 229, 21], ()) - .expect("method not found (this should never happen)") + ); + let deployer = factory.deploy(constructor_args)?; + let deployer = ::ethers::contract::ContractDeployer::new(deployer); + Ok(deployer) } ///Calls the contract's `allowance` (0xdd62ed3e) function pub fn allowance( &self, - p0: ::ethers::core::types::Address, - p1: ::ethers::core::types::Address, + owner: ::ethers::core::types::Address, + spender: ::ethers::core::types::Address, ) -> ::ethers::contract::builders::ContractCall { self.0 - .method_hash([221, 98, 237, 62], (p0, p1)) + .method_hash([221, 98, 237, 62], (owner, spender)) .expect("method not found (this should never happen)") } ///Calls the contract's `approve` (0x095ea7b3) function @@ -83,10 +5144,10 @@ pub mod erc20 { ///Calls the contract's `balanceOf` (0x70a08231) function pub fn balance_of( &self, - p0: ::ethers::core::types::Address, + account: ::ethers::core::types::Address, ) -> ::ethers::contract::builders::ContractCall { self.0 - .method_hash([112, 160, 130, 49], p0) + .method_hash([112, 160, 130, 49], account) .expect("method not found (this should never happen)") } ///Calls the contract's `decimals` (0x313ce567) function @@ -95,37 +5156,32 @@ pub mod erc20 { .method_hash([49, 60, 229, 103], ()) .expect("method not found (this should never happen)") } - ///Calls the contract's `name` (0x06fdde03) function - pub fn name(&self) -> ::ethers::contract::builders::ContractCall { + ///Calls the contract's `decreaseAllowance` (0xa457c2d7) function + pub fn decrease_allowance( + &self, + spender: ::ethers::core::types::Address, + subtracted_value: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { self.0 - .method_hash([6, 253, 222, 3], ()) + .method_hash([164, 87, 194, 215], (spender, subtracted_value)) .expect("method not found (this should never happen)") } - ///Calls the contract's `nonces` (0x7ecebe00) function - pub fn nonces( + ///Calls the contract's `increaseAllowance` (0x39509351) function + pub fn increase_allowance( &self, - p0: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { + spender: ::ethers::core::types::Address, + added_value: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { self.0 - .method_hash([126, 206, 190, 0], p0) + .method_hash([57, 80, 147, 81], (spender, added_value)) .expect("method not found (this should never happen)") } - ///Calls the contract's `permit` (0xd505accf) function - pub fn permit( + ///Calls the contract's `name` (0x06fdde03) function + pub fn name( &self, - owner: ::ethers::core::types::Address, - spender: ::ethers::core::types::Address, - value: ::ethers::core::types::U256, - deadline: ::ethers::core::types::U256, - v: u8, - r: [u8; 32], - s: [u8; 32], - ) -> ::ethers::contract::builders::ContractCall { + ) -> ::ethers::contract::builders::ContractCall { self.0 - .method_hash( - [213, 5, 172, 207], - (owner, spender, value, deadline, v, r, s), - ) + .method_hash([6, 253, 222, 3], ()) .expect("method not found (this should never happen)") } ///Calls the contract's `symbol` (0x95d89b41) function @@ -168,24 +5224,32 @@ pub mod erc20 { ///Gets the contract's `Approval` event pub fn approval_filter( &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, ApprovalFilter> { + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + ApprovalFilter, + > { self.0.event() } ///Gets the contract's `Transfer` event pub fn transfer_filter( &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, TransferFilter> { + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + TransferFilter, + > { self.0.event() } /// Returns an `Event` builder for all the events of this contract. pub fn events( &self, ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, ERC20Events> { - self.0 - .event_with_filter(::core::default::Default::default()) + self.0.event_with_filter(::core::default::Default::default()) } } - impl From<::ethers::contract::Contract> for ERC20 { + impl From<::ethers::contract::Contract> + for ERC20 { fn from(contract: ::ethers::contract::Contract) -> Self { Self::new(contract.address(), contract.client()) } @@ -198,7 +5262,7 @@ pub mod erc20 { Debug, PartialEq, Eq, - Hash, + Hash )] #[ethevent(name = "Approval", abi = "Approval(address,address,uint256)")] pub struct ApprovalFilter { @@ -206,7 +5270,7 @@ pub mod erc20 { pub owner: ::ethers::core::types::Address, #[ethevent(indexed)] pub spender: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, + pub value: ::ethers::core::types::U256, } #[derive( Clone, @@ -216,7 +5280,7 @@ pub mod erc20 { Debug, PartialEq, Eq, - Hash, + Hash )] #[ethevent(name = "Transfer", abi = "Transfer(address,address,uint256)")] pub struct TransferFilter { @@ -224,7 +5288,7 @@ pub mod erc20 { pub from: ::ethers::core::types::Address, #[ethevent(indexed)] pub to: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, + pub value: ::ethers::core::types::U256, } ///Container type for all of the contract's events #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] @@ -263,19 +5327,6 @@ pub mod erc20 { Self::TransferFilter(value) } } - ///Container type for all input parameters for the `DOMAIN_SEPARATOR` function with signature `DOMAIN_SEPARATOR()` and selector `0x3644e515` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "DOMAIN_SEPARATOR", abi = "DOMAIN_SEPARATOR()")] - pub struct DomainSeparatorCall; ///Container type for all input parameters for the `allowance` function with signature `allowance(address,address)` and selector `0xdd62ed3e` #[derive( Clone, @@ -285,13 +5336,13 @@ pub mod erc20 { Debug, PartialEq, Eq, - Hash, + Hash )] #[ethcall(name = "allowance", abi = "allowance(address,address)")] - pub struct AllowanceCall( - pub ::ethers::core::types::Address, - pub ::ethers::core::types::Address, - ); + pub struct AllowanceCall { + pub owner: ::ethers::core::types::Address, + pub spender: ::ethers::core::types::Address, + } ///Container type for all input parameters for the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` #[derive( Clone, @@ -301,7 +5352,7 @@ pub mod erc20 { Debug, PartialEq, Eq, - Hash, + Hash )] #[ethcall(name = "approve", abi = "approve(address,uint256)")] pub struct ApproveCall { @@ -317,10 +5368,12 @@ pub mod erc20 { Debug, PartialEq, Eq, - Hash, + Hash )] #[ethcall(name = "balanceOf", abi = "balanceOf(address)")] - pub struct BalanceOfCall(pub ::ethers::core::types::Address); + pub struct BalanceOfCall { + pub account: ::ethers::core::types::Address, + } ///Container type for all input parameters for the `decimals` function with signature `decimals()` and selector `0x313ce567` #[derive( Clone, @@ -330,11 +5383,11 @@ pub mod erc20 { Debug, PartialEq, Eq, - Hash, + Hash )] #[ethcall(name = "decimals", abi = "decimals()")] pub struct DecimalsCall; - ///Container type for all input parameters for the `name` function with signature `name()` and selector `0x06fdde03` + ///Container type for all input parameters for the `decreaseAllowance` function with signature `decreaseAllowance(address,uint256)` and selector `0xa457c2d7` #[derive( Clone, ::ethers::contract::EthCall, @@ -343,11 +5396,14 @@ pub mod erc20 { Debug, PartialEq, Eq, - Hash, + Hash )] - #[ethcall(name = "name", abi = "name()")] - pub struct NameCall; - ///Container type for all input parameters for the `nonces` function with signature `nonces(address)` and selector `0x7ecebe00` + #[ethcall(name = "decreaseAllowance", abi = "decreaseAllowance(address,uint256)")] + pub struct DecreaseAllowanceCall { + pub spender: ::ethers::core::types::Address, + pub subtracted_value: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `increaseAllowance` function with signature `increaseAllowance(address,uint256)` and selector `0x39509351` #[derive( Clone, ::ethers::contract::EthCall, @@ -356,11 +5412,14 @@ pub mod erc20 { Debug, PartialEq, Eq, - Hash, + Hash )] - #[ethcall(name = "nonces", abi = "nonces(address)")] - pub struct NoncesCall(pub ::ethers::core::types::Address); - ///Container type for all input parameters for the `permit` function with signature `permit(address,address,uint256,uint256,uint8,bytes32,bytes32)` and selector `0xd505accf` + #[ethcall(name = "increaseAllowance", abi = "increaseAllowance(address,uint256)")] + pub struct IncreaseAllowanceCall { + pub spender: ::ethers::core::types::Address, + pub added_value: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `name` function with signature `name()` and selector `0x06fdde03` #[derive( Clone, ::ethers::contract::EthCall, @@ -369,21 +5428,10 @@ pub mod erc20 { Debug, PartialEq, Eq, - Hash, + Hash )] - #[ethcall( - name = "permit", - abi = "permit(address,address,uint256,uint256,uint8,bytes32,bytes32)" - )] - pub struct PermitCall { - pub owner: ::ethers::core::types::Address, - pub spender: ::ethers::core::types::Address, - pub value: ::ethers::core::types::U256, - pub deadline: ::ethers::core::types::U256, - pub v: u8, - pub r: [u8; 32], - pub s: [u8; 32], - } + #[ethcall(name = "name", abi = "name()")] + pub struct NameCall; ///Container type for all input parameters for the `symbol` function with signature `symbol()` and selector `0x95d89b41` #[derive( Clone, @@ -393,7 +5441,7 @@ pub mod erc20 { Debug, PartialEq, Eq, - Hash, + Hash )] #[ethcall(name = "symbol", abi = "symbol()")] pub struct SymbolCall; @@ -406,7 +5454,7 @@ pub mod erc20 { Debug, PartialEq, Eq, - Hash, + Hash )] #[ethcall(name = "totalSupply", abi = "totalSupply()")] pub struct TotalSupplyCall; @@ -419,7 +5467,7 @@ pub mod erc20 { Debug, PartialEq, Eq, - Hash, + Hash )] #[ethcall(name = "transfer", abi = "transfer(address,uint256)")] pub struct TransferCall { @@ -435,7 +5483,7 @@ pub mod erc20 { Debug, PartialEq, Eq, - Hash, + Hash )] #[ethcall(name = "transferFrom", abi = "transferFrom(address,address,uint256)")] pub struct TransferFromCall { @@ -446,14 +5494,13 @@ pub mod erc20 { ///Container type for all of the contract's call #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] pub enum ERC20Calls { - DomainSeparator(DomainSeparatorCall), Allowance(AllowanceCall), Approve(ApproveCall), BalanceOf(BalanceOfCall), Decimals(DecimalsCall), + DecreaseAllowance(DecreaseAllowanceCall), + IncreaseAllowance(IncreaseAllowanceCall), Name(NameCall), - Nonces(NoncesCall), - Permit(PermitCall), Symbol(SymbolCall), TotalSupply(TotalSupplyCall), Transfer(TransferCall), @@ -464,43 +5511,52 @@ pub mod erc20 { data: impl AsRef<[u8]>, ) -> ::core::result::Result { let data = data.as_ref(); - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::DomainSeparator(decoded)); - } - if let Ok(decoded) = ::decode(data) { + if let Ok(decoded) + = ::decode(data) { return Ok(Self::Allowance(decoded)); } - if let Ok(decoded) = ::decode(data) { + if let Ok(decoded) + = ::decode(data) { return Ok(Self::Approve(decoded)); } - if let Ok(decoded) = ::decode(data) { + if let Ok(decoded) + = ::decode(data) { return Ok(Self::BalanceOf(decoded)); } - if let Ok(decoded) = ::decode(data) { + if let Ok(decoded) + = ::decode(data) { return Ok(Self::Decimals(decoded)); } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Name(decoded)); + if let Ok(decoded) + = ::decode( + data, + ) { + return Ok(Self::DecreaseAllowance(decoded)); } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Nonces(decoded)); + if let Ok(decoded) + = ::decode( + data, + ) { + return Ok(Self::IncreaseAllowance(decoded)); } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Permit(decoded)); + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Name(decoded)); } - if let Ok(decoded) = ::decode(data) { + if let Ok(decoded) + = ::decode(data) { return Ok(Self::Symbol(decoded)); } - if let Ok(decoded) = ::decode(data) { + if let Ok(decoded) + = ::decode(data) { return Ok(Self::TotalSupply(decoded)); } - if let Ok(decoded) = ::decode(data) { + if let Ok(decoded) + = ::decode(data) { return Ok(Self::Transfer(decoded)); } - if let Ok(decoded) = ::decode(data) - { + if let Ok(decoded) + = ::decode(data) { return Ok(Self::TransferFrom(decoded)); } Err(::ethers::core::abi::Error::InvalidData.into()) @@ -509,32 +5565,46 @@ pub mod erc20 { impl ::ethers::core::abi::AbiEncode for ERC20Calls { fn encode(self) -> Vec { match self { - Self::DomainSeparator(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Allowance(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Allowance(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } Self::Approve(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::BalanceOf(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Decimals(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::BalanceOf(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Decimals(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::DecreaseAllowance(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::IncreaseAllowance(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } Self::Name(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Nonces(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Permit(element) => ::ethers::core::abi::AbiEncode::encode(element), Self::Symbol(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::TotalSupply(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Transfer(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::TransferFrom(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::TotalSupply(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Transfer(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::TransferFrom(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } } } } impl ::core::fmt::Display for ERC20Calls { fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { match self { - Self::DomainSeparator(element) => ::core::fmt::Display::fmt(element, f), Self::Allowance(element) => ::core::fmt::Display::fmt(element, f), Self::Approve(element) => ::core::fmt::Display::fmt(element, f), Self::BalanceOf(element) => ::core::fmt::Display::fmt(element, f), Self::Decimals(element) => ::core::fmt::Display::fmt(element, f), + Self::DecreaseAllowance(element) => ::core::fmt::Display::fmt(element, f), + Self::IncreaseAllowance(element) => ::core::fmt::Display::fmt(element, f), Self::Name(element) => ::core::fmt::Display::fmt(element, f), - Self::Nonces(element) => ::core::fmt::Display::fmt(element, f), - Self::Permit(element) => ::core::fmt::Display::fmt(element, f), Self::Symbol(element) => ::core::fmt::Display::fmt(element, f), Self::TotalSupply(element) => ::core::fmt::Display::fmt(element, f), Self::Transfer(element) => ::core::fmt::Display::fmt(element, f), @@ -542,11 +5612,6 @@ pub mod erc20 { } } } - impl ::core::convert::From for ERC20Calls { - fn from(value: DomainSeparatorCall) -> Self { - Self::DomainSeparator(value) - } - } impl ::core::convert::From for ERC20Calls { fn from(value: AllowanceCall) -> Self { Self::Allowance(value) @@ -567,19 +5632,19 @@ pub mod erc20 { Self::Decimals(value) } } - impl ::core::convert::From for ERC20Calls { - fn from(value: NameCall) -> Self { - Self::Name(value) + impl ::core::convert::From for ERC20Calls { + fn from(value: DecreaseAllowanceCall) -> Self { + Self::DecreaseAllowance(value) } } - impl ::core::convert::From for ERC20Calls { - fn from(value: NoncesCall) -> Self { - Self::Nonces(value) + impl ::core::convert::From for ERC20Calls { + fn from(value: IncreaseAllowanceCall) -> Self { + Self::IncreaseAllowance(value) } } - impl ::core::convert::From for ERC20Calls { - fn from(value: PermitCall) -> Self { - Self::Permit(value) + impl ::core::convert::From for ERC20Calls { + fn from(value: NameCall) -> Self { + Self::Name(value) } } impl ::core::convert::From for ERC20Calls { @@ -602,7 +5667,7 @@ pub mod erc20 { Self::TransferFrom(value) } } - ///Container type for all return fields from the `DOMAIN_SEPARATOR` function with signature `DOMAIN_SEPARATOR()` and selector `0x3644e515` + ///Container type for all return fields from the `allowance` function with signature `allowance(address,address)` and selector `0xdd62ed3e` #[derive( Clone, ::ethers::contract::EthAbiType, @@ -611,10 +5676,10 @@ pub mod erc20 { Debug, PartialEq, Eq, - Hash, + Hash )] - pub struct DomainSeparatorReturn(pub [u8; 32]); - ///Container type for all return fields from the `allowance` function with signature `allowance(address,address)` and selector `0xdd62ed3e` + pub struct AllowanceReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` #[derive( Clone, ::ethers::contract::EthAbiType, @@ -623,10 +5688,10 @@ pub mod erc20 { Debug, PartialEq, Eq, - Hash, + Hash )] - pub struct AllowanceReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` + pub struct ApproveReturn(pub bool); + ///Container type for all return fields from the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` #[derive( Clone, ::ethers::contract::EthAbiType, @@ -635,10 +5700,10 @@ pub mod erc20 { Debug, PartialEq, Eq, - Hash, + Hash )] - pub struct ApproveReturn(pub bool); - ///Container type for all return fields from the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` + pub struct BalanceOfReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `decimals` function with signature `decimals()` and selector `0x313ce567` #[derive( Clone, ::ethers::contract::EthAbiType, @@ -647,10 +5712,10 @@ pub mod erc20 { Debug, PartialEq, Eq, - Hash, + Hash )] - pub struct BalanceOfReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `decimals` function with signature `decimals()` and selector `0x313ce567` + pub struct DecimalsReturn(pub u8); + ///Container type for all return fields from the `decreaseAllowance` function with signature `decreaseAllowance(address,uint256)` and selector `0xa457c2d7` #[derive( Clone, ::ethers::contract::EthAbiType, @@ -659,10 +5724,10 @@ pub mod erc20 { Debug, PartialEq, Eq, - Hash, + Hash )] - pub struct DecimalsReturn(pub u8); - ///Container type for all return fields from the `name` function with signature `name()` and selector `0x06fdde03` + pub struct DecreaseAllowanceReturn(pub bool); + ///Container type for all return fields from the `increaseAllowance` function with signature `increaseAllowance(address,uint256)` and selector `0x39509351` #[derive( Clone, ::ethers::contract::EthAbiType, @@ -671,10 +5736,10 @@ pub mod erc20 { Debug, PartialEq, Eq, - Hash, + Hash )] - pub struct NameReturn(pub ::std::string::String); - ///Container type for all return fields from the `nonces` function with signature `nonces(address)` and selector `0x7ecebe00` + pub struct IncreaseAllowanceReturn(pub bool); + ///Container type for all return fields from the `name` function with signature `name()` and selector `0x06fdde03` #[derive( Clone, ::ethers::contract::EthAbiType, @@ -683,9 +5748,9 @@ pub mod erc20 { Debug, PartialEq, Eq, - Hash, + Hash )] - pub struct NoncesReturn(pub ::ethers::core::types::U256); + pub struct NameReturn(pub ::std::string::String); ///Container type for all return fields from the `symbol` function with signature `symbol()` and selector `0x95d89b41` #[derive( Clone, @@ -695,7 +5760,7 @@ pub mod erc20 { Debug, PartialEq, Eq, - Hash, + Hash )] pub struct SymbolReturn(pub ::std::string::String); ///Container type for all return fields from the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd` @@ -707,7 +5772,7 @@ pub mod erc20 { Debug, PartialEq, Eq, - Hash, + Hash )] pub struct TotalSupplyReturn(pub ::ethers::core::types::U256); ///Container type for all return fields from the `transfer` function with signature `transfer(address,uint256)` and selector `0xa9059cbb` @@ -719,7 +5784,7 @@ pub mod erc20 { Debug, PartialEq, Eq, - Hash, + Hash )] pub struct TransferReturn(pub bool); ///Container type for all return fields from the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd` @@ -731,7 +5796,7 @@ pub mod erc20 { Debug, PartialEq, Eq, - Hash, + Hash )] pub struct TransferFromReturn(pub bool); } diff --git a/crates/bindings/src/fee_on_transfer_token.rs b/crates/bindings/src/fee_on_transfer_token.rs deleted file mode 100644 index 669cb031..00000000 --- a/crates/bindings/src/fee_on_transfer_token.rs +++ /dev/null @@ -1,8307 +0,0 @@ -pub use fee_on_transfer_token::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types -)] -pub mod fee_on_transfer_token { - #[rustfmt::skip] - const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\",\"components\":[]},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Approval\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Transfer\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"burn\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"mint\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\",\"components\":[]},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\",\"components\":[]},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"permit\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]}]"; - ///The parsed JSON ABI of the contract. - pub static FEEONTRANSFERTOKEN_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = - ::ethers::contract::Lazy::new(|| { - ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid") - }); - #[rustfmt::skip] - const __BYTECODE: &[u8] = &[ - 96, - 224, - 96, - 64, - 82, - 52, - 128, - 21, - 98, - 0, - 0, - 17, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 96, - 64, - 81, - 98, - 0, - 16, - 163, - 56, - 3, - 128, - 98, - 0, - 16, - 163, - 131, - 57, - 129, - 1, - 96, - 64, - 129, - 144, - 82, - 98, - 0, - 0, - 52, - 145, - 98, - 0, - 2, - 160, - 86, - 91, - 130, - 130, - 130, - 130, - 130, - 130, - 130, - 96, - 0, - 144, - 128, - 81, - 144, - 96, - 32, - 1, - 144, - 98, - 0, - 0, - 82, - 146, - 145, - 144, - 98, - 0, - 1, - 45, - 86, - 91, - 80, - 129, - 81, - 98, - 0, - 0, - 104, - 144, - 96, - 1, - 144, - 96, - 32, - 133, - 1, - 144, - 98, - 0, - 1, - 45, - 86, - 91, - 80, - 96, - 255, - 129, - 22, - 96, - 128, - 82, - 70, - 96, - 160, - 82, - 98, - 0, - 0, - 126, - 98, - 0, - 0, - 145, - 86, - 91, - 96, - 192, - 82, - 80, - 98, - 0, - 4, - 4, - 151, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 127, - 139, - 115, - 195, - 198, - 155, - 184, - 254, - 61, - 81, - 46, - 204, - 76, - 247, - 89, - 204, - 121, - 35, - 159, - 123, - 23, - 155, - 15, - 250, - 202, - 169, - 167, - 93, - 82, - 43, - 57, - 64, - 15, - 96, - 0, - 96, - 64, - 81, - 98, - 0, - 0, - 197, - 145, - 144, - 98, - 0, - 3, - 97, - 86, - 91, - 96, - 64, - 128, - 81, - 145, - 130, - 144, - 3, - 130, - 32, - 96, - 32, - 131, - 1, - 147, - 144, - 147, - 82, - 129, - 1, - 145, - 144, - 145, - 82, - 127, - 200, - 158, - 253, - 170, - 84, - 192, - 242, - 12, - 122, - 223, - 97, - 40, - 130, - 223, - 9, - 80, - 245, - 169, - 81, - 99, - 126, - 3, - 7, - 205, - 203, - 76, - 103, - 47, - 41, - 139, - 139, - 198, - 96, - 96, - 130, - 1, - 82, - 70, - 96, - 128, - 130, - 1, - 82, - 48, - 96, - 160, - 130, - 1, - 82, - 96, - 192, - 1, - 96, - 64, - 81, - 96, - 32, - 129, - 131, - 3, - 3, - 129, - 82, - 144, - 96, - 64, - 82, - 128, - 81, - 144, - 96, - 32, - 1, - 32, - 144, - 80, - 144, - 86, - 91, - 130, - 128, - 84, - 98, - 0, - 1, - 59, - 144, - 98, - 0, - 3, - 37, - 86, - 91, - 144, - 96, - 0, - 82, - 96, - 32, - 96, - 0, - 32, - 144, - 96, - 31, - 1, - 96, - 32, - 144, - 4, - 129, - 1, - 146, - 130, - 98, - 0, - 1, - 95, - 87, - 96, - 0, - 133, - 85, - 98, - 0, - 1, - 170, - 86, - 91, - 130, - 96, - 31, - 16, - 98, - 0, - 1, - 122, - 87, - 128, - 81, - 96, - 255, - 25, - 22, - 131, - 128, - 1, - 23, - 133, - 85, - 98, - 0, - 1, - 170, - 86, - 91, - 130, - 128, - 1, - 96, - 1, - 1, - 133, - 85, - 130, - 21, - 98, - 0, - 1, - 170, - 87, - 145, - 130, - 1, - 91, - 130, - 129, - 17, - 21, - 98, - 0, - 1, - 170, - 87, - 130, - 81, - 130, - 85, - 145, - 96, - 32, - 1, - 145, - 144, - 96, - 1, - 1, - 144, - 98, - 0, - 1, - 141, - 86, - 91, - 80, - 98, - 0, - 1, - 184, - 146, - 145, - 80, - 98, - 0, - 1, - 188, - 86, - 91, - 80, - 144, - 86, - 91, - 91, - 128, - 130, - 17, - 21, - 98, - 0, - 1, - 184, - 87, - 96, - 0, - 129, - 85, - 96, - 1, - 1, - 98, - 0, - 1, - 189, - 86, - 91, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 65, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 96, - 0, - 130, - 96, - 31, - 131, - 1, - 18, - 98, - 0, - 1, - 251, - 87, - 96, - 0, - 128, - 253, - 91, - 129, - 81, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 128, - 130, - 17, - 21, - 98, - 0, - 2, - 24, - 87, - 98, - 0, - 2, - 24, - 98, - 0, - 1, - 211, - 86, - 91, - 96, - 64, - 81, - 96, - 31, - 131, - 1, - 96, - 31, - 25, - 144, - 129, - 22, - 96, - 63, - 1, - 22, - 129, - 1, - 144, - 130, - 130, - 17, - 129, - 131, - 16, - 23, - 21, - 98, - 0, - 2, - 67, - 87, - 98, - 0, - 2, - 67, - 98, - 0, - 1, - 211, - 86, - 91, - 129, - 96, - 64, - 82, - 131, - 129, - 82, - 96, - 32, - 146, - 80, - 134, - 131, - 133, - 136, - 1, - 1, - 17, - 21, - 98, - 0, - 2, - 96, - 87, - 96, - 0, - 128, - 253, - 91, - 96, - 0, - 145, - 80, - 91, - 131, - 130, - 16, - 21, - 98, - 0, - 2, - 132, - 87, - 133, - 130, - 1, - 131, - 1, - 81, - 129, - 131, - 1, - 132, - 1, - 82, - 144, - 130, - 1, - 144, - 98, - 0, - 2, - 101, - 86, - 91, - 131, - 130, - 17, - 21, - 98, - 0, - 2, - 150, - 87, - 96, - 0, - 131, - 133, - 131, - 1, - 1, - 82, - 91, - 150, - 149, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 96, - 96, - 132, - 134, - 3, - 18, - 21, - 98, - 0, - 2, - 182, - 87, - 96, - 0, - 128, - 253, - 91, - 131, - 81, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 128, - 130, - 17, - 21, - 98, - 0, - 2, - 206, - 87, - 96, - 0, - 128, - 253, - 91, - 98, - 0, - 2, - 220, - 135, - 131, - 136, - 1, - 98, - 0, - 1, - 233, - 86, - 91, - 148, - 80, - 96, - 32, - 134, - 1, - 81, - 145, - 80, - 128, - 130, - 17, - 21, - 98, - 0, - 2, - 243, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 98, - 0, - 3, - 2, - 134, - 130, - 135, - 1, - 98, - 0, - 1, - 233, - 86, - 91, - 146, - 80, - 80, - 96, - 64, - 132, - 1, - 81, - 96, - 255, - 129, - 22, - 129, - 20, - 98, - 0, - 3, - 26, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 145, - 80, - 80, - 146, - 80, - 146, - 80, - 146, - 86, - 91, - 96, - 1, - 129, - 129, - 28, - 144, - 130, - 22, - 128, - 98, - 0, - 3, - 58, - 87, - 96, - 127, - 130, - 22, - 145, - 80, - 91, - 96, - 32, - 130, - 16, - 129, - 3, - 98, - 0, - 3, - 91, - 87, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 34, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 80, - 145, - 144, - 80, - 86, - 91, - 96, - 0, - 128, - 131, - 84, - 129, - 96, - 1, - 130, - 129, - 28, - 145, - 80, - 128, - 131, - 22, - 128, - 98, - 0, - 3, - 126, - 87, - 96, - 127, - 131, - 22, - 146, - 80, - 91, - 96, - 32, - 128, - 132, - 16, - 130, - 3, - 98, - 0, - 3, - 158, - 87, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 134, - 82, - 96, - 34, - 96, - 4, - 82, - 96, - 36, - 134, - 253, - 91, - 129, - 128, - 21, - 98, - 0, - 3, - 181, - 87, - 96, - 1, - 129, - 20, - 98, - 0, - 3, - 199, - 87, - 98, - 0, - 3, - 246, - 86, - 91, - 96, - 255, - 25, - 134, - 22, - 137, - 82, - 132, - 137, - 1, - 150, - 80, - 98, - 0, - 3, - 246, - 86, - 91, - 96, - 0, - 138, - 129, - 82, - 96, - 32, - 144, - 32, - 96, - 0, - 91, - 134, - 129, - 16, - 21, - 98, - 0, - 3, - 238, - 87, - 129, - 84, - 139, - 130, - 1, - 82, - 144, - 133, - 1, - 144, - 131, - 1, - 98, - 0, - 3, - 211, - 86, - 91, - 80, - 80, - 132, - 137, - 1, - 150, - 80, - 91, - 80, - 148, - 152, - 151, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 128, - 81, - 96, - 160, - 81, - 96, - 192, - 81, - 97, - 12, - 111, - 98, - 0, - 4, - 52, - 96, - 0, - 57, - 96, - 0, - 97, - 3, - 243, - 1, - 82, - 96, - 0, - 97, - 3, - 190, - 1, - 82, - 96, - 0, - 97, - 1, - 95, - 1, - 82, - 97, - 12, - 111, - 96, - 0, - 243, - 254, - 96, - 128, - 96, - 64, - 82, - 52, - 128, - 21, - 97, - 0, - 16, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 96, - 4, - 54, - 16, - 97, - 0, - 234, - 87, - 96, - 0, - 53, - 96, - 224, - 28, - 128, - 99, - 112, - 160, - 130, - 49, - 17, - 97, - 0, - 140, - 87, - 128, - 99, - 157, - 194, - 159, - 172, - 17, - 97, - 0, - 102, - 87, - 128, - 99, - 157, - 194, - 159, - 172, - 20, - 97, - 1, - 248, - 87, - 128, - 99, - 169, - 5, - 156, - 187, - 20, - 97, - 2, - 11, - 87, - 128, - 99, - 213, - 5, - 172, - 207, - 20, - 97, - 2, - 30, - 87, - 128, - 99, - 221, - 98, - 237, - 62, - 20, - 97, - 2, - 49, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 99, - 112, - 160, - 130, - 49, - 20, - 97, - 1, - 176, - 87, - 128, - 99, - 126, - 206, - 190, - 0, - 20, - 97, - 1, - 208, - 87, - 128, - 99, - 149, - 216, - 155, - 65, - 20, - 97, - 1, - 240, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 99, - 35, - 184, - 114, - 221, - 17, - 97, - 0, - 200, - 87, - 128, - 99, - 35, - 184, - 114, - 221, - 20, - 97, - 1, - 71, - 87, - 128, - 99, - 49, - 60, - 229, - 103, - 20, - 97, - 1, - 90, - 87, - 128, - 99, - 54, - 68, - 229, - 21, - 20, - 97, - 1, - 147, - 87, - 128, - 99, - 64, - 193, - 15, - 25, - 20, - 97, - 1, - 155, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 99, - 6, - 253, - 222, - 3, - 20, - 97, - 0, - 239, - 87, - 128, - 99, - 9, - 94, - 167, - 179, - 20, - 97, - 1, - 13, - 87, - 128, - 99, - 24, - 22, - 13, - 221, - 20, - 97, - 1, - 48, - 87, - 91, - 96, - 0, - 128, - 253, - 91, - 97, - 0, - 247, - 97, - 2, - 92, - 86, - 91, - 96, - 64, - 81, - 97, - 1, - 4, - 145, - 144, - 97, - 9, - 31, - 86, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 243, - 91, - 97, - 1, - 32, - 97, - 1, - 27, - 54, - 96, - 4, - 97, - 9, - 144, - 86, - 91, - 97, - 2, - 234, - 86, - 91, - 96, - 64, - 81, - 144, - 21, - 21, - 129, - 82, - 96, - 32, - 1, - 97, - 1, - 4, - 86, - 91, - 97, - 1, - 57, - 96, - 2, - 84, - 129, - 86, - 91, - 96, - 64, - 81, - 144, - 129, - 82, - 96, - 32, - 1, - 97, - 1, - 4, - 86, - 91, - 97, - 1, - 32, - 97, - 1, - 85, - 54, - 96, - 4, - 97, - 9, - 186, - 86, - 91, - 97, - 3, - 86, - 86, - 91, - 97, - 1, - 129, - 127, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 129, - 86, - 91, - 96, - 64, - 81, - 96, - 255, - 144, - 145, - 22, - 129, - 82, - 96, - 32, - 1, - 97, - 1, - 4, - 86, - 91, - 97, - 1, - 57, - 97, - 3, - 186, - 86, - 91, - 97, - 1, - 174, - 97, - 1, - 169, - 54, - 96, - 4, - 97, - 9, - 144, - 86, - 91, - 97, - 4, - 21, - 86, - 91, - 0, - 91, - 97, - 1, - 57, - 97, - 1, - 190, - 54, - 96, - 4, - 97, - 9, - 246, - 86, - 91, - 96, - 3, - 96, - 32, - 82, - 96, - 0, - 144, - 129, - 82, - 96, - 64, - 144, - 32, - 84, - 129, - 86, - 91, - 97, - 1, - 57, - 97, - 1, - 222, - 54, - 96, - 4, - 97, - 9, - 246, - 86, - 91, - 96, - 5, - 96, - 32, - 82, - 96, - 0, - 144, - 129, - 82, - 96, - 64, - 144, - 32, - 84, - 129, - 86, - 91, - 97, - 0, - 247, - 97, - 4, - 35, - 86, - 91, - 97, - 1, - 174, - 97, - 2, - 6, - 54, - 96, - 4, - 97, - 9, - 144, - 86, - 91, - 97, - 4, - 48, - 86, - 91, - 97, - 1, - 32, - 97, - 2, - 25, - 54, - 96, - 4, - 97, - 9, - 144, - 86, - 91, - 97, - 4, - 58, - 86, - 91, - 97, - 1, - 174, - 97, - 2, - 44, - 54, - 96, - 4, - 97, - 10, - 24, - 86, - 91, - 97, - 4, - 160, - 86, - 91, - 97, - 1, - 57, - 97, - 2, - 63, - 54, - 96, - 4, - 97, - 10, - 139, - 86, - 91, - 96, - 4, - 96, - 32, - 144, - 129, - 82, - 96, - 0, - 146, - 131, - 82, - 96, - 64, - 128, - 132, - 32, - 144, - 145, - 82, - 144, - 130, - 82, - 144, - 32, - 84, - 129, - 86, - 91, - 96, - 0, - 128, - 84, - 97, - 2, - 105, - 144, - 97, - 10, - 190, - 86, - 91, - 128, - 96, - 31, - 1, - 96, - 32, - 128, - 145, - 4, - 2, - 96, - 32, - 1, - 96, - 64, - 81, - 144, - 129, - 1, - 96, - 64, - 82, - 128, - 146, - 145, - 144, - 129, - 129, - 82, - 96, - 32, - 1, - 130, - 128, - 84, - 97, - 2, - 149, - 144, - 97, - 10, - 190, - 86, - 91, - 128, - 21, - 97, - 2, - 226, - 87, - 128, - 96, - 31, - 16, - 97, - 2, - 183, - 87, - 97, - 1, - 0, - 128, - 131, - 84, - 4, - 2, - 131, - 82, - 145, - 96, - 32, - 1, - 145, - 97, - 2, - 226, - 86, - 91, - 130, - 1, - 145, - 144, - 96, - 0, - 82, - 96, - 32, - 96, - 0, - 32, - 144, - 91, - 129, - 84, - 129, - 82, - 144, - 96, - 1, - 1, - 144, - 96, - 32, - 1, - 128, - 131, - 17, - 97, - 2, - 197, - 87, - 130, - 144, - 3, - 96, - 31, - 22, - 130, - 1, - 145, - 91, - 80, - 80, - 80, - 80, - 80, - 129, - 86, - 91, - 51, - 96, - 0, - 129, - 129, - 82, - 96, - 4, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 135, - 22, - 128, - 133, - 82, - 146, - 82, - 128, - 131, - 32, - 133, - 144, - 85, - 81, - 145, - 146, - 144, - 145, - 127, - 140, - 91, - 225, - 229, - 235, - 236, - 125, - 91, - 209, - 79, - 113, - 66, - 125, - 30, - 132, - 243, - 221, - 3, - 20, - 192, - 247, - 178, - 41, - 30, - 91, - 32, - 10, - 200, - 199, - 195, - 185, - 37, - 144, - 97, - 3, - 69, - 144, - 134, - 129, - 82, - 96, - 32, - 1, - 144, - 86, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 163, - 80, - 96, - 1, - 146, - 145, - 80, - 80, - 86, - 91, - 96, - 0, - 97, - 3, - 99, - 132, - 132, - 132, - 97, - 6, - 233, - 86, - 91, - 80, - 96, - 0, - 96, - 100, - 97, - 3, - 115, - 132, - 96, - 1, - 97, - 11, - 14, - 86, - 91, - 97, - 3, - 125, - 145, - 144, - 97, - 11, - 45, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 133, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 3, - 96, - 32, - 82, - 96, - 64, - 129, - 32, - 128, - 84, - 146, - 147, - 80, - 131, - 146, - 144, - 145, - 144, - 97, - 3, - 170, - 144, - 132, - 144, - 97, - 11, - 79, - 86, - 91, - 144, - 145, - 85, - 80, - 96, - 1, - 150, - 149, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 127, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 70, - 20, - 97, - 3, - 240, - 87, - 97, - 3, - 235, - 97, - 7, - 201, - 86, - 91, - 144, - 80, - 144, - 86, - 91, - 80, - 127, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 144, - 86, - 91, - 97, - 4, - 31, - 130, - 130, - 97, - 8, - 99, - 86, - 91, - 80, - 80, - 86, - 91, - 96, - 1, - 128, - 84, - 97, - 2, - 105, - 144, - 97, - 10, - 190, - 86, - 91, - 97, - 4, - 31, - 130, - 130, - 97, - 8, - 189, - 86, - 91, - 51, - 96, - 0, - 144, - 129, - 82, - 96, - 3, - 96, - 32, - 82, - 96, - 64, - 129, - 32, - 128, - 84, - 131, - 145, - 144, - 131, - 144, - 97, - 4, - 91, - 144, - 132, - 144, - 97, - 11, - 79, - 86, - 91, - 144, - 145, - 85, - 80, - 80, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 131, - 22, - 96, - 0, - 129, - 129, - 82, - 96, - 3, - 96, - 32, - 82, - 96, - 64, - 144, - 129, - 144, - 32, - 128, - 84, - 133, - 1, - 144, - 85, - 81, - 51, - 144, - 96, - 0, - 128, - 81, - 96, - 32, - 97, - 12, - 26, - 131, - 57, - 129, - 81, - 145, - 82, - 144, - 97, - 3, - 69, - 144, - 134, - 129, - 82, - 96, - 32, - 1, - 144, - 86, - 91, - 66, - 132, - 16, - 21, - 97, - 4, - 245, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 23, - 96, - 36, - 130, - 1, - 82, - 127, - 80, - 69, - 82, - 77, - 73, - 84, - 95, - 68, - 69, - 65, - 68, - 76, - 73, - 78, - 69, - 95, - 69, - 88, - 80, - 73, - 82, - 69, - 68, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 96, - 68, - 130, - 1, - 82, - 96, - 100, - 1, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 0, - 96, - 1, - 97, - 5, - 1, - 97, - 3, - 186, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 138, - 129, - 22, - 96, - 0, - 129, - 129, - 82, - 96, - 5, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 145, - 130, - 144, - 32, - 128, - 84, - 96, - 1, - 129, - 1, - 144, - 145, - 85, - 130, - 81, - 127, - 110, - 113, - 237, - 174, - 18, - 177, - 185, - 127, - 77, - 31, - 96, - 55, - 15, - 239, - 16, - 16, - 95, - 162, - 250, - 174, - 1, - 38, - 17, - 74, - 22, - 156, - 100, - 132, - 93, - 97, - 38, - 201, - 129, - 132, - 1, - 82, - 128, - 132, - 1, - 148, - 144, - 148, - 82, - 147, - 141, - 22, - 96, - 96, - 132, - 1, - 82, - 96, - 128, - 131, - 1, - 140, - 144, - 82, - 96, - 160, - 131, - 1, - 147, - 144, - 147, - 82, - 96, - 192, - 128, - 131, - 1, - 139, - 144, - 82, - 129, - 81, - 128, - 132, - 3, - 144, - 145, - 1, - 129, - 82, - 96, - 224, - 131, - 1, - 144, - 145, - 82, - 128, - 81, - 146, - 1, - 145, - 144, - 145, - 32, - 97, - 25, - 1, - 96, - 240, - 27, - 97, - 1, - 0, - 131, - 1, - 82, - 97, - 1, - 2, - 130, - 1, - 146, - 144, - 146, - 82, - 97, - 1, - 34, - 129, - 1, - 145, - 144, - 145, - 82, - 97, - 1, - 66, - 1, - 96, - 64, - 128, - 81, - 96, - 31, - 25, - 129, - 132, - 3, - 1, - 129, - 82, - 130, - 130, - 82, - 128, - 81, - 96, - 32, - 145, - 130, - 1, - 32, - 96, - 0, - 132, - 82, - 144, - 131, - 1, - 128, - 131, - 82, - 82, - 96, - 255, - 135, - 22, - 144, - 130, - 1, - 82, - 96, - 96, - 129, - 1, - 133, - 144, - 82, - 96, - 128, - 129, - 1, - 132, - 144, - 82, - 96, - 160, - 1, - 96, - 32, - 96, - 64, - 81, - 96, - 32, - 129, - 3, - 144, - 128, - 132, - 3, - 144, - 133, - 90, - 250, - 21, - 128, - 21, - 97, - 6, - 13, - 87, - 61, - 96, - 0, - 128, - 62, - 61, - 96, - 0, - 253, - 91, - 80, - 80, - 96, - 64, - 81, - 96, - 31, - 25, - 1, - 81, - 145, - 80, - 80, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 129, - 22, - 21, - 128, - 21, - 144, - 97, - 6, - 67, - 87, - 80, - 135, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 20, - 91, - 97, - 6, - 128, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 14, - 96, - 36, - 130, - 1, - 82, - 109, - 36, - 167, - 43, - 32, - 166, - 36, - 162, - 47, - 169, - 164, - 163, - 167, - 34, - 169, - 96, - 145, - 27, - 96, - 68, - 130, - 1, - 82, - 96, - 100, - 1, - 97, - 4, - 236, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 144, - 129, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 4, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 138, - 133, - 22, - 128, - 133, - 82, - 144, - 131, - 82, - 146, - 129, - 144, - 32, - 137, - 144, - 85, - 81, - 136, - 129, - 82, - 145, - 146, - 138, - 22, - 145, - 127, - 140, - 91, - 225, - 229, - 235, - 236, - 125, - 91, - 209, - 79, - 113, - 66, - 125, - 30, - 132, - 243, - 221, - 3, - 20, - 192, - 247, - 178, - 41, - 30, - 91, - 32, - 10, - 200, - 199, - 195, - 185, - 37, - 145, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 163, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 131, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 4, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 51, - 132, - 82, - 144, - 145, - 82, - 129, - 32, - 84, - 96, - 0, - 25, - 129, - 20, - 97, - 7, - 69, - 87, - 97, - 7, - 32, - 131, - 130, - 97, - 11, - 79, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 134, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 4, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 51, - 132, - 82, - 144, - 145, - 82, - 144, - 32, - 85, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 133, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 3, - 96, - 32, - 82, - 96, - 64, - 129, - 32, - 128, - 84, - 133, - 146, - 144, - 97, - 7, - 109, - 144, - 132, - 144, - 97, - 11, - 79, - 86, - 91, - 144, - 145, - 85, - 80, - 80, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 128, - 133, - 22, - 96, - 0, - 129, - 129, - 82, - 96, - 3, - 96, - 32, - 82, - 96, - 64, - 144, - 129, - 144, - 32, - 128, - 84, - 135, - 1, - 144, - 85, - 81, - 144, - 145, - 135, - 22, - 144, - 96, - 0, - 128, - 81, - 96, - 32, - 97, - 12, - 26, - 131, - 57, - 129, - 81, - 145, - 82, - 144, - 97, - 7, - 182, - 144, - 135, - 129, - 82, - 96, - 32, - 1, - 144, - 86, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 163, - 80, - 96, - 1, - 148, - 147, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 127, - 139, - 115, - 195, - 198, - 155, - 184, - 254, - 61, - 81, - 46, - 204, - 76, - 247, - 89, - 204, - 121, - 35, - 159, - 123, - 23, - 155, - 15, - 250, - 202, - 169, - 167, - 93, - 82, - 43, - 57, - 64, - 15, - 96, - 0, - 96, - 64, - 81, - 97, - 7, - 251, - 145, - 144, - 97, - 11, - 102, - 86, - 91, - 96, - 64, - 128, - 81, - 145, - 130, - 144, - 3, - 130, - 32, - 96, - 32, - 131, - 1, - 147, - 144, - 147, - 82, - 129, - 1, - 145, - 144, - 145, - 82, - 127, - 200, - 158, - 253, - 170, - 84, - 192, - 242, - 12, - 122, - 223, - 97, - 40, - 130, - 223, - 9, - 80, - 245, - 169, - 81, - 99, - 126, - 3, - 7, - 205, - 203, - 76, - 103, - 47, - 41, - 139, - 139, - 198, - 96, - 96, - 130, - 1, - 82, - 70, - 96, - 128, - 130, - 1, - 82, - 48, - 96, - 160, - 130, - 1, - 82, - 96, - 192, - 1, - 96, - 64, - 81, - 96, - 32, - 129, - 131, - 3, - 3, - 129, - 82, - 144, - 96, - 64, - 82, - 128, - 81, - 144, - 96, - 32, - 1, - 32, - 144, - 80, - 144, - 86, - 91, - 128, - 96, - 2, - 96, - 0, - 130, - 130, - 84, - 97, - 8, - 117, - 145, - 144, - 97, - 12, - 1, - 86, - 91, - 144, - 145, - 85, - 80, - 80, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 130, - 22, - 96, - 0, - 129, - 129, - 82, - 96, - 3, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 128, - 84, - 134, - 1, - 144, - 85, - 81, - 132, - 129, - 82, - 96, - 0, - 128, - 81, - 96, - 32, - 97, - 12, - 26, - 131, - 57, - 129, - 81, - 145, - 82, - 145, - 1, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 163, - 80, - 80, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 130, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 3, - 96, - 32, - 82, - 96, - 64, - 129, - 32, - 128, - 84, - 131, - 146, - 144, - 97, - 8, - 229, - 144, - 132, - 144, - 97, - 11, - 79, - 86, - 91, - 144, - 145, - 85, - 80, - 80, - 96, - 2, - 128, - 84, - 130, - 144, - 3, - 144, - 85, - 96, - 64, - 81, - 129, - 129, - 82, - 96, - 0, - 144, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 132, - 22, - 144, - 96, - 0, - 128, - 81, - 96, - 32, - 97, - 12, - 26, - 131, - 57, - 129, - 81, - 145, - 82, - 144, - 96, - 32, - 1, - 97, - 8, - 177, - 86, - 91, - 96, - 0, - 96, - 32, - 128, - 131, - 82, - 131, - 81, - 128, - 130, - 133, - 1, - 82, - 96, - 0, - 91, - 129, - 129, - 16, - 21, - 97, - 9, - 76, - 87, - 133, - 129, - 1, - 131, - 1, - 81, - 133, - 130, - 1, - 96, - 64, - 1, - 82, - 130, - 1, - 97, - 9, - 48, - 86, - 91, - 129, - 129, - 17, - 21, - 97, - 9, - 94, - 87, - 96, - 0, - 96, - 64, - 131, - 135, - 1, - 1, - 82, - 91, - 80, - 96, - 31, - 1, - 96, - 31, - 25, - 22, - 146, - 144, - 146, - 1, - 96, - 64, - 1, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 128, - 53, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 129, - 22, - 129, - 20, - 97, - 9, - 139, - 87, - 96, - 0, - 128, - 253, - 91, - 145, - 144, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 64, - 131, - 133, - 3, - 18, - 21, - 97, - 9, - 163, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 9, - 172, - 131, - 97, - 9, - 116, - 86, - 91, - 148, - 96, - 32, - 147, - 144, - 147, - 1, - 53, - 147, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 96, - 96, - 132, - 134, - 3, - 18, - 21, - 97, - 9, - 207, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 9, - 216, - 132, - 97, - 9, - 116, - 86, - 91, - 146, - 80, - 97, - 9, - 230, - 96, - 32, - 133, - 1, - 97, - 9, - 116, - 86, - 91, - 145, - 80, - 96, - 64, - 132, - 1, - 53, - 144, - 80, - 146, - 80, - 146, - 80, - 146, - 86, - 91, - 96, - 0, - 96, - 32, - 130, - 132, - 3, - 18, - 21, - 97, - 10, - 8, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 10, - 17, - 130, - 97, - 9, - 116, - 86, - 91, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 128, - 96, - 0, - 128, - 96, - 0, - 96, - 224, - 136, - 138, - 3, - 18, - 21, - 97, - 10, - 51, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 10, - 60, - 136, - 97, - 9, - 116, - 86, - 91, - 150, - 80, - 97, - 10, - 74, - 96, - 32, - 137, - 1, - 97, - 9, - 116, - 86, - 91, - 149, - 80, - 96, - 64, - 136, - 1, - 53, - 148, - 80, - 96, - 96, - 136, - 1, - 53, - 147, - 80, - 96, - 128, - 136, - 1, - 53, - 96, - 255, - 129, - 22, - 129, - 20, - 97, - 10, - 110, - 87, - 96, - 0, - 128, - 253, - 91, - 150, - 153, - 149, - 152, - 80, - 147, - 150, - 146, - 149, - 148, - 96, - 160, - 132, - 1, - 53, - 148, - 80, - 96, - 192, - 144, - 147, - 1, - 53, - 146, - 145, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 64, - 131, - 133, - 3, - 18, - 21, - 97, - 10, - 158, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 10, - 167, - 131, - 97, - 9, - 116, - 86, - 91, - 145, - 80, - 97, - 10, - 181, - 96, - 32, - 132, - 1, - 97, - 9, - 116, - 86, - 91, - 144, - 80, - 146, - 80, - 146, - 144, - 80, - 86, - 91, - 96, - 1, - 129, - 129, - 28, - 144, - 130, - 22, - 128, - 97, - 10, - 210, - 87, - 96, - 127, - 130, - 22, - 145, - 80, - 91, - 96, - 32, - 130, - 16, - 129, - 3, - 97, - 10, - 242, - 87, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 34, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 80, - 145, - 144, - 80, - 86, - 91, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 17, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 96, - 0, - 129, - 96, - 0, - 25, - 4, - 131, - 17, - 130, - 21, - 21, - 22, - 21, - 97, - 11, - 40, - 87, - 97, - 11, - 40, - 97, - 10, - 248, - 86, - 91, - 80, - 2, - 144, - 86, - 91, - 96, - 0, - 130, - 97, - 11, - 74, - 87, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 18, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 80, - 4, - 144, - 86, - 91, - 96, - 0, - 130, - 130, - 16, - 21, - 97, - 11, - 97, - 87, - 97, - 11, - 97, - 97, - 10, - 248, - 86, - 91, - 80, - 3, - 144, - 86, - 91, - 96, - 0, - 128, - 131, - 84, - 129, - 96, - 1, - 130, - 129, - 28, - 145, - 80, - 128, - 131, - 22, - 128, - 97, - 11, - 130, - 87, - 96, - 127, - 131, - 22, - 146, - 80, - 91, - 96, - 32, - 128, - 132, - 16, - 130, - 3, - 97, - 11, - 161, - 87, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 134, - 82, - 96, - 34, - 96, - 4, - 82, - 96, - 36, - 134, - 253, - 91, - 129, - 128, - 21, - 97, - 11, - 181, - 87, - 96, - 1, - 129, - 20, - 97, - 11, - 198, - 87, - 97, - 11, - 243, - 86, - 91, - 96, - 255, - 25, - 134, - 22, - 137, - 82, - 132, - 137, - 1, - 150, - 80, - 97, - 11, - 243, - 86, - 91, - 96, - 0, - 138, - 129, - 82, - 96, - 32, - 144, - 32, - 96, - 0, - 91, - 134, - 129, - 16, - 21, - 97, - 11, - 235, - 87, - 129, - 84, - 139, - 130, - 1, - 82, - 144, - 133, - 1, - 144, - 131, - 1, - 97, - 11, - 210, - 86, - 91, - 80, - 80, - 132, - 137, - 1, - 150, - 80, - 91, - 80, - 148, - 152, - 151, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 130, - 25, - 130, - 17, - 21, - 97, - 12, - 20, - 87, - 97, - 12, - 20, - 97, - 10, - 248, - 86, - 91, - 80, - 1, - 144, - 86, - 254, - 221, - 242, - 82, - 173, - 27, - 226, - 200, - 155, - 105, - 194, - 176, - 104, - 252, - 55, - 141, - 170, - 149, - 43, - 167, - 241, - 99, - 196, - 161, - 22, - 40, - 245, - 90, - 77, - 245, - 35, - 179, - 239, - 162, - 100, - 105, - 112, - 102, - 115, - 88, - 34, - 18, - 32, - 223, - 106, - 233, - 123, - 247, - 35, - 161, - 180, - 87, - 225, - 58, - 215, - 25, - 1, - 131, - 12, - 87, - 127, - 103, - 61, - 202, - 253, - 33, - 91, - 87, - 158, - 241, - 170, - 34, - 20, - 41, - 249, - 100, - 115, - 111, - 108, - 99, - 67, - 0, - 8, - 13, - 0, - 51, - ]; - ///The bytecode of the contract. - pub static FEEONTRANSFERTOKEN_BYTECODE: ::ethers::core::types::Bytes = - ::ethers::core::types::Bytes::from_static(__BYTECODE); - #[rustfmt::skip] - const __DEPLOYED_BYTECODE: &[u8] = &[ - 96, - 128, - 96, - 64, - 82, - 52, - 128, - 21, - 97, - 0, - 16, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 96, - 4, - 54, - 16, - 97, - 0, - 234, - 87, - 96, - 0, - 53, - 96, - 224, - 28, - 128, - 99, - 112, - 160, - 130, - 49, - 17, - 97, - 0, - 140, - 87, - 128, - 99, - 157, - 194, - 159, - 172, - 17, - 97, - 0, - 102, - 87, - 128, - 99, - 157, - 194, - 159, - 172, - 20, - 97, - 1, - 248, - 87, - 128, - 99, - 169, - 5, - 156, - 187, - 20, - 97, - 2, - 11, - 87, - 128, - 99, - 213, - 5, - 172, - 207, - 20, - 97, - 2, - 30, - 87, - 128, - 99, - 221, - 98, - 237, - 62, - 20, - 97, - 2, - 49, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 99, - 112, - 160, - 130, - 49, - 20, - 97, - 1, - 176, - 87, - 128, - 99, - 126, - 206, - 190, - 0, - 20, - 97, - 1, - 208, - 87, - 128, - 99, - 149, - 216, - 155, - 65, - 20, - 97, - 1, - 240, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 99, - 35, - 184, - 114, - 221, - 17, - 97, - 0, - 200, - 87, - 128, - 99, - 35, - 184, - 114, - 221, - 20, - 97, - 1, - 71, - 87, - 128, - 99, - 49, - 60, - 229, - 103, - 20, - 97, - 1, - 90, - 87, - 128, - 99, - 54, - 68, - 229, - 21, - 20, - 97, - 1, - 147, - 87, - 128, - 99, - 64, - 193, - 15, - 25, - 20, - 97, - 1, - 155, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 99, - 6, - 253, - 222, - 3, - 20, - 97, - 0, - 239, - 87, - 128, - 99, - 9, - 94, - 167, - 179, - 20, - 97, - 1, - 13, - 87, - 128, - 99, - 24, - 22, - 13, - 221, - 20, - 97, - 1, - 48, - 87, - 91, - 96, - 0, - 128, - 253, - 91, - 97, - 0, - 247, - 97, - 2, - 92, - 86, - 91, - 96, - 64, - 81, - 97, - 1, - 4, - 145, - 144, - 97, - 9, - 31, - 86, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 243, - 91, - 97, - 1, - 32, - 97, - 1, - 27, - 54, - 96, - 4, - 97, - 9, - 144, - 86, - 91, - 97, - 2, - 234, - 86, - 91, - 96, - 64, - 81, - 144, - 21, - 21, - 129, - 82, - 96, - 32, - 1, - 97, - 1, - 4, - 86, - 91, - 97, - 1, - 57, - 96, - 2, - 84, - 129, - 86, - 91, - 96, - 64, - 81, - 144, - 129, - 82, - 96, - 32, - 1, - 97, - 1, - 4, - 86, - 91, - 97, - 1, - 32, - 97, - 1, - 85, - 54, - 96, - 4, - 97, - 9, - 186, - 86, - 91, - 97, - 3, - 86, - 86, - 91, - 97, - 1, - 129, - 127, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 129, - 86, - 91, - 96, - 64, - 81, - 96, - 255, - 144, - 145, - 22, - 129, - 82, - 96, - 32, - 1, - 97, - 1, - 4, - 86, - 91, - 97, - 1, - 57, - 97, - 3, - 186, - 86, - 91, - 97, - 1, - 174, - 97, - 1, - 169, - 54, - 96, - 4, - 97, - 9, - 144, - 86, - 91, - 97, - 4, - 21, - 86, - 91, - 0, - 91, - 97, - 1, - 57, - 97, - 1, - 190, - 54, - 96, - 4, - 97, - 9, - 246, - 86, - 91, - 96, - 3, - 96, - 32, - 82, - 96, - 0, - 144, - 129, - 82, - 96, - 64, - 144, - 32, - 84, - 129, - 86, - 91, - 97, - 1, - 57, - 97, - 1, - 222, - 54, - 96, - 4, - 97, - 9, - 246, - 86, - 91, - 96, - 5, - 96, - 32, - 82, - 96, - 0, - 144, - 129, - 82, - 96, - 64, - 144, - 32, - 84, - 129, - 86, - 91, - 97, - 0, - 247, - 97, - 4, - 35, - 86, - 91, - 97, - 1, - 174, - 97, - 2, - 6, - 54, - 96, - 4, - 97, - 9, - 144, - 86, - 91, - 97, - 4, - 48, - 86, - 91, - 97, - 1, - 32, - 97, - 2, - 25, - 54, - 96, - 4, - 97, - 9, - 144, - 86, - 91, - 97, - 4, - 58, - 86, - 91, - 97, - 1, - 174, - 97, - 2, - 44, - 54, - 96, - 4, - 97, - 10, - 24, - 86, - 91, - 97, - 4, - 160, - 86, - 91, - 97, - 1, - 57, - 97, - 2, - 63, - 54, - 96, - 4, - 97, - 10, - 139, - 86, - 91, - 96, - 4, - 96, - 32, - 144, - 129, - 82, - 96, - 0, - 146, - 131, - 82, - 96, - 64, - 128, - 132, - 32, - 144, - 145, - 82, - 144, - 130, - 82, - 144, - 32, - 84, - 129, - 86, - 91, - 96, - 0, - 128, - 84, - 97, - 2, - 105, - 144, - 97, - 10, - 190, - 86, - 91, - 128, - 96, - 31, - 1, - 96, - 32, - 128, - 145, - 4, - 2, - 96, - 32, - 1, - 96, - 64, - 81, - 144, - 129, - 1, - 96, - 64, - 82, - 128, - 146, - 145, - 144, - 129, - 129, - 82, - 96, - 32, - 1, - 130, - 128, - 84, - 97, - 2, - 149, - 144, - 97, - 10, - 190, - 86, - 91, - 128, - 21, - 97, - 2, - 226, - 87, - 128, - 96, - 31, - 16, - 97, - 2, - 183, - 87, - 97, - 1, - 0, - 128, - 131, - 84, - 4, - 2, - 131, - 82, - 145, - 96, - 32, - 1, - 145, - 97, - 2, - 226, - 86, - 91, - 130, - 1, - 145, - 144, - 96, - 0, - 82, - 96, - 32, - 96, - 0, - 32, - 144, - 91, - 129, - 84, - 129, - 82, - 144, - 96, - 1, - 1, - 144, - 96, - 32, - 1, - 128, - 131, - 17, - 97, - 2, - 197, - 87, - 130, - 144, - 3, - 96, - 31, - 22, - 130, - 1, - 145, - 91, - 80, - 80, - 80, - 80, - 80, - 129, - 86, - 91, - 51, - 96, - 0, - 129, - 129, - 82, - 96, - 4, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 135, - 22, - 128, - 133, - 82, - 146, - 82, - 128, - 131, - 32, - 133, - 144, - 85, - 81, - 145, - 146, - 144, - 145, - 127, - 140, - 91, - 225, - 229, - 235, - 236, - 125, - 91, - 209, - 79, - 113, - 66, - 125, - 30, - 132, - 243, - 221, - 3, - 20, - 192, - 247, - 178, - 41, - 30, - 91, - 32, - 10, - 200, - 199, - 195, - 185, - 37, - 144, - 97, - 3, - 69, - 144, - 134, - 129, - 82, - 96, - 32, - 1, - 144, - 86, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 163, - 80, - 96, - 1, - 146, - 145, - 80, - 80, - 86, - 91, - 96, - 0, - 97, - 3, - 99, - 132, - 132, - 132, - 97, - 6, - 233, - 86, - 91, - 80, - 96, - 0, - 96, - 100, - 97, - 3, - 115, - 132, - 96, - 1, - 97, - 11, - 14, - 86, - 91, - 97, - 3, - 125, - 145, - 144, - 97, - 11, - 45, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 133, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 3, - 96, - 32, - 82, - 96, - 64, - 129, - 32, - 128, - 84, - 146, - 147, - 80, - 131, - 146, - 144, - 145, - 144, - 97, - 3, - 170, - 144, - 132, - 144, - 97, - 11, - 79, - 86, - 91, - 144, - 145, - 85, - 80, - 96, - 1, - 150, - 149, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 127, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 70, - 20, - 97, - 3, - 240, - 87, - 97, - 3, - 235, - 97, - 7, - 201, - 86, - 91, - 144, - 80, - 144, - 86, - 91, - 80, - 127, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 144, - 86, - 91, - 97, - 4, - 31, - 130, - 130, - 97, - 8, - 99, - 86, - 91, - 80, - 80, - 86, - 91, - 96, - 1, - 128, - 84, - 97, - 2, - 105, - 144, - 97, - 10, - 190, - 86, - 91, - 97, - 4, - 31, - 130, - 130, - 97, - 8, - 189, - 86, - 91, - 51, - 96, - 0, - 144, - 129, - 82, - 96, - 3, - 96, - 32, - 82, - 96, - 64, - 129, - 32, - 128, - 84, - 131, - 145, - 144, - 131, - 144, - 97, - 4, - 91, - 144, - 132, - 144, - 97, - 11, - 79, - 86, - 91, - 144, - 145, - 85, - 80, - 80, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 131, - 22, - 96, - 0, - 129, - 129, - 82, - 96, - 3, - 96, - 32, - 82, - 96, - 64, - 144, - 129, - 144, - 32, - 128, - 84, - 133, - 1, - 144, - 85, - 81, - 51, - 144, - 96, - 0, - 128, - 81, - 96, - 32, - 97, - 12, - 26, - 131, - 57, - 129, - 81, - 145, - 82, - 144, - 97, - 3, - 69, - 144, - 134, - 129, - 82, - 96, - 32, - 1, - 144, - 86, - 91, - 66, - 132, - 16, - 21, - 97, - 4, - 245, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 23, - 96, - 36, - 130, - 1, - 82, - 127, - 80, - 69, - 82, - 77, - 73, - 84, - 95, - 68, - 69, - 65, - 68, - 76, - 73, - 78, - 69, - 95, - 69, - 88, - 80, - 73, - 82, - 69, - 68, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 96, - 68, - 130, - 1, - 82, - 96, - 100, - 1, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 0, - 96, - 1, - 97, - 5, - 1, - 97, - 3, - 186, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 138, - 129, - 22, - 96, - 0, - 129, - 129, - 82, - 96, - 5, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 145, - 130, - 144, - 32, - 128, - 84, - 96, - 1, - 129, - 1, - 144, - 145, - 85, - 130, - 81, - 127, - 110, - 113, - 237, - 174, - 18, - 177, - 185, - 127, - 77, - 31, - 96, - 55, - 15, - 239, - 16, - 16, - 95, - 162, - 250, - 174, - 1, - 38, - 17, - 74, - 22, - 156, - 100, - 132, - 93, - 97, - 38, - 201, - 129, - 132, - 1, - 82, - 128, - 132, - 1, - 148, - 144, - 148, - 82, - 147, - 141, - 22, - 96, - 96, - 132, - 1, - 82, - 96, - 128, - 131, - 1, - 140, - 144, - 82, - 96, - 160, - 131, - 1, - 147, - 144, - 147, - 82, - 96, - 192, - 128, - 131, - 1, - 139, - 144, - 82, - 129, - 81, - 128, - 132, - 3, - 144, - 145, - 1, - 129, - 82, - 96, - 224, - 131, - 1, - 144, - 145, - 82, - 128, - 81, - 146, - 1, - 145, - 144, - 145, - 32, - 97, - 25, - 1, - 96, - 240, - 27, - 97, - 1, - 0, - 131, - 1, - 82, - 97, - 1, - 2, - 130, - 1, - 146, - 144, - 146, - 82, - 97, - 1, - 34, - 129, - 1, - 145, - 144, - 145, - 82, - 97, - 1, - 66, - 1, - 96, - 64, - 128, - 81, - 96, - 31, - 25, - 129, - 132, - 3, - 1, - 129, - 82, - 130, - 130, - 82, - 128, - 81, - 96, - 32, - 145, - 130, - 1, - 32, - 96, - 0, - 132, - 82, - 144, - 131, - 1, - 128, - 131, - 82, - 82, - 96, - 255, - 135, - 22, - 144, - 130, - 1, - 82, - 96, - 96, - 129, - 1, - 133, - 144, - 82, - 96, - 128, - 129, - 1, - 132, - 144, - 82, - 96, - 160, - 1, - 96, - 32, - 96, - 64, - 81, - 96, - 32, - 129, - 3, - 144, - 128, - 132, - 3, - 144, - 133, - 90, - 250, - 21, - 128, - 21, - 97, - 6, - 13, - 87, - 61, - 96, - 0, - 128, - 62, - 61, - 96, - 0, - 253, - 91, - 80, - 80, - 96, - 64, - 81, - 96, - 31, - 25, - 1, - 81, - 145, - 80, - 80, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 129, - 22, - 21, - 128, - 21, - 144, - 97, - 6, - 67, - 87, - 80, - 135, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 20, - 91, - 97, - 6, - 128, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 14, - 96, - 36, - 130, - 1, - 82, - 109, - 36, - 167, - 43, - 32, - 166, - 36, - 162, - 47, - 169, - 164, - 163, - 167, - 34, - 169, - 96, - 145, - 27, - 96, - 68, - 130, - 1, - 82, - 96, - 100, - 1, - 97, - 4, - 236, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 144, - 129, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 4, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 138, - 133, - 22, - 128, - 133, - 82, - 144, - 131, - 82, - 146, - 129, - 144, - 32, - 137, - 144, - 85, - 81, - 136, - 129, - 82, - 145, - 146, - 138, - 22, - 145, - 127, - 140, - 91, - 225, - 229, - 235, - 236, - 125, - 91, - 209, - 79, - 113, - 66, - 125, - 30, - 132, - 243, - 221, - 3, - 20, - 192, - 247, - 178, - 41, - 30, - 91, - 32, - 10, - 200, - 199, - 195, - 185, - 37, - 145, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 163, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 131, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 4, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 51, - 132, - 82, - 144, - 145, - 82, - 129, - 32, - 84, - 96, - 0, - 25, - 129, - 20, - 97, - 7, - 69, - 87, - 97, - 7, - 32, - 131, - 130, - 97, - 11, - 79, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 134, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 4, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 51, - 132, - 82, - 144, - 145, - 82, - 144, - 32, - 85, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 133, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 3, - 96, - 32, - 82, - 96, - 64, - 129, - 32, - 128, - 84, - 133, - 146, - 144, - 97, - 7, - 109, - 144, - 132, - 144, - 97, - 11, - 79, - 86, - 91, - 144, - 145, - 85, - 80, - 80, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 128, - 133, - 22, - 96, - 0, - 129, - 129, - 82, - 96, - 3, - 96, - 32, - 82, - 96, - 64, - 144, - 129, - 144, - 32, - 128, - 84, - 135, - 1, - 144, - 85, - 81, - 144, - 145, - 135, - 22, - 144, - 96, - 0, - 128, - 81, - 96, - 32, - 97, - 12, - 26, - 131, - 57, - 129, - 81, - 145, - 82, - 144, - 97, - 7, - 182, - 144, - 135, - 129, - 82, - 96, - 32, - 1, - 144, - 86, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 163, - 80, - 96, - 1, - 148, - 147, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 127, - 139, - 115, - 195, - 198, - 155, - 184, - 254, - 61, - 81, - 46, - 204, - 76, - 247, - 89, - 204, - 121, - 35, - 159, - 123, - 23, - 155, - 15, - 250, - 202, - 169, - 167, - 93, - 82, - 43, - 57, - 64, - 15, - 96, - 0, - 96, - 64, - 81, - 97, - 7, - 251, - 145, - 144, - 97, - 11, - 102, - 86, - 91, - 96, - 64, - 128, - 81, - 145, - 130, - 144, - 3, - 130, - 32, - 96, - 32, - 131, - 1, - 147, - 144, - 147, - 82, - 129, - 1, - 145, - 144, - 145, - 82, - 127, - 200, - 158, - 253, - 170, - 84, - 192, - 242, - 12, - 122, - 223, - 97, - 40, - 130, - 223, - 9, - 80, - 245, - 169, - 81, - 99, - 126, - 3, - 7, - 205, - 203, - 76, - 103, - 47, - 41, - 139, - 139, - 198, - 96, - 96, - 130, - 1, - 82, - 70, - 96, - 128, - 130, - 1, - 82, - 48, - 96, - 160, - 130, - 1, - 82, - 96, - 192, - 1, - 96, - 64, - 81, - 96, - 32, - 129, - 131, - 3, - 3, - 129, - 82, - 144, - 96, - 64, - 82, - 128, - 81, - 144, - 96, - 32, - 1, - 32, - 144, - 80, - 144, - 86, - 91, - 128, - 96, - 2, - 96, - 0, - 130, - 130, - 84, - 97, - 8, - 117, - 145, - 144, - 97, - 12, - 1, - 86, - 91, - 144, - 145, - 85, - 80, - 80, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 130, - 22, - 96, - 0, - 129, - 129, - 82, - 96, - 3, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 128, - 84, - 134, - 1, - 144, - 85, - 81, - 132, - 129, - 82, - 96, - 0, - 128, - 81, - 96, - 32, - 97, - 12, - 26, - 131, - 57, - 129, - 81, - 145, - 82, - 145, - 1, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 163, - 80, - 80, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 130, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 3, - 96, - 32, - 82, - 96, - 64, - 129, - 32, - 128, - 84, - 131, - 146, - 144, - 97, - 8, - 229, - 144, - 132, - 144, - 97, - 11, - 79, - 86, - 91, - 144, - 145, - 85, - 80, - 80, - 96, - 2, - 128, - 84, - 130, - 144, - 3, - 144, - 85, - 96, - 64, - 81, - 129, - 129, - 82, - 96, - 0, - 144, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 132, - 22, - 144, - 96, - 0, - 128, - 81, - 96, - 32, - 97, - 12, - 26, - 131, - 57, - 129, - 81, - 145, - 82, - 144, - 96, - 32, - 1, - 97, - 8, - 177, - 86, - 91, - 96, - 0, - 96, - 32, - 128, - 131, - 82, - 131, - 81, - 128, - 130, - 133, - 1, - 82, - 96, - 0, - 91, - 129, - 129, - 16, - 21, - 97, - 9, - 76, - 87, - 133, - 129, - 1, - 131, - 1, - 81, - 133, - 130, - 1, - 96, - 64, - 1, - 82, - 130, - 1, - 97, - 9, - 48, - 86, - 91, - 129, - 129, - 17, - 21, - 97, - 9, - 94, - 87, - 96, - 0, - 96, - 64, - 131, - 135, - 1, - 1, - 82, - 91, - 80, - 96, - 31, - 1, - 96, - 31, - 25, - 22, - 146, - 144, - 146, - 1, - 96, - 64, - 1, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 128, - 53, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 129, - 22, - 129, - 20, - 97, - 9, - 139, - 87, - 96, - 0, - 128, - 253, - 91, - 145, - 144, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 64, - 131, - 133, - 3, - 18, - 21, - 97, - 9, - 163, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 9, - 172, - 131, - 97, - 9, - 116, - 86, - 91, - 148, - 96, - 32, - 147, - 144, - 147, - 1, - 53, - 147, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 96, - 96, - 132, - 134, - 3, - 18, - 21, - 97, - 9, - 207, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 9, - 216, - 132, - 97, - 9, - 116, - 86, - 91, - 146, - 80, - 97, - 9, - 230, - 96, - 32, - 133, - 1, - 97, - 9, - 116, - 86, - 91, - 145, - 80, - 96, - 64, - 132, - 1, - 53, - 144, - 80, - 146, - 80, - 146, - 80, - 146, - 86, - 91, - 96, - 0, - 96, - 32, - 130, - 132, - 3, - 18, - 21, - 97, - 10, - 8, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 10, - 17, - 130, - 97, - 9, - 116, - 86, - 91, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 128, - 96, - 0, - 128, - 96, - 0, - 96, - 224, - 136, - 138, - 3, - 18, - 21, - 97, - 10, - 51, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 10, - 60, - 136, - 97, - 9, - 116, - 86, - 91, - 150, - 80, - 97, - 10, - 74, - 96, - 32, - 137, - 1, - 97, - 9, - 116, - 86, - 91, - 149, - 80, - 96, - 64, - 136, - 1, - 53, - 148, - 80, - 96, - 96, - 136, - 1, - 53, - 147, - 80, - 96, - 128, - 136, - 1, - 53, - 96, - 255, - 129, - 22, - 129, - 20, - 97, - 10, - 110, - 87, - 96, - 0, - 128, - 253, - 91, - 150, - 153, - 149, - 152, - 80, - 147, - 150, - 146, - 149, - 148, - 96, - 160, - 132, - 1, - 53, - 148, - 80, - 96, - 192, - 144, - 147, - 1, - 53, - 146, - 145, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 64, - 131, - 133, - 3, - 18, - 21, - 97, - 10, - 158, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 10, - 167, - 131, - 97, - 9, - 116, - 86, - 91, - 145, - 80, - 97, - 10, - 181, - 96, - 32, - 132, - 1, - 97, - 9, - 116, - 86, - 91, - 144, - 80, - 146, - 80, - 146, - 144, - 80, - 86, - 91, - 96, - 1, - 129, - 129, - 28, - 144, - 130, - 22, - 128, - 97, - 10, - 210, - 87, - 96, - 127, - 130, - 22, - 145, - 80, - 91, - 96, - 32, - 130, - 16, - 129, - 3, - 97, - 10, - 242, - 87, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 34, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 80, - 145, - 144, - 80, - 86, - 91, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 17, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 96, - 0, - 129, - 96, - 0, - 25, - 4, - 131, - 17, - 130, - 21, - 21, - 22, - 21, - 97, - 11, - 40, - 87, - 97, - 11, - 40, - 97, - 10, - 248, - 86, - 91, - 80, - 2, - 144, - 86, - 91, - 96, - 0, - 130, - 97, - 11, - 74, - 87, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 18, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 80, - 4, - 144, - 86, - 91, - 96, - 0, - 130, - 130, - 16, - 21, - 97, - 11, - 97, - 87, - 97, - 11, - 97, - 97, - 10, - 248, - 86, - 91, - 80, - 3, - 144, - 86, - 91, - 96, - 0, - 128, - 131, - 84, - 129, - 96, - 1, - 130, - 129, - 28, - 145, - 80, - 128, - 131, - 22, - 128, - 97, - 11, - 130, - 87, - 96, - 127, - 131, - 22, - 146, - 80, - 91, - 96, - 32, - 128, - 132, - 16, - 130, - 3, - 97, - 11, - 161, - 87, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 134, - 82, - 96, - 34, - 96, - 4, - 82, - 96, - 36, - 134, - 253, - 91, - 129, - 128, - 21, - 97, - 11, - 181, - 87, - 96, - 1, - 129, - 20, - 97, - 11, - 198, - 87, - 97, - 11, - 243, - 86, - 91, - 96, - 255, - 25, - 134, - 22, - 137, - 82, - 132, - 137, - 1, - 150, - 80, - 97, - 11, - 243, - 86, - 91, - 96, - 0, - 138, - 129, - 82, - 96, - 32, - 144, - 32, - 96, - 0, - 91, - 134, - 129, - 16, - 21, - 97, - 11, - 235, - 87, - 129, - 84, - 139, - 130, - 1, - 82, - 144, - 133, - 1, - 144, - 131, - 1, - 97, - 11, - 210, - 86, - 91, - 80, - 80, - 132, - 137, - 1, - 150, - 80, - 91, - 80, - 148, - 152, - 151, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 130, - 25, - 130, - 17, - 21, - 97, - 12, - 20, - 87, - 97, - 12, - 20, - 97, - 10, - 248, - 86, - 91, - 80, - 1, - 144, - 86, - 254, - 221, - 242, - 82, - 173, - 27, - 226, - 200, - 155, - 105, - 194, - 176, - 104, - 252, - 55, - 141, - 170, - 149, - 43, - 167, - 241, - 99, - 196, - 161, - 22, - 40, - 245, - 90, - 77, - 245, - 35, - 179, - 239, - 162, - 100, - 105, - 112, - 102, - 115, - 88, - 34, - 18, - 32, - 223, - 106, - 233, - 123, - 247, - 35, - 161, - 180, - 87, - 225, - 58, - 215, - 25, - 1, - 131, - 12, - 87, - 127, - 103, - 61, - 202, - 253, - 33, - 91, - 87, - 158, - 241, - 170, - 34, - 20, - 41, - 249, - 100, - 115, - 111, - 108, - 99, - 67, - 0, - 8, - 13, - 0, - 51, - ]; - ///The deployed bytecode of the contract. - pub static FEEONTRANSFERTOKEN_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = - ::ethers::core::types::Bytes::from_static(__DEPLOYED_BYTECODE); - pub struct FeeOnTransferToken(::ethers::contract::Contract); - impl ::core::clone::Clone for FeeOnTransferToken { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for FeeOnTransferToken { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for FeeOnTransferToken { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for FeeOnTransferToken { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(stringify!(FeeOnTransferToken)) - .field(&self.address()) - .finish() - } - } - impl FeeOnTransferToken { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self(::ethers::contract::Contract::new( - address.into(), - FEEONTRANSFERTOKEN_ABI.clone(), - client, - )) - } - /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. - /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction - /// - /// Notes: - /// - If there are no constructor arguments, you should pass `()` as the argument. - /// - The default poll duration is 7 seconds. - /// - The default number of confirmations is 1 block. - /// - /// - /// # Example - /// - /// Generate contract bindings with `abigen!` and deploy a new contract instance. - /// - /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. - /// - /// ```ignore - /// # async fn deploy(client: ::std::sync::Arc) { - /// abigen!(Greeter, "../greeter.json"); - /// - /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); - /// let msg = greeter_contract.greet().call().await.unwrap(); - /// # } - /// ``` - pub fn deploy( - client: ::std::sync::Arc, - constructor_args: T, - ) -> ::core::result::Result< - ::ethers::contract::builders::ContractDeployer, - ::ethers::contract::ContractError, - > { - let factory = ::ethers::contract::ContractFactory::new( - FEEONTRANSFERTOKEN_ABI.clone(), - FEEONTRANSFERTOKEN_BYTECODE.clone().into(), - client, - ); - let deployer = factory.deploy(constructor_args)?; - let deployer = ::ethers::contract::ContractDeployer::new(deployer); - Ok(deployer) - } - ///Calls the contract's `DOMAIN_SEPARATOR` (0x3644e515) function - pub fn domain_separator(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([54, 68, 229, 21], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `allowance` (0xdd62ed3e) function - pub fn allowance( - &self, - p0: ::ethers::core::types::Address, - p1: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([221, 98, 237, 62], (p0, p1)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `approve` (0x095ea7b3) function - pub fn approve( - &self, - spender: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([9, 94, 167, 179], (spender, amount)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `balanceOf` (0x70a08231) function - pub fn balance_of( - &self, - p0: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([112, 160, 130, 49], p0) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `burn` (0x9dc29fac) function - pub fn burn( - &self, - from: ::ethers::core::types::Address, - value: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([157, 194, 159, 172], (from, value)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `decimals` (0x313ce567) function - pub fn decimals(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([49, 60, 229, 103], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `mint` (0x40c10f19) function - pub fn mint( - &self, - to: ::ethers::core::types::Address, - value: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([64, 193, 15, 25], (to, value)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `name` (0x06fdde03) function - pub fn name(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([6, 253, 222, 3], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `nonces` (0x7ecebe00) function - pub fn nonces( - &self, - p0: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([126, 206, 190, 0], p0) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `permit` (0xd505accf) function - pub fn permit( - &self, - owner: ::ethers::core::types::Address, - spender: ::ethers::core::types::Address, - value: ::ethers::core::types::U256, - deadline: ::ethers::core::types::U256, - v: u8, - r: [u8; 32], - s: [u8; 32], - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash( - [213, 5, 172, 207], - (owner, spender, value, deadline, v, r, s), - ) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `symbol` (0x95d89b41) function - pub fn symbol( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([149, 216, 155, 65], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `totalSupply` (0x18160ddd) function - pub fn total_supply( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([24, 22, 13, 221], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `transfer` (0xa9059cbb) function - pub fn transfer( - &self, - to: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([169, 5, 156, 187], (to, amount)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `transferFrom` (0x23b872dd) function - pub fn transfer_from( - &self, - from: ::ethers::core::types::Address, - to: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([35, 184, 114, 221], (from, to, amount)) - .expect("method not found (this should never happen)") - } - ///Gets the contract's `Approval` event - pub fn approval_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, ApprovalFilter> { - self.0.event() - } - ///Gets the contract's `Transfer` event - pub fn transfer_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, TransferFilter> { - self.0.event() - } - /// Returns an `Event` builder for all the events of this contract. - pub fn events( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, FeeOnTransferTokenEvents> - { - self.0 - .event_with_filter(::core::default::Default::default()) - } - } - impl From<::ethers::contract::Contract> - for FeeOnTransferToken - { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent(name = "Approval", abi = "Approval(address,address,uint256)")] - pub struct ApprovalFilter { - #[ethevent(indexed)] - pub owner: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub spender: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent(name = "Transfer", abi = "Transfer(address,address,uint256)")] - pub struct TransferFilter { - #[ethevent(indexed)] - pub from: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub to: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - ///Container type for all of the contract's events - #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] - pub enum FeeOnTransferTokenEvents { - ApprovalFilter(ApprovalFilter), - TransferFilter(TransferFilter), - } - impl ::ethers::contract::EthLogDecode for FeeOnTransferTokenEvents { - fn decode_log( - log: &::ethers::core::abi::RawLog, - ) -> ::core::result::Result { - if let Ok(decoded) = ApprovalFilter::decode_log(log) { - return Ok(FeeOnTransferTokenEvents::ApprovalFilter(decoded)); - } - if let Ok(decoded) = TransferFilter::decode_log(log) { - return Ok(FeeOnTransferTokenEvents::TransferFilter(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData) - } - } - impl ::core::fmt::Display for FeeOnTransferTokenEvents { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::ApprovalFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::TransferFilter(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for FeeOnTransferTokenEvents { - fn from(value: ApprovalFilter) -> Self { - Self::ApprovalFilter(value) - } - } - impl ::core::convert::From for FeeOnTransferTokenEvents { - fn from(value: TransferFilter) -> Self { - Self::TransferFilter(value) - } - } - ///Container type for all input parameters for the `DOMAIN_SEPARATOR` function with signature `DOMAIN_SEPARATOR()` and selector `0x3644e515` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "DOMAIN_SEPARATOR", abi = "DOMAIN_SEPARATOR()")] - pub struct DomainSeparatorCall; - ///Container type for all input parameters for the `allowance` function with signature `allowance(address,address)` and selector `0xdd62ed3e` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "allowance", abi = "allowance(address,address)")] - pub struct AllowanceCall( - pub ::ethers::core::types::Address, - pub ::ethers::core::types::Address, - ); - ///Container type for all input parameters for the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "approve", abi = "approve(address,uint256)")] - pub struct ApproveCall { - pub spender: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "balanceOf", abi = "balanceOf(address)")] - pub struct BalanceOfCall(pub ::ethers::core::types::Address); - ///Container type for all input parameters for the `burn` function with signature `burn(address,uint256)` and selector `0x9dc29fac` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "burn", abi = "burn(address,uint256)")] - pub struct BurnCall { - pub from: ::ethers::core::types::Address, - pub value: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `decimals` function with signature `decimals()` and selector `0x313ce567` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "decimals", abi = "decimals()")] - pub struct DecimalsCall; - ///Container type for all input parameters for the `mint` function with signature `mint(address,uint256)` and selector `0x40c10f19` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "mint", abi = "mint(address,uint256)")] - pub struct MintCall { - pub to: ::ethers::core::types::Address, - pub value: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `name` function with signature `name()` and selector `0x06fdde03` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "name", abi = "name()")] - pub struct NameCall; - ///Container type for all input parameters for the `nonces` function with signature `nonces(address)` and selector `0x7ecebe00` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "nonces", abi = "nonces(address)")] - pub struct NoncesCall(pub ::ethers::core::types::Address); - ///Container type for all input parameters for the `permit` function with signature `permit(address,address,uint256,uint256,uint8,bytes32,bytes32)` and selector `0xd505accf` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall( - name = "permit", - abi = "permit(address,address,uint256,uint256,uint8,bytes32,bytes32)" - )] - pub struct PermitCall { - pub owner: ::ethers::core::types::Address, - pub spender: ::ethers::core::types::Address, - pub value: ::ethers::core::types::U256, - pub deadline: ::ethers::core::types::U256, - pub v: u8, - pub r: [u8; 32], - pub s: [u8; 32], - } - ///Container type for all input parameters for the `symbol` function with signature `symbol()` and selector `0x95d89b41` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "symbol", abi = "symbol()")] - pub struct SymbolCall; - ///Container type for all input parameters for the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "totalSupply", abi = "totalSupply()")] - pub struct TotalSupplyCall; - ///Container type for all input parameters for the `transfer` function with signature `transfer(address,uint256)` and selector `0xa9059cbb` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "transfer", abi = "transfer(address,uint256)")] - pub struct TransferCall { - pub to: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "transferFrom", abi = "transferFrom(address,address,uint256)")] - pub struct TransferFromCall { - pub from: ::ethers::core::types::Address, - pub to: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - ///Container type for all of the contract's call - #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] - pub enum FeeOnTransferTokenCalls { - DomainSeparator(DomainSeparatorCall), - Allowance(AllowanceCall), - Approve(ApproveCall), - BalanceOf(BalanceOfCall), - Burn(BurnCall), - Decimals(DecimalsCall), - Mint(MintCall), - Name(NameCall), - Nonces(NoncesCall), - Permit(PermitCall), - Symbol(SymbolCall), - TotalSupply(TotalSupplyCall), - Transfer(TransferCall), - TransferFrom(TransferFromCall), - } - impl ::ethers::core::abi::AbiDecode for FeeOnTransferTokenCalls { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::DomainSeparator(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Allowance(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Approve(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::BalanceOf(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Burn(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Decimals(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Mint(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Name(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Nonces(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Permit(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Symbol(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::TotalSupply(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Transfer(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::TransferFrom(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for FeeOnTransferTokenCalls { - fn encode(self) -> Vec { - match self { - Self::DomainSeparator(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Allowance(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Approve(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::BalanceOf(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Burn(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Decimals(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Mint(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Name(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Nonces(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Permit(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Symbol(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::TotalSupply(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Transfer(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::TransferFrom(element) => ::ethers::core::abi::AbiEncode::encode(element), - } - } - } - impl ::core::fmt::Display for FeeOnTransferTokenCalls { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::DomainSeparator(element) => ::core::fmt::Display::fmt(element, f), - Self::Allowance(element) => ::core::fmt::Display::fmt(element, f), - Self::Approve(element) => ::core::fmt::Display::fmt(element, f), - Self::BalanceOf(element) => ::core::fmt::Display::fmt(element, f), - Self::Burn(element) => ::core::fmt::Display::fmt(element, f), - Self::Decimals(element) => ::core::fmt::Display::fmt(element, f), - Self::Mint(element) => ::core::fmt::Display::fmt(element, f), - Self::Name(element) => ::core::fmt::Display::fmt(element, f), - Self::Nonces(element) => ::core::fmt::Display::fmt(element, f), - Self::Permit(element) => ::core::fmt::Display::fmt(element, f), - Self::Symbol(element) => ::core::fmt::Display::fmt(element, f), - Self::TotalSupply(element) => ::core::fmt::Display::fmt(element, f), - Self::Transfer(element) => ::core::fmt::Display::fmt(element, f), - Self::TransferFrom(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for FeeOnTransferTokenCalls { - fn from(value: DomainSeparatorCall) -> Self { - Self::DomainSeparator(value) - } - } - impl ::core::convert::From for FeeOnTransferTokenCalls { - fn from(value: AllowanceCall) -> Self { - Self::Allowance(value) - } - } - impl ::core::convert::From for FeeOnTransferTokenCalls { - fn from(value: ApproveCall) -> Self { - Self::Approve(value) - } - } - impl ::core::convert::From for FeeOnTransferTokenCalls { - fn from(value: BalanceOfCall) -> Self { - Self::BalanceOf(value) - } - } - impl ::core::convert::From for FeeOnTransferTokenCalls { - fn from(value: BurnCall) -> Self { - Self::Burn(value) - } - } - impl ::core::convert::From for FeeOnTransferTokenCalls { - fn from(value: DecimalsCall) -> Self { - Self::Decimals(value) - } - } - impl ::core::convert::From for FeeOnTransferTokenCalls { - fn from(value: MintCall) -> Self { - Self::Mint(value) - } - } - impl ::core::convert::From for FeeOnTransferTokenCalls { - fn from(value: NameCall) -> Self { - Self::Name(value) - } - } - impl ::core::convert::From for FeeOnTransferTokenCalls { - fn from(value: NoncesCall) -> Self { - Self::Nonces(value) - } - } - impl ::core::convert::From for FeeOnTransferTokenCalls { - fn from(value: PermitCall) -> Self { - Self::Permit(value) - } - } - impl ::core::convert::From for FeeOnTransferTokenCalls { - fn from(value: SymbolCall) -> Self { - Self::Symbol(value) - } - } - impl ::core::convert::From for FeeOnTransferTokenCalls { - fn from(value: TotalSupplyCall) -> Self { - Self::TotalSupply(value) - } - } - impl ::core::convert::From for FeeOnTransferTokenCalls { - fn from(value: TransferCall) -> Self { - Self::Transfer(value) - } - } - impl ::core::convert::From for FeeOnTransferTokenCalls { - fn from(value: TransferFromCall) -> Self { - Self::TransferFrom(value) - } - } - ///Container type for all return fields from the `DOMAIN_SEPARATOR` function with signature `DOMAIN_SEPARATOR()` and selector `0x3644e515` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct DomainSeparatorReturn(pub [u8; 32]); - ///Container type for all return fields from the `allowance` function with signature `allowance(address,address)` and selector `0xdd62ed3e` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct AllowanceReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct ApproveReturn(pub bool); - ///Container type for all return fields from the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct BalanceOfReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `decimals` function with signature `decimals()` and selector `0x313ce567` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct DecimalsReturn(pub u8); - ///Container type for all return fields from the `name` function with signature `name()` and selector `0x06fdde03` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct NameReturn(pub ::std::string::String); - ///Container type for all return fields from the `nonces` function with signature `nonces(address)` and selector `0x7ecebe00` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct NoncesReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `symbol` function with signature `symbol()` and selector `0x95d89b41` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct SymbolReturn(pub ::std::string::String); - ///Container type for all return fields from the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct TotalSupplyReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `transfer` function with signature `transfer(address,uint256)` and selector `0xa9059cbb` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct TransferReturn(pub bool); - ///Container type for all return fields from the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct TransferFromReturn(pub bool); -} diff --git a/crates/bindings/src/fixed_point_math_lib.rs b/crates/bindings/src/fixed_point_math_lib.rs deleted file mode 100644 index 629ab52f..00000000 --- a/crates/bindings/src/fixed_point_math_lib.rs +++ /dev/null @@ -1,343 +0,0 @@ -pub use fixed_point_math_lib::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types -)] -pub mod fixed_point_math_lib { - #[rustfmt::skip] - const __ABI: &str = "[]"; - ///The parsed JSON ABI of the contract. - pub static FIXEDPOINTMATHLIB_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = - ::ethers::contract::Lazy::new(|| { - ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid") - }); - #[rustfmt::skip] - const __BYTECODE: &[u8] = &[ - 96, - 86, - 96, - 55, - 96, - 11, - 130, - 130, - 130, - 57, - 128, - 81, - 96, - 0, - 26, - 96, - 115, - 20, - 96, - 42, - 87, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 0, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 48, - 96, - 0, - 82, - 96, - 115, - 129, - 83, - 130, - 129, - 243, - 254, - 115, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 48, - 20, - 96, - 128, - 96, - 64, - 82, - 96, - 0, - 128, - 253, - 254, - 162, - 100, - 105, - 112, - 102, - 115, - 88, - 34, - 18, - 32, - 10, - 31, - 207, - 94, - 138, - 157, - 89, - 69, - 87, - 143, - 145, - 109, - 224, - 173, - 93, - 237, - 220, - 229, - 204, - 196, - 69, - 167, - 59, - 46, - 155, - 228, - 45, - 45, - 50, - 239, - 24, - 98, - 100, - 115, - 111, - 108, - 99, - 67, - 0, - 8, - 13, - 0, - 51, - ]; - ///The bytecode of the contract. - pub static FIXEDPOINTMATHLIB_BYTECODE: ::ethers::core::types::Bytes = - ::ethers::core::types::Bytes::from_static(__BYTECODE); - #[rustfmt::skip] - const __DEPLOYED_BYTECODE: &[u8] = &[ - 115, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 48, - 20, - 96, - 128, - 96, - 64, - 82, - 96, - 0, - 128, - 253, - 254, - 162, - 100, - 105, - 112, - 102, - 115, - 88, - 34, - 18, - 32, - 10, - 31, - 207, - 94, - 138, - 157, - 89, - 69, - 87, - 143, - 145, - 109, - 224, - 173, - 93, - 237, - 220, - 229, - 204, - 196, - 69, - 167, - 59, - 46, - 155, - 228, - 45, - 45, - 50, - 239, - 24, - 98, - 100, - 115, - 111, - 108, - 99, - 67, - 0, - 8, - 13, - 0, - 51, - ]; - ///The deployed bytecode of the contract. - pub static FIXEDPOINTMATHLIB_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = - ::ethers::core::types::Bytes::from_static(__DEPLOYED_BYTECODE); - pub struct FixedPointMathLib(::ethers::contract::Contract); - impl ::core::clone::Clone for FixedPointMathLib { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for FixedPointMathLib { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for FixedPointMathLib { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for FixedPointMathLib { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(stringify!(FixedPointMathLib)) - .field(&self.address()) - .finish() - } - } - impl FixedPointMathLib { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self(::ethers::contract::Contract::new( - address.into(), - FIXEDPOINTMATHLIB_ABI.clone(), - client, - )) - } - /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. - /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction - /// - /// Notes: - /// - If there are no constructor arguments, you should pass `()` as the argument. - /// - The default poll duration is 7 seconds. - /// - The default number of confirmations is 1 block. - /// - /// - /// # Example - /// - /// Generate contract bindings with `abigen!` and deploy a new contract instance. - /// - /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. - /// - /// ```ignore - /// # async fn deploy(client: ::std::sync::Arc) { - /// abigen!(Greeter, "../greeter.json"); - /// - /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); - /// let msg = greeter_contract.greet().call().await.unwrap(); - /// # } - /// ``` - pub fn deploy( - client: ::std::sync::Arc, - constructor_args: T, - ) -> ::core::result::Result< - ::ethers::contract::builders::ContractDeployer, - ::ethers::contract::ContractError, - > { - let factory = ::ethers::contract::ContractFactory::new( - FIXEDPOINTMATHLIB_ABI.clone(), - FIXEDPOINTMATHLIB_BYTECODE.clone().into(), - client, - ); - let deployer = factory.deploy(constructor_args)?; - let deployer = ::ethers::contract::ContractDeployer::new(deployer); - Ok(deployer) - } - } - impl From<::ethers::contract::Contract> - for FixedPointMathLib - { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } -} diff --git a/crates/bindings/src/gaussian.rs b/crates/bindings/src/gaussian.rs deleted file mode 100644 index 4292c8cf..00000000 --- a/crates/bindings/src/gaussian.rs +++ /dev/null @@ -1,438 +0,0 @@ -pub use gaussian::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types -)] -pub mod gaussian { - #[rustfmt::skip] - const __ABI: &str = "[{\"inputs\":[],\"type\":\"error\",\"name\":\"Infinity\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"NegativeInfinity\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"OutOfBounds\",\"outputs\":[]}]"; - ///The parsed JSON ABI of the contract. - pub static GAUSSIAN_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = - ::ethers::contract::Lazy::new(|| { - ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid") - }); - #[rustfmt::skip] - const __BYTECODE: &[u8] = &[ - 96, - 86, - 96, - 55, - 96, - 11, - 130, - 130, - 130, - 57, - 128, - 81, - 96, - 0, - 26, - 96, - 115, - 20, - 96, - 42, - 87, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 0, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 48, - 96, - 0, - 82, - 96, - 115, - 129, - 83, - 130, - 129, - 243, - 254, - 115, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 48, - 20, - 96, - 128, - 96, - 64, - 82, - 96, - 0, - 128, - 253, - 254, - 162, - 100, - 105, - 112, - 102, - 115, - 88, - 34, - 18, - 32, - 14, - 255, - 23, - 173, - 119, - 102, - 152, - 242, - 172, - 97, - 209, - 235, - 34, - 92, - 219, - 61, - 1, - 48, - 77, - 110, - 66, - 201, - 11, - 36, - 108, - 137, - 175, - 176, - 159, - 142, - 30, - 193, - 100, - 115, - 111, - 108, - 99, - 67, - 0, - 8, - 13, - 0, - 51, - ]; - ///The bytecode of the contract. - pub static GAUSSIAN_BYTECODE: ::ethers::core::types::Bytes = - ::ethers::core::types::Bytes::from_static(__BYTECODE); - #[rustfmt::skip] - const __DEPLOYED_BYTECODE: &[u8] = &[ - 115, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 48, - 20, - 96, - 128, - 96, - 64, - 82, - 96, - 0, - 128, - 253, - 254, - 162, - 100, - 105, - 112, - 102, - 115, - 88, - 34, - 18, - 32, - 14, - 255, - 23, - 173, - 119, - 102, - 152, - 242, - 172, - 97, - 209, - 235, - 34, - 92, - 219, - 61, - 1, - 48, - 77, - 110, - 66, - 201, - 11, - 36, - 108, - 137, - 175, - 176, - 159, - 142, - 30, - 193, - 100, - 115, - 111, - 108, - 99, - 67, - 0, - 8, - 13, - 0, - 51, - ]; - ///The deployed bytecode of the contract. - pub static GAUSSIAN_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = - ::ethers::core::types::Bytes::from_static(__DEPLOYED_BYTECODE); - pub struct Gaussian(::ethers::contract::Contract); - impl ::core::clone::Clone for Gaussian { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for Gaussian { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for Gaussian { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for Gaussian { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(stringify!(Gaussian)) - .field(&self.address()) - .finish() - } - } - impl Gaussian { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self(::ethers::contract::Contract::new( - address.into(), - GAUSSIAN_ABI.clone(), - client, - )) - } - /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. - /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction - /// - /// Notes: - /// - If there are no constructor arguments, you should pass `()` as the argument. - /// - The default poll duration is 7 seconds. - /// - The default number of confirmations is 1 block. - /// - /// - /// # Example - /// - /// Generate contract bindings with `abigen!` and deploy a new contract instance. - /// - /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. - /// - /// ```ignore - /// # async fn deploy(client: ::std::sync::Arc) { - /// abigen!(Greeter, "../greeter.json"); - /// - /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); - /// let msg = greeter_contract.greet().call().await.unwrap(); - /// # } - /// ``` - pub fn deploy( - client: ::std::sync::Arc, - constructor_args: T, - ) -> ::core::result::Result< - ::ethers::contract::builders::ContractDeployer, - ::ethers::contract::ContractError, - > { - let factory = ::ethers::contract::ContractFactory::new( - GAUSSIAN_ABI.clone(), - GAUSSIAN_BYTECODE.clone().into(), - client, - ); - let deployer = factory.deploy(constructor_args)?; - let deployer = ::ethers::contract::ContractDeployer::new(deployer); - Ok(deployer) - } - } - impl From<::ethers::contract::Contract> for Gaussian { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - ///Custom Error type `Infinity` with signature `Infinity()` and selector `0x07a02127` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "Infinity", abi = "Infinity()")] - pub struct Infinity; - ///Custom Error type `NegativeInfinity` with signature `NegativeInfinity()` and selector `0x8bb56614` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "NegativeInfinity", abi = "NegativeInfinity()")] - pub struct NegativeInfinity; - ///Custom Error type `OutOfBounds` with signature `OutOfBounds()` and selector `0xb4120f14` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "OutOfBounds", abi = "OutOfBounds()")] - pub struct OutOfBounds; - ///Container type for all of the contract's custom errors - #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] - pub enum GaussianErrors { - Infinity(Infinity), - NegativeInfinity(NegativeInfinity), - OutOfBounds(OutOfBounds), - } - impl ::ethers::core::abi::AbiDecode for GaussianErrors { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Infinity(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::NegativeInfinity(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::OutOfBounds(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for GaussianErrors { - fn encode(self) -> ::std::vec::Vec { - match self { - Self::Infinity(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::NegativeInfinity(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::OutOfBounds(element) => ::ethers::core::abi::AbiEncode::encode(element), - } - } - } - impl ::core::fmt::Display for GaussianErrors { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::Infinity(element) => ::core::fmt::Display::fmt(element, f), - Self::NegativeInfinity(element) => ::core::fmt::Display::fmt(element, f), - Self::OutOfBounds(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for GaussianErrors { - fn from(value: Infinity) -> Self { - Self::Infinity(value) - } - } - impl ::core::convert::From for GaussianErrors { - fn from(value: NegativeInfinity) -> Self { - Self::NegativeInfinity(value) - } - } - impl ::core::convert::From for GaussianErrors { - fn from(value: OutOfBounds) -> Self { - Self::OutOfBounds(value) - } - } -} diff --git a/crates/bindings/src/i_portfolio.rs b/crates/bindings/src/i_portfolio.rs deleted file mode 100644 index cfca93cc..00000000 --- a/crates/bindings/src/i_portfolio.rs +++ /dev/null @@ -1,1790 +0,0 @@ -pub use i_portfolio::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types -)] -pub mod i_portfolio { - pub use super::super::shared_types::*; - #[rustfmt::skip] - const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaLiquidity\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Allocate\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint16\",\"name\":\"priorityFee\",\"type\":\"uint16\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint16\",\"name\":\"fee\",\"type\":\"uint16\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint16\",\"name\":\"jit\",\"type\":\"uint16\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"ChangeParameters\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"feeAssetDec\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"feeQuoteDec\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true}],\"type\":\"event\",\"name\":\"Collect\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"pairId\",\"type\":\"uint24\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint8\",\"name\":\"decimalsAsset\",\"type\":\"uint8\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint8\",\"name\":\"decimalsQuote\",\"type\":\"uint8\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"CreatePair\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"bool\",\"name\":\"isMutable\",\"type\":\"bool\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"CreatePool\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaLiquidity\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Deallocate\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"DecreaseReserveBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"DecreaseUserBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Deposit\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"IncreaseReserveBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"IncreaseUserBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"sellAsset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"input\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"tokenOut\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"output\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"feeAmountDec\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"int256\",\"name\":\"invariantWad\",\"type\":\"int256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Swap\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"prevFee\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"nextFee\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"UpdateProtocolFee\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\",\"name\":\"VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"WETH\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"priorityFee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"fee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"jit\",\"type\":\"uint16\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"changeParameters\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"deposit\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"draw\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"fund\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"bool\",\"name\":\"sellAsset\",\"type\":\"bool\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getAmountOut\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"int128\",\"name\":\"deltaLiquidity\",\"type\":\"int128\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getLiquidityDeltas\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"deltaAsset\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"deltaQuote\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getMaxLiquidity\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"deltaLiquidity\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getNetBalance\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPairId\",\"outputs\":[{\"internalType\":\"uint24\",\"name\":\"pairId\",\"type\":\"uint24\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPairNonce\",\"outputs\":[{\"internalType\":\"uint24\",\"name\":\"\",\"type\":\"uint24\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"pairNonce\",\"type\":\"uint24\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPoolNonce\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPoolReserves\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getReserve\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getVirtualPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getVirtualReservesPerLiquidity\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"deltaAsset\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"deltaQuote\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\",\"components\":[]}],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"multiprocess\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"pairId\",\"type\":\"uint24\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"pairs\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"tokenAsset\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsAsset\",\"type\":\"uint8\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"tokenQuote\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsQuote\",\"type\":\"uint8\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"pools\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"virtualX\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"virtualY\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"liquidity\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint32\",\"name\":\"lastTimestamp\",\"type\":\"uint32\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"controller\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"invariantGrowthGlobal\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthGlobalAsset\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthGlobalQuote\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"struct PortfolioCurve\",\"name\":\"\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"uint128\",\"name\":\"maxPrice\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"jit\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"fee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"duration\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"volatility\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"priorityFee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint32\",\"name\":\"createdAt\",\"type\":\"uint32\",\"components\":[]},{\"internalType\":\"bool\",\"name\":\"perpetual\",\"type\":\"bool\",\"components\":[]}]},{\"internalType\":\"struct PortfolioPair\",\"name\":\"\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"address\",\"name\":\"tokenAsset\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsAsset\",\"type\":\"uint8\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"tokenQuote\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsQuote\",\"type\":\"uint8\",\"components\":[]}]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"positions\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"freeLiquidity\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint32\",\"name\":\"lastTimestamp\",\"type\":\"uint32\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"invariantGrowthLast\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthAssetLast\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthQuoteLast\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"tokensOwedAsset\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"tokensOwedQuote\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"invariantOwed\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"setProtocolFee\",\"outputs\":[]}]"; - ///The parsed JSON ABI of the contract. - pub static IPORTFOLIO_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = - ::ethers::contract::Lazy::new(|| { - ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid") - }); - pub struct IPortfolio(::ethers::contract::Contract); - impl ::core::clone::Clone for IPortfolio { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for IPortfolio { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for IPortfolio { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for IPortfolio { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(stringify!(IPortfolio)) - .field(&self.address()) - .finish() - } - } - impl IPortfolio { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self(::ethers::contract::Contract::new( - address.into(), - IPORTFOLIO_ABI.clone(), - client, - )) - } - ///Calls the contract's `REGISTRY` (0x06433b1b) function - pub fn registry( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([6, 67, 59, 27], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `VERSION` (0xffa1ad74) function - pub fn version( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([255, 161, 173, 116], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `WETH` (0xad5c4648) function - pub fn weth( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([173, 92, 70, 72], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `changeParameters` (0xaf777855) function - pub fn change_parameters( - &self, - pool_id: u64, - priority_fee: u16, - fee: u16, - jit: u16, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([175, 119, 120, 85], (pool_id, priority_fee, fee, jit)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `deposit` (0xd0e30db0) function - pub fn deposit(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([208, 227, 13, 176], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `draw` (0xad24d6a0) function - pub fn draw( - &self, - token: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - to: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([173, 36, 214, 160], (token, amount, to)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `fund` (0x7b1837de) function - pub fn fund( - &self, - token: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([123, 24, 55, 222], (token, amount)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getAmountOut` (0x7dae4890) function - pub fn get_amount_out( - &self, - pool_id: u64, - sell_asset: bool, - amount_in: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([125, 174, 72, 144], (pool_id, sell_asset, amount_in)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getBalance` (0xd4fac45d) function - pub fn get_balance( - &self, - owner: ::ethers::core::types::Address, - token: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([212, 250, 196, 93], (owner, token)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getLiquidityDeltas` (0x8992f20a) function - pub fn get_liquidity_deltas( - &self, - pool_id: u64, - delta_liquidity: i128, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([137, 146, 242, 10], (pool_id, delta_liquidity)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getMaxLiquidity` (0xd6b7dec5) function - pub fn get_max_liquidity( - &self, - pool_id: u64, - delta_asset: ::ethers::core::types::U256, - delta_quote: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([214, 183, 222, 197], (pool_id, delta_asset, delta_quote)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getNetBalance` (0x4dc68a90) function - pub fn get_net_balance( - &self, - token: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([77, 198, 138, 144], token) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getPairId` (0x3f92a339) function - pub fn get_pair_id( - &self, - asset: ::ethers::core::types::Address, - quote: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([63, 146, 163, 57], (asset, quote)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getPairNonce` (0x078888d6) function - pub fn get_pair_nonce(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([7, 136, 136, 214], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getPoolNonce` (0xa5cd8a49) function - pub fn get_pool_nonce( - &self, - pair_nonce: u32, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([165, 205, 138, 73], pair_nonce) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getPoolReserves` (0x2afb9df8) function - pub fn get_pool_reserves( - &self, - pool_id: u64, - ) -> ::ethers::contract::builders::ContractCall< - M, - (::ethers::core::types::U256, ::ethers::core::types::U256), - > { - self.0 - .method_hash([42, 251, 157, 248], pool_id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getReserve` (0xc9a396e9) function - pub fn get_reserve( - &self, - token: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([201, 163, 150, 233], token) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getVirtualPrice` (0x61b7ea6a) function - pub fn get_virtual_price( - &self, - pool_id: u64, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([97, 183, 234, 106], pool_id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getVirtualReservesPerLiquidity` (0x1a4b905b) function - pub fn get_virtual_reserves_per_liquidity( - &self, - pool_id: u64, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([26, 75, 144, 91], pool_id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `multiprocess` (0xa0fdf413) function - pub fn multiprocess( - &self, - data: ::ethers::core::types::Bytes, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([160, 253, 244, 19], data) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `pairs` (0x5e47663c) function - pub fn pairs( - &self, - pair_id: u32, - ) -> ::ethers::contract::builders::ContractCall< - M, - ( - ::ethers::core::types::Address, - u8, - ::ethers::core::types::Address, - u8, - ), - > { - self.0 - .method_hash([94, 71, 102, 60], pair_id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `pools` (0x89a5f084) function - pub fn pools( - &self, - pool_id: u64, - ) -> ::ethers::contract::builders::ContractCall< - M, - ( - u128, - u128, - u128, - u32, - ::ethers::core::types::Address, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - PortfolioCurve, - PortfolioPair, - ), - > { - self.0 - .method_hash([137, 165, 240, 132], pool_id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `positions` (0xb68513ea) function - pub fn positions( - &self, - owner: ::ethers::core::types::Address, - pool_id: u64, - ) -> ::ethers::contract::builders::ContractCall< - M, - ( - u128, - u32, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - u128, - u128, - u128, - ), - > { - self.0 - .method_hash([182, 133, 19, 234], (owner, pool_id)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `setProtocolFee` (0x787dce3d) function - pub fn set_protocol_fee( - &self, - fee: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([120, 125, 206, 61], fee) - .expect("method not found (this should never happen)") - } - ///Gets the contract's `Allocate` event - pub fn allocate_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, AllocateFilter> { - self.0.event() - } - ///Gets the contract's `ChangeParameters` event - pub fn change_parameters_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, ChangeParametersFilter> - { - self.0.event() - } - ///Gets the contract's `Collect` event - pub fn collect_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, CollectFilter> { - self.0.event() - } - ///Gets the contract's `CreatePair` event - pub fn create_pair_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, CreatePairFilter> { - self.0.event() - } - ///Gets the contract's `CreatePool` event - pub fn create_pool_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, CreatePoolFilter> { - self.0.event() - } - ///Gets the contract's `Deallocate` event - pub fn deallocate_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, DeallocateFilter> { - self.0.event() - } - ///Gets the contract's `DecreaseReserveBalance` event - pub fn decrease_reserve_balance_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, DecreaseReserveBalanceFilter> - { - self.0.event() - } - ///Gets the contract's `DecreaseUserBalance` event - pub fn decrease_user_balance_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, DecreaseUserBalanceFilter> - { - self.0.event() - } - ///Gets the contract's `Deposit` event - pub fn deposit_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, DepositFilter> { - self.0.event() - } - ///Gets the contract's `IncreaseReserveBalance` event - pub fn increase_reserve_balance_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, IncreaseReserveBalanceFilter> - { - self.0.event() - } - ///Gets the contract's `IncreaseUserBalance` event - pub fn increase_user_balance_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, IncreaseUserBalanceFilter> - { - self.0.event() - } - ///Gets the contract's `Swap` event - pub fn swap_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, SwapFilter> { - self.0.event() - } - ///Gets the contract's `UpdateProtocolFee` event - pub fn update_protocol_fee_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, UpdateProtocolFeeFilter> - { - self.0.event() - } - /// Returns an `Event` builder for all the events of this contract. - pub fn events( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, IPortfolioEvents> { - self.0 - .event_with_filter(::core::default::Default::default()) - } - } - impl From<::ethers::contract::Contract> for IPortfolio { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "Allocate", - abi = "Allocate(uint64,address,address,uint256,uint256,uint256)" - )] - pub struct AllocateFilter { - #[ethevent(indexed)] - pub pool_id: u64, - #[ethevent(indexed)] - pub asset: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub quote: ::ethers::core::types::Address, - pub delta_asset: ::ethers::core::types::U256, - pub delta_quote: ::ethers::core::types::U256, - pub delta_liquidity: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "ChangeParameters", - abi = "ChangeParameters(uint64,uint16,uint16,uint16)" - )] - pub struct ChangeParametersFilter { - #[ethevent(indexed)] - pub pool_id: u64, - #[ethevent(indexed)] - pub priority_fee: u16, - #[ethevent(indexed)] - pub fee: u16, - pub jit: u16, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "Collect", - abi = "Collect(uint64,address,uint256,address,uint256,address)" - )] - pub struct CollectFilter { - pub pool_id: u64, - #[ethevent(indexed)] - pub account: ::ethers::core::types::Address, - pub fee_asset_dec: ::ethers::core::types::U256, - #[ethevent(indexed)] - pub asset: ::ethers::core::types::Address, - pub fee_quote_dec: ::ethers::core::types::U256, - #[ethevent(indexed)] - pub quote: ::ethers::core::types::Address, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "CreatePair", - abi = "CreatePair(uint24,address,address,uint8,uint8)" - )] - pub struct CreatePairFilter { - #[ethevent(indexed)] - pub pair_id: u32, - #[ethevent(indexed)] - pub asset: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub quote: ::ethers::core::types::Address, - pub decimals_asset: u8, - pub decimals_quote: u8, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "CreatePool", - abi = "CreatePool(uint64,bool,address,address,uint256)" - )] - pub struct CreatePoolFilter { - #[ethevent(indexed)] - pub pool_id: u64, - pub is_mutable: bool, - #[ethevent(indexed)] - pub asset: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub quote: ::ethers::core::types::Address, - pub price: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "Deallocate", - abi = "Deallocate(uint64,address,address,uint256,uint256,uint256)" - )] - pub struct DeallocateFilter { - #[ethevent(indexed)] - pub pool_id: u64, - #[ethevent(indexed)] - pub asset: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub quote: ::ethers::core::types::Address, - pub delta_asset: ::ethers::core::types::U256, - pub delta_quote: ::ethers::core::types::U256, - pub delta_liquidity: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "DecreaseReserveBalance", - abi = "DecreaseReserveBalance(address,uint256)" - )] - pub struct DecreaseReserveBalanceFilter { - #[ethevent(indexed)] - pub token: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "DecreaseUserBalance", - abi = "DecreaseUserBalance(address,address,uint256)" - )] - pub struct DecreaseUserBalanceFilter { - #[ethevent(indexed)] - pub account: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub token: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent(name = "Deposit", abi = "Deposit(address,uint256)")] - pub struct DepositFilter { - #[ethevent(indexed)] - pub account: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "IncreaseReserveBalance", - abi = "IncreaseReserveBalance(address,uint256)" - )] - pub struct IncreaseReserveBalanceFilter { - #[ethevent(indexed)] - pub token: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "IncreaseUserBalance", - abi = "IncreaseUserBalance(address,address,uint256)" - )] - pub struct IncreaseUserBalanceFilter { - #[ethevent(indexed)] - pub account: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub token: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "Swap", - abi = "Swap(uint64,uint256,address,uint256,address,uint256,uint256,int256)" - )] - pub struct SwapFilter { - #[ethevent(indexed)] - pub pool_id: u64, - pub price: ::ethers::core::types::U256, - #[ethevent(indexed)] - pub sell_asset: ::ethers::core::types::Address, - pub input: ::ethers::core::types::U256, - #[ethevent(indexed)] - pub token_out: ::ethers::core::types::Address, - pub output: ::ethers::core::types::U256, - pub fee_amount_dec: ::ethers::core::types::U256, - pub invariant_wad: ::ethers::core::types::I256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent(name = "UpdateProtocolFee", abi = "UpdateProtocolFee(uint256,uint256)")] - pub struct UpdateProtocolFeeFilter { - pub prev_fee: ::ethers::core::types::U256, - pub next_fee: ::ethers::core::types::U256, - } - ///Container type for all of the contract's events - #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] - pub enum IPortfolioEvents { - AllocateFilter(AllocateFilter), - ChangeParametersFilter(ChangeParametersFilter), - CollectFilter(CollectFilter), - CreatePairFilter(CreatePairFilter), - CreatePoolFilter(CreatePoolFilter), - DeallocateFilter(DeallocateFilter), - DecreaseReserveBalanceFilter(DecreaseReserveBalanceFilter), - DecreaseUserBalanceFilter(DecreaseUserBalanceFilter), - DepositFilter(DepositFilter), - IncreaseReserveBalanceFilter(IncreaseReserveBalanceFilter), - IncreaseUserBalanceFilter(IncreaseUserBalanceFilter), - SwapFilter(SwapFilter), - UpdateProtocolFeeFilter(UpdateProtocolFeeFilter), - } - impl ::ethers::contract::EthLogDecode for IPortfolioEvents { - fn decode_log( - log: &::ethers::core::abi::RawLog, - ) -> ::core::result::Result { - if let Ok(decoded) = AllocateFilter::decode_log(log) { - return Ok(IPortfolioEvents::AllocateFilter(decoded)); - } - if let Ok(decoded) = ChangeParametersFilter::decode_log(log) { - return Ok(IPortfolioEvents::ChangeParametersFilter(decoded)); - } - if let Ok(decoded) = CollectFilter::decode_log(log) { - return Ok(IPortfolioEvents::CollectFilter(decoded)); - } - if let Ok(decoded) = CreatePairFilter::decode_log(log) { - return Ok(IPortfolioEvents::CreatePairFilter(decoded)); - } - if let Ok(decoded) = CreatePoolFilter::decode_log(log) { - return Ok(IPortfolioEvents::CreatePoolFilter(decoded)); - } - if let Ok(decoded) = DeallocateFilter::decode_log(log) { - return Ok(IPortfolioEvents::DeallocateFilter(decoded)); - } - if let Ok(decoded) = DecreaseReserveBalanceFilter::decode_log(log) { - return Ok(IPortfolioEvents::DecreaseReserveBalanceFilter(decoded)); - } - if let Ok(decoded) = DecreaseUserBalanceFilter::decode_log(log) { - return Ok(IPortfolioEvents::DecreaseUserBalanceFilter(decoded)); - } - if let Ok(decoded) = DepositFilter::decode_log(log) { - return Ok(IPortfolioEvents::DepositFilter(decoded)); - } - if let Ok(decoded) = IncreaseReserveBalanceFilter::decode_log(log) { - return Ok(IPortfolioEvents::IncreaseReserveBalanceFilter(decoded)); - } - if let Ok(decoded) = IncreaseUserBalanceFilter::decode_log(log) { - return Ok(IPortfolioEvents::IncreaseUserBalanceFilter(decoded)); - } - if let Ok(decoded) = SwapFilter::decode_log(log) { - return Ok(IPortfolioEvents::SwapFilter(decoded)); - } - if let Ok(decoded) = UpdateProtocolFeeFilter::decode_log(log) { - return Ok(IPortfolioEvents::UpdateProtocolFeeFilter(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData) - } - } - impl ::core::fmt::Display for IPortfolioEvents { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::AllocateFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::ChangeParametersFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::CollectFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::CreatePairFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::CreatePoolFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::DeallocateFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::DecreaseReserveBalanceFilter(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::DecreaseUserBalanceFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::DepositFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::IncreaseReserveBalanceFilter(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::IncreaseUserBalanceFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::SwapFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::UpdateProtocolFeeFilter(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for IPortfolioEvents { - fn from(value: AllocateFilter) -> Self { - Self::AllocateFilter(value) - } - } - impl ::core::convert::From for IPortfolioEvents { - fn from(value: ChangeParametersFilter) -> Self { - Self::ChangeParametersFilter(value) - } - } - impl ::core::convert::From for IPortfolioEvents { - fn from(value: CollectFilter) -> Self { - Self::CollectFilter(value) - } - } - impl ::core::convert::From for IPortfolioEvents { - fn from(value: CreatePairFilter) -> Self { - Self::CreatePairFilter(value) - } - } - impl ::core::convert::From for IPortfolioEvents { - fn from(value: CreatePoolFilter) -> Self { - Self::CreatePoolFilter(value) - } - } - impl ::core::convert::From for IPortfolioEvents { - fn from(value: DeallocateFilter) -> Self { - Self::DeallocateFilter(value) - } - } - impl ::core::convert::From for IPortfolioEvents { - fn from(value: DecreaseReserveBalanceFilter) -> Self { - Self::DecreaseReserveBalanceFilter(value) - } - } - impl ::core::convert::From for IPortfolioEvents { - fn from(value: DecreaseUserBalanceFilter) -> Self { - Self::DecreaseUserBalanceFilter(value) - } - } - impl ::core::convert::From for IPortfolioEvents { - fn from(value: DepositFilter) -> Self { - Self::DepositFilter(value) - } - } - impl ::core::convert::From for IPortfolioEvents { - fn from(value: IncreaseReserveBalanceFilter) -> Self { - Self::IncreaseReserveBalanceFilter(value) - } - } - impl ::core::convert::From for IPortfolioEvents { - fn from(value: IncreaseUserBalanceFilter) -> Self { - Self::IncreaseUserBalanceFilter(value) - } - } - impl ::core::convert::From for IPortfolioEvents { - fn from(value: SwapFilter) -> Self { - Self::SwapFilter(value) - } - } - impl ::core::convert::From for IPortfolioEvents { - fn from(value: UpdateProtocolFeeFilter) -> Self { - Self::UpdateProtocolFeeFilter(value) - } - } - ///Container type for all input parameters for the `REGISTRY` function with signature `REGISTRY()` and selector `0x06433b1b` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "REGISTRY", abi = "REGISTRY()")] - pub struct RegistryCall; - ///Container type for all input parameters for the `VERSION` function with signature `VERSION()` and selector `0xffa1ad74` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "VERSION", abi = "VERSION()")] - pub struct VersionCall; - ///Container type for all input parameters for the `WETH` function with signature `WETH()` and selector `0xad5c4648` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "WETH", abi = "WETH()")] - pub struct WethCall; - ///Container type for all input parameters for the `changeParameters` function with signature `changeParameters(uint64,uint16,uint16,uint16)` and selector `0xaf777855` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall( - name = "changeParameters", - abi = "changeParameters(uint64,uint16,uint16,uint16)" - )] - pub struct ChangeParametersCall { - pub pool_id: u64, - pub priority_fee: u16, - pub fee: u16, - pub jit: u16, - } - ///Container type for all input parameters for the `deposit` function with signature `deposit()` and selector `0xd0e30db0` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "deposit", abi = "deposit()")] - pub struct DepositCall; - ///Container type for all input parameters for the `draw` function with signature `draw(address,uint256,address)` and selector `0xad24d6a0` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "draw", abi = "draw(address,uint256,address)")] - pub struct DrawCall { - pub token: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - pub to: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `fund` function with signature `fund(address,uint256)` and selector `0x7b1837de` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "fund", abi = "fund(address,uint256)")] - pub struct FundCall { - pub token: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `getAmountOut` function with signature `getAmountOut(uint64,bool,uint256)` and selector `0x7dae4890` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getAmountOut", abi = "getAmountOut(uint64,bool,uint256)")] - pub struct GetAmountOutCall { - pub pool_id: u64, - pub sell_asset: bool, - pub amount_in: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `getBalance` function with signature `getBalance(address,address)` and selector `0xd4fac45d` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getBalance", abi = "getBalance(address,address)")] - pub struct GetBalanceCall { - pub owner: ::ethers::core::types::Address, - pub token: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `getLiquidityDeltas` function with signature `getLiquidityDeltas(uint64,int128)` and selector `0x8992f20a` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getLiquidityDeltas", abi = "getLiquidityDeltas(uint64,int128)")] - pub struct GetLiquidityDeltasCall { - pub pool_id: u64, - pub delta_liquidity: i128, - } - ///Container type for all input parameters for the `getMaxLiquidity` function with signature `getMaxLiquidity(uint64,uint256,uint256)` and selector `0xd6b7dec5` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall( - name = "getMaxLiquidity", - abi = "getMaxLiquidity(uint64,uint256,uint256)" - )] - pub struct GetMaxLiquidityCall { - pub pool_id: u64, - pub delta_asset: ::ethers::core::types::U256, - pub delta_quote: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `getNetBalance` function with signature `getNetBalance(address)` and selector `0x4dc68a90` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getNetBalance", abi = "getNetBalance(address)")] - pub struct GetNetBalanceCall { - pub token: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `getPairId` function with signature `getPairId(address,address)` and selector `0x3f92a339` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getPairId", abi = "getPairId(address,address)")] - pub struct GetPairIdCall { - pub asset: ::ethers::core::types::Address, - pub quote: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `getPairNonce` function with signature `getPairNonce()` and selector `0x078888d6` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getPairNonce", abi = "getPairNonce()")] - pub struct GetPairNonceCall; - ///Container type for all input parameters for the `getPoolNonce` function with signature `getPoolNonce(uint24)` and selector `0xa5cd8a49` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getPoolNonce", abi = "getPoolNonce(uint24)")] - pub struct GetPoolNonceCall { - pub pair_nonce: u32, - } - ///Container type for all input parameters for the `getPoolReserves` function with signature `getPoolReserves(uint64)` and selector `0x2afb9df8` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getPoolReserves", abi = "getPoolReserves(uint64)")] - pub struct GetPoolReservesCall { - pub pool_id: u64, - } - ///Container type for all input parameters for the `getReserve` function with signature `getReserve(address)` and selector `0xc9a396e9` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getReserve", abi = "getReserve(address)")] - pub struct GetReserveCall { - pub token: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `getVirtualPrice` function with signature `getVirtualPrice(uint64)` and selector `0x61b7ea6a` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getVirtualPrice", abi = "getVirtualPrice(uint64)")] - pub struct GetVirtualPriceCall { - pub pool_id: u64, - } - ///Container type for all input parameters for the `getVirtualReservesPerLiquidity` function with signature `getVirtualReservesPerLiquidity(uint64)` and selector `0x1a4b905b` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall( - name = "getVirtualReservesPerLiquidity", - abi = "getVirtualReservesPerLiquidity(uint64)" - )] - pub struct GetVirtualReservesPerLiquidityCall { - pub pool_id: u64, - } - ///Container type for all input parameters for the `multiprocess` function with signature `multiprocess(bytes)` and selector `0xa0fdf413` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "multiprocess", abi = "multiprocess(bytes)")] - pub struct MultiprocessCall { - pub data: ::ethers::core::types::Bytes, - } - ///Container type for all input parameters for the `pairs` function with signature `pairs(uint24)` and selector `0x5e47663c` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "pairs", abi = "pairs(uint24)")] - pub struct PairsCall { - pub pair_id: u32, - } - ///Container type for all input parameters for the `pools` function with signature `pools(uint64)` and selector `0x89a5f084` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "pools", abi = "pools(uint64)")] - pub struct PoolsCall { - pub pool_id: u64, - } - ///Container type for all input parameters for the `positions` function with signature `positions(address,uint64)` and selector `0xb68513ea` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "positions", abi = "positions(address,uint64)")] - pub struct PositionsCall { - pub owner: ::ethers::core::types::Address, - pub pool_id: u64, - } - ///Container type for all input parameters for the `setProtocolFee` function with signature `setProtocolFee(uint256)` and selector `0x787dce3d` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "setProtocolFee", abi = "setProtocolFee(uint256)")] - pub struct SetProtocolFeeCall { - pub fee: ::ethers::core::types::U256, - } - ///Container type for all of the contract's call - #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] - pub enum IPortfolioCalls { - Registry(RegistryCall), - Version(VersionCall), - Weth(WethCall), - ChangeParameters(ChangeParametersCall), - Deposit(DepositCall), - Draw(DrawCall), - Fund(FundCall), - GetAmountOut(GetAmountOutCall), - GetBalance(GetBalanceCall), - GetLiquidityDeltas(GetLiquidityDeltasCall), - GetMaxLiquidity(GetMaxLiquidityCall), - GetNetBalance(GetNetBalanceCall), - GetPairId(GetPairIdCall), - GetPairNonce(GetPairNonceCall), - GetPoolNonce(GetPoolNonceCall), - GetPoolReserves(GetPoolReservesCall), - GetReserve(GetReserveCall), - GetVirtualPrice(GetVirtualPriceCall), - GetVirtualReservesPerLiquidity(GetVirtualReservesPerLiquidityCall), - Multiprocess(MultiprocessCall), - Pairs(PairsCall), - Pools(PoolsCall), - Positions(PositionsCall), - SetProtocolFee(SetProtocolFeeCall), - } - impl ::ethers::core::abi::AbiDecode for IPortfolioCalls { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Registry(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Version(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Weth(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::ChangeParameters(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Deposit(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Draw(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Fund(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::GetAmountOut(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::GetBalance(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::GetLiquidityDeltas(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::GetMaxLiquidity(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::GetNetBalance(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::GetPairId(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::GetPairNonce(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::GetPoolNonce(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::GetPoolReserves(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::GetReserve(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::GetVirtualPrice(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::GetVirtualReservesPerLiquidity(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::Multiprocess(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Pairs(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Pools(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Positions(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::SetProtocolFee(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for IPortfolioCalls { - fn encode(self) -> Vec { - match self { - Self::Registry(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Version(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Weth(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::ChangeParameters(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Deposit(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Draw(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Fund(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetAmountOut(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetBalance(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetLiquidityDeltas(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::GetMaxLiquidity(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetNetBalance(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetPairId(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetPairNonce(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetPoolNonce(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetPoolReserves(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetReserve(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetVirtualPrice(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetVirtualReservesPerLiquidity(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Multiprocess(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Pairs(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Pools(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Positions(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::SetProtocolFee(element) => ::ethers::core::abi::AbiEncode::encode(element), - } - } - } - impl ::core::fmt::Display for IPortfolioCalls { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::Registry(element) => ::core::fmt::Display::fmt(element, f), - Self::Version(element) => ::core::fmt::Display::fmt(element, f), - Self::Weth(element) => ::core::fmt::Display::fmt(element, f), - Self::ChangeParameters(element) => ::core::fmt::Display::fmt(element, f), - Self::Deposit(element) => ::core::fmt::Display::fmt(element, f), - Self::Draw(element) => ::core::fmt::Display::fmt(element, f), - Self::Fund(element) => ::core::fmt::Display::fmt(element, f), - Self::GetAmountOut(element) => ::core::fmt::Display::fmt(element, f), - Self::GetBalance(element) => ::core::fmt::Display::fmt(element, f), - Self::GetLiquidityDeltas(element) => ::core::fmt::Display::fmt(element, f), - Self::GetMaxLiquidity(element) => ::core::fmt::Display::fmt(element, f), - Self::GetNetBalance(element) => ::core::fmt::Display::fmt(element, f), - Self::GetPairId(element) => ::core::fmt::Display::fmt(element, f), - Self::GetPairNonce(element) => ::core::fmt::Display::fmt(element, f), - Self::GetPoolNonce(element) => ::core::fmt::Display::fmt(element, f), - Self::GetPoolReserves(element) => ::core::fmt::Display::fmt(element, f), - Self::GetReserve(element) => ::core::fmt::Display::fmt(element, f), - Self::GetVirtualPrice(element) => ::core::fmt::Display::fmt(element, f), - Self::GetVirtualReservesPerLiquidity(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::Multiprocess(element) => ::core::fmt::Display::fmt(element, f), - Self::Pairs(element) => ::core::fmt::Display::fmt(element, f), - Self::Pools(element) => ::core::fmt::Display::fmt(element, f), - Self::Positions(element) => ::core::fmt::Display::fmt(element, f), - Self::SetProtocolFee(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for IPortfolioCalls { - fn from(value: RegistryCall) -> Self { - Self::Registry(value) - } - } - impl ::core::convert::From for IPortfolioCalls { - fn from(value: VersionCall) -> Self { - Self::Version(value) - } - } - impl ::core::convert::From for IPortfolioCalls { - fn from(value: WethCall) -> Self { - Self::Weth(value) - } - } - impl ::core::convert::From for IPortfolioCalls { - fn from(value: ChangeParametersCall) -> Self { - Self::ChangeParameters(value) - } - } - impl ::core::convert::From for IPortfolioCalls { - fn from(value: DepositCall) -> Self { - Self::Deposit(value) - } - } - impl ::core::convert::From for IPortfolioCalls { - fn from(value: DrawCall) -> Self { - Self::Draw(value) - } - } - impl ::core::convert::From for IPortfolioCalls { - fn from(value: FundCall) -> Self { - Self::Fund(value) - } - } - impl ::core::convert::From for IPortfolioCalls { - fn from(value: GetAmountOutCall) -> Self { - Self::GetAmountOut(value) - } - } - impl ::core::convert::From for IPortfolioCalls { - fn from(value: GetBalanceCall) -> Self { - Self::GetBalance(value) - } - } - impl ::core::convert::From for IPortfolioCalls { - fn from(value: GetLiquidityDeltasCall) -> Self { - Self::GetLiquidityDeltas(value) - } - } - impl ::core::convert::From for IPortfolioCalls { - fn from(value: GetMaxLiquidityCall) -> Self { - Self::GetMaxLiquidity(value) - } - } - impl ::core::convert::From for IPortfolioCalls { - fn from(value: GetNetBalanceCall) -> Self { - Self::GetNetBalance(value) - } - } - impl ::core::convert::From for IPortfolioCalls { - fn from(value: GetPairIdCall) -> Self { - Self::GetPairId(value) - } - } - impl ::core::convert::From for IPortfolioCalls { - fn from(value: GetPairNonceCall) -> Self { - Self::GetPairNonce(value) - } - } - impl ::core::convert::From for IPortfolioCalls { - fn from(value: GetPoolNonceCall) -> Self { - Self::GetPoolNonce(value) - } - } - impl ::core::convert::From for IPortfolioCalls { - fn from(value: GetPoolReservesCall) -> Self { - Self::GetPoolReserves(value) - } - } - impl ::core::convert::From for IPortfolioCalls { - fn from(value: GetReserveCall) -> Self { - Self::GetReserve(value) - } - } - impl ::core::convert::From for IPortfolioCalls { - fn from(value: GetVirtualPriceCall) -> Self { - Self::GetVirtualPrice(value) - } - } - impl ::core::convert::From for IPortfolioCalls { - fn from(value: GetVirtualReservesPerLiquidityCall) -> Self { - Self::GetVirtualReservesPerLiquidity(value) - } - } - impl ::core::convert::From for IPortfolioCalls { - fn from(value: MultiprocessCall) -> Self { - Self::Multiprocess(value) - } - } - impl ::core::convert::From for IPortfolioCalls { - fn from(value: PairsCall) -> Self { - Self::Pairs(value) - } - } - impl ::core::convert::From for IPortfolioCalls { - fn from(value: PoolsCall) -> Self { - Self::Pools(value) - } - } - impl ::core::convert::From for IPortfolioCalls { - fn from(value: PositionsCall) -> Self { - Self::Positions(value) - } - } - impl ::core::convert::From for IPortfolioCalls { - fn from(value: SetProtocolFeeCall) -> Self { - Self::SetProtocolFee(value) - } - } - ///Container type for all return fields from the `REGISTRY` function with signature `REGISTRY()` and selector `0x06433b1b` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct RegistryReturn(pub ::ethers::core::types::Address); - ///Container type for all return fields from the `VERSION` function with signature `VERSION()` and selector `0xffa1ad74` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct VersionReturn(pub ::std::string::String); - ///Container type for all return fields from the `WETH` function with signature `WETH()` and selector `0xad5c4648` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct WethReturn(pub ::ethers::core::types::Address); - ///Container type for all return fields from the `getAmountOut` function with signature `getAmountOut(uint64,bool,uint256)` and selector `0x7dae4890` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetAmountOutReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `getBalance` function with signature `getBalance(address,address)` and selector `0xd4fac45d` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetBalanceReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `getLiquidityDeltas` function with signature `getLiquidityDeltas(uint64,int128)` and selector `0x8992f20a` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetLiquidityDeltasReturn { - pub delta_asset: u128, - pub delta_quote: u128, - } - ///Container type for all return fields from the `getMaxLiquidity` function with signature `getMaxLiquidity(uint64,uint256,uint256)` and selector `0xd6b7dec5` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetMaxLiquidityReturn { - pub delta_liquidity: u128, - } - ///Container type for all return fields from the `getNetBalance` function with signature `getNetBalance(address)` and selector `0x4dc68a90` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetNetBalanceReturn(pub ::ethers::core::types::I256); - ///Container type for all return fields from the `getPairId` function with signature `getPairId(address,address)` and selector `0x3f92a339` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetPairIdReturn { - pub pair_id: u32, - } - ///Container type for all return fields from the `getPairNonce` function with signature `getPairNonce()` and selector `0x078888d6` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetPairNonceReturn(pub u32); - ///Container type for all return fields from the `getPoolNonce` function with signature `getPoolNonce(uint24)` and selector `0xa5cd8a49` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetPoolNonceReturn(pub u32); - ///Container type for all return fields from the `getPoolReserves` function with signature `getPoolReserves(uint64)` and selector `0x2afb9df8` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetPoolReservesReturn { - pub delta_asset: ::ethers::core::types::U256, - pub delta_quote: ::ethers::core::types::U256, - } - ///Container type for all return fields from the `getReserve` function with signature `getReserve(address)` and selector `0xc9a396e9` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetReserveReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `getVirtualPrice` function with signature `getVirtualPrice(uint64)` and selector `0x61b7ea6a` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetVirtualPriceReturn { - pub price: ::ethers::core::types::U256, - } - ///Container type for all return fields from the `getVirtualReservesPerLiquidity` function with signature `getVirtualReservesPerLiquidity(uint64)` and selector `0x1a4b905b` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetVirtualReservesPerLiquidityReturn { - pub delta_asset: u128, - pub delta_quote: u128, - } - ///Container type for all return fields from the `pairs` function with signature `pairs(uint24)` and selector `0x5e47663c` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct PairsReturn { - pub token_asset: ::ethers::core::types::Address, - pub decimals_asset: u8, - pub token_quote: ::ethers::core::types::Address, - pub decimals_quote: u8, - } - ///Container type for all return fields from the `pools` function with signature `pools(uint64)` and selector `0x89a5f084` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct PoolsReturn { - pub virtual_x: u128, - pub virtual_y: u128, - pub liquidity: u128, - pub last_timestamp: u32, - pub controller: ::ethers::core::types::Address, - pub invariant_growth_global: ::ethers::core::types::U256, - pub fee_growth_global_asset: ::ethers::core::types::U256, - pub fee_growth_global_quote: ::ethers::core::types::U256, - pub p8: PortfolioCurve, - pub p9: PortfolioPair, - } - ///Container type for all return fields from the `positions` function with signature `positions(address,uint64)` and selector `0xb68513ea` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct PositionsReturn { - pub free_liquidity: u128, - pub last_timestamp: u32, - pub invariant_growth_last: ::ethers::core::types::U256, - pub fee_growth_asset_last: ::ethers::core::types::U256, - pub fee_growth_quote_last: ::ethers::core::types::U256, - pub tokens_owed_asset: u128, - pub tokens_owed_quote: u128, - pub invariant_owed: u128, - } -} diff --git a/crates/bindings/src/i_portfolio_actions.rs b/crates/bindings/src/i_portfolio_actions.rs deleted file mode 100644 index e308dd8c..00000000 --- a/crates/bindings/src/i_portfolio_actions.rs +++ /dev/null @@ -1,314 +0,0 @@ -pub use i_portfolio_actions::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types -)] -pub mod i_portfolio_actions { - #[rustfmt::skip] - const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"priorityFee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"fee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"jit\",\"type\":\"uint16\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"changeParameters\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"deposit\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"draw\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"fund\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\",\"components\":[]}],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"multiprocess\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"setProtocolFee\",\"outputs\":[]}]"; - ///The parsed JSON ABI of the contract. - pub static IPORTFOLIOACTIONS_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = - ::ethers::contract::Lazy::new(|| { - ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid") - }); - pub struct IPortfolioActions(::ethers::contract::Contract); - impl ::core::clone::Clone for IPortfolioActions { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for IPortfolioActions { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for IPortfolioActions { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for IPortfolioActions { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(stringify!(IPortfolioActions)) - .field(&self.address()) - .finish() - } - } - impl IPortfolioActions { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self(::ethers::contract::Contract::new( - address.into(), - IPORTFOLIOACTIONS_ABI.clone(), - client, - )) - } - ///Calls the contract's `changeParameters` (0xaf777855) function - pub fn change_parameters( - &self, - pool_id: u64, - priority_fee: u16, - fee: u16, - jit: u16, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([175, 119, 120, 85], (pool_id, priority_fee, fee, jit)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `deposit` (0xd0e30db0) function - pub fn deposit(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([208, 227, 13, 176], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `draw` (0xad24d6a0) function - pub fn draw( - &self, - token: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - to: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([173, 36, 214, 160], (token, amount, to)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `fund` (0x7b1837de) function - pub fn fund( - &self, - token: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([123, 24, 55, 222], (token, amount)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `multiprocess` (0xa0fdf413) function - pub fn multiprocess( - &self, - data: ::ethers::core::types::Bytes, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([160, 253, 244, 19], data) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `setProtocolFee` (0x787dce3d) function - pub fn set_protocol_fee( - &self, - fee: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([120, 125, 206, 61], fee) - .expect("method not found (this should never happen)") - } - } - impl From<::ethers::contract::Contract> - for IPortfolioActions - { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - ///Container type for all input parameters for the `changeParameters` function with signature `changeParameters(uint64,uint16,uint16,uint16)` and selector `0xaf777855` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall( - name = "changeParameters", - abi = "changeParameters(uint64,uint16,uint16,uint16)" - )] - pub struct ChangeParametersCall { - pub pool_id: u64, - pub priority_fee: u16, - pub fee: u16, - pub jit: u16, - } - ///Container type for all input parameters for the `deposit` function with signature `deposit()` and selector `0xd0e30db0` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "deposit", abi = "deposit()")] - pub struct DepositCall; - ///Container type for all input parameters for the `draw` function with signature `draw(address,uint256,address)` and selector `0xad24d6a0` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "draw", abi = "draw(address,uint256,address)")] - pub struct DrawCall { - pub token: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - pub to: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `fund` function with signature `fund(address,uint256)` and selector `0x7b1837de` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "fund", abi = "fund(address,uint256)")] - pub struct FundCall { - pub token: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `multiprocess` function with signature `multiprocess(bytes)` and selector `0xa0fdf413` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "multiprocess", abi = "multiprocess(bytes)")] - pub struct MultiprocessCall { - pub data: ::ethers::core::types::Bytes, - } - ///Container type for all input parameters for the `setProtocolFee` function with signature `setProtocolFee(uint256)` and selector `0x787dce3d` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "setProtocolFee", abi = "setProtocolFee(uint256)")] - pub struct SetProtocolFeeCall { - pub fee: ::ethers::core::types::U256, - } - ///Container type for all of the contract's call - #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] - pub enum IPortfolioActionsCalls { - ChangeParameters(ChangeParametersCall), - Deposit(DepositCall), - Draw(DrawCall), - Fund(FundCall), - Multiprocess(MultiprocessCall), - SetProtocolFee(SetProtocolFeeCall), - } - impl ::ethers::core::abi::AbiDecode for IPortfolioActionsCalls { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::ChangeParameters(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Deposit(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Draw(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Fund(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::Multiprocess(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::SetProtocolFee(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for IPortfolioActionsCalls { - fn encode(self) -> Vec { - match self { - Self::ChangeParameters(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Deposit(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Draw(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Fund(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Multiprocess(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::SetProtocolFee(element) => ::ethers::core::abi::AbiEncode::encode(element), - } - } - } - impl ::core::fmt::Display for IPortfolioActionsCalls { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::ChangeParameters(element) => ::core::fmt::Display::fmt(element, f), - Self::Deposit(element) => ::core::fmt::Display::fmt(element, f), - Self::Draw(element) => ::core::fmt::Display::fmt(element, f), - Self::Fund(element) => ::core::fmt::Display::fmt(element, f), - Self::Multiprocess(element) => ::core::fmt::Display::fmt(element, f), - Self::SetProtocolFee(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for IPortfolioActionsCalls { - fn from(value: ChangeParametersCall) -> Self { - Self::ChangeParameters(value) - } - } - impl ::core::convert::From for IPortfolioActionsCalls { - fn from(value: DepositCall) -> Self { - Self::Deposit(value) - } - } - impl ::core::convert::From for IPortfolioActionsCalls { - fn from(value: DrawCall) -> Self { - Self::Draw(value) - } - } - impl ::core::convert::From for IPortfolioActionsCalls { - fn from(value: FundCall) -> Self { - Self::Fund(value) - } - } - impl ::core::convert::From for IPortfolioActionsCalls { - fn from(value: MultiprocessCall) -> Self { - Self::Multiprocess(value) - } - } - impl ::core::convert::From for IPortfolioActionsCalls { - fn from(value: SetProtocolFeeCall) -> Self { - Self::SetProtocolFee(value) - } - } -} diff --git a/crates/bindings/src/i_portfolio_events.rs b/crates/bindings/src/i_portfolio_events.rs deleted file mode 100644 index 4b69113c..00000000 --- a/crates/bindings/src/i_portfolio_events.rs +++ /dev/null @@ -1,596 +0,0 @@ -pub use i_portfolio_events::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types -)] -pub mod i_portfolio_events { - #[rustfmt::skip] - const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaLiquidity\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Allocate\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint16\",\"name\":\"priorityFee\",\"type\":\"uint16\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint16\",\"name\":\"fee\",\"type\":\"uint16\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint16\",\"name\":\"jit\",\"type\":\"uint16\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"ChangeParameters\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"feeAssetDec\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"feeQuoteDec\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true}],\"type\":\"event\",\"name\":\"Collect\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"pairId\",\"type\":\"uint24\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint8\",\"name\":\"decimalsAsset\",\"type\":\"uint8\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint8\",\"name\":\"decimalsQuote\",\"type\":\"uint8\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"CreatePair\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"bool\",\"name\":\"isMutable\",\"type\":\"bool\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"CreatePool\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaLiquidity\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Deallocate\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"DecreaseReserveBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"DecreaseUserBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Deposit\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"IncreaseReserveBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"IncreaseUserBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"sellAsset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"input\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"tokenOut\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"output\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"feeAmountDec\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"int256\",\"name\":\"invariantWad\",\"type\":\"int256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Swap\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"prevFee\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"nextFee\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"UpdateProtocolFee\",\"outputs\":[],\"anonymous\":false}]"; - ///The parsed JSON ABI of the contract. - pub static IPORTFOLIOEVENTS_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = - ::ethers::contract::Lazy::new(|| { - ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid") - }); - pub struct IPortfolioEvents(::ethers::contract::Contract); - impl ::core::clone::Clone for IPortfolioEvents { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for IPortfolioEvents { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for IPortfolioEvents { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for IPortfolioEvents { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(stringify!(IPortfolioEvents)) - .field(&self.address()) - .finish() - } - } - impl IPortfolioEvents { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self(::ethers::contract::Contract::new( - address.into(), - IPORTFOLIOEVENTS_ABI.clone(), - client, - )) - } - ///Gets the contract's `Allocate` event - pub fn allocate_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, AllocateFilter> { - self.0.event() - } - ///Gets the contract's `ChangeParameters` event - pub fn change_parameters_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, ChangeParametersFilter> - { - self.0.event() - } - ///Gets the contract's `Collect` event - pub fn collect_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, CollectFilter> { - self.0.event() - } - ///Gets the contract's `CreatePair` event - pub fn create_pair_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, CreatePairFilter> { - self.0.event() - } - ///Gets the contract's `CreatePool` event - pub fn create_pool_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, CreatePoolFilter> { - self.0.event() - } - ///Gets the contract's `Deallocate` event - pub fn deallocate_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, DeallocateFilter> { - self.0.event() - } - ///Gets the contract's `DecreaseReserveBalance` event - pub fn decrease_reserve_balance_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, DecreaseReserveBalanceFilter> - { - self.0.event() - } - ///Gets the contract's `DecreaseUserBalance` event - pub fn decrease_user_balance_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, DecreaseUserBalanceFilter> - { - self.0.event() - } - ///Gets the contract's `Deposit` event - pub fn deposit_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, DepositFilter> { - self.0.event() - } - ///Gets the contract's `IncreaseReserveBalance` event - pub fn increase_reserve_balance_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, IncreaseReserveBalanceFilter> - { - self.0.event() - } - ///Gets the contract's `IncreaseUserBalance` event - pub fn increase_user_balance_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, IncreaseUserBalanceFilter> - { - self.0.event() - } - ///Gets the contract's `Swap` event - pub fn swap_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, SwapFilter> { - self.0.event() - } - ///Gets the contract's `UpdateProtocolFee` event - pub fn update_protocol_fee_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, UpdateProtocolFeeFilter> - { - self.0.event() - } - /// Returns an `Event` builder for all the events of this contract. - pub fn events( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, IPortfolioEventsEvents> - { - self.0 - .event_with_filter(::core::default::Default::default()) - } - } - impl From<::ethers::contract::Contract> - for IPortfolioEvents - { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "Allocate", - abi = "Allocate(uint64,address,address,uint256,uint256,uint256)" - )] - pub struct AllocateFilter { - #[ethevent(indexed)] - pub pool_id: u64, - #[ethevent(indexed)] - pub asset: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub quote: ::ethers::core::types::Address, - pub delta_asset: ::ethers::core::types::U256, - pub delta_quote: ::ethers::core::types::U256, - pub delta_liquidity: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "ChangeParameters", - abi = "ChangeParameters(uint64,uint16,uint16,uint16)" - )] - pub struct ChangeParametersFilter { - #[ethevent(indexed)] - pub pool_id: u64, - #[ethevent(indexed)] - pub priority_fee: u16, - #[ethevent(indexed)] - pub fee: u16, - pub jit: u16, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "Collect", - abi = "Collect(uint64,address,uint256,address,uint256,address)" - )] - pub struct CollectFilter { - pub pool_id: u64, - #[ethevent(indexed)] - pub account: ::ethers::core::types::Address, - pub fee_asset_dec: ::ethers::core::types::U256, - #[ethevent(indexed)] - pub asset: ::ethers::core::types::Address, - pub fee_quote_dec: ::ethers::core::types::U256, - #[ethevent(indexed)] - pub quote: ::ethers::core::types::Address, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "CreatePair", - abi = "CreatePair(uint24,address,address,uint8,uint8)" - )] - pub struct CreatePairFilter { - #[ethevent(indexed)] - pub pair_id: u32, - #[ethevent(indexed)] - pub asset: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub quote: ::ethers::core::types::Address, - pub decimals_asset: u8, - pub decimals_quote: u8, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "CreatePool", - abi = "CreatePool(uint64,bool,address,address,uint256)" - )] - pub struct CreatePoolFilter { - #[ethevent(indexed)] - pub pool_id: u64, - pub is_mutable: bool, - #[ethevent(indexed)] - pub asset: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub quote: ::ethers::core::types::Address, - pub price: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "Deallocate", - abi = "Deallocate(uint64,address,address,uint256,uint256,uint256)" - )] - pub struct DeallocateFilter { - #[ethevent(indexed)] - pub pool_id: u64, - #[ethevent(indexed)] - pub asset: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub quote: ::ethers::core::types::Address, - pub delta_asset: ::ethers::core::types::U256, - pub delta_quote: ::ethers::core::types::U256, - pub delta_liquidity: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "DecreaseReserveBalance", - abi = "DecreaseReserveBalance(address,uint256)" - )] - pub struct DecreaseReserveBalanceFilter { - #[ethevent(indexed)] - pub token: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "DecreaseUserBalance", - abi = "DecreaseUserBalance(address,address,uint256)" - )] - pub struct DecreaseUserBalanceFilter { - #[ethevent(indexed)] - pub account: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub token: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent(name = "Deposit", abi = "Deposit(address,uint256)")] - pub struct DepositFilter { - #[ethevent(indexed)] - pub account: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "IncreaseReserveBalance", - abi = "IncreaseReserveBalance(address,uint256)" - )] - pub struct IncreaseReserveBalanceFilter { - #[ethevent(indexed)] - pub token: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "IncreaseUserBalance", - abi = "IncreaseUserBalance(address,address,uint256)" - )] - pub struct IncreaseUserBalanceFilter { - #[ethevent(indexed)] - pub account: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub token: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "Swap", - abi = "Swap(uint64,uint256,address,uint256,address,uint256,uint256,int256)" - )] - pub struct SwapFilter { - #[ethevent(indexed)] - pub pool_id: u64, - pub price: ::ethers::core::types::U256, - #[ethevent(indexed)] - pub sell_asset: ::ethers::core::types::Address, - pub input: ::ethers::core::types::U256, - #[ethevent(indexed)] - pub token_out: ::ethers::core::types::Address, - pub output: ::ethers::core::types::U256, - pub fee_amount_dec: ::ethers::core::types::U256, - pub invariant_wad: ::ethers::core::types::I256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent(name = "UpdateProtocolFee", abi = "UpdateProtocolFee(uint256,uint256)")] - pub struct UpdateProtocolFeeFilter { - pub prev_fee: ::ethers::core::types::U256, - pub next_fee: ::ethers::core::types::U256, - } - ///Container type for all of the contract's events - #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] - pub enum IPortfolioEventsEvents { - AllocateFilter(AllocateFilter), - ChangeParametersFilter(ChangeParametersFilter), - CollectFilter(CollectFilter), - CreatePairFilter(CreatePairFilter), - CreatePoolFilter(CreatePoolFilter), - DeallocateFilter(DeallocateFilter), - DecreaseReserveBalanceFilter(DecreaseReserveBalanceFilter), - DecreaseUserBalanceFilter(DecreaseUserBalanceFilter), - DepositFilter(DepositFilter), - IncreaseReserveBalanceFilter(IncreaseReserveBalanceFilter), - IncreaseUserBalanceFilter(IncreaseUserBalanceFilter), - SwapFilter(SwapFilter), - UpdateProtocolFeeFilter(UpdateProtocolFeeFilter), - } - impl ::ethers::contract::EthLogDecode for IPortfolioEventsEvents { - fn decode_log( - log: &::ethers::core::abi::RawLog, - ) -> ::core::result::Result { - if let Ok(decoded) = AllocateFilter::decode_log(log) { - return Ok(IPortfolioEventsEvents::AllocateFilter(decoded)); - } - if let Ok(decoded) = ChangeParametersFilter::decode_log(log) { - return Ok(IPortfolioEventsEvents::ChangeParametersFilter(decoded)); - } - if let Ok(decoded) = CollectFilter::decode_log(log) { - return Ok(IPortfolioEventsEvents::CollectFilter(decoded)); - } - if let Ok(decoded) = CreatePairFilter::decode_log(log) { - return Ok(IPortfolioEventsEvents::CreatePairFilter(decoded)); - } - if let Ok(decoded) = CreatePoolFilter::decode_log(log) { - return Ok(IPortfolioEventsEvents::CreatePoolFilter(decoded)); - } - if let Ok(decoded) = DeallocateFilter::decode_log(log) { - return Ok(IPortfolioEventsEvents::DeallocateFilter(decoded)); - } - if let Ok(decoded) = DecreaseReserveBalanceFilter::decode_log(log) { - return Ok(IPortfolioEventsEvents::DecreaseReserveBalanceFilter( - decoded, - )); - } - if let Ok(decoded) = DecreaseUserBalanceFilter::decode_log(log) { - return Ok(IPortfolioEventsEvents::DecreaseUserBalanceFilter(decoded)); - } - if let Ok(decoded) = DepositFilter::decode_log(log) { - return Ok(IPortfolioEventsEvents::DepositFilter(decoded)); - } - if let Ok(decoded) = IncreaseReserveBalanceFilter::decode_log(log) { - return Ok(IPortfolioEventsEvents::IncreaseReserveBalanceFilter( - decoded, - )); - } - if let Ok(decoded) = IncreaseUserBalanceFilter::decode_log(log) { - return Ok(IPortfolioEventsEvents::IncreaseUserBalanceFilter(decoded)); - } - if let Ok(decoded) = SwapFilter::decode_log(log) { - return Ok(IPortfolioEventsEvents::SwapFilter(decoded)); - } - if let Ok(decoded) = UpdateProtocolFeeFilter::decode_log(log) { - return Ok(IPortfolioEventsEvents::UpdateProtocolFeeFilter(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData) - } - } - impl ::core::fmt::Display for IPortfolioEventsEvents { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::AllocateFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::ChangeParametersFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::CollectFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::CreatePairFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::CreatePoolFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::DeallocateFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::DecreaseReserveBalanceFilter(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::DecreaseUserBalanceFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::DepositFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::IncreaseReserveBalanceFilter(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::IncreaseUserBalanceFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::SwapFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::UpdateProtocolFeeFilter(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for IPortfolioEventsEvents { - fn from(value: AllocateFilter) -> Self { - Self::AllocateFilter(value) - } - } - impl ::core::convert::From for IPortfolioEventsEvents { - fn from(value: ChangeParametersFilter) -> Self { - Self::ChangeParametersFilter(value) - } - } - impl ::core::convert::From for IPortfolioEventsEvents { - fn from(value: CollectFilter) -> Self { - Self::CollectFilter(value) - } - } - impl ::core::convert::From for IPortfolioEventsEvents { - fn from(value: CreatePairFilter) -> Self { - Self::CreatePairFilter(value) - } - } - impl ::core::convert::From for IPortfolioEventsEvents { - fn from(value: CreatePoolFilter) -> Self { - Self::CreatePoolFilter(value) - } - } - impl ::core::convert::From for IPortfolioEventsEvents { - fn from(value: DeallocateFilter) -> Self { - Self::DeallocateFilter(value) - } - } - impl ::core::convert::From for IPortfolioEventsEvents { - fn from(value: DecreaseReserveBalanceFilter) -> Self { - Self::DecreaseReserveBalanceFilter(value) - } - } - impl ::core::convert::From for IPortfolioEventsEvents { - fn from(value: DecreaseUserBalanceFilter) -> Self { - Self::DecreaseUserBalanceFilter(value) - } - } - impl ::core::convert::From for IPortfolioEventsEvents { - fn from(value: DepositFilter) -> Self { - Self::DepositFilter(value) - } - } - impl ::core::convert::From for IPortfolioEventsEvents { - fn from(value: IncreaseReserveBalanceFilter) -> Self { - Self::IncreaseReserveBalanceFilter(value) - } - } - impl ::core::convert::From for IPortfolioEventsEvents { - fn from(value: IncreaseUserBalanceFilter) -> Self { - Self::IncreaseUserBalanceFilter(value) - } - } - impl ::core::convert::From for IPortfolioEventsEvents { - fn from(value: SwapFilter) -> Self { - Self::SwapFilter(value) - } - } - impl ::core::convert::From for IPortfolioEventsEvents { - fn from(value: UpdateProtocolFeeFilter) -> Self { - Self::UpdateProtocolFeeFilter(value) - } - } -} diff --git a/crates/bindings/src/i_portfolio_getters.rs b/crates/bindings/src/i_portfolio_getters.rs deleted file mode 100644 index 9c33328f..00000000 --- a/crates/bindings/src/i_portfolio_getters.rs +++ /dev/null @@ -1,1041 +0,0 @@ -pub use i_portfolio_getters::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types -)] -pub mod i_portfolio_getters { - pub use super::super::shared_types::*; - #[rustfmt::skip] - const __ABI: &str = "[{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\",\"name\":\"VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"WETH\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"bool\",\"name\":\"sellAsset\",\"type\":\"bool\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getAmountOut\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"int128\",\"name\":\"deltaLiquidity\",\"type\":\"int128\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getLiquidityDeltas\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"deltaAsset\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"deltaQuote\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getMaxLiquidity\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"deltaLiquidity\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getNetBalance\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPairId\",\"outputs\":[{\"internalType\":\"uint24\",\"name\":\"pairId\",\"type\":\"uint24\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPairNonce\",\"outputs\":[{\"internalType\":\"uint24\",\"name\":\"\",\"type\":\"uint24\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"pairNonce\",\"type\":\"uint24\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPoolNonce\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPoolReserves\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getReserve\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getVirtualPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getVirtualReservesPerLiquidity\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"deltaAsset\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"deltaQuote\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"pairId\",\"type\":\"uint24\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"pairs\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"tokenAsset\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsAsset\",\"type\":\"uint8\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"tokenQuote\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsQuote\",\"type\":\"uint8\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"pools\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"virtualX\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"virtualY\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"liquidity\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint32\",\"name\":\"lastTimestamp\",\"type\":\"uint32\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"controller\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"invariantGrowthGlobal\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthGlobalAsset\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthGlobalQuote\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"struct PortfolioCurve\",\"name\":\"\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"uint128\",\"name\":\"maxPrice\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"jit\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"fee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"duration\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"volatility\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"priorityFee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint32\",\"name\":\"createdAt\",\"type\":\"uint32\",\"components\":[]},{\"internalType\":\"bool\",\"name\":\"perpetual\",\"type\":\"bool\",\"components\":[]}]},{\"internalType\":\"struct PortfolioPair\",\"name\":\"\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"address\",\"name\":\"tokenAsset\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsAsset\",\"type\":\"uint8\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"tokenQuote\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsQuote\",\"type\":\"uint8\",\"components\":[]}]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"positions\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"freeLiquidity\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint32\",\"name\":\"lastTimestamp\",\"type\":\"uint32\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"invariantGrowthLast\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthAssetLast\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthQuoteLast\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"tokensOwedAsset\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"tokensOwedQuote\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"invariantOwed\",\"type\":\"uint128\",\"components\":[]}]}]"; - ///The parsed JSON ABI of the contract. - pub static IPORTFOLIOGETTERS_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = - ::ethers::contract::Lazy::new(|| { - ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid") - }); - pub struct IPortfolioGetters(::ethers::contract::Contract); - impl ::core::clone::Clone for IPortfolioGetters { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for IPortfolioGetters { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for IPortfolioGetters { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for IPortfolioGetters { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(stringify!(IPortfolioGetters)) - .field(&self.address()) - .finish() - } - } - impl IPortfolioGetters { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self(::ethers::contract::Contract::new( - address.into(), - IPORTFOLIOGETTERS_ABI.clone(), - client, - )) - } - ///Calls the contract's `REGISTRY` (0x06433b1b) function - pub fn registry( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([6, 67, 59, 27], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `VERSION` (0xffa1ad74) function - pub fn version( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([255, 161, 173, 116], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `WETH` (0xad5c4648) function - pub fn weth( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([173, 92, 70, 72], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getAmountOut` (0x7dae4890) function - pub fn get_amount_out( - &self, - pool_id: u64, - sell_asset: bool, - amount_in: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([125, 174, 72, 144], (pool_id, sell_asset, amount_in)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getBalance` (0xd4fac45d) function - pub fn get_balance( - &self, - owner: ::ethers::core::types::Address, - token: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([212, 250, 196, 93], (owner, token)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getLiquidityDeltas` (0x8992f20a) function - pub fn get_liquidity_deltas( - &self, - pool_id: u64, - delta_liquidity: i128, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([137, 146, 242, 10], (pool_id, delta_liquidity)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getMaxLiquidity` (0xd6b7dec5) function - pub fn get_max_liquidity( - &self, - pool_id: u64, - delta_asset: ::ethers::core::types::U256, - delta_quote: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([214, 183, 222, 197], (pool_id, delta_asset, delta_quote)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getNetBalance` (0x4dc68a90) function - pub fn get_net_balance( - &self, - token: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([77, 198, 138, 144], token) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getPairId` (0x3f92a339) function - pub fn get_pair_id( - &self, - asset: ::ethers::core::types::Address, - quote: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([63, 146, 163, 57], (asset, quote)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getPairNonce` (0x078888d6) function - pub fn get_pair_nonce(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([7, 136, 136, 214], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getPoolNonce` (0xa5cd8a49) function - pub fn get_pool_nonce( - &self, - pair_nonce: u32, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([165, 205, 138, 73], pair_nonce) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getPoolReserves` (0x2afb9df8) function - pub fn get_pool_reserves( - &self, - pool_id: u64, - ) -> ::ethers::contract::builders::ContractCall< - M, - (::ethers::core::types::U256, ::ethers::core::types::U256), - > { - self.0 - .method_hash([42, 251, 157, 248], pool_id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getReserve` (0xc9a396e9) function - pub fn get_reserve( - &self, - token: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([201, 163, 150, 233], token) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getVirtualPrice` (0x61b7ea6a) function - pub fn get_virtual_price( - &self, - pool_id: u64, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([97, 183, 234, 106], pool_id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getVirtualReservesPerLiquidity` (0x1a4b905b) function - pub fn get_virtual_reserves_per_liquidity( - &self, - pool_id: u64, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([26, 75, 144, 91], pool_id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `pairs` (0x5e47663c) function - pub fn pairs( - &self, - pair_id: u32, - ) -> ::ethers::contract::builders::ContractCall< - M, - ( - ::ethers::core::types::Address, - u8, - ::ethers::core::types::Address, - u8, - ), - > { - self.0 - .method_hash([94, 71, 102, 60], pair_id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `pools` (0x89a5f084) function - pub fn pools( - &self, - pool_id: u64, - ) -> ::ethers::contract::builders::ContractCall< - M, - ( - u128, - u128, - u128, - u32, - ::ethers::core::types::Address, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - PortfolioCurve, - PortfolioPair, - ), - > { - self.0 - .method_hash([137, 165, 240, 132], pool_id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `positions` (0xb68513ea) function - pub fn positions( - &self, - owner: ::ethers::core::types::Address, - pool_id: u64, - ) -> ::ethers::contract::builders::ContractCall< - M, - ( - u128, - u32, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - u128, - u128, - u128, - ), - > { - self.0 - .method_hash([182, 133, 19, 234], (owner, pool_id)) - .expect("method not found (this should never happen)") - } - } - impl From<::ethers::contract::Contract> - for IPortfolioGetters - { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - ///Container type for all input parameters for the `REGISTRY` function with signature `REGISTRY()` and selector `0x06433b1b` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "REGISTRY", abi = "REGISTRY()")] - pub struct RegistryCall; - ///Container type for all input parameters for the `VERSION` function with signature `VERSION()` and selector `0xffa1ad74` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "VERSION", abi = "VERSION()")] - pub struct VersionCall; - ///Container type for all input parameters for the `WETH` function with signature `WETH()` and selector `0xad5c4648` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "WETH", abi = "WETH()")] - pub struct WethCall; - ///Container type for all input parameters for the `getAmountOut` function with signature `getAmountOut(uint64,bool,uint256)` and selector `0x7dae4890` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getAmountOut", abi = "getAmountOut(uint64,bool,uint256)")] - pub struct GetAmountOutCall { - pub pool_id: u64, - pub sell_asset: bool, - pub amount_in: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `getBalance` function with signature `getBalance(address,address)` and selector `0xd4fac45d` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getBalance", abi = "getBalance(address,address)")] - pub struct GetBalanceCall { - pub owner: ::ethers::core::types::Address, - pub token: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `getLiquidityDeltas` function with signature `getLiquidityDeltas(uint64,int128)` and selector `0x8992f20a` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getLiquidityDeltas", abi = "getLiquidityDeltas(uint64,int128)")] - pub struct GetLiquidityDeltasCall { - pub pool_id: u64, - pub delta_liquidity: i128, - } - ///Container type for all input parameters for the `getMaxLiquidity` function with signature `getMaxLiquidity(uint64,uint256,uint256)` and selector `0xd6b7dec5` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall( - name = "getMaxLiquidity", - abi = "getMaxLiquidity(uint64,uint256,uint256)" - )] - pub struct GetMaxLiquidityCall { - pub pool_id: u64, - pub delta_asset: ::ethers::core::types::U256, - pub delta_quote: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `getNetBalance` function with signature `getNetBalance(address)` and selector `0x4dc68a90` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getNetBalance", abi = "getNetBalance(address)")] - pub struct GetNetBalanceCall { - pub token: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `getPairId` function with signature `getPairId(address,address)` and selector `0x3f92a339` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getPairId", abi = "getPairId(address,address)")] - pub struct GetPairIdCall { - pub asset: ::ethers::core::types::Address, - pub quote: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `getPairNonce` function with signature `getPairNonce()` and selector `0x078888d6` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getPairNonce", abi = "getPairNonce()")] - pub struct GetPairNonceCall; - ///Container type for all input parameters for the `getPoolNonce` function with signature `getPoolNonce(uint24)` and selector `0xa5cd8a49` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getPoolNonce", abi = "getPoolNonce(uint24)")] - pub struct GetPoolNonceCall { - pub pair_nonce: u32, - } - ///Container type for all input parameters for the `getPoolReserves` function with signature `getPoolReserves(uint64)` and selector `0x2afb9df8` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getPoolReserves", abi = "getPoolReserves(uint64)")] - pub struct GetPoolReservesCall { - pub pool_id: u64, - } - ///Container type for all input parameters for the `getReserve` function with signature `getReserve(address)` and selector `0xc9a396e9` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getReserve", abi = "getReserve(address)")] - pub struct GetReserveCall { - pub token: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `getVirtualPrice` function with signature `getVirtualPrice(uint64)` and selector `0x61b7ea6a` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getVirtualPrice", abi = "getVirtualPrice(uint64)")] - pub struct GetVirtualPriceCall { - pub pool_id: u64, - } - ///Container type for all input parameters for the `getVirtualReservesPerLiquidity` function with signature `getVirtualReservesPerLiquidity(uint64)` and selector `0x1a4b905b` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall( - name = "getVirtualReservesPerLiquidity", - abi = "getVirtualReservesPerLiquidity(uint64)" - )] - pub struct GetVirtualReservesPerLiquidityCall { - pub pool_id: u64, - } - ///Container type for all input parameters for the `pairs` function with signature `pairs(uint24)` and selector `0x5e47663c` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "pairs", abi = "pairs(uint24)")] - pub struct PairsCall { - pub pair_id: u32, - } - ///Container type for all input parameters for the `pools` function with signature `pools(uint64)` and selector `0x89a5f084` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "pools", abi = "pools(uint64)")] - pub struct PoolsCall { - pub pool_id: u64, - } - ///Container type for all input parameters for the `positions` function with signature `positions(address,uint64)` and selector `0xb68513ea` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "positions", abi = "positions(address,uint64)")] - pub struct PositionsCall { - pub owner: ::ethers::core::types::Address, - pub pool_id: u64, - } - ///Container type for all of the contract's call - #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] - pub enum IPortfolioGettersCalls { - Registry(RegistryCall), - Version(VersionCall), - Weth(WethCall), - GetAmountOut(GetAmountOutCall), - GetBalance(GetBalanceCall), - GetLiquidityDeltas(GetLiquidityDeltasCall), - GetMaxLiquidity(GetMaxLiquidityCall), - GetNetBalance(GetNetBalanceCall), - GetPairId(GetPairIdCall), - GetPairNonce(GetPairNonceCall), - GetPoolNonce(GetPoolNonceCall), - GetPoolReserves(GetPoolReservesCall), - GetReserve(GetReserveCall), - GetVirtualPrice(GetVirtualPriceCall), - GetVirtualReservesPerLiquidity(GetVirtualReservesPerLiquidityCall), - Pairs(PairsCall), - Pools(PoolsCall), - Positions(PositionsCall), - } - impl ::ethers::core::abi::AbiDecode for IPortfolioGettersCalls { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Registry(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Version(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Weth(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::GetAmountOut(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::GetBalance(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::GetLiquidityDeltas(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::GetMaxLiquidity(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::GetNetBalance(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::GetPairId(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::GetPairNonce(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::GetPoolNonce(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::GetPoolReserves(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::GetReserve(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::GetVirtualPrice(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::GetVirtualReservesPerLiquidity(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Pairs(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Pools(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Positions(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for IPortfolioGettersCalls { - fn encode(self) -> Vec { - match self { - Self::Registry(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Version(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Weth(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetAmountOut(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetBalance(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetLiquidityDeltas(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::GetMaxLiquidity(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetNetBalance(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetPairId(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetPairNonce(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetPoolNonce(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetPoolReserves(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetReserve(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetVirtualPrice(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetVirtualReservesPerLiquidity(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Pairs(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Pools(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Positions(element) => ::ethers::core::abi::AbiEncode::encode(element), - } - } - } - impl ::core::fmt::Display for IPortfolioGettersCalls { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::Registry(element) => ::core::fmt::Display::fmt(element, f), - Self::Version(element) => ::core::fmt::Display::fmt(element, f), - Self::Weth(element) => ::core::fmt::Display::fmt(element, f), - Self::GetAmountOut(element) => ::core::fmt::Display::fmt(element, f), - Self::GetBalance(element) => ::core::fmt::Display::fmt(element, f), - Self::GetLiquidityDeltas(element) => ::core::fmt::Display::fmt(element, f), - Self::GetMaxLiquidity(element) => ::core::fmt::Display::fmt(element, f), - Self::GetNetBalance(element) => ::core::fmt::Display::fmt(element, f), - Self::GetPairId(element) => ::core::fmt::Display::fmt(element, f), - Self::GetPairNonce(element) => ::core::fmt::Display::fmt(element, f), - Self::GetPoolNonce(element) => ::core::fmt::Display::fmt(element, f), - Self::GetPoolReserves(element) => ::core::fmt::Display::fmt(element, f), - Self::GetReserve(element) => ::core::fmt::Display::fmt(element, f), - Self::GetVirtualPrice(element) => ::core::fmt::Display::fmt(element, f), - Self::GetVirtualReservesPerLiquidity(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::Pairs(element) => ::core::fmt::Display::fmt(element, f), - Self::Pools(element) => ::core::fmt::Display::fmt(element, f), - Self::Positions(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for IPortfolioGettersCalls { - fn from(value: RegistryCall) -> Self { - Self::Registry(value) - } - } - impl ::core::convert::From for IPortfolioGettersCalls { - fn from(value: VersionCall) -> Self { - Self::Version(value) - } - } - impl ::core::convert::From for IPortfolioGettersCalls { - fn from(value: WethCall) -> Self { - Self::Weth(value) - } - } - impl ::core::convert::From for IPortfolioGettersCalls { - fn from(value: GetAmountOutCall) -> Self { - Self::GetAmountOut(value) - } - } - impl ::core::convert::From for IPortfolioGettersCalls { - fn from(value: GetBalanceCall) -> Self { - Self::GetBalance(value) - } - } - impl ::core::convert::From for IPortfolioGettersCalls { - fn from(value: GetLiquidityDeltasCall) -> Self { - Self::GetLiquidityDeltas(value) - } - } - impl ::core::convert::From for IPortfolioGettersCalls { - fn from(value: GetMaxLiquidityCall) -> Self { - Self::GetMaxLiquidity(value) - } - } - impl ::core::convert::From for IPortfolioGettersCalls { - fn from(value: GetNetBalanceCall) -> Self { - Self::GetNetBalance(value) - } - } - impl ::core::convert::From for IPortfolioGettersCalls { - fn from(value: GetPairIdCall) -> Self { - Self::GetPairId(value) - } - } - impl ::core::convert::From for IPortfolioGettersCalls { - fn from(value: GetPairNonceCall) -> Self { - Self::GetPairNonce(value) - } - } - impl ::core::convert::From for IPortfolioGettersCalls { - fn from(value: GetPoolNonceCall) -> Self { - Self::GetPoolNonce(value) - } - } - impl ::core::convert::From for IPortfolioGettersCalls { - fn from(value: GetPoolReservesCall) -> Self { - Self::GetPoolReserves(value) - } - } - impl ::core::convert::From for IPortfolioGettersCalls { - fn from(value: GetReserveCall) -> Self { - Self::GetReserve(value) - } - } - impl ::core::convert::From for IPortfolioGettersCalls { - fn from(value: GetVirtualPriceCall) -> Self { - Self::GetVirtualPrice(value) - } - } - impl ::core::convert::From for IPortfolioGettersCalls { - fn from(value: GetVirtualReservesPerLiquidityCall) -> Self { - Self::GetVirtualReservesPerLiquidity(value) - } - } - impl ::core::convert::From for IPortfolioGettersCalls { - fn from(value: PairsCall) -> Self { - Self::Pairs(value) - } - } - impl ::core::convert::From for IPortfolioGettersCalls { - fn from(value: PoolsCall) -> Self { - Self::Pools(value) - } - } - impl ::core::convert::From for IPortfolioGettersCalls { - fn from(value: PositionsCall) -> Self { - Self::Positions(value) - } - } - ///Container type for all return fields from the `REGISTRY` function with signature `REGISTRY()` and selector `0x06433b1b` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct RegistryReturn(pub ::ethers::core::types::Address); - ///Container type for all return fields from the `VERSION` function with signature `VERSION()` and selector `0xffa1ad74` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct VersionReturn(pub ::std::string::String); - ///Container type for all return fields from the `WETH` function with signature `WETH()` and selector `0xad5c4648` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct WethReturn(pub ::ethers::core::types::Address); - ///Container type for all return fields from the `getAmountOut` function with signature `getAmountOut(uint64,bool,uint256)` and selector `0x7dae4890` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetAmountOutReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `getBalance` function with signature `getBalance(address,address)` and selector `0xd4fac45d` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetBalanceReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `getLiquidityDeltas` function with signature `getLiquidityDeltas(uint64,int128)` and selector `0x8992f20a` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetLiquidityDeltasReturn { - pub delta_asset: u128, - pub delta_quote: u128, - } - ///Container type for all return fields from the `getMaxLiquidity` function with signature `getMaxLiquidity(uint64,uint256,uint256)` and selector `0xd6b7dec5` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetMaxLiquidityReturn { - pub delta_liquidity: u128, - } - ///Container type for all return fields from the `getNetBalance` function with signature `getNetBalance(address)` and selector `0x4dc68a90` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetNetBalanceReturn(pub ::ethers::core::types::I256); - ///Container type for all return fields from the `getPairId` function with signature `getPairId(address,address)` and selector `0x3f92a339` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetPairIdReturn { - pub pair_id: u32, - } - ///Container type for all return fields from the `getPairNonce` function with signature `getPairNonce()` and selector `0x078888d6` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetPairNonceReturn(pub u32); - ///Container type for all return fields from the `getPoolNonce` function with signature `getPoolNonce(uint24)` and selector `0xa5cd8a49` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetPoolNonceReturn(pub u32); - ///Container type for all return fields from the `getPoolReserves` function with signature `getPoolReserves(uint64)` and selector `0x2afb9df8` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetPoolReservesReturn { - pub delta_asset: ::ethers::core::types::U256, - pub delta_quote: ::ethers::core::types::U256, - } - ///Container type for all return fields from the `getReserve` function with signature `getReserve(address)` and selector `0xc9a396e9` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetReserveReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `getVirtualPrice` function with signature `getVirtualPrice(uint64)` and selector `0x61b7ea6a` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetVirtualPriceReturn { - pub price: ::ethers::core::types::U256, - } - ///Container type for all return fields from the `getVirtualReservesPerLiquidity` function with signature `getVirtualReservesPerLiquidity(uint64)` and selector `0x1a4b905b` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetVirtualReservesPerLiquidityReturn { - pub delta_asset: u128, - pub delta_quote: u128, - } - ///Container type for all return fields from the `pairs` function with signature `pairs(uint24)` and selector `0x5e47663c` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct PairsReturn { - pub token_asset: ::ethers::core::types::Address, - pub decimals_asset: u8, - pub token_quote: ::ethers::core::types::Address, - pub decimals_quote: u8, - } - ///Container type for all return fields from the `pools` function with signature `pools(uint64)` and selector `0x89a5f084` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct PoolsReturn { - pub virtual_x: u128, - pub virtual_y: u128, - pub liquidity: u128, - pub last_timestamp: u32, - pub controller: ::ethers::core::types::Address, - pub invariant_growth_global: ::ethers::core::types::U256, - pub fee_growth_global_asset: ::ethers::core::types::U256, - pub fee_growth_global_quote: ::ethers::core::types::U256, - pub p8: PortfolioCurve, - pub p9: PortfolioPair, - } - ///Container type for all return fields from the `positions` function with signature `positions(address,uint64)` and selector `0xb68513ea` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct PositionsReturn { - pub free_liquidity: u128, - pub last_timestamp: u32, - pub invariant_growth_last: ::ethers::core::types::U256, - pub fee_growth_asset_last: ::ethers::core::types::U256, - pub fee_growth_quote_last: ::ethers::core::types::U256, - pub tokens_owed_asset: u128, - pub tokens_owed_quote: u128, - pub invariant_owed: u128, - } -} diff --git a/crates/bindings/src/i_portfolio_registry.rs b/crates/bindings/src/i_portfolio_registry.rs deleted file mode 100644 index 3c13f8d0..00000000 --- a/crates/bindings/src/i_portfolio_registry.rs +++ /dev/null @@ -1,98 +0,0 @@ -pub use i_portfolio_registry::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types -)] -pub mod i_portfolio_registry { - #[rustfmt::skip] - const __ABI: &str = "[{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"controller\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]}]"; - ///The parsed JSON ABI of the contract. - pub static IPORTFOLIOREGISTRY_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = - ::ethers::contract::Lazy::new(|| { - ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid") - }); - pub struct IPortfolioRegistry(::ethers::contract::Contract); - impl ::core::clone::Clone for IPortfolioRegistry { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for IPortfolioRegistry { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for IPortfolioRegistry { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for IPortfolioRegistry { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(stringify!(IPortfolioRegistry)) - .field(&self.address()) - .finish() - } - } - impl IPortfolioRegistry { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self(::ethers::contract::Contract::new( - address.into(), - IPORTFOLIOREGISTRY_ABI.clone(), - client, - )) - } - ///Calls the contract's `controller` (0xf77c4791) function - pub fn controller( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([247, 124, 71, 145], ()) - .expect("method not found (this should never happen)") - } - } - impl From<::ethers::contract::Contract> - for IPortfolioRegistry - { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - ///Container type for all input parameters for the `controller` function with signature `controller()` and selector `0xf77c4791` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "controller", abi = "controller()")] - pub struct ControllerCall; - ///Container type for all return fields from the `controller` function with signature `controller()` and selector `0xf77c4791` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct ControllerReturn(pub ::ethers::core::types::Address); -} diff --git a/crates/bindings/src/ierc1155.rs b/crates/bindings/src/ierc1155.rs new file mode 100644 index 00000000..108e398b --- /dev/null +++ b/crates/bindings/src/ierc1155.rs @@ -0,0 +1,636 @@ +pub use ierc1155::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod ierc1155 { + #[rustfmt::skip] + const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"_operator\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"bool\",\"name\":\"_approved\",\"type\":\"bool\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"ApprovalForAll\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_operator\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256[]\",\"name\":\"_ids\",\"type\":\"uint256[]\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256[]\",\"name\":\"_values\",\"type\":\"uint256[]\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"TransferBatch\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_operator\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"_id\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"TransferSingle\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_value\",\"type\":\"string\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"_id\",\"type\":\"uint256\",\"components\":[],\"indexed\":true}],\"type\":\"event\",\"name\":\"URI\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"_id\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_owners\",\"type\":\"address[]\",\"components\":[]},{\"internalType\":\"uint256[]\",\"name\":\"_ids\",\"type\":\"uint256[]\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"balanceOfBatch\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"_operator\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256[]\",\"name\":\"_ids\",\"type\":\"uint256[]\",\"components\":[]},{\"internalType\":\"uint256[]\",\"name\":\"_values\",\"type\":\"uint256[]\",\"components\":[]},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"safeBatchTransferFrom\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"_id\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"safeTransferFrom\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_operator\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"bool\",\"name\":\"_approved\",\"type\":\"bool\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"setApprovalForAll\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceID\",\"type\":\"bytes4\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]}]"; + ///The parsed JSON ABI of the contract. + pub static IERC1155_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| + ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); + pub struct IERC1155(::ethers::contract::Contract); + impl ::core::clone::Clone for IERC1155 { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for IERC1155 { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for IERC1155 { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for IERC1155 { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(stringify!(IERC1155)).field(&self.address()).finish() + } + } + impl IERC1155 { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + IERC1155_ABI.clone(), + client, + ), + ) + } + ///Calls the contract's `balanceOf` (0x00fdd58e) function + pub fn balance_of( + &self, + owner: ::ethers::core::types::Address, + id: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([0, 253, 213, 142], (owner, id)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `balanceOfBatch` (0x4e1273f4) function + pub fn balance_of_batch( + &self, + owners: ::std::vec::Vec<::ethers::core::types::Address>, + ids: ::std::vec::Vec<::ethers::core::types::U256>, + ) -> ::ethers::contract::builders::ContractCall< + M, + ::std::vec::Vec<::ethers::core::types::U256>, + > { + self.0 + .method_hash([78, 18, 115, 244], (owners, ids)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `isApprovedForAll` (0xe985e9c5) function + pub fn is_approved_for_all( + &self, + owner: ::ethers::core::types::Address, + operator: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([233, 133, 233, 197], (owner, operator)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `safeBatchTransferFrom` (0x2eb2c2d6) function + pub fn safe_batch_transfer_from( + &self, + from: ::ethers::core::types::Address, + to: ::ethers::core::types::Address, + ids: ::std::vec::Vec<::ethers::core::types::U256>, + values: ::std::vec::Vec<::ethers::core::types::U256>, + data: ::ethers::core::types::Bytes, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([46, 178, 194, 214], (from, to, ids, values, data)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `safeTransferFrom` (0xf242432a) function + pub fn safe_transfer_from( + &self, + from: ::ethers::core::types::Address, + to: ::ethers::core::types::Address, + id: ::ethers::core::types::U256, + value: ::ethers::core::types::U256, + data: ::ethers::core::types::Bytes, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([242, 66, 67, 42], (from, to, id, value, data)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `setApprovalForAll` (0xa22cb465) function + pub fn set_approval_for_all( + &self, + operator: ::ethers::core::types::Address, + approved: bool, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([162, 44, 180, 101], (operator, approved)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `supportsInterface` (0x01ffc9a7) function + pub fn supports_interface( + &self, + interface_id: [u8; 4], + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([1, 255, 201, 167], interface_id) + .expect("method not found (this should never happen)") + } + ///Gets the contract's `ApprovalForAll` event + pub fn approval_for_all_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + ApprovalForAllFilter, + > { + self.0.event() + } + ///Gets the contract's `TransferBatch` event + pub fn transfer_batch_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + TransferBatchFilter, + > { + self.0.event() + } + ///Gets the contract's `TransferSingle` event + pub fn transfer_single_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + TransferSingleFilter, + > { + self.0.event() + } + ///Gets the contract's `URI` event + pub fn uri_filter( + &self, + ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, UriFilter> { + self.0.event() + } + /// Returns an `Event` builder for all the events of this contract. + pub fn events( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + IERC1155Events, + > { + self.0.event_with_filter(::core::default::Default::default()) + } + } + impl From<::ethers::contract::Contract> + for IERC1155 { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "ApprovalForAll", abi = "ApprovalForAll(address,address,bool)")] + pub struct ApprovalForAllFilter { + #[ethevent(indexed)] + pub owner: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub operator: ::ethers::core::types::Address, + pub approved: bool, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "TransferBatch", + abi = "TransferBatch(address,address,address,uint256[],uint256[])" + )] + pub struct TransferBatchFilter { + #[ethevent(indexed)] + pub operator: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub from: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub to: ::ethers::core::types::Address, + pub ids: ::std::vec::Vec<::ethers::core::types::U256>, + pub values: ::std::vec::Vec<::ethers::core::types::U256>, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "TransferSingle", + abi = "TransferSingle(address,address,address,uint256,uint256)" + )] + pub struct TransferSingleFilter { + #[ethevent(indexed)] + pub operator: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub from: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub to: ::ethers::core::types::Address, + pub id: ::ethers::core::types::U256, + pub value: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "URI", abi = "URI(string,uint256)")] + pub struct UriFilter { + pub value: ::std::string::String, + #[ethevent(indexed)] + pub id: ::ethers::core::types::U256, + } + ///Container type for all of the contract's events + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum IERC1155Events { + ApprovalForAllFilter(ApprovalForAllFilter), + TransferBatchFilter(TransferBatchFilter), + TransferSingleFilter(TransferSingleFilter), + UriFilter(UriFilter), + } + impl ::ethers::contract::EthLogDecode for IERC1155Events { + fn decode_log( + log: &::ethers::core::abi::RawLog, + ) -> ::core::result::Result { + if let Ok(decoded) = ApprovalForAllFilter::decode_log(log) { + return Ok(IERC1155Events::ApprovalForAllFilter(decoded)); + } + if let Ok(decoded) = TransferBatchFilter::decode_log(log) { + return Ok(IERC1155Events::TransferBatchFilter(decoded)); + } + if let Ok(decoded) = TransferSingleFilter::decode_log(log) { + return Ok(IERC1155Events::TransferSingleFilter(decoded)); + } + if let Ok(decoded) = UriFilter::decode_log(log) { + return Ok(IERC1155Events::UriFilter(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData) + } + } + impl ::core::fmt::Display for IERC1155Events { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::ApprovalForAllFilter(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::TransferBatchFilter(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::TransferSingleFilter(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::UriFilter(element) => ::core::fmt::Display::fmt(element, f), + } + } + } + impl ::core::convert::From for IERC1155Events { + fn from(value: ApprovalForAllFilter) -> Self { + Self::ApprovalForAllFilter(value) + } + } + impl ::core::convert::From for IERC1155Events { + fn from(value: TransferBatchFilter) -> Self { + Self::TransferBatchFilter(value) + } + } + impl ::core::convert::From for IERC1155Events { + fn from(value: TransferSingleFilter) -> Self { + Self::TransferSingleFilter(value) + } + } + impl ::core::convert::From for IERC1155Events { + fn from(value: UriFilter) -> Self { + Self::UriFilter(value) + } + } + ///Container type for all input parameters for the `balanceOf` function with signature `balanceOf(address,uint256)` and selector `0x00fdd58e` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "balanceOf", abi = "balanceOf(address,uint256)")] + pub struct BalanceOfCall { + pub owner: ::ethers::core::types::Address, + pub id: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `balanceOfBatch` function with signature `balanceOfBatch(address[],uint256[])` and selector `0x4e1273f4` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "balanceOfBatch", abi = "balanceOfBatch(address[],uint256[])")] + pub struct BalanceOfBatchCall { + pub owners: ::std::vec::Vec<::ethers::core::types::Address>, + pub ids: ::std::vec::Vec<::ethers::core::types::U256>, + } + ///Container type for all input parameters for the `isApprovedForAll` function with signature `isApprovedForAll(address,address)` and selector `0xe985e9c5` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "isApprovedForAll", abi = "isApprovedForAll(address,address)")] + pub struct IsApprovedForAllCall { + pub owner: ::ethers::core::types::Address, + pub operator: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `safeBatchTransferFrom` function with signature `safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)` and selector `0x2eb2c2d6` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall( + name = "safeBatchTransferFrom", + abi = "safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)" + )] + pub struct SafeBatchTransferFromCall { + pub from: ::ethers::core::types::Address, + pub to: ::ethers::core::types::Address, + pub ids: ::std::vec::Vec<::ethers::core::types::U256>, + pub values: ::std::vec::Vec<::ethers::core::types::U256>, + pub data: ::ethers::core::types::Bytes, + } + ///Container type for all input parameters for the `safeTransferFrom` function with signature `safeTransferFrom(address,address,uint256,uint256,bytes)` and selector `0xf242432a` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall( + name = "safeTransferFrom", + abi = "safeTransferFrom(address,address,uint256,uint256,bytes)" + )] + pub struct SafeTransferFromCall { + pub from: ::ethers::core::types::Address, + pub to: ::ethers::core::types::Address, + pub id: ::ethers::core::types::U256, + pub value: ::ethers::core::types::U256, + pub data: ::ethers::core::types::Bytes, + } + ///Container type for all input parameters for the `setApprovalForAll` function with signature `setApprovalForAll(address,bool)` and selector `0xa22cb465` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "setApprovalForAll", abi = "setApprovalForAll(address,bool)")] + pub struct SetApprovalForAllCall { + pub operator: ::ethers::core::types::Address, + pub approved: bool, + } + ///Container type for all input parameters for the `supportsInterface` function with signature `supportsInterface(bytes4)` and selector `0x01ffc9a7` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "supportsInterface", abi = "supportsInterface(bytes4)")] + pub struct SupportsInterfaceCall { + pub interface_id: [u8; 4], + } + ///Container type for all of the contract's call + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum IERC1155Calls { + BalanceOf(BalanceOfCall), + BalanceOfBatch(BalanceOfBatchCall), + IsApprovedForAll(IsApprovedForAllCall), + SafeBatchTransferFrom(SafeBatchTransferFromCall), + SafeTransferFrom(SafeTransferFromCall), + SetApprovalForAll(SetApprovalForAllCall), + SupportsInterface(SupportsInterfaceCall), + } + impl ::ethers::core::abi::AbiDecode for IERC1155Calls { + fn decode( + data: impl AsRef<[u8]>, + ) -> ::core::result::Result { + let data = data.as_ref(); + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::BalanceOf(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::BalanceOfBatch(decoded)); + } + if let Ok(decoded) + = ::decode( + data, + ) { + return Ok(Self::IsApprovedForAll(decoded)); + } + if let Ok(decoded) + = ::decode( + data, + ) { + return Ok(Self::SafeBatchTransferFrom(decoded)); + } + if let Ok(decoded) + = ::decode( + data, + ) { + return Ok(Self::SafeTransferFrom(decoded)); + } + if let Ok(decoded) + = ::decode( + data, + ) { + return Ok(Self::SetApprovalForAll(decoded)); + } + if let Ok(decoded) + = ::decode( + data, + ) { + return Ok(Self::SupportsInterface(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData.into()) + } + } + impl ::ethers::core::abi::AbiEncode for IERC1155Calls { + fn encode(self) -> Vec { + match self { + Self::BalanceOf(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::BalanceOfBatch(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::IsApprovedForAll(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::SafeBatchTransferFrom(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::SafeTransferFrom(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::SetApprovalForAll(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::SupportsInterface(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + } + } + } + impl ::core::fmt::Display for IERC1155Calls { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::BalanceOf(element) => ::core::fmt::Display::fmt(element, f), + Self::BalanceOfBatch(element) => ::core::fmt::Display::fmt(element, f), + Self::IsApprovedForAll(element) => ::core::fmt::Display::fmt(element, f), + Self::SafeBatchTransferFrom(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::SafeTransferFrom(element) => ::core::fmt::Display::fmt(element, f), + Self::SetApprovalForAll(element) => ::core::fmt::Display::fmt(element, f), + Self::SupportsInterface(element) => ::core::fmt::Display::fmt(element, f), + } + } + } + impl ::core::convert::From for IERC1155Calls { + fn from(value: BalanceOfCall) -> Self { + Self::BalanceOf(value) + } + } + impl ::core::convert::From for IERC1155Calls { + fn from(value: BalanceOfBatchCall) -> Self { + Self::BalanceOfBatch(value) + } + } + impl ::core::convert::From for IERC1155Calls { + fn from(value: IsApprovedForAllCall) -> Self { + Self::IsApprovedForAll(value) + } + } + impl ::core::convert::From for IERC1155Calls { + fn from(value: SafeBatchTransferFromCall) -> Self { + Self::SafeBatchTransferFrom(value) + } + } + impl ::core::convert::From for IERC1155Calls { + fn from(value: SafeTransferFromCall) -> Self { + Self::SafeTransferFrom(value) + } + } + impl ::core::convert::From for IERC1155Calls { + fn from(value: SetApprovalForAllCall) -> Self { + Self::SetApprovalForAll(value) + } + } + impl ::core::convert::From for IERC1155Calls { + fn from(value: SupportsInterfaceCall) -> Self { + Self::SupportsInterface(value) + } + } + ///Container type for all return fields from the `balanceOf` function with signature `balanceOf(address,uint256)` and selector `0x00fdd58e` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct BalanceOfReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `balanceOfBatch` function with signature `balanceOfBatch(address[],uint256[])` and selector `0x4e1273f4` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct BalanceOfBatchReturn(pub ::std::vec::Vec<::ethers::core::types::U256>); + ///Container type for all return fields from the `isApprovedForAll` function with signature `isApprovedForAll(address,address)` and selector `0xe985e9c5` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct IsApprovedForAllReturn(pub bool); + ///Container type for all return fields from the `supportsInterface` function with signature `supportsInterface(bytes4)` and selector `0x01ffc9a7` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct SupportsInterfaceReturn(pub bool); +} diff --git a/crates/bindings/src/ierc165.rs b/crates/bindings/src/ierc165.rs new file mode 100644 index 00000000..748cc7f8 --- /dev/null +++ b/crates/bindings/src/ierc165.rs @@ -0,0 +1,98 @@ +pub use ierc165::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod ierc165 { + #[rustfmt::skip] + const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceID\",\"type\":\"bytes4\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]}]"; + ///The parsed JSON ABI of the contract. + pub static IERC165_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| + ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); + pub struct IERC165(::ethers::contract::Contract); + impl ::core::clone::Clone for IERC165 { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for IERC165 { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for IERC165 { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for IERC165 { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(stringify!(IERC165)).field(&self.address()).finish() + } + } + impl IERC165 { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + IERC165_ABI.clone(), + client, + ), + ) + } + ///Calls the contract's `supportsInterface` (0x01ffc9a7) function + pub fn supports_interface( + &self, + interface_id: [u8; 4], + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([1, 255, 201, 167], interface_id) + .expect("method not found (this should never happen)") + } + } + impl From<::ethers::contract::Contract> + for IERC165 { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } + ///Container type for all input parameters for the `supportsInterface` function with signature `supportsInterface(bytes4)` and selector `0x01ffc9a7` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "supportsInterface", abi = "supportsInterface(bytes4)")] + pub struct SupportsInterfaceCall { + pub interface_id: [u8; 4], + } + ///Container type for all return fields from the `supportsInterface` function with signature `supportsInterface(bytes4)` and selector `0x01ffc9a7` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct SupportsInterfaceReturn(pub bool); +} diff --git a/crates/bindings/src/ierc20.rs b/crates/bindings/src/ierc20.rs index 9e0a8a9a..f4906012 100644 --- a/crates/bindings/src/ierc20.rs +++ b/crates/bindings/src/ierc20.rs @@ -7,16 +7,14 @@ pub use ierc20::*; clippy::upper_case_acronyms, clippy::type_complexity, dead_code, - non_camel_case_types + non_camel_case_types, )] pub mod ierc20 { #[rustfmt::skip] - const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Approval\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Transfer\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]}]"; + const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Approval\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Transfer\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]}]"; ///The parsed JSON ABI of the contract. - pub static IERC20_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = - ::ethers::contract::Lazy::new(|| { - ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid") - }); + pub static IERC20_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| + ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); pub struct IERC20(::ethers::contract::Contract); impl ::core::clone::Clone for IERC20 { fn clone(&self) -> Self { @@ -36,9 +34,7 @@ pub mod ierc20 { } impl ::core::fmt::Debug for IERC20 { fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(stringify!(IERC20)) - .field(&self.address()) - .finish() + f.debug_tuple(stringify!(IERC20)).field(&self.address()).finish() } } impl IERC20 { @@ -48,11 +44,13 @@ pub mod ierc20 { address: T, client: ::std::sync::Arc, ) -> Self { - Self(::ethers::contract::Contract::new( - address.into(), - IERC20_ABI.clone(), - client, - )) + Self( + ::ethers::contract::Contract::new( + address.into(), + IERC20_ABI.clone(), + client, + ), + ) } ///Calls the contract's `allowance` (0xdd62ed3e) function pub fn allowance( @@ -89,6 +87,22 @@ pub mod ierc20 { .method_hash([49, 60, 229, 103], ()) .expect("method not found (this should never happen)") } + ///Calls the contract's `name` (0x06fdde03) function + pub fn name( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([6, 253, 222, 3], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `symbol` (0x95d89b41) function + pub fn symbol( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([149, 216, 155, 65], ()) + .expect("method not found (this should never happen)") + } ///Calls the contract's `totalSupply` (0x18160ddd) function pub fn total_supply( &self, @@ -100,45 +114,53 @@ pub mod ierc20 { ///Calls the contract's `transfer` (0xa9059cbb) function pub fn transfer( &self, - recipient: ::ethers::core::types::Address, + to: ::ethers::core::types::Address, amount: ::ethers::core::types::U256, ) -> ::ethers::contract::builders::ContractCall { self.0 - .method_hash([169, 5, 156, 187], (recipient, amount)) + .method_hash([169, 5, 156, 187], (to, amount)) .expect("method not found (this should never happen)") } ///Calls the contract's `transferFrom` (0x23b872dd) function pub fn transfer_from( &self, - sender: ::ethers::core::types::Address, - recipient: ::ethers::core::types::Address, + from: ::ethers::core::types::Address, + to: ::ethers::core::types::Address, amount: ::ethers::core::types::U256, ) -> ::ethers::contract::builders::ContractCall { self.0 - .method_hash([35, 184, 114, 221], (sender, recipient, amount)) + .method_hash([35, 184, 114, 221], (from, to, amount)) .expect("method not found (this should never happen)") } ///Gets the contract's `Approval` event pub fn approval_filter( &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, ApprovalFilter> { + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + ApprovalFilter, + > { self.0.event() } ///Gets the contract's `Transfer` event pub fn transfer_filter( &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, TransferFilter> { + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + TransferFilter, + > { self.0.event() } /// Returns an `Event` builder for all the events of this contract. pub fn events( &self, ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, IERC20Events> { - self.0 - .event_with_filter(::core::default::Default::default()) + self.0.event_with_filter(::core::default::Default::default()) } } - impl From<::ethers::contract::Contract> for IERC20 { + impl From<::ethers::contract::Contract> + for IERC20 { fn from(contract: ::ethers::contract::Contract) -> Self { Self::new(contract.address(), contract.client()) } @@ -151,7 +173,7 @@ pub mod ierc20 { Debug, PartialEq, Eq, - Hash, + Hash )] #[ethevent(name = "Approval", abi = "Approval(address,address,uint256)")] pub struct ApprovalFilter { @@ -169,7 +191,7 @@ pub mod ierc20 { Debug, PartialEq, Eq, - Hash, + Hash )] #[ethevent(name = "Transfer", abi = "Transfer(address,address,uint256)")] pub struct TransferFilter { @@ -225,7 +247,7 @@ pub mod ierc20 { Debug, PartialEq, Eq, - Hash, + Hash )] #[ethcall(name = "allowance", abi = "allowance(address,address)")] pub struct AllowanceCall { @@ -241,7 +263,7 @@ pub mod ierc20 { Debug, PartialEq, Eq, - Hash, + Hash )] #[ethcall(name = "approve", abi = "approve(address,uint256)")] pub struct ApproveCall { @@ -257,7 +279,7 @@ pub mod ierc20 { Debug, PartialEq, Eq, - Hash, + Hash )] #[ethcall(name = "balanceOf", abi = "balanceOf(address)")] pub struct BalanceOfCall { @@ -272,10 +294,36 @@ pub mod ierc20 { Debug, PartialEq, Eq, - Hash, + Hash )] #[ethcall(name = "decimals", abi = "decimals()")] pub struct DecimalsCall; + ///Container type for all input parameters for the `name` function with signature `name()` and selector `0x06fdde03` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "name", abi = "name()")] + pub struct NameCall; + ///Container type for all input parameters for the `symbol` function with signature `symbol()` and selector `0x95d89b41` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "symbol", abi = "symbol()")] + pub struct SymbolCall; ///Container type for all input parameters for the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd` #[derive( Clone, @@ -285,7 +333,7 @@ pub mod ierc20 { Debug, PartialEq, Eq, - Hash, + Hash )] #[ethcall(name = "totalSupply", abi = "totalSupply()")] pub struct TotalSupplyCall; @@ -298,11 +346,11 @@ pub mod ierc20 { Debug, PartialEq, Eq, - Hash, + Hash )] #[ethcall(name = "transfer", abi = "transfer(address,uint256)")] pub struct TransferCall { - pub recipient: ::ethers::core::types::Address, + pub to: ::ethers::core::types::Address, pub amount: ::ethers::core::types::U256, } ///Container type for all input parameters for the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd` @@ -314,12 +362,12 @@ pub mod ierc20 { Debug, PartialEq, Eq, - Hash, + Hash )] #[ethcall(name = "transferFrom", abi = "transferFrom(address,address,uint256)")] pub struct TransferFromCall { - pub sender: ::ethers::core::types::Address, - pub recipient: ::ethers::core::types::Address, + pub from: ::ethers::core::types::Address, + pub to: ::ethers::core::types::Address, pub amount: ::ethers::core::types::U256, } ///Container type for all of the contract's call @@ -329,6 +377,8 @@ pub mod ierc20 { Approve(ApproveCall), BalanceOf(BalanceOfCall), Decimals(DecimalsCall), + Name(NameCall), + Symbol(SymbolCall), TotalSupply(TotalSupplyCall), Transfer(TransferCall), TransferFrom(TransferFromCall), @@ -338,26 +388,40 @@ pub mod ierc20 { data: impl AsRef<[u8]>, ) -> ::core::result::Result { let data = data.as_ref(); - if let Ok(decoded) = ::decode(data) { + if let Ok(decoded) + = ::decode(data) { return Ok(Self::Allowance(decoded)); } - if let Ok(decoded) = ::decode(data) { + if let Ok(decoded) + = ::decode(data) { return Ok(Self::Approve(decoded)); } - if let Ok(decoded) = ::decode(data) { + if let Ok(decoded) + = ::decode(data) { return Ok(Self::BalanceOf(decoded)); } - if let Ok(decoded) = ::decode(data) { + if let Ok(decoded) + = ::decode(data) { return Ok(Self::Decimals(decoded)); } - if let Ok(decoded) = ::decode(data) { + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Name(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Symbol(decoded)); + } + if let Ok(decoded) + = ::decode(data) { return Ok(Self::TotalSupply(decoded)); } - if let Ok(decoded) = ::decode(data) { + if let Ok(decoded) + = ::decode(data) { return Ok(Self::Transfer(decoded)); } - if let Ok(decoded) = ::decode(data) - { + if let Ok(decoded) + = ::decode(data) { return Ok(Self::TransferFrom(decoded)); } Err(::ethers::core::abi::Error::InvalidData.into()) @@ -366,13 +430,27 @@ pub mod ierc20 { impl ::ethers::core::abi::AbiEncode for IERC20Calls { fn encode(self) -> Vec { match self { - Self::Allowance(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Allowance(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } Self::Approve(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::BalanceOf(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Decimals(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::TotalSupply(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Transfer(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::TransferFrom(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::BalanceOf(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Decimals(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Name(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Symbol(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::TotalSupply(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Transfer(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::TransferFrom(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } } } } @@ -383,6 +461,8 @@ pub mod ierc20 { Self::Approve(element) => ::core::fmt::Display::fmt(element, f), Self::BalanceOf(element) => ::core::fmt::Display::fmt(element, f), Self::Decimals(element) => ::core::fmt::Display::fmt(element, f), + Self::Name(element) => ::core::fmt::Display::fmt(element, f), + Self::Symbol(element) => ::core::fmt::Display::fmt(element, f), Self::TotalSupply(element) => ::core::fmt::Display::fmt(element, f), Self::Transfer(element) => ::core::fmt::Display::fmt(element, f), Self::TransferFrom(element) => ::core::fmt::Display::fmt(element, f), @@ -409,6 +489,16 @@ pub mod ierc20 { Self::Decimals(value) } } + impl ::core::convert::From for IERC20Calls { + fn from(value: NameCall) -> Self { + Self::Name(value) + } + } + impl ::core::convert::From for IERC20Calls { + fn from(value: SymbolCall) -> Self { + Self::Symbol(value) + } + } impl ::core::convert::From for IERC20Calls { fn from(value: TotalSupplyCall) -> Self { Self::TotalSupply(value) @@ -433,7 +523,7 @@ pub mod ierc20 { Debug, PartialEq, Eq, - Hash, + Hash )] pub struct AllowanceReturn(pub ::ethers::core::types::U256); ///Container type for all return fields from the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` @@ -445,7 +535,7 @@ pub mod ierc20 { Debug, PartialEq, Eq, - Hash, + Hash )] pub struct ApproveReturn(pub bool); ///Container type for all return fields from the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` @@ -457,7 +547,7 @@ pub mod ierc20 { Debug, PartialEq, Eq, - Hash, + Hash )] pub struct BalanceOfReturn(pub ::ethers::core::types::U256); ///Container type for all return fields from the `decimals` function with signature `decimals()` and selector `0x313ce567` @@ -469,9 +559,33 @@ pub mod ierc20 { Debug, PartialEq, Eq, - Hash, + Hash )] pub struct DecimalsReturn(pub u8); + ///Container type for all return fields from the `name` function with signature `name()` and selector `0x06fdde03` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct NameReturn(pub ::std::string::String); + ///Container type for all return fields from the `symbol` function with signature `symbol()` and selector `0x95d89b41` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct SymbolReturn(pub ::std::string::String); ///Container type for all return fields from the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd` #[derive( Clone, @@ -481,7 +595,7 @@ pub mod ierc20 { Debug, PartialEq, Eq, - Hash, + Hash )] pub struct TotalSupplyReturn(pub ::ethers::core::types::U256); ///Container type for all return fields from the `transfer` function with signature `transfer(address,uint256)` and selector `0xa9059cbb` @@ -493,7 +607,7 @@ pub mod ierc20 { Debug, PartialEq, Eq, - Hash, + Hash )] pub struct TransferReturn(pub bool); ///Container type for all return fields from the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd` @@ -505,7 +619,7 @@ pub mod ierc20 { Debug, PartialEq, Eq, - Hash, + Hash )] pub struct TransferFromReturn(pub bool); } diff --git a/crates/bindings/src/ierc20_metadata.rs b/crates/bindings/src/ierc20_metadata.rs new file mode 100644 index 00000000..30da2183 --- /dev/null +++ b/crates/bindings/src/ierc20_metadata.rs @@ -0,0 +1,629 @@ +pub use ierc20_metadata::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod ierc20_metadata { + #[rustfmt::skip] + const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Approval\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Transfer\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]}]"; + ///The parsed JSON ABI of the contract. + pub static IERC20METADATA_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| + ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); + pub struct IERC20Metadata(::ethers::contract::Contract); + impl ::core::clone::Clone for IERC20Metadata { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for IERC20Metadata { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for IERC20Metadata { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for IERC20Metadata { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(stringify!(IERC20Metadata)).field(&self.address()).finish() + } + } + impl IERC20Metadata { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + IERC20METADATA_ABI.clone(), + client, + ), + ) + } + ///Calls the contract's `allowance` (0xdd62ed3e) function + pub fn allowance( + &self, + owner: ::ethers::core::types::Address, + spender: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([221, 98, 237, 62], (owner, spender)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `approve` (0x095ea7b3) function + pub fn approve( + &self, + spender: ::ethers::core::types::Address, + amount: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([9, 94, 167, 179], (spender, amount)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `balanceOf` (0x70a08231) function + pub fn balance_of( + &self, + account: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([112, 160, 130, 49], account) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `decimals` (0x313ce567) function + pub fn decimals(&self) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([49, 60, 229, 103], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `name` (0x06fdde03) function + pub fn name( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([6, 253, 222, 3], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `symbol` (0x95d89b41) function + pub fn symbol( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([149, 216, 155, 65], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `totalSupply` (0x18160ddd) function + pub fn total_supply( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([24, 22, 13, 221], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `transfer` (0xa9059cbb) function + pub fn transfer( + &self, + to: ::ethers::core::types::Address, + amount: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([169, 5, 156, 187], (to, amount)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `transferFrom` (0x23b872dd) function + pub fn transfer_from( + &self, + from: ::ethers::core::types::Address, + to: ::ethers::core::types::Address, + amount: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([35, 184, 114, 221], (from, to, amount)) + .expect("method not found (this should never happen)") + } + ///Gets the contract's `Approval` event + pub fn approval_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + ApprovalFilter, + > { + self.0.event() + } + ///Gets the contract's `Transfer` event + pub fn transfer_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + TransferFilter, + > { + self.0.event() + } + /// Returns an `Event` builder for all the events of this contract. + pub fn events( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + IERC20MetadataEvents, + > { + self.0.event_with_filter(::core::default::Default::default()) + } + } + impl From<::ethers::contract::Contract> + for IERC20Metadata { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "Approval", abi = "Approval(address,address,uint256)")] + pub struct ApprovalFilter { + #[ethevent(indexed)] + pub owner: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub spender: ::ethers::core::types::Address, + pub value: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "Transfer", abi = "Transfer(address,address,uint256)")] + pub struct TransferFilter { + #[ethevent(indexed)] + pub from: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub to: ::ethers::core::types::Address, + pub value: ::ethers::core::types::U256, + } + ///Container type for all of the contract's events + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum IERC20MetadataEvents { + ApprovalFilter(ApprovalFilter), + TransferFilter(TransferFilter), + } + impl ::ethers::contract::EthLogDecode for IERC20MetadataEvents { + fn decode_log( + log: &::ethers::core::abi::RawLog, + ) -> ::core::result::Result { + if let Ok(decoded) = ApprovalFilter::decode_log(log) { + return Ok(IERC20MetadataEvents::ApprovalFilter(decoded)); + } + if let Ok(decoded) = TransferFilter::decode_log(log) { + return Ok(IERC20MetadataEvents::TransferFilter(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData) + } + } + impl ::core::fmt::Display for IERC20MetadataEvents { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::ApprovalFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::TransferFilter(element) => ::core::fmt::Display::fmt(element, f), + } + } + } + impl ::core::convert::From for IERC20MetadataEvents { + fn from(value: ApprovalFilter) -> Self { + Self::ApprovalFilter(value) + } + } + impl ::core::convert::From for IERC20MetadataEvents { + fn from(value: TransferFilter) -> Self { + Self::TransferFilter(value) + } + } + ///Container type for all input parameters for the `allowance` function with signature `allowance(address,address)` and selector `0xdd62ed3e` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "allowance", abi = "allowance(address,address)")] + pub struct AllowanceCall { + pub owner: ::ethers::core::types::Address, + pub spender: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "approve", abi = "approve(address,uint256)")] + pub struct ApproveCall { + pub spender: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "balanceOf", abi = "balanceOf(address)")] + pub struct BalanceOfCall { + pub account: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `decimals` function with signature `decimals()` and selector `0x313ce567` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "decimals", abi = "decimals()")] + pub struct DecimalsCall; + ///Container type for all input parameters for the `name` function with signature `name()` and selector `0x06fdde03` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "name", abi = "name()")] + pub struct NameCall; + ///Container type for all input parameters for the `symbol` function with signature `symbol()` and selector `0x95d89b41` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "symbol", abi = "symbol()")] + pub struct SymbolCall; + ///Container type for all input parameters for the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "totalSupply", abi = "totalSupply()")] + pub struct TotalSupplyCall; + ///Container type for all input parameters for the `transfer` function with signature `transfer(address,uint256)` and selector `0xa9059cbb` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "transfer", abi = "transfer(address,uint256)")] + pub struct TransferCall { + pub to: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "transferFrom", abi = "transferFrom(address,address,uint256)")] + pub struct TransferFromCall { + pub from: ::ethers::core::types::Address, + pub to: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + ///Container type for all of the contract's call + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum IERC20MetadataCalls { + Allowance(AllowanceCall), + Approve(ApproveCall), + BalanceOf(BalanceOfCall), + Decimals(DecimalsCall), + Name(NameCall), + Symbol(SymbolCall), + TotalSupply(TotalSupplyCall), + Transfer(TransferCall), + TransferFrom(TransferFromCall), + } + impl ::ethers::core::abi::AbiDecode for IERC20MetadataCalls { + fn decode( + data: impl AsRef<[u8]>, + ) -> ::core::result::Result { + let data = data.as_ref(); + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Allowance(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Approve(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::BalanceOf(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Decimals(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Name(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Symbol(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::TotalSupply(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Transfer(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::TransferFrom(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData.into()) + } + } + impl ::ethers::core::abi::AbiEncode for IERC20MetadataCalls { + fn encode(self) -> Vec { + match self { + Self::Allowance(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Approve(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::BalanceOf(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Decimals(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Name(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Symbol(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::TotalSupply(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Transfer(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::TransferFrom(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + } + } + } + impl ::core::fmt::Display for IERC20MetadataCalls { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::Allowance(element) => ::core::fmt::Display::fmt(element, f), + Self::Approve(element) => ::core::fmt::Display::fmt(element, f), + Self::BalanceOf(element) => ::core::fmt::Display::fmt(element, f), + Self::Decimals(element) => ::core::fmt::Display::fmt(element, f), + Self::Name(element) => ::core::fmt::Display::fmt(element, f), + Self::Symbol(element) => ::core::fmt::Display::fmt(element, f), + Self::TotalSupply(element) => ::core::fmt::Display::fmt(element, f), + Self::Transfer(element) => ::core::fmt::Display::fmt(element, f), + Self::TransferFrom(element) => ::core::fmt::Display::fmt(element, f), + } + } + } + impl ::core::convert::From for IERC20MetadataCalls { + fn from(value: AllowanceCall) -> Self { + Self::Allowance(value) + } + } + impl ::core::convert::From for IERC20MetadataCalls { + fn from(value: ApproveCall) -> Self { + Self::Approve(value) + } + } + impl ::core::convert::From for IERC20MetadataCalls { + fn from(value: BalanceOfCall) -> Self { + Self::BalanceOf(value) + } + } + impl ::core::convert::From for IERC20MetadataCalls { + fn from(value: DecimalsCall) -> Self { + Self::Decimals(value) + } + } + impl ::core::convert::From for IERC20MetadataCalls { + fn from(value: NameCall) -> Self { + Self::Name(value) + } + } + impl ::core::convert::From for IERC20MetadataCalls { + fn from(value: SymbolCall) -> Self { + Self::Symbol(value) + } + } + impl ::core::convert::From for IERC20MetadataCalls { + fn from(value: TotalSupplyCall) -> Self { + Self::TotalSupply(value) + } + } + impl ::core::convert::From for IERC20MetadataCalls { + fn from(value: TransferCall) -> Self { + Self::Transfer(value) + } + } + impl ::core::convert::From for IERC20MetadataCalls { + fn from(value: TransferFromCall) -> Self { + Self::TransferFrom(value) + } + } + ///Container type for all return fields from the `allowance` function with signature `allowance(address,address)` and selector `0xdd62ed3e` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct AllowanceReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct ApproveReturn(pub bool); + ///Container type for all return fields from the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct BalanceOfReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `decimals` function with signature `decimals()` and selector `0x313ce567` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct DecimalsReturn(pub u8); + ///Container type for all return fields from the `name` function with signature `name()` and selector `0x06fdde03` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct NameReturn(pub ::std::string::String); + ///Container type for all return fields from the `symbol` function with signature `symbol()` and selector `0x95d89b41` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct SymbolReturn(pub ::std::string::String); + ///Container type for all return fields from the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct TotalSupplyReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `transfer` function with signature `transfer(address,uint256)` and selector `0xa9059cbb` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct TransferReturn(pub bool); + ///Container type for all return fields from the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct TransferFromReturn(pub bool); +} diff --git a/crates/bindings/src/ierc4626.rs b/crates/bindings/src/ierc4626.rs new file mode 100644 index 00000000..6516aa5d --- /dev/null +++ b/crates/bindings/src/ierc4626.rs @@ -0,0 +1,1539 @@ +pub use ierc4626::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod ierc4626 { + #[rustfmt::skip] + const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Approval\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Deposit\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Transfer\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Withdraw\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"asset\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"assetTokenAddress\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"convertToAssets\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"convertToShares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"deposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"maxDeposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"maxAssets\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"maxMint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"maxShares\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"maxRedeem\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"maxShares\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"maxWithdraw\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"maxAssets\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"mint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"previewDeposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"previewMint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"previewRedeem\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"previewWithdraw\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"redeem\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"totalAssets\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"totalManagedAssets\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"withdraw\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\",\"components\":[]}]}]"; + ///The parsed JSON ABI of the contract. + pub static IERC4626_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| + ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); + pub struct IERC4626(::ethers::contract::Contract); + impl ::core::clone::Clone for IERC4626 { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for IERC4626 { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for IERC4626 { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for IERC4626 { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(stringify!(IERC4626)).field(&self.address()).finish() + } + } + impl IERC4626 { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + IERC4626_ABI.clone(), + client, + ), + ) + } + ///Calls the contract's `allowance` (0xdd62ed3e) function + pub fn allowance( + &self, + owner: ::ethers::core::types::Address, + spender: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([221, 98, 237, 62], (owner, spender)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `approve` (0x095ea7b3) function + pub fn approve( + &self, + spender: ::ethers::core::types::Address, + amount: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([9, 94, 167, 179], (spender, amount)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `asset` (0x38d52e0f) function + pub fn asset( + &self, + ) -> ::ethers::contract::builders::ContractCall< + M, + ::ethers::core::types::Address, + > { + self.0 + .method_hash([56, 213, 46, 15], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `balanceOf` (0x70a08231) function + pub fn balance_of( + &self, + account: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([112, 160, 130, 49], account) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `convertToAssets` (0x07a2d13a) function + pub fn convert_to_assets( + &self, + shares: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([7, 162, 209, 58], shares) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `convertToShares` (0xc6e6f592) function + pub fn convert_to_shares( + &self, + assets: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([198, 230, 245, 146], assets) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `decimals` (0x313ce567) function + pub fn decimals(&self) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([49, 60, 229, 103], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `deposit` (0x6e553f65) function + pub fn deposit( + &self, + assets: ::ethers::core::types::U256, + receiver: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([110, 85, 63, 101], (assets, receiver)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `maxDeposit` (0x402d267d) function + pub fn max_deposit( + &self, + receiver: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([64, 45, 38, 125], receiver) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `maxMint` (0xc63d75b6) function + pub fn max_mint( + &self, + receiver: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([198, 61, 117, 182], receiver) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `maxRedeem` (0xd905777e) function + pub fn max_redeem( + &self, + owner: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([217, 5, 119, 126], owner) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `maxWithdraw` (0xce96cb77) function + pub fn max_withdraw( + &self, + owner: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([206, 150, 203, 119], owner) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `mint` (0x94bf804d) function + pub fn mint( + &self, + shares: ::ethers::core::types::U256, + receiver: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([148, 191, 128, 77], (shares, receiver)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `name` (0x06fdde03) function + pub fn name( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([6, 253, 222, 3], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `previewDeposit` (0xef8b30f7) function + pub fn preview_deposit( + &self, + assets: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([239, 139, 48, 247], assets) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `previewMint` (0xb3d7f6b9) function + pub fn preview_mint( + &self, + shares: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([179, 215, 246, 185], shares) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `previewRedeem` (0x4cdad506) function + pub fn preview_redeem( + &self, + shares: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([76, 218, 213, 6], shares) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `previewWithdraw` (0x0a28a477) function + pub fn preview_withdraw( + &self, + assets: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([10, 40, 164, 119], assets) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `redeem` (0xba087652) function + pub fn redeem( + &self, + shares: ::ethers::core::types::U256, + receiver: ::ethers::core::types::Address, + owner: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([186, 8, 118, 82], (shares, receiver, owner)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `symbol` (0x95d89b41) function + pub fn symbol( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([149, 216, 155, 65], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `totalAssets` (0x01e1d114) function + pub fn total_assets( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([1, 225, 209, 20], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `totalSupply` (0x18160ddd) function + pub fn total_supply( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([24, 22, 13, 221], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `transfer` (0xa9059cbb) function + pub fn transfer( + &self, + to: ::ethers::core::types::Address, + amount: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([169, 5, 156, 187], (to, amount)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `transferFrom` (0x23b872dd) function + pub fn transfer_from( + &self, + from: ::ethers::core::types::Address, + to: ::ethers::core::types::Address, + amount: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([35, 184, 114, 221], (from, to, amount)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `withdraw` (0xb460af94) function + pub fn withdraw( + &self, + assets: ::ethers::core::types::U256, + receiver: ::ethers::core::types::Address, + owner: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([180, 96, 175, 148], (assets, receiver, owner)) + .expect("method not found (this should never happen)") + } + ///Gets the contract's `Approval` event + pub fn approval_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + ApprovalFilter, + > { + self.0.event() + } + ///Gets the contract's `Deposit` event + pub fn deposit_filter( + &self, + ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, DepositFilter> { + self.0.event() + } + ///Gets the contract's `Transfer` event + pub fn transfer_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + TransferFilter, + > { + self.0.event() + } + ///Gets the contract's `Withdraw` event + pub fn withdraw_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + WithdrawFilter, + > { + self.0.event() + } + /// Returns an `Event` builder for all the events of this contract. + pub fn events( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + IERC4626Events, + > { + self.0.event_with_filter(::core::default::Default::default()) + } + } + impl From<::ethers::contract::Contract> + for IERC4626 { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "Approval", abi = "Approval(address,address,uint256)")] + pub struct ApprovalFilter { + #[ethevent(indexed)] + pub owner: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub spender: ::ethers::core::types::Address, + pub value: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "Deposit", abi = "Deposit(address,address,uint256,uint256)")] + pub struct DepositFilter { + #[ethevent(indexed)] + pub sender: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub owner: ::ethers::core::types::Address, + pub assets: ::ethers::core::types::U256, + pub shares: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "Transfer", abi = "Transfer(address,address,uint256)")] + pub struct TransferFilter { + #[ethevent(indexed)] + pub from: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub to: ::ethers::core::types::Address, + pub value: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "Withdraw", + abi = "Withdraw(address,address,address,uint256,uint256)" + )] + pub struct WithdrawFilter { + #[ethevent(indexed)] + pub sender: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub receiver: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub owner: ::ethers::core::types::Address, + pub assets: ::ethers::core::types::U256, + pub shares: ::ethers::core::types::U256, + } + ///Container type for all of the contract's events + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum IERC4626Events { + ApprovalFilter(ApprovalFilter), + DepositFilter(DepositFilter), + TransferFilter(TransferFilter), + WithdrawFilter(WithdrawFilter), + } + impl ::ethers::contract::EthLogDecode for IERC4626Events { + fn decode_log( + log: &::ethers::core::abi::RawLog, + ) -> ::core::result::Result { + if let Ok(decoded) = ApprovalFilter::decode_log(log) { + return Ok(IERC4626Events::ApprovalFilter(decoded)); + } + if let Ok(decoded) = DepositFilter::decode_log(log) { + return Ok(IERC4626Events::DepositFilter(decoded)); + } + if let Ok(decoded) = TransferFilter::decode_log(log) { + return Ok(IERC4626Events::TransferFilter(decoded)); + } + if let Ok(decoded) = WithdrawFilter::decode_log(log) { + return Ok(IERC4626Events::WithdrawFilter(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData) + } + } + impl ::core::fmt::Display for IERC4626Events { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::ApprovalFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::DepositFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::TransferFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::WithdrawFilter(element) => ::core::fmt::Display::fmt(element, f), + } + } + } + impl ::core::convert::From for IERC4626Events { + fn from(value: ApprovalFilter) -> Self { + Self::ApprovalFilter(value) + } + } + impl ::core::convert::From for IERC4626Events { + fn from(value: DepositFilter) -> Self { + Self::DepositFilter(value) + } + } + impl ::core::convert::From for IERC4626Events { + fn from(value: TransferFilter) -> Self { + Self::TransferFilter(value) + } + } + impl ::core::convert::From for IERC4626Events { + fn from(value: WithdrawFilter) -> Self { + Self::WithdrawFilter(value) + } + } + ///Container type for all input parameters for the `allowance` function with signature `allowance(address,address)` and selector `0xdd62ed3e` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "allowance", abi = "allowance(address,address)")] + pub struct AllowanceCall { + pub owner: ::ethers::core::types::Address, + pub spender: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "approve", abi = "approve(address,uint256)")] + pub struct ApproveCall { + pub spender: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `asset` function with signature `asset()` and selector `0x38d52e0f` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "asset", abi = "asset()")] + pub struct AssetCall; + ///Container type for all input parameters for the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "balanceOf", abi = "balanceOf(address)")] + pub struct BalanceOfCall { + pub account: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `convertToAssets` function with signature `convertToAssets(uint256)` and selector `0x07a2d13a` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "convertToAssets", abi = "convertToAssets(uint256)")] + pub struct ConvertToAssetsCall { + pub shares: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `convertToShares` function with signature `convertToShares(uint256)` and selector `0xc6e6f592` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "convertToShares", abi = "convertToShares(uint256)")] + pub struct ConvertToSharesCall { + pub assets: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `decimals` function with signature `decimals()` and selector `0x313ce567` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "decimals", abi = "decimals()")] + pub struct DecimalsCall; + ///Container type for all input parameters for the `deposit` function with signature `deposit(uint256,address)` and selector `0x6e553f65` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "deposit", abi = "deposit(uint256,address)")] + pub struct DepositCall { + pub assets: ::ethers::core::types::U256, + pub receiver: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `maxDeposit` function with signature `maxDeposit(address)` and selector `0x402d267d` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "maxDeposit", abi = "maxDeposit(address)")] + pub struct MaxDepositCall { + pub receiver: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `maxMint` function with signature `maxMint(address)` and selector `0xc63d75b6` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "maxMint", abi = "maxMint(address)")] + pub struct MaxMintCall { + pub receiver: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `maxRedeem` function with signature `maxRedeem(address)` and selector `0xd905777e` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "maxRedeem", abi = "maxRedeem(address)")] + pub struct MaxRedeemCall { + pub owner: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `maxWithdraw` function with signature `maxWithdraw(address)` and selector `0xce96cb77` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "maxWithdraw", abi = "maxWithdraw(address)")] + pub struct MaxWithdrawCall { + pub owner: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `mint` function with signature `mint(uint256,address)` and selector `0x94bf804d` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "mint", abi = "mint(uint256,address)")] + pub struct MintCall { + pub shares: ::ethers::core::types::U256, + pub receiver: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `name` function with signature `name()` and selector `0x06fdde03` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "name", abi = "name()")] + pub struct NameCall; + ///Container type for all input parameters for the `previewDeposit` function with signature `previewDeposit(uint256)` and selector `0xef8b30f7` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "previewDeposit", abi = "previewDeposit(uint256)")] + pub struct PreviewDepositCall { + pub assets: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `previewMint` function with signature `previewMint(uint256)` and selector `0xb3d7f6b9` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "previewMint", abi = "previewMint(uint256)")] + pub struct PreviewMintCall { + pub shares: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `previewRedeem` function with signature `previewRedeem(uint256)` and selector `0x4cdad506` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "previewRedeem", abi = "previewRedeem(uint256)")] + pub struct PreviewRedeemCall { + pub shares: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `previewWithdraw` function with signature `previewWithdraw(uint256)` and selector `0x0a28a477` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "previewWithdraw", abi = "previewWithdraw(uint256)")] + pub struct PreviewWithdrawCall { + pub assets: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `redeem` function with signature `redeem(uint256,address,address)` and selector `0xba087652` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "redeem", abi = "redeem(uint256,address,address)")] + pub struct RedeemCall { + pub shares: ::ethers::core::types::U256, + pub receiver: ::ethers::core::types::Address, + pub owner: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `symbol` function with signature `symbol()` and selector `0x95d89b41` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "symbol", abi = "symbol()")] + pub struct SymbolCall; + ///Container type for all input parameters for the `totalAssets` function with signature `totalAssets()` and selector `0x01e1d114` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "totalAssets", abi = "totalAssets()")] + pub struct TotalAssetsCall; + ///Container type for all input parameters for the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "totalSupply", abi = "totalSupply()")] + pub struct TotalSupplyCall; + ///Container type for all input parameters for the `transfer` function with signature `transfer(address,uint256)` and selector `0xa9059cbb` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "transfer", abi = "transfer(address,uint256)")] + pub struct TransferCall { + pub to: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "transferFrom", abi = "transferFrom(address,address,uint256)")] + pub struct TransferFromCall { + pub from: ::ethers::core::types::Address, + pub to: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `withdraw` function with signature `withdraw(uint256,address,address)` and selector `0xb460af94` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "withdraw", abi = "withdraw(uint256,address,address)")] + pub struct WithdrawCall { + pub assets: ::ethers::core::types::U256, + pub receiver: ::ethers::core::types::Address, + pub owner: ::ethers::core::types::Address, + } + ///Container type for all of the contract's call + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum IERC4626Calls { + Allowance(AllowanceCall), + Approve(ApproveCall), + Asset(AssetCall), + BalanceOf(BalanceOfCall), + ConvertToAssets(ConvertToAssetsCall), + ConvertToShares(ConvertToSharesCall), + Decimals(DecimalsCall), + Deposit(DepositCall), + MaxDeposit(MaxDepositCall), + MaxMint(MaxMintCall), + MaxRedeem(MaxRedeemCall), + MaxWithdraw(MaxWithdrawCall), + Mint(MintCall), + Name(NameCall), + PreviewDeposit(PreviewDepositCall), + PreviewMint(PreviewMintCall), + PreviewRedeem(PreviewRedeemCall), + PreviewWithdraw(PreviewWithdrawCall), + Redeem(RedeemCall), + Symbol(SymbolCall), + TotalAssets(TotalAssetsCall), + TotalSupply(TotalSupplyCall), + Transfer(TransferCall), + TransferFrom(TransferFromCall), + Withdraw(WithdrawCall), + } + impl ::ethers::core::abi::AbiDecode for IERC4626Calls { + fn decode( + data: impl AsRef<[u8]>, + ) -> ::core::result::Result { + let data = data.as_ref(); + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Allowance(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Approve(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Asset(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::BalanceOf(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::ConvertToAssets(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::ConvertToShares(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Decimals(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Deposit(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::MaxDeposit(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::MaxMint(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::MaxRedeem(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::MaxWithdraw(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Mint(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Name(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::PreviewDeposit(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::PreviewMint(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::PreviewRedeem(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::PreviewWithdraw(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Redeem(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Symbol(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::TotalAssets(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::TotalSupply(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Transfer(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::TransferFrom(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Withdraw(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData.into()) + } + } + impl ::ethers::core::abi::AbiEncode for IERC4626Calls { + fn encode(self) -> Vec { + match self { + Self::Allowance(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Approve(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Asset(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::BalanceOf(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::ConvertToAssets(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::ConvertToShares(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Decimals(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Deposit(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::MaxDeposit(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::MaxMint(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::MaxRedeem(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::MaxWithdraw(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Mint(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Name(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::PreviewDeposit(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::PreviewMint(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::PreviewRedeem(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::PreviewWithdraw(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Redeem(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Symbol(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::TotalAssets(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::TotalSupply(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Transfer(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::TransferFrom(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Withdraw(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + } + } + } + impl ::core::fmt::Display for IERC4626Calls { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::Allowance(element) => ::core::fmt::Display::fmt(element, f), + Self::Approve(element) => ::core::fmt::Display::fmt(element, f), + Self::Asset(element) => ::core::fmt::Display::fmt(element, f), + Self::BalanceOf(element) => ::core::fmt::Display::fmt(element, f), + Self::ConvertToAssets(element) => ::core::fmt::Display::fmt(element, f), + Self::ConvertToShares(element) => ::core::fmt::Display::fmt(element, f), + Self::Decimals(element) => ::core::fmt::Display::fmt(element, f), + Self::Deposit(element) => ::core::fmt::Display::fmt(element, f), + Self::MaxDeposit(element) => ::core::fmt::Display::fmt(element, f), + Self::MaxMint(element) => ::core::fmt::Display::fmt(element, f), + Self::MaxRedeem(element) => ::core::fmt::Display::fmt(element, f), + Self::MaxWithdraw(element) => ::core::fmt::Display::fmt(element, f), + Self::Mint(element) => ::core::fmt::Display::fmt(element, f), + Self::Name(element) => ::core::fmt::Display::fmt(element, f), + Self::PreviewDeposit(element) => ::core::fmt::Display::fmt(element, f), + Self::PreviewMint(element) => ::core::fmt::Display::fmt(element, f), + Self::PreviewRedeem(element) => ::core::fmt::Display::fmt(element, f), + Self::PreviewWithdraw(element) => ::core::fmt::Display::fmt(element, f), + Self::Redeem(element) => ::core::fmt::Display::fmt(element, f), + Self::Symbol(element) => ::core::fmt::Display::fmt(element, f), + Self::TotalAssets(element) => ::core::fmt::Display::fmt(element, f), + Self::TotalSupply(element) => ::core::fmt::Display::fmt(element, f), + Self::Transfer(element) => ::core::fmt::Display::fmt(element, f), + Self::TransferFrom(element) => ::core::fmt::Display::fmt(element, f), + Self::Withdraw(element) => ::core::fmt::Display::fmt(element, f), + } + } + } + impl ::core::convert::From for IERC4626Calls { + fn from(value: AllowanceCall) -> Self { + Self::Allowance(value) + } + } + impl ::core::convert::From for IERC4626Calls { + fn from(value: ApproveCall) -> Self { + Self::Approve(value) + } + } + impl ::core::convert::From for IERC4626Calls { + fn from(value: AssetCall) -> Self { + Self::Asset(value) + } + } + impl ::core::convert::From for IERC4626Calls { + fn from(value: BalanceOfCall) -> Self { + Self::BalanceOf(value) + } + } + impl ::core::convert::From for IERC4626Calls { + fn from(value: ConvertToAssetsCall) -> Self { + Self::ConvertToAssets(value) + } + } + impl ::core::convert::From for IERC4626Calls { + fn from(value: ConvertToSharesCall) -> Self { + Self::ConvertToShares(value) + } + } + impl ::core::convert::From for IERC4626Calls { + fn from(value: DecimalsCall) -> Self { + Self::Decimals(value) + } + } + impl ::core::convert::From for IERC4626Calls { + fn from(value: DepositCall) -> Self { + Self::Deposit(value) + } + } + impl ::core::convert::From for IERC4626Calls { + fn from(value: MaxDepositCall) -> Self { + Self::MaxDeposit(value) + } + } + impl ::core::convert::From for IERC4626Calls { + fn from(value: MaxMintCall) -> Self { + Self::MaxMint(value) + } + } + impl ::core::convert::From for IERC4626Calls { + fn from(value: MaxRedeemCall) -> Self { + Self::MaxRedeem(value) + } + } + impl ::core::convert::From for IERC4626Calls { + fn from(value: MaxWithdrawCall) -> Self { + Self::MaxWithdraw(value) + } + } + impl ::core::convert::From for IERC4626Calls { + fn from(value: MintCall) -> Self { + Self::Mint(value) + } + } + impl ::core::convert::From for IERC4626Calls { + fn from(value: NameCall) -> Self { + Self::Name(value) + } + } + impl ::core::convert::From for IERC4626Calls { + fn from(value: PreviewDepositCall) -> Self { + Self::PreviewDeposit(value) + } + } + impl ::core::convert::From for IERC4626Calls { + fn from(value: PreviewMintCall) -> Self { + Self::PreviewMint(value) + } + } + impl ::core::convert::From for IERC4626Calls { + fn from(value: PreviewRedeemCall) -> Self { + Self::PreviewRedeem(value) + } + } + impl ::core::convert::From for IERC4626Calls { + fn from(value: PreviewWithdrawCall) -> Self { + Self::PreviewWithdraw(value) + } + } + impl ::core::convert::From for IERC4626Calls { + fn from(value: RedeemCall) -> Self { + Self::Redeem(value) + } + } + impl ::core::convert::From for IERC4626Calls { + fn from(value: SymbolCall) -> Self { + Self::Symbol(value) + } + } + impl ::core::convert::From for IERC4626Calls { + fn from(value: TotalAssetsCall) -> Self { + Self::TotalAssets(value) + } + } + impl ::core::convert::From for IERC4626Calls { + fn from(value: TotalSupplyCall) -> Self { + Self::TotalSupply(value) + } + } + impl ::core::convert::From for IERC4626Calls { + fn from(value: TransferCall) -> Self { + Self::Transfer(value) + } + } + impl ::core::convert::From for IERC4626Calls { + fn from(value: TransferFromCall) -> Self { + Self::TransferFrom(value) + } + } + impl ::core::convert::From for IERC4626Calls { + fn from(value: WithdrawCall) -> Self { + Self::Withdraw(value) + } + } + ///Container type for all return fields from the `allowance` function with signature `allowance(address,address)` and selector `0xdd62ed3e` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct AllowanceReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct ApproveReturn(pub bool); + ///Container type for all return fields from the `asset` function with signature `asset()` and selector `0x38d52e0f` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct AssetReturn { + pub asset_token_address: ::ethers::core::types::Address, + } + ///Container type for all return fields from the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct BalanceOfReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `convertToAssets` function with signature `convertToAssets(uint256)` and selector `0x07a2d13a` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct ConvertToAssetsReturn { + pub assets: ::ethers::core::types::U256, + } + ///Container type for all return fields from the `convertToShares` function with signature `convertToShares(uint256)` and selector `0xc6e6f592` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct ConvertToSharesReturn { + pub shares: ::ethers::core::types::U256, + } + ///Container type for all return fields from the `decimals` function with signature `decimals()` and selector `0x313ce567` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct DecimalsReturn(pub u8); + ///Container type for all return fields from the `deposit` function with signature `deposit(uint256,address)` and selector `0x6e553f65` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct DepositReturn { + pub shares: ::ethers::core::types::U256, + } + ///Container type for all return fields from the `maxDeposit` function with signature `maxDeposit(address)` and selector `0x402d267d` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct MaxDepositReturn { + pub max_assets: ::ethers::core::types::U256, + } + ///Container type for all return fields from the `maxMint` function with signature `maxMint(address)` and selector `0xc63d75b6` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct MaxMintReturn { + pub max_shares: ::ethers::core::types::U256, + } + ///Container type for all return fields from the `maxRedeem` function with signature `maxRedeem(address)` and selector `0xd905777e` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct MaxRedeemReturn { + pub max_shares: ::ethers::core::types::U256, + } + ///Container type for all return fields from the `maxWithdraw` function with signature `maxWithdraw(address)` and selector `0xce96cb77` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct MaxWithdrawReturn { + pub max_assets: ::ethers::core::types::U256, + } + ///Container type for all return fields from the `mint` function with signature `mint(uint256,address)` and selector `0x94bf804d` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct MintReturn { + pub assets: ::ethers::core::types::U256, + } + ///Container type for all return fields from the `name` function with signature `name()` and selector `0x06fdde03` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct NameReturn(pub ::std::string::String); + ///Container type for all return fields from the `previewDeposit` function with signature `previewDeposit(uint256)` and selector `0xef8b30f7` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct PreviewDepositReturn { + pub shares: ::ethers::core::types::U256, + } + ///Container type for all return fields from the `previewMint` function with signature `previewMint(uint256)` and selector `0xb3d7f6b9` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct PreviewMintReturn { + pub assets: ::ethers::core::types::U256, + } + ///Container type for all return fields from the `previewRedeem` function with signature `previewRedeem(uint256)` and selector `0x4cdad506` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct PreviewRedeemReturn { + pub assets: ::ethers::core::types::U256, + } + ///Container type for all return fields from the `previewWithdraw` function with signature `previewWithdraw(uint256)` and selector `0x0a28a477` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct PreviewWithdrawReturn { + pub shares: ::ethers::core::types::U256, + } + ///Container type for all return fields from the `redeem` function with signature `redeem(uint256,address,address)` and selector `0xba087652` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct RedeemReturn { + pub assets: ::ethers::core::types::U256, + } + ///Container type for all return fields from the `symbol` function with signature `symbol()` and selector `0x95d89b41` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct SymbolReturn(pub ::std::string::String); + ///Container type for all return fields from the `totalAssets` function with signature `totalAssets()` and selector `0x01e1d114` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct TotalAssetsReturn { + pub total_managed_assets: ::ethers::core::types::U256, + } + ///Container type for all return fields from the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct TotalSupplyReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `transfer` function with signature `transfer(address,uint256)` and selector `0xa9059cbb` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct TransferReturn(pub bool); + ///Container type for all return fields from the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct TransferFromReturn(pub bool); + ///Container type for all return fields from the `withdraw` function with signature `withdraw(uint256,address,address)` and selector `0xb460af94` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct WithdrawReturn { + pub shares: ::ethers::core::types::U256, + } +} diff --git a/crates/bindings/src/ierc721.rs b/crates/bindings/src/ierc721.rs new file mode 100644 index 00000000..510b7476 --- /dev/null +++ b/crates/bindings/src/ierc721.rs @@ -0,0 +1,708 @@ +pub use ierc721::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod ierc721 { + #[rustfmt::skip] + const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"_approved\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\",\"components\":[],\"indexed\":true}],\"type\":\"event\",\"name\":\"Approval\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"_operator\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"bool\",\"name\":\"_approved\",\"type\":\"bool\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"ApprovalForAll\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\",\"components\":[],\"indexed\":true}],\"type\":\"event\",\"name\":\"Transfer\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_approved\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"approve\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"_operator\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"safeTransferFrom\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\",\"components\":[]}],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"safeTransferFrom\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_operator\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"bool\",\"name\":\"_approved\",\"type\":\"bool\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"setApprovalForAll\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceID\",\"type\":\"bytes4\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"transferFrom\",\"outputs\":[]}]"; + ///The parsed JSON ABI of the contract. + pub static IERC721_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| + ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); + pub struct IERC721(::ethers::contract::Contract); + impl ::core::clone::Clone for IERC721 { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for IERC721 { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for IERC721 { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for IERC721 { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(stringify!(IERC721)).field(&self.address()).finish() + } + } + impl IERC721 { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + IERC721_ABI.clone(), + client, + ), + ) + } + ///Calls the contract's `approve` (0x095ea7b3) function + pub fn approve( + &self, + approved: ::ethers::core::types::Address, + token_id: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([9, 94, 167, 179], (approved, token_id)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `balanceOf` (0x70a08231) function + pub fn balance_of( + &self, + owner: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([112, 160, 130, 49], owner) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getApproved` (0x081812fc) function + pub fn get_approved( + &self, + token_id: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall< + M, + ::ethers::core::types::Address, + > { + self.0 + .method_hash([8, 24, 18, 252], token_id) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `isApprovedForAll` (0xe985e9c5) function + pub fn is_approved_for_all( + &self, + owner: ::ethers::core::types::Address, + operator: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([233, 133, 233, 197], (owner, operator)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `ownerOf` (0x6352211e) function + pub fn owner_of( + &self, + token_id: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall< + M, + ::ethers::core::types::Address, + > { + self.0 + .method_hash([99, 82, 33, 30], token_id) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `safeTransferFrom` (0x42842e0e) function + pub fn safe_transfer_from( + &self, + from: ::ethers::core::types::Address, + to: ::ethers::core::types::Address, + token_id: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([66, 132, 46, 14], (from, to, token_id)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `safeTransferFrom` (0xb88d4fde) function + pub fn safe_transfer_from_with_from_and_to_and_data( + &self, + from: ::ethers::core::types::Address, + to: ::ethers::core::types::Address, + token_id: ::ethers::core::types::U256, + data: ::ethers::core::types::Bytes, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([184, 141, 79, 222], (from, to, token_id, data)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `setApprovalForAll` (0xa22cb465) function + pub fn set_approval_for_all( + &self, + operator: ::ethers::core::types::Address, + approved: bool, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([162, 44, 180, 101], (operator, approved)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `supportsInterface` (0x01ffc9a7) function + pub fn supports_interface( + &self, + interface_id: [u8; 4], + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([1, 255, 201, 167], interface_id) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `transferFrom` (0x23b872dd) function + pub fn transfer_from( + &self, + from: ::ethers::core::types::Address, + to: ::ethers::core::types::Address, + token_id: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([35, 184, 114, 221], (from, to, token_id)) + .expect("method not found (this should never happen)") + } + ///Gets the contract's `Approval` event + pub fn approval_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + ApprovalFilter, + > { + self.0.event() + } + ///Gets the contract's `ApprovalForAll` event + pub fn approval_for_all_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + ApprovalForAllFilter, + > { + self.0.event() + } + ///Gets the contract's `Transfer` event + pub fn transfer_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + TransferFilter, + > { + self.0.event() + } + /// Returns an `Event` builder for all the events of this contract. + pub fn events( + &self, + ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, IERC721Events> { + self.0.event_with_filter(::core::default::Default::default()) + } + } + impl From<::ethers::contract::Contract> + for IERC721 { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "Approval", abi = "Approval(address,address,uint256)")] + pub struct ApprovalFilter { + #[ethevent(indexed)] + pub owner: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub approved: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub token_id: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "ApprovalForAll", abi = "ApprovalForAll(address,address,bool)")] + pub struct ApprovalForAllFilter { + #[ethevent(indexed)] + pub owner: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub operator: ::ethers::core::types::Address, + pub approved: bool, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "Transfer", abi = "Transfer(address,address,uint256)")] + pub struct TransferFilter { + #[ethevent(indexed)] + pub from: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub to: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub token_id: ::ethers::core::types::U256, + } + ///Container type for all of the contract's events + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum IERC721Events { + ApprovalFilter(ApprovalFilter), + ApprovalForAllFilter(ApprovalForAllFilter), + TransferFilter(TransferFilter), + } + impl ::ethers::contract::EthLogDecode for IERC721Events { + fn decode_log( + log: &::ethers::core::abi::RawLog, + ) -> ::core::result::Result { + if let Ok(decoded) = ApprovalFilter::decode_log(log) { + return Ok(IERC721Events::ApprovalFilter(decoded)); + } + if let Ok(decoded) = ApprovalForAllFilter::decode_log(log) { + return Ok(IERC721Events::ApprovalForAllFilter(decoded)); + } + if let Ok(decoded) = TransferFilter::decode_log(log) { + return Ok(IERC721Events::TransferFilter(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData) + } + } + impl ::core::fmt::Display for IERC721Events { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::ApprovalFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::ApprovalForAllFilter(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::TransferFilter(element) => ::core::fmt::Display::fmt(element, f), + } + } + } + impl ::core::convert::From for IERC721Events { + fn from(value: ApprovalFilter) -> Self { + Self::ApprovalFilter(value) + } + } + impl ::core::convert::From for IERC721Events { + fn from(value: ApprovalForAllFilter) -> Self { + Self::ApprovalForAllFilter(value) + } + } + impl ::core::convert::From for IERC721Events { + fn from(value: TransferFilter) -> Self { + Self::TransferFilter(value) + } + } + ///Container type for all input parameters for the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "approve", abi = "approve(address,uint256)")] + pub struct ApproveCall { + pub approved: ::ethers::core::types::Address, + pub token_id: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "balanceOf", abi = "balanceOf(address)")] + pub struct BalanceOfCall { + pub owner: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `getApproved` function with signature `getApproved(uint256)` and selector `0x081812fc` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getApproved", abi = "getApproved(uint256)")] + pub struct GetApprovedCall { + pub token_id: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `isApprovedForAll` function with signature `isApprovedForAll(address,address)` and selector `0xe985e9c5` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "isApprovedForAll", abi = "isApprovedForAll(address,address)")] + pub struct IsApprovedForAllCall { + pub owner: ::ethers::core::types::Address, + pub operator: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `ownerOf` function with signature `ownerOf(uint256)` and selector `0x6352211e` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "ownerOf", abi = "ownerOf(uint256)")] + pub struct OwnerOfCall { + pub token_id: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `safeTransferFrom` function with signature `safeTransferFrom(address,address,uint256)` and selector `0x42842e0e` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall( + name = "safeTransferFrom", + abi = "safeTransferFrom(address,address,uint256)" + )] + pub struct SafeTransferFromCall { + pub from: ::ethers::core::types::Address, + pub to: ::ethers::core::types::Address, + pub token_id: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `safeTransferFrom` function with signature `safeTransferFrom(address,address,uint256,bytes)` and selector `0xb88d4fde` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall( + name = "safeTransferFrom", + abi = "safeTransferFrom(address,address,uint256,bytes)" + )] + pub struct SafeTransferFromWithFromAndToAndDataCall { + pub from: ::ethers::core::types::Address, + pub to: ::ethers::core::types::Address, + pub token_id: ::ethers::core::types::U256, + pub data: ::ethers::core::types::Bytes, + } + ///Container type for all input parameters for the `setApprovalForAll` function with signature `setApprovalForAll(address,bool)` and selector `0xa22cb465` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "setApprovalForAll", abi = "setApprovalForAll(address,bool)")] + pub struct SetApprovalForAllCall { + pub operator: ::ethers::core::types::Address, + pub approved: bool, + } + ///Container type for all input parameters for the `supportsInterface` function with signature `supportsInterface(bytes4)` and selector `0x01ffc9a7` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "supportsInterface", abi = "supportsInterface(bytes4)")] + pub struct SupportsInterfaceCall { + pub interface_id: [u8; 4], + } + ///Container type for all input parameters for the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "transferFrom", abi = "transferFrom(address,address,uint256)")] + pub struct TransferFromCall { + pub from: ::ethers::core::types::Address, + pub to: ::ethers::core::types::Address, + pub token_id: ::ethers::core::types::U256, + } + ///Container type for all of the contract's call + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum IERC721Calls { + Approve(ApproveCall), + BalanceOf(BalanceOfCall), + GetApproved(GetApprovedCall), + IsApprovedForAll(IsApprovedForAllCall), + OwnerOf(OwnerOfCall), + SafeTransferFrom(SafeTransferFromCall), + SafeTransferFromWithFromAndToAndData(SafeTransferFromWithFromAndToAndDataCall), + SetApprovalForAll(SetApprovalForAllCall), + SupportsInterface(SupportsInterfaceCall), + TransferFrom(TransferFromCall), + } + impl ::ethers::core::abi::AbiDecode for IERC721Calls { + fn decode( + data: impl AsRef<[u8]>, + ) -> ::core::result::Result { + let data = data.as_ref(); + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Approve(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::BalanceOf(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetApproved(decoded)); + } + if let Ok(decoded) + = ::decode( + data, + ) { + return Ok(Self::IsApprovedForAll(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::OwnerOf(decoded)); + } + if let Ok(decoded) + = ::decode( + data, + ) { + return Ok(Self::SafeTransferFrom(decoded)); + } + if let Ok(decoded) + = ::decode( + data, + ) { + return Ok(Self::SafeTransferFromWithFromAndToAndData(decoded)); + } + if let Ok(decoded) + = ::decode( + data, + ) { + return Ok(Self::SetApprovalForAll(decoded)); + } + if let Ok(decoded) + = ::decode( + data, + ) { + return Ok(Self::SupportsInterface(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::TransferFrom(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData.into()) + } + } + impl ::ethers::core::abi::AbiEncode for IERC721Calls { + fn encode(self) -> Vec { + match self { + Self::Approve(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::BalanceOf(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetApproved(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::IsApprovedForAll(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::OwnerOf(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::SafeTransferFrom(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::SafeTransferFromWithFromAndToAndData(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::SetApprovalForAll(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::SupportsInterface(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::TransferFrom(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + } + } + } + impl ::core::fmt::Display for IERC721Calls { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::Approve(element) => ::core::fmt::Display::fmt(element, f), + Self::BalanceOf(element) => ::core::fmt::Display::fmt(element, f), + Self::GetApproved(element) => ::core::fmt::Display::fmt(element, f), + Self::IsApprovedForAll(element) => ::core::fmt::Display::fmt(element, f), + Self::OwnerOf(element) => ::core::fmt::Display::fmt(element, f), + Self::SafeTransferFrom(element) => ::core::fmt::Display::fmt(element, f), + Self::SafeTransferFromWithFromAndToAndData(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::SetApprovalForAll(element) => ::core::fmt::Display::fmt(element, f), + Self::SupportsInterface(element) => ::core::fmt::Display::fmt(element, f), + Self::TransferFrom(element) => ::core::fmt::Display::fmt(element, f), + } + } + } + impl ::core::convert::From for IERC721Calls { + fn from(value: ApproveCall) -> Self { + Self::Approve(value) + } + } + impl ::core::convert::From for IERC721Calls { + fn from(value: BalanceOfCall) -> Self { + Self::BalanceOf(value) + } + } + impl ::core::convert::From for IERC721Calls { + fn from(value: GetApprovedCall) -> Self { + Self::GetApproved(value) + } + } + impl ::core::convert::From for IERC721Calls { + fn from(value: IsApprovedForAllCall) -> Self { + Self::IsApprovedForAll(value) + } + } + impl ::core::convert::From for IERC721Calls { + fn from(value: OwnerOfCall) -> Self { + Self::OwnerOf(value) + } + } + impl ::core::convert::From for IERC721Calls { + fn from(value: SafeTransferFromCall) -> Self { + Self::SafeTransferFrom(value) + } + } + impl ::core::convert::From + for IERC721Calls { + fn from(value: SafeTransferFromWithFromAndToAndDataCall) -> Self { + Self::SafeTransferFromWithFromAndToAndData(value) + } + } + impl ::core::convert::From for IERC721Calls { + fn from(value: SetApprovalForAllCall) -> Self { + Self::SetApprovalForAll(value) + } + } + impl ::core::convert::From for IERC721Calls { + fn from(value: SupportsInterfaceCall) -> Self { + Self::SupportsInterface(value) + } + } + impl ::core::convert::From for IERC721Calls { + fn from(value: TransferFromCall) -> Self { + Self::TransferFrom(value) + } + } + ///Container type for all return fields from the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct BalanceOfReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `getApproved` function with signature `getApproved(uint256)` and selector `0x081812fc` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetApprovedReturn(pub ::ethers::core::types::Address); + ///Container type for all return fields from the `isApprovedForAll` function with signature `isApprovedForAll(address,address)` and selector `0xe985e9c5` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct IsApprovedForAllReturn(pub bool); + ///Container type for all return fields from the `ownerOf` function with signature `ownerOf(uint256)` and selector `0x6352211e` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct OwnerOfReturn(pub ::ethers::core::types::Address); + ///Container type for all return fields from the `supportsInterface` function with signature `supportsInterface(bytes4)` and selector `0x01ffc9a7` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct SupportsInterfaceReturn(pub bool); +} diff --git a/crates/bindings/src/ierc721_enumerable.rs b/crates/bindings/src/ierc721_enumerable.rs new file mode 100644 index 00000000..7e321823 --- /dev/null +++ b/crates/bindings/src/ierc721_enumerable.rs @@ -0,0 +1,872 @@ +pub use ierc721_enumerable::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod ierc721_enumerable { + #[rustfmt::skip] + const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"_approved\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\",\"components\":[],\"indexed\":true}],\"type\":\"event\",\"name\":\"Approval\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"_operator\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"bool\",\"name\":\"_approved\",\"type\":\"bool\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"ApprovalForAll\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\",\"components\":[],\"indexed\":true}],\"type\":\"event\",\"name\":\"Transfer\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_approved\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"approve\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"_operator\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"safeTransferFrom\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\",\"components\":[]}],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"safeTransferFrom\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_operator\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"bool\",\"name\":\"_approved\",\"type\":\"bool\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"setApprovalForAll\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceID\",\"type\":\"bytes4\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_index\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"tokenByIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"_index\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"tokenOfOwnerByIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"transferFrom\",\"outputs\":[]}]"; + ///The parsed JSON ABI of the contract. + pub static IERC721ENUMERABLE_ABI: ::ethers::contract::Lazy< + ::ethers::core::abi::Abi, + > = ::ethers::contract::Lazy::new(|| { + ::ethers::core::utils::__serde_json::from_str(__ABI) + .expect("ABI is always valid") + }); + pub struct IERC721Enumerable(::ethers::contract::Contract); + impl ::core::clone::Clone for IERC721Enumerable { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for IERC721Enumerable { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for IERC721Enumerable { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for IERC721Enumerable { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(stringify!(IERC721Enumerable)).field(&self.address()).finish() + } + } + impl IERC721Enumerable { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + IERC721ENUMERABLE_ABI.clone(), + client, + ), + ) + } + ///Calls the contract's `approve` (0x095ea7b3) function + pub fn approve( + &self, + approved: ::ethers::core::types::Address, + token_id: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([9, 94, 167, 179], (approved, token_id)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `balanceOf` (0x70a08231) function + pub fn balance_of( + &self, + owner: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([112, 160, 130, 49], owner) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getApproved` (0x081812fc) function + pub fn get_approved( + &self, + token_id: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall< + M, + ::ethers::core::types::Address, + > { + self.0 + .method_hash([8, 24, 18, 252], token_id) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `isApprovedForAll` (0xe985e9c5) function + pub fn is_approved_for_all( + &self, + owner: ::ethers::core::types::Address, + operator: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([233, 133, 233, 197], (owner, operator)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `ownerOf` (0x6352211e) function + pub fn owner_of( + &self, + token_id: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall< + M, + ::ethers::core::types::Address, + > { + self.0 + .method_hash([99, 82, 33, 30], token_id) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `safeTransferFrom` (0x42842e0e) function + pub fn safe_transfer_from( + &self, + from: ::ethers::core::types::Address, + to: ::ethers::core::types::Address, + token_id: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([66, 132, 46, 14], (from, to, token_id)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `safeTransferFrom` (0xb88d4fde) function + pub fn safe_transfer_from_with_from_and_to_and_data( + &self, + from: ::ethers::core::types::Address, + to: ::ethers::core::types::Address, + token_id: ::ethers::core::types::U256, + data: ::ethers::core::types::Bytes, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([184, 141, 79, 222], (from, to, token_id, data)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `setApprovalForAll` (0xa22cb465) function + pub fn set_approval_for_all( + &self, + operator: ::ethers::core::types::Address, + approved: bool, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([162, 44, 180, 101], (operator, approved)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `supportsInterface` (0x01ffc9a7) function + pub fn supports_interface( + &self, + interface_id: [u8; 4], + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([1, 255, 201, 167], interface_id) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `tokenByIndex` (0x4f6ccce7) function + pub fn token_by_index( + &self, + index: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([79, 108, 204, 231], index) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `tokenOfOwnerByIndex` (0x2f745c59) function + pub fn token_of_owner_by_index( + &self, + owner: ::ethers::core::types::Address, + index: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([47, 116, 92, 89], (owner, index)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `totalSupply` (0x18160ddd) function + pub fn total_supply( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([24, 22, 13, 221], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `transferFrom` (0x23b872dd) function + pub fn transfer_from( + &self, + from: ::ethers::core::types::Address, + to: ::ethers::core::types::Address, + token_id: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([35, 184, 114, 221], (from, to, token_id)) + .expect("method not found (this should never happen)") + } + ///Gets the contract's `Approval` event + pub fn approval_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + ApprovalFilter, + > { + self.0.event() + } + ///Gets the contract's `ApprovalForAll` event + pub fn approval_for_all_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + ApprovalForAllFilter, + > { + self.0.event() + } + ///Gets the contract's `Transfer` event + pub fn transfer_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + TransferFilter, + > { + self.0.event() + } + /// Returns an `Event` builder for all the events of this contract. + pub fn events( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + IERC721EnumerableEvents, + > { + self.0.event_with_filter(::core::default::Default::default()) + } + } + impl From<::ethers::contract::Contract> + for IERC721Enumerable { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "Approval", abi = "Approval(address,address,uint256)")] + pub struct ApprovalFilter { + #[ethevent(indexed)] + pub owner: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub approved: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub token_id: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "ApprovalForAll", abi = "ApprovalForAll(address,address,bool)")] + pub struct ApprovalForAllFilter { + #[ethevent(indexed)] + pub owner: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub operator: ::ethers::core::types::Address, + pub approved: bool, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "Transfer", abi = "Transfer(address,address,uint256)")] + pub struct TransferFilter { + #[ethevent(indexed)] + pub from: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub to: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub token_id: ::ethers::core::types::U256, + } + ///Container type for all of the contract's events + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum IERC721EnumerableEvents { + ApprovalFilter(ApprovalFilter), + ApprovalForAllFilter(ApprovalForAllFilter), + TransferFilter(TransferFilter), + } + impl ::ethers::contract::EthLogDecode for IERC721EnumerableEvents { + fn decode_log( + log: &::ethers::core::abi::RawLog, + ) -> ::core::result::Result { + if let Ok(decoded) = ApprovalFilter::decode_log(log) { + return Ok(IERC721EnumerableEvents::ApprovalFilter(decoded)); + } + if let Ok(decoded) = ApprovalForAllFilter::decode_log(log) { + return Ok(IERC721EnumerableEvents::ApprovalForAllFilter(decoded)); + } + if let Ok(decoded) = TransferFilter::decode_log(log) { + return Ok(IERC721EnumerableEvents::TransferFilter(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData) + } + } + impl ::core::fmt::Display for IERC721EnumerableEvents { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::ApprovalFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::ApprovalForAllFilter(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::TransferFilter(element) => ::core::fmt::Display::fmt(element, f), + } + } + } + impl ::core::convert::From for IERC721EnumerableEvents { + fn from(value: ApprovalFilter) -> Self { + Self::ApprovalFilter(value) + } + } + impl ::core::convert::From for IERC721EnumerableEvents { + fn from(value: ApprovalForAllFilter) -> Self { + Self::ApprovalForAllFilter(value) + } + } + impl ::core::convert::From for IERC721EnumerableEvents { + fn from(value: TransferFilter) -> Self { + Self::TransferFilter(value) + } + } + ///Container type for all input parameters for the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "approve", abi = "approve(address,uint256)")] + pub struct ApproveCall { + pub approved: ::ethers::core::types::Address, + pub token_id: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "balanceOf", abi = "balanceOf(address)")] + pub struct BalanceOfCall { + pub owner: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `getApproved` function with signature `getApproved(uint256)` and selector `0x081812fc` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getApproved", abi = "getApproved(uint256)")] + pub struct GetApprovedCall { + pub token_id: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `isApprovedForAll` function with signature `isApprovedForAll(address,address)` and selector `0xe985e9c5` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "isApprovedForAll", abi = "isApprovedForAll(address,address)")] + pub struct IsApprovedForAllCall { + pub owner: ::ethers::core::types::Address, + pub operator: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `ownerOf` function with signature `ownerOf(uint256)` and selector `0x6352211e` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "ownerOf", abi = "ownerOf(uint256)")] + pub struct OwnerOfCall { + pub token_id: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `safeTransferFrom` function with signature `safeTransferFrom(address,address,uint256)` and selector `0x42842e0e` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall( + name = "safeTransferFrom", + abi = "safeTransferFrom(address,address,uint256)" + )] + pub struct SafeTransferFromCall { + pub from: ::ethers::core::types::Address, + pub to: ::ethers::core::types::Address, + pub token_id: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `safeTransferFrom` function with signature `safeTransferFrom(address,address,uint256,bytes)` and selector `0xb88d4fde` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall( + name = "safeTransferFrom", + abi = "safeTransferFrom(address,address,uint256,bytes)" + )] + pub struct SafeTransferFromWithFromAndToAndDataCall { + pub from: ::ethers::core::types::Address, + pub to: ::ethers::core::types::Address, + pub token_id: ::ethers::core::types::U256, + pub data: ::ethers::core::types::Bytes, + } + ///Container type for all input parameters for the `setApprovalForAll` function with signature `setApprovalForAll(address,bool)` and selector `0xa22cb465` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "setApprovalForAll", abi = "setApprovalForAll(address,bool)")] + pub struct SetApprovalForAllCall { + pub operator: ::ethers::core::types::Address, + pub approved: bool, + } + ///Container type for all input parameters for the `supportsInterface` function with signature `supportsInterface(bytes4)` and selector `0x01ffc9a7` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "supportsInterface", abi = "supportsInterface(bytes4)")] + pub struct SupportsInterfaceCall { + pub interface_id: [u8; 4], + } + ///Container type for all input parameters for the `tokenByIndex` function with signature `tokenByIndex(uint256)` and selector `0x4f6ccce7` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "tokenByIndex", abi = "tokenByIndex(uint256)")] + pub struct TokenByIndexCall { + pub index: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `tokenOfOwnerByIndex` function with signature `tokenOfOwnerByIndex(address,uint256)` and selector `0x2f745c59` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall( + name = "tokenOfOwnerByIndex", + abi = "tokenOfOwnerByIndex(address,uint256)" + )] + pub struct TokenOfOwnerByIndexCall { + pub owner: ::ethers::core::types::Address, + pub index: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "totalSupply", abi = "totalSupply()")] + pub struct TotalSupplyCall; + ///Container type for all input parameters for the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "transferFrom", abi = "transferFrom(address,address,uint256)")] + pub struct TransferFromCall { + pub from: ::ethers::core::types::Address, + pub to: ::ethers::core::types::Address, + pub token_id: ::ethers::core::types::U256, + } + ///Container type for all of the contract's call + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum IERC721EnumerableCalls { + Approve(ApproveCall), + BalanceOf(BalanceOfCall), + GetApproved(GetApprovedCall), + IsApprovedForAll(IsApprovedForAllCall), + OwnerOf(OwnerOfCall), + SafeTransferFrom(SafeTransferFromCall), + SafeTransferFromWithFromAndToAndData(SafeTransferFromWithFromAndToAndDataCall), + SetApprovalForAll(SetApprovalForAllCall), + SupportsInterface(SupportsInterfaceCall), + TokenByIndex(TokenByIndexCall), + TokenOfOwnerByIndex(TokenOfOwnerByIndexCall), + TotalSupply(TotalSupplyCall), + TransferFrom(TransferFromCall), + } + impl ::ethers::core::abi::AbiDecode for IERC721EnumerableCalls { + fn decode( + data: impl AsRef<[u8]>, + ) -> ::core::result::Result { + let data = data.as_ref(); + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Approve(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::BalanceOf(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetApproved(decoded)); + } + if let Ok(decoded) + = ::decode( + data, + ) { + return Ok(Self::IsApprovedForAll(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::OwnerOf(decoded)); + } + if let Ok(decoded) + = ::decode( + data, + ) { + return Ok(Self::SafeTransferFrom(decoded)); + } + if let Ok(decoded) + = ::decode( + data, + ) { + return Ok(Self::SafeTransferFromWithFromAndToAndData(decoded)); + } + if let Ok(decoded) + = ::decode( + data, + ) { + return Ok(Self::SetApprovalForAll(decoded)); + } + if let Ok(decoded) + = ::decode( + data, + ) { + return Ok(Self::SupportsInterface(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::TokenByIndex(decoded)); + } + if let Ok(decoded) + = ::decode( + data, + ) { + return Ok(Self::TokenOfOwnerByIndex(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::TotalSupply(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::TransferFrom(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData.into()) + } + } + impl ::ethers::core::abi::AbiEncode for IERC721EnumerableCalls { + fn encode(self) -> Vec { + match self { + Self::Approve(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::BalanceOf(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetApproved(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::IsApprovedForAll(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::OwnerOf(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::SafeTransferFrom(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::SafeTransferFromWithFromAndToAndData(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::SetApprovalForAll(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::SupportsInterface(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::TokenByIndex(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::TokenOfOwnerByIndex(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::TotalSupply(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::TransferFrom(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + } + } + } + impl ::core::fmt::Display for IERC721EnumerableCalls { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::Approve(element) => ::core::fmt::Display::fmt(element, f), + Self::BalanceOf(element) => ::core::fmt::Display::fmt(element, f), + Self::GetApproved(element) => ::core::fmt::Display::fmt(element, f), + Self::IsApprovedForAll(element) => ::core::fmt::Display::fmt(element, f), + Self::OwnerOf(element) => ::core::fmt::Display::fmt(element, f), + Self::SafeTransferFrom(element) => ::core::fmt::Display::fmt(element, f), + Self::SafeTransferFromWithFromAndToAndData(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::SetApprovalForAll(element) => ::core::fmt::Display::fmt(element, f), + Self::SupportsInterface(element) => ::core::fmt::Display::fmt(element, f), + Self::TokenByIndex(element) => ::core::fmt::Display::fmt(element, f), + Self::TokenOfOwnerByIndex(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::TotalSupply(element) => ::core::fmt::Display::fmt(element, f), + Self::TransferFrom(element) => ::core::fmt::Display::fmt(element, f), + } + } + } + impl ::core::convert::From for IERC721EnumerableCalls { + fn from(value: ApproveCall) -> Self { + Self::Approve(value) + } + } + impl ::core::convert::From for IERC721EnumerableCalls { + fn from(value: BalanceOfCall) -> Self { + Self::BalanceOf(value) + } + } + impl ::core::convert::From for IERC721EnumerableCalls { + fn from(value: GetApprovedCall) -> Self { + Self::GetApproved(value) + } + } + impl ::core::convert::From for IERC721EnumerableCalls { + fn from(value: IsApprovedForAllCall) -> Self { + Self::IsApprovedForAll(value) + } + } + impl ::core::convert::From for IERC721EnumerableCalls { + fn from(value: OwnerOfCall) -> Self { + Self::OwnerOf(value) + } + } + impl ::core::convert::From for IERC721EnumerableCalls { + fn from(value: SafeTransferFromCall) -> Self { + Self::SafeTransferFrom(value) + } + } + impl ::core::convert::From + for IERC721EnumerableCalls { + fn from(value: SafeTransferFromWithFromAndToAndDataCall) -> Self { + Self::SafeTransferFromWithFromAndToAndData(value) + } + } + impl ::core::convert::From for IERC721EnumerableCalls { + fn from(value: SetApprovalForAllCall) -> Self { + Self::SetApprovalForAll(value) + } + } + impl ::core::convert::From for IERC721EnumerableCalls { + fn from(value: SupportsInterfaceCall) -> Self { + Self::SupportsInterface(value) + } + } + impl ::core::convert::From for IERC721EnumerableCalls { + fn from(value: TokenByIndexCall) -> Self { + Self::TokenByIndex(value) + } + } + impl ::core::convert::From for IERC721EnumerableCalls { + fn from(value: TokenOfOwnerByIndexCall) -> Self { + Self::TokenOfOwnerByIndex(value) + } + } + impl ::core::convert::From for IERC721EnumerableCalls { + fn from(value: TotalSupplyCall) -> Self { + Self::TotalSupply(value) + } + } + impl ::core::convert::From for IERC721EnumerableCalls { + fn from(value: TransferFromCall) -> Self { + Self::TransferFrom(value) + } + } + ///Container type for all return fields from the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct BalanceOfReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `getApproved` function with signature `getApproved(uint256)` and selector `0x081812fc` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetApprovedReturn(pub ::ethers::core::types::Address); + ///Container type for all return fields from the `isApprovedForAll` function with signature `isApprovedForAll(address,address)` and selector `0xe985e9c5` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct IsApprovedForAllReturn(pub bool); + ///Container type for all return fields from the `ownerOf` function with signature `ownerOf(uint256)` and selector `0x6352211e` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct OwnerOfReturn(pub ::ethers::core::types::Address); + ///Container type for all return fields from the `supportsInterface` function with signature `supportsInterface(bytes4)` and selector `0x01ffc9a7` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct SupportsInterfaceReturn(pub bool); + ///Container type for all return fields from the `tokenByIndex` function with signature `tokenByIndex(uint256)` and selector `0x4f6ccce7` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct TokenByIndexReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `tokenOfOwnerByIndex` function with signature `tokenOfOwnerByIndex(address,uint256)` and selector `0x2f745c59` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct TokenOfOwnerByIndexReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct TotalSupplyReturn(pub ::ethers::core::types::U256); +} diff --git a/crates/bindings/src/ierc721_metadata.rs b/crates/bindings/src/ierc721_metadata.rs new file mode 100644 index 00000000..f3819176 --- /dev/null +++ b/crates/bindings/src/ierc721_metadata.rs @@ -0,0 +1,856 @@ +pub use ierc721_metadata::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod ierc721_metadata { + #[rustfmt::skip] + const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"_approved\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\",\"components\":[],\"indexed\":true}],\"type\":\"event\",\"name\":\"Approval\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"_operator\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"bool\",\"name\":\"_approved\",\"type\":\"bool\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"ApprovalForAll\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\",\"components\":[],\"indexed\":true}],\"type\":\"event\",\"name\":\"Transfer\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_approved\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"approve\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"_operator\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"safeTransferFrom\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\",\"components\":[]}],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"safeTransferFrom\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_operator\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"bool\",\"name\":\"_approved\",\"type\":\"bool\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"setApprovalForAll\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceID\",\"type\":\"bytes4\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"_symbol\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"transferFrom\",\"outputs\":[]}]"; + ///The parsed JSON ABI of the contract. + pub static IERC721METADATA_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| + ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); + pub struct IERC721Metadata(::ethers::contract::Contract); + impl ::core::clone::Clone for IERC721Metadata { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for IERC721Metadata { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for IERC721Metadata { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for IERC721Metadata { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(stringify!(IERC721Metadata)).field(&self.address()).finish() + } + } + impl IERC721Metadata { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + IERC721METADATA_ABI.clone(), + client, + ), + ) + } + ///Calls the contract's `approve` (0x095ea7b3) function + pub fn approve( + &self, + approved: ::ethers::core::types::Address, + token_id: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([9, 94, 167, 179], (approved, token_id)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `balanceOf` (0x70a08231) function + pub fn balance_of( + &self, + owner: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([112, 160, 130, 49], owner) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getApproved` (0x081812fc) function + pub fn get_approved( + &self, + token_id: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall< + M, + ::ethers::core::types::Address, + > { + self.0 + .method_hash([8, 24, 18, 252], token_id) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `isApprovedForAll` (0xe985e9c5) function + pub fn is_approved_for_all( + &self, + owner: ::ethers::core::types::Address, + operator: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([233, 133, 233, 197], (owner, operator)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `name` (0x06fdde03) function + pub fn name( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([6, 253, 222, 3], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `ownerOf` (0x6352211e) function + pub fn owner_of( + &self, + token_id: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall< + M, + ::ethers::core::types::Address, + > { + self.0 + .method_hash([99, 82, 33, 30], token_id) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `safeTransferFrom` (0x42842e0e) function + pub fn safe_transfer_from( + &self, + from: ::ethers::core::types::Address, + to: ::ethers::core::types::Address, + token_id: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([66, 132, 46, 14], (from, to, token_id)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `safeTransferFrom` (0xb88d4fde) function + pub fn safe_transfer_from_with_from_and_to_and_data( + &self, + from: ::ethers::core::types::Address, + to: ::ethers::core::types::Address, + token_id: ::ethers::core::types::U256, + data: ::ethers::core::types::Bytes, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([184, 141, 79, 222], (from, to, token_id, data)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `setApprovalForAll` (0xa22cb465) function + pub fn set_approval_for_all( + &self, + operator: ::ethers::core::types::Address, + approved: bool, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([162, 44, 180, 101], (operator, approved)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `supportsInterface` (0x01ffc9a7) function + pub fn supports_interface( + &self, + interface_id: [u8; 4], + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([1, 255, 201, 167], interface_id) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `symbol` (0x95d89b41) function + pub fn symbol( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([149, 216, 155, 65], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `tokenURI` (0xc87b56dd) function + pub fn token_uri( + &self, + token_id: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([200, 123, 86, 221], token_id) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `transferFrom` (0x23b872dd) function + pub fn transfer_from( + &self, + from: ::ethers::core::types::Address, + to: ::ethers::core::types::Address, + token_id: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([35, 184, 114, 221], (from, to, token_id)) + .expect("method not found (this should never happen)") + } + ///Gets the contract's `Approval` event + pub fn approval_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + ApprovalFilter, + > { + self.0.event() + } + ///Gets the contract's `ApprovalForAll` event + pub fn approval_for_all_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + ApprovalForAllFilter, + > { + self.0.event() + } + ///Gets the contract's `Transfer` event + pub fn transfer_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + TransferFilter, + > { + self.0.event() + } + /// Returns an `Event` builder for all the events of this contract. + pub fn events( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + IERC721MetadataEvents, + > { + self.0.event_with_filter(::core::default::Default::default()) + } + } + impl From<::ethers::contract::Contract> + for IERC721Metadata { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "Approval", abi = "Approval(address,address,uint256)")] + pub struct ApprovalFilter { + #[ethevent(indexed)] + pub owner: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub approved: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub token_id: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "ApprovalForAll", abi = "ApprovalForAll(address,address,bool)")] + pub struct ApprovalForAllFilter { + #[ethevent(indexed)] + pub owner: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub operator: ::ethers::core::types::Address, + pub approved: bool, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "Transfer", abi = "Transfer(address,address,uint256)")] + pub struct TransferFilter { + #[ethevent(indexed)] + pub from: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub to: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub token_id: ::ethers::core::types::U256, + } + ///Container type for all of the contract's events + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum IERC721MetadataEvents { + ApprovalFilter(ApprovalFilter), + ApprovalForAllFilter(ApprovalForAllFilter), + TransferFilter(TransferFilter), + } + impl ::ethers::contract::EthLogDecode for IERC721MetadataEvents { + fn decode_log( + log: &::ethers::core::abi::RawLog, + ) -> ::core::result::Result { + if let Ok(decoded) = ApprovalFilter::decode_log(log) { + return Ok(IERC721MetadataEvents::ApprovalFilter(decoded)); + } + if let Ok(decoded) = ApprovalForAllFilter::decode_log(log) { + return Ok(IERC721MetadataEvents::ApprovalForAllFilter(decoded)); + } + if let Ok(decoded) = TransferFilter::decode_log(log) { + return Ok(IERC721MetadataEvents::TransferFilter(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData) + } + } + impl ::core::fmt::Display for IERC721MetadataEvents { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::ApprovalFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::ApprovalForAllFilter(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::TransferFilter(element) => ::core::fmt::Display::fmt(element, f), + } + } + } + impl ::core::convert::From for IERC721MetadataEvents { + fn from(value: ApprovalFilter) -> Self { + Self::ApprovalFilter(value) + } + } + impl ::core::convert::From for IERC721MetadataEvents { + fn from(value: ApprovalForAllFilter) -> Self { + Self::ApprovalForAllFilter(value) + } + } + impl ::core::convert::From for IERC721MetadataEvents { + fn from(value: TransferFilter) -> Self { + Self::TransferFilter(value) + } + } + ///Container type for all input parameters for the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "approve", abi = "approve(address,uint256)")] + pub struct ApproveCall { + pub approved: ::ethers::core::types::Address, + pub token_id: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "balanceOf", abi = "balanceOf(address)")] + pub struct BalanceOfCall { + pub owner: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `getApproved` function with signature `getApproved(uint256)` and selector `0x081812fc` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getApproved", abi = "getApproved(uint256)")] + pub struct GetApprovedCall { + pub token_id: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `isApprovedForAll` function with signature `isApprovedForAll(address,address)` and selector `0xe985e9c5` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "isApprovedForAll", abi = "isApprovedForAll(address,address)")] + pub struct IsApprovedForAllCall { + pub owner: ::ethers::core::types::Address, + pub operator: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `name` function with signature `name()` and selector `0x06fdde03` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "name", abi = "name()")] + pub struct NameCall; + ///Container type for all input parameters for the `ownerOf` function with signature `ownerOf(uint256)` and selector `0x6352211e` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "ownerOf", abi = "ownerOf(uint256)")] + pub struct OwnerOfCall { + pub token_id: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `safeTransferFrom` function with signature `safeTransferFrom(address,address,uint256)` and selector `0x42842e0e` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall( + name = "safeTransferFrom", + abi = "safeTransferFrom(address,address,uint256)" + )] + pub struct SafeTransferFromCall { + pub from: ::ethers::core::types::Address, + pub to: ::ethers::core::types::Address, + pub token_id: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `safeTransferFrom` function with signature `safeTransferFrom(address,address,uint256,bytes)` and selector `0xb88d4fde` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall( + name = "safeTransferFrom", + abi = "safeTransferFrom(address,address,uint256,bytes)" + )] + pub struct SafeTransferFromWithFromAndToAndDataCall { + pub from: ::ethers::core::types::Address, + pub to: ::ethers::core::types::Address, + pub token_id: ::ethers::core::types::U256, + pub data: ::ethers::core::types::Bytes, + } + ///Container type for all input parameters for the `setApprovalForAll` function with signature `setApprovalForAll(address,bool)` and selector `0xa22cb465` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "setApprovalForAll", abi = "setApprovalForAll(address,bool)")] + pub struct SetApprovalForAllCall { + pub operator: ::ethers::core::types::Address, + pub approved: bool, + } + ///Container type for all input parameters for the `supportsInterface` function with signature `supportsInterface(bytes4)` and selector `0x01ffc9a7` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "supportsInterface", abi = "supportsInterface(bytes4)")] + pub struct SupportsInterfaceCall { + pub interface_id: [u8; 4], + } + ///Container type for all input parameters for the `symbol` function with signature `symbol()` and selector `0x95d89b41` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "symbol", abi = "symbol()")] + pub struct SymbolCall; + ///Container type for all input parameters for the `tokenURI` function with signature `tokenURI(uint256)` and selector `0xc87b56dd` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "tokenURI", abi = "tokenURI(uint256)")] + pub struct TokenURICall { + pub token_id: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "transferFrom", abi = "transferFrom(address,address,uint256)")] + pub struct TransferFromCall { + pub from: ::ethers::core::types::Address, + pub to: ::ethers::core::types::Address, + pub token_id: ::ethers::core::types::U256, + } + ///Container type for all of the contract's call + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum IERC721MetadataCalls { + Approve(ApproveCall), + BalanceOf(BalanceOfCall), + GetApproved(GetApprovedCall), + IsApprovedForAll(IsApprovedForAllCall), + Name(NameCall), + OwnerOf(OwnerOfCall), + SafeTransferFrom(SafeTransferFromCall), + SafeTransferFromWithFromAndToAndData(SafeTransferFromWithFromAndToAndDataCall), + SetApprovalForAll(SetApprovalForAllCall), + SupportsInterface(SupportsInterfaceCall), + Symbol(SymbolCall), + TokenURI(TokenURICall), + TransferFrom(TransferFromCall), + } + impl ::ethers::core::abi::AbiDecode for IERC721MetadataCalls { + fn decode( + data: impl AsRef<[u8]>, + ) -> ::core::result::Result { + let data = data.as_ref(); + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Approve(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::BalanceOf(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetApproved(decoded)); + } + if let Ok(decoded) + = ::decode( + data, + ) { + return Ok(Self::IsApprovedForAll(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Name(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::OwnerOf(decoded)); + } + if let Ok(decoded) + = ::decode( + data, + ) { + return Ok(Self::SafeTransferFrom(decoded)); + } + if let Ok(decoded) + = ::decode( + data, + ) { + return Ok(Self::SafeTransferFromWithFromAndToAndData(decoded)); + } + if let Ok(decoded) + = ::decode( + data, + ) { + return Ok(Self::SetApprovalForAll(decoded)); + } + if let Ok(decoded) + = ::decode( + data, + ) { + return Ok(Self::SupportsInterface(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Symbol(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::TokenURI(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::TransferFrom(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData.into()) + } + } + impl ::ethers::core::abi::AbiEncode for IERC721MetadataCalls { + fn encode(self) -> Vec { + match self { + Self::Approve(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::BalanceOf(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetApproved(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::IsApprovedForAll(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Name(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::OwnerOf(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::SafeTransferFrom(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::SafeTransferFromWithFromAndToAndData(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::SetApprovalForAll(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::SupportsInterface(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Symbol(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::TokenURI(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::TransferFrom(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + } + } + } + impl ::core::fmt::Display for IERC721MetadataCalls { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::Approve(element) => ::core::fmt::Display::fmt(element, f), + Self::BalanceOf(element) => ::core::fmt::Display::fmt(element, f), + Self::GetApproved(element) => ::core::fmt::Display::fmt(element, f), + Self::IsApprovedForAll(element) => ::core::fmt::Display::fmt(element, f), + Self::Name(element) => ::core::fmt::Display::fmt(element, f), + Self::OwnerOf(element) => ::core::fmt::Display::fmt(element, f), + Self::SafeTransferFrom(element) => ::core::fmt::Display::fmt(element, f), + Self::SafeTransferFromWithFromAndToAndData(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::SetApprovalForAll(element) => ::core::fmt::Display::fmt(element, f), + Self::SupportsInterface(element) => ::core::fmt::Display::fmt(element, f), + Self::Symbol(element) => ::core::fmt::Display::fmt(element, f), + Self::TokenURI(element) => ::core::fmt::Display::fmt(element, f), + Self::TransferFrom(element) => ::core::fmt::Display::fmt(element, f), + } + } + } + impl ::core::convert::From for IERC721MetadataCalls { + fn from(value: ApproveCall) -> Self { + Self::Approve(value) + } + } + impl ::core::convert::From for IERC721MetadataCalls { + fn from(value: BalanceOfCall) -> Self { + Self::BalanceOf(value) + } + } + impl ::core::convert::From for IERC721MetadataCalls { + fn from(value: GetApprovedCall) -> Self { + Self::GetApproved(value) + } + } + impl ::core::convert::From for IERC721MetadataCalls { + fn from(value: IsApprovedForAllCall) -> Self { + Self::IsApprovedForAll(value) + } + } + impl ::core::convert::From for IERC721MetadataCalls { + fn from(value: NameCall) -> Self { + Self::Name(value) + } + } + impl ::core::convert::From for IERC721MetadataCalls { + fn from(value: OwnerOfCall) -> Self { + Self::OwnerOf(value) + } + } + impl ::core::convert::From for IERC721MetadataCalls { + fn from(value: SafeTransferFromCall) -> Self { + Self::SafeTransferFrom(value) + } + } + impl ::core::convert::From + for IERC721MetadataCalls { + fn from(value: SafeTransferFromWithFromAndToAndDataCall) -> Self { + Self::SafeTransferFromWithFromAndToAndData(value) + } + } + impl ::core::convert::From for IERC721MetadataCalls { + fn from(value: SetApprovalForAllCall) -> Self { + Self::SetApprovalForAll(value) + } + } + impl ::core::convert::From for IERC721MetadataCalls { + fn from(value: SupportsInterfaceCall) -> Self { + Self::SupportsInterface(value) + } + } + impl ::core::convert::From for IERC721MetadataCalls { + fn from(value: SymbolCall) -> Self { + Self::Symbol(value) + } + } + impl ::core::convert::From for IERC721MetadataCalls { + fn from(value: TokenURICall) -> Self { + Self::TokenURI(value) + } + } + impl ::core::convert::From for IERC721MetadataCalls { + fn from(value: TransferFromCall) -> Self { + Self::TransferFrom(value) + } + } + ///Container type for all return fields from the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct BalanceOfReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `getApproved` function with signature `getApproved(uint256)` and selector `0x081812fc` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetApprovedReturn(pub ::ethers::core::types::Address); + ///Container type for all return fields from the `isApprovedForAll` function with signature `isApprovedForAll(address,address)` and selector `0xe985e9c5` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct IsApprovedForAllReturn(pub bool); + ///Container type for all return fields from the `name` function with signature `name()` and selector `0x06fdde03` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct NameReturn { + pub name: ::std::string::String, + } + ///Container type for all return fields from the `ownerOf` function with signature `ownerOf(uint256)` and selector `0x6352211e` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct OwnerOfReturn(pub ::ethers::core::types::Address); + ///Container type for all return fields from the `supportsInterface` function with signature `supportsInterface(bytes4)` and selector `0x01ffc9a7` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct SupportsInterfaceReturn(pub bool); + ///Container type for all return fields from the `symbol` function with signature `symbol()` and selector `0x95d89b41` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct SymbolReturn { + pub symbol: ::std::string::String, + } + ///Container type for all return fields from the `tokenURI` function with signature `tokenURI(uint256)` and selector `0xc87b56dd` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct TokenURIReturn(pub ::std::string::String); +} diff --git a/crates/bindings/src/ierc721_token_receiver.rs b/crates/bindings/src/ierc721_token_receiver.rs new file mode 100644 index 00000000..ff111652 --- /dev/null +++ b/crates/bindings/src/ierc721_token_receiver.rs @@ -0,0 +1,113 @@ +pub use ierc721_token_receiver::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod ierc721_token_receiver { + #[rustfmt::skip] + const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_operator\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\",\"components\":[]}]}]"; + ///The parsed JSON ABI of the contract. + pub static IERC721TOKENRECEIVER_ABI: ::ethers::contract::Lazy< + ::ethers::core::abi::Abi, + > = ::ethers::contract::Lazy::new(|| { + ::ethers::core::utils::__serde_json::from_str(__ABI) + .expect("ABI is always valid") + }); + pub struct IERC721TokenReceiver(::ethers::contract::Contract); + impl ::core::clone::Clone for IERC721TokenReceiver { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for IERC721TokenReceiver { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for IERC721TokenReceiver { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for IERC721TokenReceiver { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(stringify!(IERC721TokenReceiver)) + .field(&self.address()) + .finish() + } + } + impl IERC721TokenReceiver { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + IERC721TOKENRECEIVER_ABI.clone(), + client, + ), + ) + } + ///Calls the contract's `onERC721Received` (0x150b7a02) function + pub fn on_erc721_received( + &self, + operator: ::ethers::core::types::Address, + from: ::ethers::core::types::Address, + token_id: ::ethers::core::types::U256, + data: ::ethers::core::types::Bytes, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([21, 11, 122, 2], (operator, from, token_id, data)) + .expect("method not found (this should never happen)") + } + } + impl From<::ethers::contract::Contract> + for IERC721TokenReceiver { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } + ///Container type for all input parameters for the `onERC721Received` function with signature `onERC721Received(address,address,uint256,bytes)` and selector `0x150b7a02` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall( + name = "onERC721Received", + abi = "onERC721Received(address,address,uint256,bytes)" + )] + pub struct OnERC721ReceivedCall { + pub operator: ::ethers::core::types::Address, + pub from: ::ethers::core::types::Address, + pub token_id: ::ethers::core::types::U256, + pub data: ::ethers::core::types::Bytes, + } + ///Container type for all return fields from the `onERC721Received` function with signature `onERC721Received(address,address,uint256,bytes)` and selector `0x150b7a02` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct OnERC721ReceivedReturn(pub [u8; 4]); +} diff --git a/crates/bindings/src/infinitely_liquid_market.rs b/crates/bindings/src/infinitely_liquid_market.rs new file mode 100644 index 00000000..80a6499d --- /dev/null +++ b/crates/bindings/src/infinitely_liquid_market.rs @@ -0,0 +1,608 @@ +pub use infinitely_liquid_market::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod infinitely_liquid_market { + #[rustfmt::skip] + const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"PriceChange\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"setPrice\",\"outputs\":[]}]"; + ///The parsed JSON ABI of the contract. + pub static INFINITELYLIQUIDMARKET_ABI: ::ethers::contract::Lazy< + ::ethers::core::abi::Abi, + > = ::ethers::contract::Lazy::new(|| { + ::ethers::core::utils::__serde_json::from_str(__ABI) + .expect("ABI is always valid") + }); + #[rustfmt::skip] + const __BYTECODE: &[u8] = &[ + 96, + 128, + 96, + 64, + 82, + 52, + 128, + 21, + 97, + 0, + 16, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 96, + 199, + 128, + 97, + 0, + 31, + 96, + 0, + 57, + 96, + 0, + 243, + 254, + 96, + 128, + 96, + 64, + 82, + 52, + 128, + 21, + 96, + 15, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 96, + 4, + 54, + 16, + 96, + 40, + 87, + 96, + 0, + 53, + 96, + 224, + 28, + 128, + 99, + 145, + 183, + 245, + 237, + 20, + 96, + 45, + 87, + 91, + 96, + 0, + 128, + 253, + 91, + 96, + 60, + 96, + 56, + 54, + 96, + 4, + 96, + 121, + 86, + 91, + 96, + 62, + 86, + 91, + 0, + 91, + 96, + 0, + 129, + 144, + 85, + 96, + 64, + 81, + 129, + 129, + 82, + 127, + 243, + 71, + 238, + 153, + 80, + 59, + 241, + 156, + 2, + 139, + 214, + 177, + 143, + 60, + 103, + 110, + 130, + 169, + 187, + 91, + 43, + 181, + 34, + 90, + 235, + 224, + 253, + 98, + 253, + 106, + 13, + 25, + 144, + 96, + 32, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 161, + 80, + 86, + 91, + 96, + 0, + 96, + 32, + 130, + 132, + 3, + 18, + 21, + 96, + 138, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 53, + 145, + 144, + 80, + 86, + 254, + 162, + 100, + 105, + 112, + 102, + 115, + 88, + 34, + 18, + 32, + 141, + 39, + 135, + 241, + 26, + 152, + 136, + 80, + 118, + 232, + 231, + 16, + 168, + 142, + 11, + 188, + 234, + 121, + 43, + 180, + 145, + 23, + 211, + 233, + 242, + 167, + 100, + 164, + 178, + 91, + 46, + 29, + 100, + 115, + 111, + 108, + 99, + 67, + 0, + 8, + 19, + 0, + 51, + ]; + ///The bytecode of the contract. + pub static INFINITELYLIQUIDMARKET_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __BYTECODE, + ); + #[rustfmt::skip] + const __DEPLOYED_BYTECODE: &[u8] = &[ + 96, + 128, + 96, + 64, + 82, + 52, + 128, + 21, + 96, + 15, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 96, + 4, + 54, + 16, + 96, + 40, + 87, + 96, + 0, + 53, + 96, + 224, + 28, + 128, + 99, + 145, + 183, + 245, + 237, + 20, + 96, + 45, + 87, + 91, + 96, + 0, + 128, + 253, + 91, + 96, + 60, + 96, + 56, + 54, + 96, + 4, + 96, + 121, + 86, + 91, + 96, + 62, + 86, + 91, + 0, + 91, + 96, + 0, + 129, + 144, + 85, + 96, + 64, + 81, + 129, + 129, + 82, + 127, + 243, + 71, + 238, + 153, + 80, + 59, + 241, + 156, + 2, + 139, + 214, + 177, + 143, + 60, + 103, + 110, + 130, + 169, + 187, + 91, + 43, + 181, + 34, + 90, + 235, + 224, + 253, + 98, + 253, + 106, + 13, + 25, + 144, + 96, + 32, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 161, + 80, + 86, + 91, + 96, + 0, + 96, + 32, + 130, + 132, + 3, + 18, + 21, + 96, + 138, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 53, + 145, + 144, + 80, + 86, + 254, + 162, + 100, + 105, + 112, + 102, + 115, + 88, + 34, + 18, + 32, + 141, + 39, + 135, + 241, + 26, + 152, + 136, + 80, + 118, + 232, + 231, + 16, + 168, + 142, + 11, + 188, + 234, + 121, + 43, + 180, + 145, + 23, + 211, + 233, + 242, + 167, + 100, + 164, + 178, + 91, + 46, + 29, + 100, + 115, + 111, + 108, + 99, + 67, + 0, + 8, + 19, + 0, + 51, + ]; + ///The deployed bytecode of the contract. + pub static INFINITELYLIQUIDMARKET_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __DEPLOYED_BYTECODE, + ); + pub struct InfinitelyLiquidMarket(::ethers::contract::Contract); + impl ::core::clone::Clone for InfinitelyLiquidMarket { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for InfinitelyLiquidMarket { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for InfinitelyLiquidMarket { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for InfinitelyLiquidMarket { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(stringify!(InfinitelyLiquidMarket)) + .field(&self.address()) + .finish() + } + } + impl InfinitelyLiquidMarket { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + INFINITELYLIQUIDMARKET_ABI.clone(), + client, + ), + ) + } + /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. + /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction + /// + /// Notes: + /// - If there are no constructor arguments, you should pass `()` as the argument. + /// - The default poll duration is 7 seconds. + /// - The default number of confirmations is 1 block. + /// + /// + /// # Example + /// + /// Generate contract bindings with `abigen!` and deploy a new contract instance. + /// + /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. + /// + /// ```ignore + /// # async fn deploy(client: ::std::sync::Arc) { + /// abigen!(Greeter, "../greeter.json"); + /// + /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); + /// let msg = greeter_contract.greet().call().await.unwrap(); + /// # } + /// ``` + pub fn deploy( + client: ::std::sync::Arc, + constructor_args: T, + ) -> ::core::result::Result< + ::ethers::contract::builders::ContractDeployer, + ::ethers::contract::ContractError, + > { + let factory = ::ethers::contract::ContractFactory::new( + INFINITELYLIQUIDMARKET_ABI.clone(), + INFINITELYLIQUIDMARKET_BYTECODE.clone().into(), + client, + ); + let deployer = factory.deploy(constructor_args)?; + let deployer = ::ethers::contract::ContractDeployer::new(deployer); + Ok(deployer) + } + ///Calls the contract's `setPrice` (0x91b7f5ed) function + pub fn set_price( + &self, + price: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([145, 183, 245, 237], price) + .expect("method not found (this should never happen)") + } + ///Gets the contract's `PriceChange` event + pub fn price_change_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + PriceChangeFilter, + > { + self.0.event() + } + /// Returns an `Event` builder for all the events of this contract. + pub fn events( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + PriceChangeFilter, + > { + self.0.event_with_filter(::core::default::Default::default()) + } + } + impl From<::ethers::contract::Contract> + for InfinitelyLiquidMarket { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "PriceChange", abi = "PriceChange(uint256)")] + pub struct PriceChangeFilter { + pub price: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `setPrice` function with signature `setPrice(uint256)` and selector `0x91b7f5ed` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "setPrice", abi = "setPrice(uint256)")] + pub struct SetPriceCall { + pub price: ::ethers::core::types::U256, + } +} diff --git a/crates/bindings/src/invariant.rs b/crates/bindings/src/invariant.rs deleted file mode 100644 index 649d49b2..00000000 --- a/crates/bindings/src/invariant.rs +++ /dev/null @@ -1,354 +0,0 @@ -pub use invariant::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types -)] -pub mod invariant { - #[rustfmt::skip] - const __ABI: &str = "[{\"inputs\":[],\"type\":\"error\",\"name\":\"OOB\",\"outputs\":[]}]"; - ///The parsed JSON ABI of the contract. - pub static INVARIANT_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = - ::ethers::contract::Lazy::new(|| { - ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid") - }); - #[rustfmt::skip] - const __BYTECODE: &[u8] = &[ - 96, - 86, - 96, - 55, - 96, - 11, - 130, - 130, - 130, - 57, - 128, - 81, - 96, - 0, - 26, - 96, - 115, - 20, - 96, - 42, - 87, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 0, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 48, - 96, - 0, - 82, - 96, - 115, - 129, - 83, - 130, - 129, - 243, - 254, - 115, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 48, - 20, - 96, - 128, - 96, - 64, - 82, - 96, - 0, - 128, - 253, - 254, - 162, - 100, - 105, - 112, - 102, - 115, - 88, - 34, - 18, - 32, - 242, - 76, - 235, - 42, - 11, - 61, - 182, - 51, - 19, - 125, - 91, - 145, - 67, - 216, - 168, - 111, - 211, - 172, - 171, - 65, - 183, - 83, - 158, - 51, - 102, - 213, - 40, - 75, - 213, - 85, - 167, - 42, - 100, - 115, - 111, - 108, - 99, - 67, - 0, - 8, - 13, - 0, - 51, - ]; - ///The bytecode of the contract. - pub static INVARIANT_BYTECODE: ::ethers::core::types::Bytes = - ::ethers::core::types::Bytes::from_static(__BYTECODE); - #[rustfmt::skip] - const __DEPLOYED_BYTECODE: &[u8] = &[ - 115, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 48, - 20, - 96, - 128, - 96, - 64, - 82, - 96, - 0, - 128, - 253, - 254, - 162, - 100, - 105, - 112, - 102, - 115, - 88, - 34, - 18, - 32, - 242, - 76, - 235, - 42, - 11, - 61, - 182, - 51, - 19, - 125, - 91, - 145, - 67, - 216, - 168, - 111, - 211, - 172, - 171, - 65, - 183, - 83, - 158, - 51, - 102, - 213, - 40, - 75, - 213, - 85, - 167, - 42, - 100, - 115, - 111, - 108, - 99, - 67, - 0, - 8, - 13, - 0, - 51, - ]; - ///The deployed bytecode of the contract. - pub static INVARIANT_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = - ::ethers::core::types::Bytes::from_static(__DEPLOYED_BYTECODE); - pub struct Invariant(::ethers::contract::Contract); - impl ::core::clone::Clone for Invariant { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for Invariant { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for Invariant { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for Invariant { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(stringify!(Invariant)) - .field(&self.address()) - .finish() - } - } - impl Invariant { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self(::ethers::contract::Contract::new( - address.into(), - INVARIANT_ABI.clone(), - client, - )) - } - /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. - /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction - /// - /// Notes: - /// - If there are no constructor arguments, you should pass `()` as the argument. - /// - The default poll duration is 7 seconds. - /// - The default number of confirmations is 1 block. - /// - /// - /// # Example - /// - /// Generate contract bindings with `abigen!` and deploy a new contract instance. - /// - /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. - /// - /// ```ignore - /// # async fn deploy(client: ::std::sync::Arc) { - /// abigen!(Greeter, "../greeter.json"); - /// - /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); - /// let msg = greeter_contract.greet().call().await.unwrap(); - /// # } - /// ``` - pub fn deploy( - client: ::std::sync::Arc, - constructor_args: T, - ) -> ::core::result::Result< - ::ethers::contract::builders::ContractDeployer, - ::ethers::contract::ContractError, - > { - let factory = ::ethers::contract::ContractFactory::new( - INVARIANT_ABI.clone(), - INVARIANT_BYTECODE.clone().into(), - client, - ); - let deployer = factory.deploy(constructor_args)?; - let deployer = ::ethers::contract::ContractDeployer::new(deployer); - Ok(deployer) - } - } - impl From<::ethers::contract::Contract> for Invariant { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - ///Custom Error type `OOB` with signature `OOB()` and selector `0xaaf3956f` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "OOB", abi = "OOB()")] - pub struct OOB; -} diff --git a/crates/bindings/src/iweth.rs b/crates/bindings/src/iweth.rs deleted file mode 100644 index 3dcba130..00000000 --- a/crates/bindings/src/iweth.rs +++ /dev/null @@ -1,152 +0,0 @@ -pub use iweth::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types -)] -pub mod iweth { - #[rustfmt::skip] - const __ABI: &str = "[{\"inputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"deposit\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"withdraw\",\"outputs\":[]}]"; - ///The parsed JSON ABI of the contract. - pub static IWETH_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = - ::ethers::contract::Lazy::new(|| { - ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid") - }); - pub struct IWETH(::ethers::contract::Contract); - impl ::core::clone::Clone for IWETH { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for IWETH { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for IWETH { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for IWETH { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(stringify!(IWETH)) - .field(&self.address()) - .finish() - } - } - impl IWETH { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self(::ethers::contract::Contract::new( - address.into(), - IWETH_ABI.clone(), - client, - )) - } - ///Calls the contract's `deposit` (0xd0e30db0) function - pub fn deposit(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([208, 227, 13, 176], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `withdraw` (0x2e1a7d4d) function - pub fn withdraw( - &self, - wad: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([46, 26, 125, 77], wad) - .expect("method not found (this should never happen)") - } - } - impl From<::ethers::contract::Contract> for IWETH { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - ///Container type for all input parameters for the `deposit` function with signature `deposit()` and selector `0xd0e30db0` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "deposit", abi = "deposit()")] - pub struct DepositCall; - ///Container type for all input parameters for the `withdraw` function with signature `withdraw(uint256)` and selector `0x2e1a7d4d` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "withdraw", abi = "withdraw(uint256)")] - pub struct WithdrawCall { - pub wad: ::ethers::core::types::U256, - } - ///Container type for all of the contract's call - #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] - pub enum IWETHCalls { - Deposit(DepositCall), - Withdraw(WithdrawCall), - } - impl ::ethers::core::abi::AbiDecode for IWETHCalls { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Deposit(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Withdraw(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for IWETHCalls { - fn encode(self) -> Vec { - match self { - Self::Deposit(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Withdraw(element) => ::ethers::core::abi::AbiEncode::encode(element), - } - } - } - impl ::core::fmt::Display for IWETHCalls { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::Deposit(element) => ::core::fmt::Display::fmt(element, f), - Self::Withdraw(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for IWETHCalls { - fn from(value: DepositCall) -> Self { - Self::Deposit(value) - } - } - impl ::core::convert::From for IWETHCalls { - fn from(value: WithdrawCall) -> Self { - Self::Withdraw(value) - } - } -} diff --git a/crates/bindings/src/lib.rs b/crates/bindings/src/lib.rs index d378919f..4049b0bc 100644 --- a/crates/bindings/src/lib.rs +++ b/crates/bindings/src/lib.rs @@ -3,37 +3,24 @@ //! This is autogenerated code. //! Do not manually edit these files. //! These files may be overwritten by the codegen system at any time. -pub mod account_lib; pub mod arbiter_token; -pub mod assembly_lib; -pub mod echidna_erc20; +pub mod bar; +pub mod bar_erc1155; +pub mod bar_erc721; +pub mod context; pub mod erc20; -pub mod fee_on_transfer_token; -pub mod fixed_point_math_lib; -pub mod fvm_lib; -pub mod gaussian; -pub mod i_portfolio; -pub mod i_portfolio_actions; -pub mod i_portfolio_events; -pub mod i_portfolio_getters; -pub mod i_portfolio_registry; +pub mod ierc1155; +pub mod ierc165; pub mod ierc20; -pub mod invariant; -pub mod iweth; -pub mod mock_erc20; -pub mod objective; -pub mod portfolio_lib; -pub mod portfolio_like; -pub mod portfolio_virtual; -pub mod rmm01_extended_lib; -pub mod rmm01_lib; -pub mod rmm01_portfolio; -pub mod safe_cast_lib; -pub mod safe_transfer_lib; -pub mod shared_types; -pub mod simple_registry; -pub mod units; +pub mod ierc20_metadata; +pub mod ierc4626; +pub mod ierc721; +pub mod ierc721_enumerable; +pub mod ierc721_metadata; +pub mod ierc721_token_receiver; +pub mod infinitely_liquid_market; +pub mod reverting_contract; +pub mod std_invariant; +pub mod std_style; pub mod weth9; - -// Testing pub mod writer; diff --git a/crates/bindings/src/mock_erc20.rs b/crates/bindings/src/mock_erc20.rs deleted file mode 100644 index 4ed38131..00000000 --- a/crates/bindings/src/mock_erc20.rs +++ /dev/null @@ -1,7968 +0,0 @@ -pub use mock_erc20::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types -)] -pub mod mock_erc20 { - #[rustfmt::skip] - const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\",\"components\":[]},{\"internalType\":\"string\",\"name\":\"_symbol\",\"type\":\"string\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"_decimals\",\"type\":\"uint8\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Approval\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Transfer\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"burn\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"mint\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\",\"components\":[]},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\",\"components\":[]},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"permit\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]}]"; - ///The parsed JSON ABI of the contract. - pub static MOCKERC20_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = - ::ethers::contract::Lazy::new(|| { - ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid") - }); - #[rustfmt::skip] - const __BYTECODE: &[u8] = &[ - 96, - 224, - 96, - 64, - 82, - 52, - 128, - 21, - 98, - 0, - 0, - 17, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 96, - 64, - 81, - 98, - 0, - 15, - 248, - 56, - 3, - 128, - 98, - 0, - 15, - 248, - 131, - 57, - 129, - 1, - 96, - 64, - 129, - 144, - 82, - 98, - 0, - 0, - 52, - 145, - 98, - 0, - 2, - 154, - 86, - 91, - 130, - 130, - 130, - 130, - 96, - 0, - 144, - 128, - 81, - 144, - 96, - 32, - 1, - 144, - 98, - 0, - 0, - 79, - 146, - 145, - 144, - 98, - 0, - 1, - 39, - 86, - 91, - 80, - 129, - 81, - 98, - 0, - 0, - 101, - 144, - 96, - 1, - 144, - 96, - 32, - 133, - 1, - 144, - 98, - 0, - 1, - 39, - 86, - 91, - 80, - 96, - 255, - 129, - 22, - 96, - 128, - 82, - 70, - 96, - 160, - 82, - 98, - 0, - 0, - 123, - 98, - 0, - 0, - 139, - 86, - 91, - 96, - 192, - 82, - 80, - 98, - 0, - 3, - 254, - 148, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 127, - 139, - 115, - 195, - 198, - 155, - 184, - 254, - 61, - 81, - 46, - 204, - 76, - 247, - 89, - 204, - 121, - 35, - 159, - 123, - 23, - 155, - 15, - 250, - 202, - 169, - 167, - 93, - 82, - 43, - 57, - 64, - 15, - 96, - 0, - 96, - 64, - 81, - 98, - 0, - 0, - 191, - 145, - 144, - 98, - 0, - 3, - 91, - 86, - 91, - 96, - 64, - 128, - 81, - 145, - 130, - 144, - 3, - 130, - 32, - 96, - 32, - 131, - 1, - 147, - 144, - 147, - 82, - 129, - 1, - 145, - 144, - 145, - 82, - 127, - 200, - 158, - 253, - 170, - 84, - 192, - 242, - 12, - 122, - 223, - 97, - 40, - 130, - 223, - 9, - 80, - 245, - 169, - 81, - 99, - 126, - 3, - 7, - 205, - 203, - 76, - 103, - 47, - 41, - 139, - 139, - 198, - 96, - 96, - 130, - 1, - 82, - 70, - 96, - 128, - 130, - 1, - 82, - 48, - 96, - 160, - 130, - 1, - 82, - 96, - 192, - 1, - 96, - 64, - 81, - 96, - 32, - 129, - 131, - 3, - 3, - 129, - 82, - 144, - 96, - 64, - 82, - 128, - 81, - 144, - 96, - 32, - 1, - 32, - 144, - 80, - 144, - 86, - 91, - 130, - 128, - 84, - 98, - 0, - 1, - 53, - 144, - 98, - 0, - 3, - 31, - 86, - 91, - 144, - 96, - 0, - 82, - 96, - 32, - 96, - 0, - 32, - 144, - 96, - 31, - 1, - 96, - 32, - 144, - 4, - 129, - 1, - 146, - 130, - 98, - 0, - 1, - 89, - 87, - 96, - 0, - 133, - 85, - 98, - 0, - 1, - 164, - 86, - 91, - 130, - 96, - 31, - 16, - 98, - 0, - 1, - 116, - 87, - 128, - 81, - 96, - 255, - 25, - 22, - 131, - 128, - 1, - 23, - 133, - 85, - 98, - 0, - 1, - 164, - 86, - 91, - 130, - 128, - 1, - 96, - 1, - 1, - 133, - 85, - 130, - 21, - 98, - 0, - 1, - 164, - 87, - 145, - 130, - 1, - 91, - 130, - 129, - 17, - 21, - 98, - 0, - 1, - 164, - 87, - 130, - 81, - 130, - 85, - 145, - 96, - 32, - 1, - 145, - 144, - 96, - 1, - 1, - 144, - 98, - 0, - 1, - 135, - 86, - 91, - 80, - 98, - 0, - 1, - 178, - 146, - 145, - 80, - 98, - 0, - 1, - 182, - 86, - 91, - 80, - 144, - 86, - 91, - 91, - 128, - 130, - 17, - 21, - 98, - 0, - 1, - 178, - 87, - 96, - 0, - 129, - 85, - 96, - 1, - 1, - 98, - 0, - 1, - 183, - 86, - 91, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 65, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 96, - 0, - 130, - 96, - 31, - 131, - 1, - 18, - 98, - 0, - 1, - 245, - 87, - 96, - 0, - 128, - 253, - 91, - 129, - 81, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 128, - 130, - 17, - 21, - 98, - 0, - 2, - 18, - 87, - 98, - 0, - 2, - 18, - 98, - 0, - 1, - 205, - 86, - 91, - 96, - 64, - 81, - 96, - 31, - 131, - 1, - 96, - 31, - 25, - 144, - 129, - 22, - 96, - 63, - 1, - 22, - 129, - 1, - 144, - 130, - 130, - 17, - 129, - 131, - 16, - 23, - 21, - 98, - 0, - 2, - 61, - 87, - 98, - 0, - 2, - 61, - 98, - 0, - 1, - 205, - 86, - 91, - 129, - 96, - 64, - 82, - 131, - 129, - 82, - 96, - 32, - 146, - 80, - 134, - 131, - 133, - 136, - 1, - 1, - 17, - 21, - 98, - 0, - 2, - 90, - 87, - 96, - 0, - 128, - 253, - 91, - 96, - 0, - 145, - 80, - 91, - 131, - 130, - 16, - 21, - 98, - 0, - 2, - 126, - 87, - 133, - 130, - 1, - 131, - 1, - 81, - 129, - 131, - 1, - 132, - 1, - 82, - 144, - 130, - 1, - 144, - 98, - 0, - 2, - 95, - 86, - 91, - 131, - 130, - 17, - 21, - 98, - 0, - 2, - 144, - 87, - 96, - 0, - 131, - 133, - 131, - 1, - 1, - 82, - 91, - 150, - 149, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 96, - 96, - 132, - 134, - 3, - 18, - 21, - 98, - 0, - 2, - 176, - 87, - 96, - 0, - 128, - 253, - 91, - 131, - 81, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 128, - 130, - 17, - 21, - 98, - 0, - 2, - 200, - 87, - 96, - 0, - 128, - 253, - 91, - 98, - 0, - 2, - 214, - 135, - 131, - 136, - 1, - 98, - 0, - 1, - 227, - 86, - 91, - 148, - 80, - 96, - 32, - 134, - 1, - 81, - 145, - 80, - 128, - 130, - 17, - 21, - 98, - 0, - 2, - 237, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 98, - 0, - 2, - 252, - 134, - 130, - 135, - 1, - 98, - 0, - 1, - 227, - 86, - 91, - 146, - 80, - 80, - 96, - 64, - 132, - 1, - 81, - 96, - 255, - 129, - 22, - 129, - 20, - 98, - 0, - 3, - 20, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 145, - 80, - 80, - 146, - 80, - 146, - 80, - 146, - 86, - 91, - 96, - 1, - 129, - 129, - 28, - 144, - 130, - 22, - 128, - 98, - 0, - 3, - 52, - 87, - 96, - 127, - 130, - 22, - 145, - 80, - 91, - 96, - 32, - 130, - 16, - 129, - 3, - 98, - 0, - 3, - 85, - 87, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 34, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 80, - 145, - 144, - 80, - 86, - 91, - 96, - 0, - 128, - 131, - 84, - 129, - 96, - 1, - 130, - 129, - 28, - 145, - 80, - 128, - 131, - 22, - 128, - 98, - 0, - 3, - 120, - 87, - 96, - 127, - 131, - 22, - 146, - 80, - 91, - 96, - 32, - 128, - 132, - 16, - 130, - 3, - 98, - 0, - 3, - 152, - 87, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 134, - 82, - 96, - 34, - 96, - 4, - 82, - 96, - 36, - 134, - 253, - 91, - 129, - 128, - 21, - 98, - 0, - 3, - 175, - 87, - 96, - 1, - 129, - 20, - 98, - 0, - 3, - 193, - 87, - 98, - 0, - 3, - 240, - 86, - 91, - 96, - 255, - 25, - 134, - 22, - 137, - 82, - 132, - 137, - 1, - 150, - 80, - 98, - 0, - 3, - 240, - 86, - 91, - 96, - 0, - 138, - 129, - 82, - 96, - 32, - 144, - 32, - 96, - 0, - 91, - 134, - 129, - 16, - 21, - 98, - 0, - 3, - 232, - 87, - 129, - 84, - 139, - 130, - 1, - 82, - 144, - 133, - 1, - 144, - 131, - 1, - 98, - 0, - 3, - 205, - 86, - 91, - 80, - 80, - 132, - 137, - 1, - 150, - 80, - 91, - 80, - 148, - 152, - 151, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 128, - 81, - 96, - 160, - 81, - 96, - 192, - 81, - 97, - 11, - 202, - 98, - 0, - 4, - 46, - 96, - 0, - 57, - 96, - 0, - 97, - 4, - 111, - 1, - 82, - 96, - 0, - 97, - 4, - 58, - 1, - 82, - 96, - 0, - 97, - 1, - 95, - 1, - 82, - 97, - 11, - 202, - 96, - 0, - 243, - 254, - 96, - 128, - 96, - 64, - 82, - 52, - 128, - 21, - 97, - 0, - 16, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 96, - 4, - 54, - 16, - 97, - 0, - 234, - 87, - 96, - 0, - 53, - 96, - 224, - 28, - 128, - 99, - 112, - 160, - 130, - 49, - 17, - 97, - 0, - 140, - 87, - 128, - 99, - 157, - 194, - 159, - 172, - 17, - 97, - 0, - 102, - 87, - 128, - 99, - 157, - 194, - 159, - 172, - 20, - 97, - 1, - 248, - 87, - 128, - 99, - 169, - 5, - 156, - 187, - 20, - 97, - 2, - 11, - 87, - 128, - 99, - 213, - 5, - 172, - 207, - 20, - 97, - 2, - 30, - 87, - 128, - 99, - 221, - 98, - 237, - 62, - 20, - 97, - 2, - 49, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 99, - 112, - 160, - 130, - 49, - 20, - 97, - 1, - 176, - 87, - 128, - 99, - 126, - 206, - 190, - 0, - 20, - 97, - 1, - 208, - 87, - 128, - 99, - 149, - 216, - 155, - 65, - 20, - 97, - 1, - 240, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 99, - 35, - 184, - 114, - 221, - 17, - 97, - 0, - 200, - 87, - 128, - 99, - 35, - 184, - 114, - 221, - 20, - 97, - 1, - 71, - 87, - 128, - 99, - 49, - 60, - 229, - 103, - 20, - 97, - 1, - 90, - 87, - 128, - 99, - 54, - 68, - 229, - 21, - 20, - 97, - 1, - 147, - 87, - 128, - 99, - 64, - 193, - 15, - 25, - 20, - 97, - 1, - 155, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 99, - 6, - 253, - 222, - 3, - 20, - 97, - 0, - 239, - 87, - 128, - 99, - 9, - 94, - 167, - 179, - 20, - 97, - 1, - 13, - 87, - 128, - 99, - 24, - 22, - 13, - 221, - 20, - 97, - 1, - 48, - 87, - 91, - 96, - 0, - 128, - 253, - 91, - 97, - 0, - 247, - 97, - 2, - 92, - 86, - 91, - 96, - 64, - 81, - 97, - 1, - 4, - 145, - 144, - 97, - 8, - 187, - 86, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 243, - 91, - 97, - 1, - 32, - 97, - 1, - 27, - 54, - 96, - 4, - 97, - 9, - 44, - 86, - 91, - 97, - 2, - 234, - 86, - 91, - 96, - 64, - 81, - 144, - 21, - 21, - 129, - 82, - 96, - 32, - 1, - 97, - 1, - 4, - 86, - 91, - 97, - 1, - 57, - 96, - 2, - 84, - 129, - 86, - 91, - 96, - 64, - 81, - 144, - 129, - 82, - 96, - 32, - 1, - 97, - 1, - 4, - 86, - 91, - 97, - 1, - 32, - 97, - 1, - 85, - 54, - 96, - 4, - 97, - 9, - 86, - 86, - 91, - 97, - 3, - 86, - 86, - 91, - 97, - 1, - 129, - 127, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 129, - 86, - 91, - 96, - 64, - 81, - 96, - 255, - 144, - 145, - 22, - 129, - 82, - 96, - 32, - 1, - 97, - 1, - 4, - 86, - 91, - 97, - 1, - 57, - 97, - 4, - 54, - 86, - 91, - 97, - 1, - 174, - 97, - 1, - 169, - 54, - 96, - 4, - 97, - 9, - 44, - 86, - 91, - 97, - 4, - 145, - 86, - 91, - 0, - 91, - 97, - 1, - 57, - 97, - 1, - 190, - 54, - 96, - 4, - 97, - 9, - 146, - 86, - 91, - 96, - 3, - 96, - 32, - 82, - 96, - 0, - 144, - 129, - 82, - 96, - 64, - 144, - 32, - 84, - 129, - 86, - 91, - 97, - 1, - 57, - 97, - 1, - 222, - 54, - 96, - 4, - 97, - 9, - 146, - 86, - 91, - 96, - 5, - 96, - 32, - 82, - 96, - 0, - 144, - 129, - 82, - 96, - 64, - 144, - 32, - 84, - 129, - 86, - 91, - 97, - 0, - 247, - 97, - 4, - 159, - 86, - 91, - 97, - 1, - 174, - 97, - 2, - 6, - 54, - 96, - 4, - 97, - 9, - 44, - 86, - 91, - 97, - 4, - 172, - 86, - 91, - 97, - 1, - 32, - 97, - 2, - 25, - 54, - 96, - 4, - 97, - 9, - 44, - 86, - 91, - 97, - 4, - 182, - 86, - 91, - 97, - 1, - 174, - 97, - 2, - 44, - 54, - 96, - 4, - 97, - 9, - 180, - 86, - 91, - 97, - 5, - 28, - 86, - 91, - 97, - 1, - 57, - 97, - 2, - 63, - 54, - 96, - 4, - 97, - 10, - 39, - 86, - 91, - 96, - 4, - 96, - 32, - 144, - 129, - 82, - 96, - 0, - 146, - 131, - 82, - 96, - 64, - 128, - 132, - 32, - 144, - 145, - 82, - 144, - 130, - 82, - 144, - 32, - 84, - 129, - 86, - 91, - 96, - 0, - 128, - 84, - 97, - 2, - 105, - 144, - 97, - 10, - 90, - 86, - 91, - 128, - 96, - 31, - 1, - 96, - 32, - 128, - 145, - 4, - 2, - 96, - 32, - 1, - 96, - 64, - 81, - 144, - 129, - 1, - 96, - 64, - 82, - 128, - 146, - 145, - 144, - 129, - 129, - 82, - 96, - 32, - 1, - 130, - 128, - 84, - 97, - 2, - 149, - 144, - 97, - 10, - 90, - 86, - 91, - 128, - 21, - 97, - 2, - 226, - 87, - 128, - 96, - 31, - 16, - 97, - 2, - 183, - 87, - 97, - 1, - 0, - 128, - 131, - 84, - 4, - 2, - 131, - 82, - 145, - 96, - 32, - 1, - 145, - 97, - 2, - 226, - 86, - 91, - 130, - 1, - 145, - 144, - 96, - 0, - 82, - 96, - 32, - 96, - 0, - 32, - 144, - 91, - 129, - 84, - 129, - 82, - 144, - 96, - 1, - 1, - 144, - 96, - 32, - 1, - 128, - 131, - 17, - 97, - 2, - 197, - 87, - 130, - 144, - 3, - 96, - 31, - 22, - 130, - 1, - 145, - 91, - 80, - 80, - 80, - 80, - 80, - 129, - 86, - 91, - 51, - 96, - 0, - 129, - 129, - 82, - 96, - 4, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 135, - 22, - 128, - 133, - 82, - 146, - 82, - 128, - 131, - 32, - 133, - 144, - 85, - 81, - 145, - 146, - 144, - 145, - 127, - 140, - 91, - 225, - 229, - 235, - 236, - 125, - 91, - 209, - 79, - 113, - 66, - 125, - 30, - 132, - 243, - 221, - 3, - 20, - 192, - 247, - 178, - 41, - 30, - 91, - 32, - 10, - 200, - 199, - 195, - 185, - 37, - 144, - 97, - 3, - 69, - 144, - 134, - 129, - 82, - 96, - 32, - 1, - 144, - 86, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 163, - 80, - 96, - 1, - 146, - 145, - 80, - 80, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 131, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 4, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 51, - 132, - 82, - 144, - 145, - 82, - 129, - 32, - 84, - 96, - 0, - 25, - 129, - 20, - 97, - 3, - 178, - 87, - 97, - 3, - 141, - 131, - 130, - 97, - 10, - 170, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 134, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 4, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 51, - 132, - 82, - 144, - 145, - 82, - 144, - 32, - 85, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 133, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 3, - 96, - 32, - 82, - 96, - 64, - 129, - 32, - 128, - 84, - 133, - 146, - 144, - 97, - 3, - 218, - 144, - 132, - 144, - 97, - 10, - 170, - 86, - 91, - 144, - 145, - 85, - 80, - 80, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 128, - 133, - 22, - 96, - 0, - 129, - 129, - 82, - 96, - 3, - 96, - 32, - 82, - 96, - 64, - 144, - 129, - 144, - 32, - 128, - 84, - 135, - 1, - 144, - 85, - 81, - 144, - 145, - 135, - 22, - 144, - 96, - 0, - 128, - 81, - 96, - 32, - 97, - 11, - 117, - 131, - 57, - 129, - 81, - 145, - 82, - 144, - 97, - 4, - 35, - 144, - 135, - 129, - 82, - 96, - 32, - 1, - 144, - 86, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 163, - 80, - 96, - 1, - 148, - 147, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 127, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 70, - 20, - 97, - 4, - 108, - 87, - 97, - 4, - 103, - 97, - 7, - 101, - 86, - 91, - 144, - 80, - 144, - 86, - 91, - 80, - 127, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 144, - 86, - 91, - 97, - 4, - 155, - 130, - 130, - 97, - 7, - 255, - 86, - 91, - 80, - 80, - 86, - 91, - 96, - 1, - 128, - 84, - 97, - 2, - 105, - 144, - 97, - 10, - 90, - 86, - 91, - 97, - 4, - 155, - 130, - 130, - 97, - 8, - 89, - 86, - 91, - 51, - 96, - 0, - 144, - 129, - 82, - 96, - 3, - 96, - 32, - 82, - 96, - 64, - 129, - 32, - 128, - 84, - 131, - 145, - 144, - 131, - 144, - 97, - 4, - 215, - 144, - 132, - 144, - 97, - 10, - 170, - 86, - 91, - 144, - 145, - 85, - 80, - 80, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 131, - 22, - 96, - 0, - 129, - 129, - 82, - 96, - 3, - 96, - 32, - 82, - 96, - 64, - 144, - 129, - 144, - 32, - 128, - 84, - 133, - 1, - 144, - 85, - 81, - 51, - 144, - 96, - 0, - 128, - 81, - 96, - 32, - 97, - 11, - 117, - 131, - 57, - 129, - 81, - 145, - 82, - 144, - 97, - 3, - 69, - 144, - 134, - 129, - 82, - 96, - 32, - 1, - 144, - 86, - 91, - 66, - 132, - 16, - 21, - 97, - 5, - 113, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 23, - 96, - 36, - 130, - 1, - 82, - 127, - 80, - 69, - 82, - 77, - 73, - 84, - 95, - 68, - 69, - 65, - 68, - 76, - 73, - 78, - 69, - 95, - 69, - 88, - 80, - 73, - 82, - 69, - 68, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 96, - 68, - 130, - 1, - 82, - 96, - 100, - 1, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 0, - 96, - 1, - 97, - 5, - 125, - 97, - 4, - 54, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 138, - 129, - 22, - 96, - 0, - 129, - 129, - 82, - 96, - 5, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 145, - 130, - 144, - 32, - 128, - 84, - 96, - 1, - 129, - 1, - 144, - 145, - 85, - 130, - 81, - 127, - 110, - 113, - 237, - 174, - 18, - 177, - 185, - 127, - 77, - 31, - 96, - 55, - 15, - 239, - 16, - 16, - 95, - 162, - 250, - 174, - 1, - 38, - 17, - 74, - 22, - 156, - 100, - 132, - 93, - 97, - 38, - 201, - 129, - 132, - 1, - 82, - 128, - 132, - 1, - 148, - 144, - 148, - 82, - 147, - 141, - 22, - 96, - 96, - 132, - 1, - 82, - 96, - 128, - 131, - 1, - 140, - 144, - 82, - 96, - 160, - 131, - 1, - 147, - 144, - 147, - 82, - 96, - 192, - 128, - 131, - 1, - 139, - 144, - 82, - 129, - 81, - 128, - 132, - 3, - 144, - 145, - 1, - 129, - 82, - 96, - 224, - 131, - 1, - 144, - 145, - 82, - 128, - 81, - 146, - 1, - 145, - 144, - 145, - 32, - 97, - 25, - 1, - 96, - 240, - 27, - 97, - 1, - 0, - 131, - 1, - 82, - 97, - 1, - 2, - 130, - 1, - 146, - 144, - 146, - 82, - 97, - 1, - 34, - 129, - 1, - 145, - 144, - 145, - 82, - 97, - 1, - 66, - 1, - 96, - 64, - 128, - 81, - 96, - 31, - 25, - 129, - 132, - 3, - 1, - 129, - 82, - 130, - 130, - 82, - 128, - 81, - 96, - 32, - 145, - 130, - 1, - 32, - 96, - 0, - 132, - 82, - 144, - 131, - 1, - 128, - 131, - 82, - 82, - 96, - 255, - 135, - 22, - 144, - 130, - 1, - 82, - 96, - 96, - 129, - 1, - 133, - 144, - 82, - 96, - 128, - 129, - 1, - 132, - 144, - 82, - 96, - 160, - 1, - 96, - 32, - 96, - 64, - 81, - 96, - 32, - 129, - 3, - 144, - 128, - 132, - 3, - 144, - 133, - 90, - 250, - 21, - 128, - 21, - 97, - 6, - 137, - 87, - 61, - 96, - 0, - 128, - 62, - 61, - 96, - 0, - 253, - 91, - 80, - 80, - 96, - 64, - 81, - 96, - 31, - 25, - 1, - 81, - 145, - 80, - 80, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 129, - 22, - 21, - 128, - 21, - 144, - 97, - 6, - 191, - 87, - 80, - 135, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 20, - 91, - 97, - 6, - 252, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 14, - 96, - 36, - 130, - 1, - 82, - 109, - 36, - 167, - 43, - 32, - 166, - 36, - 162, - 47, - 169, - 164, - 163, - 167, - 34, - 169, - 96, - 145, - 27, - 96, - 68, - 130, - 1, - 82, - 96, - 100, - 1, - 97, - 5, - 104, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 144, - 129, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 4, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 138, - 133, - 22, - 128, - 133, - 82, - 144, - 131, - 82, - 146, - 129, - 144, - 32, - 137, - 144, - 85, - 81, - 136, - 129, - 82, - 145, - 146, - 138, - 22, - 145, - 127, - 140, - 91, - 225, - 229, - 235, - 236, - 125, - 91, - 209, - 79, - 113, - 66, - 125, - 30, - 132, - 243, - 221, - 3, - 20, - 192, - 247, - 178, - 41, - 30, - 91, - 32, - 10, - 200, - 199, - 195, - 185, - 37, - 145, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 163, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 127, - 139, - 115, - 195, - 198, - 155, - 184, - 254, - 61, - 81, - 46, - 204, - 76, - 247, - 89, - 204, - 121, - 35, - 159, - 123, - 23, - 155, - 15, - 250, - 202, - 169, - 167, - 93, - 82, - 43, - 57, - 64, - 15, - 96, - 0, - 96, - 64, - 81, - 97, - 7, - 151, - 145, - 144, - 97, - 10, - 193, - 86, - 91, - 96, - 64, - 128, - 81, - 145, - 130, - 144, - 3, - 130, - 32, - 96, - 32, - 131, - 1, - 147, - 144, - 147, - 82, - 129, - 1, - 145, - 144, - 145, - 82, - 127, - 200, - 158, - 253, - 170, - 84, - 192, - 242, - 12, - 122, - 223, - 97, - 40, - 130, - 223, - 9, - 80, - 245, - 169, - 81, - 99, - 126, - 3, - 7, - 205, - 203, - 76, - 103, - 47, - 41, - 139, - 139, - 198, - 96, - 96, - 130, - 1, - 82, - 70, - 96, - 128, - 130, - 1, - 82, - 48, - 96, - 160, - 130, - 1, - 82, - 96, - 192, - 1, - 96, - 64, - 81, - 96, - 32, - 129, - 131, - 3, - 3, - 129, - 82, - 144, - 96, - 64, - 82, - 128, - 81, - 144, - 96, - 32, - 1, - 32, - 144, - 80, - 144, - 86, - 91, - 128, - 96, - 2, - 96, - 0, - 130, - 130, - 84, - 97, - 8, - 17, - 145, - 144, - 97, - 11, - 92, - 86, - 91, - 144, - 145, - 85, - 80, - 80, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 130, - 22, - 96, - 0, - 129, - 129, - 82, - 96, - 3, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 128, - 84, - 134, - 1, - 144, - 85, - 81, - 132, - 129, - 82, - 96, - 0, - 128, - 81, - 96, - 32, - 97, - 11, - 117, - 131, - 57, - 129, - 81, - 145, - 82, - 145, - 1, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 163, - 80, - 80, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 130, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 3, - 96, - 32, - 82, - 96, - 64, - 129, - 32, - 128, - 84, - 131, - 146, - 144, - 97, - 8, - 129, - 144, - 132, - 144, - 97, - 10, - 170, - 86, - 91, - 144, - 145, - 85, - 80, - 80, - 96, - 2, - 128, - 84, - 130, - 144, - 3, - 144, - 85, - 96, - 64, - 81, - 129, - 129, - 82, - 96, - 0, - 144, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 132, - 22, - 144, - 96, - 0, - 128, - 81, - 96, - 32, - 97, - 11, - 117, - 131, - 57, - 129, - 81, - 145, - 82, - 144, - 96, - 32, - 1, - 97, - 8, - 77, - 86, - 91, - 96, - 0, - 96, - 32, - 128, - 131, - 82, - 131, - 81, - 128, - 130, - 133, - 1, - 82, - 96, - 0, - 91, - 129, - 129, - 16, - 21, - 97, - 8, - 232, - 87, - 133, - 129, - 1, - 131, - 1, - 81, - 133, - 130, - 1, - 96, - 64, - 1, - 82, - 130, - 1, - 97, - 8, - 204, - 86, - 91, - 129, - 129, - 17, - 21, - 97, - 8, - 250, - 87, - 96, - 0, - 96, - 64, - 131, - 135, - 1, - 1, - 82, - 91, - 80, - 96, - 31, - 1, - 96, - 31, - 25, - 22, - 146, - 144, - 146, - 1, - 96, - 64, - 1, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 128, - 53, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 129, - 22, - 129, - 20, - 97, - 9, - 39, - 87, - 96, - 0, - 128, - 253, - 91, - 145, - 144, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 64, - 131, - 133, - 3, - 18, - 21, - 97, - 9, - 63, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 9, - 72, - 131, - 97, - 9, - 16, - 86, - 91, - 148, - 96, - 32, - 147, - 144, - 147, - 1, - 53, - 147, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 96, - 96, - 132, - 134, - 3, - 18, - 21, - 97, - 9, - 107, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 9, - 116, - 132, - 97, - 9, - 16, - 86, - 91, - 146, - 80, - 97, - 9, - 130, - 96, - 32, - 133, - 1, - 97, - 9, - 16, - 86, - 91, - 145, - 80, - 96, - 64, - 132, - 1, - 53, - 144, - 80, - 146, - 80, - 146, - 80, - 146, - 86, - 91, - 96, - 0, - 96, - 32, - 130, - 132, - 3, - 18, - 21, - 97, - 9, - 164, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 9, - 173, - 130, - 97, - 9, - 16, - 86, - 91, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 128, - 96, - 0, - 128, - 96, - 0, - 96, - 224, - 136, - 138, - 3, - 18, - 21, - 97, - 9, - 207, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 9, - 216, - 136, - 97, - 9, - 16, - 86, - 91, - 150, - 80, - 97, - 9, - 230, - 96, - 32, - 137, - 1, - 97, - 9, - 16, - 86, - 91, - 149, - 80, - 96, - 64, - 136, - 1, - 53, - 148, - 80, - 96, - 96, - 136, - 1, - 53, - 147, - 80, - 96, - 128, - 136, - 1, - 53, - 96, - 255, - 129, - 22, - 129, - 20, - 97, - 10, - 10, - 87, - 96, - 0, - 128, - 253, - 91, - 150, - 153, - 149, - 152, - 80, - 147, - 150, - 146, - 149, - 148, - 96, - 160, - 132, - 1, - 53, - 148, - 80, - 96, - 192, - 144, - 147, - 1, - 53, - 146, - 145, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 64, - 131, - 133, - 3, - 18, - 21, - 97, - 10, - 58, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 10, - 67, - 131, - 97, - 9, - 16, - 86, - 91, - 145, - 80, - 97, - 10, - 81, - 96, - 32, - 132, - 1, - 97, - 9, - 16, - 86, - 91, - 144, - 80, - 146, - 80, - 146, - 144, - 80, - 86, - 91, - 96, - 1, - 129, - 129, - 28, - 144, - 130, - 22, - 128, - 97, - 10, - 110, - 87, - 96, - 127, - 130, - 22, - 145, - 80, - 91, - 96, - 32, - 130, - 16, - 129, - 3, - 97, - 10, - 142, - 87, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 34, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 80, - 145, - 144, - 80, - 86, - 91, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 17, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 96, - 0, - 130, - 130, - 16, - 21, - 97, - 10, - 188, - 87, - 97, - 10, - 188, - 97, - 10, - 148, - 86, - 91, - 80, - 3, - 144, - 86, - 91, - 96, - 0, - 128, - 131, - 84, - 129, - 96, - 1, - 130, - 129, - 28, - 145, - 80, - 128, - 131, - 22, - 128, - 97, - 10, - 221, - 87, - 96, - 127, - 131, - 22, - 146, - 80, - 91, - 96, - 32, - 128, - 132, - 16, - 130, - 3, - 97, - 10, - 252, - 87, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 134, - 82, - 96, - 34, - 96, - 4, - 82, - 96, - 36, - 134, - 253, - 91, - 129, - 128, - 21, - 97, - 11, - 16, - 87, - 96, - 1, - 129, - 20, - 97, - 11, - 33, - 87, - 97, - 11, - 78, - 86, - 91, - 96, - 255, - 25, - 134, - 22, - 137, - 82, - 132, - 137, - 1, - 150, - 80, - 97, - 11, - 78, - 86, - 91, - 96, - 0, - 138, - 129, - 82, - 96, - 32, - 144, - 32, - 96, - 0, - 91, - 134, - 129, - 16, - 21, - 97, - 11, - 70, - 87, - 129, - 84, - 139, - 130, - 1, - 82, - 144, - 133, - 1, - 144, - 131, - 1, - 97, - 11, - 45, - 86, - 91, - 80, - 80, - 132, - 137, - 1, - 150, - 80, - 91, - 80, - 148, - 152, - 151, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 130, - 25, - 130, - 17, - 21, - 97, - 11, - 111, - 87, - 97, - 11, - 111, - 97, - 10, - 148, - 86, - 91, - 80, - 1, - 144, - 86, - 254, - 221, - 242, - 82, - 173, - 27, - 226, - 200, - 155, - 105, - 194, - 176, - 104, - 252, - 55, - 141, - 170, - 149, - 43, - 167, - 241, - 99, - 196, - 161, - 22, - 40, - 245, - 90, - 77, - 245, - 35, - 179, - 239, - 162, - 100, - 105, - 112, - 102, - 115, - 88, - 34, - 18, - 32, - 246, - 37, - 189, - 229, - 138, - 246, - 52, - 99, - 10, - 251, - 17, - 203, - 240, - 141, - 93, - 137, - 68, - 32, - 134, - 185, - 156, - 213, - 189, - 127, - 138, - 204, - 140, - 8, - 77, - 101, - 241, - 20, - 100, - 115, - 111, - 108, - 99, - 67, - 0, - 8, - 13, - 0, - 51, - ]; - ///The bytecode of the contract. - pub static MOCKERC20_BYTECODE: ::ethers::core::types::Bytes = - ::ethers::core::types::Bytes::from_static(__BYTECODE); - #[rustfmt::skip] - const __DEPLOYED_BYTECODE: &[u8] = &[ - 96, - 128, - 96, - 64, - 82, - 52, - 128, - 21, - 97, - 0, - 16, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 96, - 4, - 54, - 16, - 97, - 0, - 234, - 87, - 96, - 0, - 53, - 96, - 224, - 28, - 128, - 99, - 112, - 160, - 130, - 49, - 17, - 97, - 0, - 140, - 87, - 128, - 99, - 157, - 194, - 159, - 172, - 17, - 97, - 0, - 102, - 87, - 128, - 99, - 157, - 194, - 159, - 172, - 20, - 97, - 1, - 248, - 87, - 128, - 99, - 169, - 5, - 156, - 187, - 20, - 97, - 2, - 11, - 87, - 128, - 99, - 213, - 5, - 172, - 207, - 20, - 97, - 2, - 30, - 87, - 128, - 99, - 221, - 98, - 237, - 62, - 20, - 97, - 2, - 49, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 99, - 112, - 160, - 130, - 49, - 20, - 97, - 1, - 176, - 87, - 128, - 99, - 126, - 206, - 190, - 0, - 20, - 97, - 1, - 208, - 87, - 128, - 99, - 149, - 216, - 155, - 65, - 20, - 97, - 1, - 240, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 99, - 35, - 184, - 114, - 221, - 17, - 97, - 0, - 200, - 87, - 128, - 99, - 35, - 184, - 114, - 221, - 20, - 97, - 1, - 71, - 87, - 128, - 99, - 49, - 60, - 229, - 103, - 20, - 97, - 1, - 90, - 87, - 128, - 99, - 54, - 68, - 229, - 21, - 20, - 97, - 1, - 147, - 87, - 128, - 99, - 64, - 193, - 15, - 25, - 20, - 97, - 1, - 155, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 99, - 6, - 253, - 222, - 3, - 20, - 97, - 0, - 239, - 87, - 128, - 99, - 9, - 94, - 167, - 179, - 20, - 97, - 1, - 13, - 87, - 128, - 99, - 24, - 22, - 13, - 221, - 20, - 97, - 1, - 48, - 87, - 91, - 96, - 0, - 128, - 253, - 91, - 97, - 0, - 247, - 97, - 2, - 92, - 86, - 91, - 96, - 64, - 81, - 97, - 1, - 4, - 145, - 144, - 97, - 8, - 187, - 86, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 243, - 91, - 97, - 1, - 32, - 97, - 1, - 27, - 54, - 96, - 4, - 97, - 9, - 44, - 86, - 91, - 97, - 2, - 234, - 86, - 91, - 96, - 64, - 81, - 144, - 21, - 21, - 129, - 82, - 96, - 32, - 1, - 97, - 1, - 4, - 86, - 91, - 97, - 1, - 57, - 96, - 2, - 84, - 129, - 86, - 91, - 96, - 64, - 81, - 144, - 129, - 82, - 96, - 32, - 1, - 97, - 1, - 4, - 86, - 91, - 97, - 1, - 32, - 97, - 1, - 85, - 54, - 96, - 4, - 97, - 9, - 86, - 86, - 91, - 97, - 3, - 86, - 86, - 91, - 97, - 1, - 129, - 127, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 129, - 86, - 91, - 96, - 64, - 81, - 96, - 255, - 144, - 145, - 22, - 129, - 82, - 96, - 32, - 1, - 97, - 1, - 4, - 86, - 91, - 97, - 1, - 57, - 97, - 4, - 54, - 86, - 91, - 97, - 1, - 174, - 97, - 1, - 169, - 54, - 96, - 4, - 97, - 9, - 44, - 86, - 91, - 97, - 4, - 145, - 86, - 91, - 0, - 91, - 97, - 1, - 57, - 97, - 1, - 190, - 54, - 96, - 4, - 97, - 9, - 146, - 86, - 91, - 96, - 3, - 96, - 32, - 82, - 96, - 0, - 144, - 129, - 82, - 96, - 64, - 144, - 32, - 84, - 129, - 86, - 91, - 97, - 1, - 57, - 97, - 1, - 222, - 54, - 96, - 4, - 97, - 9, - 146, - 86, - 91, - 96, - 5, - 96, - 32, - 82, - 96, - 0, - 144, - 129, - 82, - 96, - 64, - 144, - 32, - 84, - 129, - 86, - 91, - 97, - 0, - 247, - 97, - 4, - 159, - 86, - 91, - 97, - 1, - 174, - 97, - 2, - 6, - 54, - 96, - 4, - 97, - 9, - 44, - 86, - 91, - 97, - 4, - 172, - 86, - 91, - 97, - 1, - 32, - 97, - 2, - 25, - 54, - 96, - 4, - 97, - 9, - 44, - 86, - 91, - 97, - 4, - 182, - 86, - 91, - 97, - 1, - 174, - 97, - 2, - 44, - 54, - 96, - 4, - 97, - 9, - 180, - 86, - 91, - 97, - 5, - 28, - 86, - 91, - 97, - 1, - 57, - 97, - 2, - 63, - 54, - 96, - 4, - 97, - 10, - 39, - 86, - 91, - 96, - 4, - 96, - 32, - 144, - 129, - 82, - 96, - 0, - 146, - 131, - 82, - 96, - 64, - 128, - 132, - 32, - 144, - 145, - 82, - 144, - 130, - 82, - 144, - 32, - 84, - 129, - 86, - 91, - 96, - 0, - 128, - 84, - 97, - 2, - 105, - 144, - 97, - 10, - 90, - 86, - 91, - 128, - 96, - 31, - 1, - 96, - 32, - 128, - 145, - 4, - 2, - 96, - 32, - 1, - 96, - 64, - 81, - 144, - 129, - 1, - 96, - 64, - 82, - 128, - 146, - 145, - 144, - 129, - 129, - 82, - 96, - 32, - 1, - 130, - 128, - 84, - 97, - 2, - 149, - 144, - 97, - 10, - 90, - 86, - 91, - 128, - 21, - 97, - 2, - 226, - 87, - 128, - 96, - 31, - 16, - 97, - 2, - 183, - 87, - 97, - 1, - 0, - 128, - 131, - 84, - 4, - 2, - 131, - 82, - 145, - 96, - 32, - 1, - 145, - 97, - 2, - 226, - 86, - 91, - 130, - 1, - 145, - 144, - 96, - 0, - 82, - 96, - 32, - 96, - 0, - 32, - 144, - 91, - 129, - 84, - 129, - 82, - 144, - 96, - 1, - 1, - 144, - 96, - 32, - 1, - 128, - 131, - 17, - 97, - 2, - 197, - 87, - 130, - 144, - 3, - 96, - 31, - 22, - 130, - 1, - 145, - 91, - 80, - 80, - 80, - 80, - 80, - 129, - 86, - 91, - 51, - 96, - 0, - 129, - 129, - 82, - 96, - 4, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 135, - 22, - 128, - 133, - 82, - 146, - 82, - 128, - 131, - 32, - 133, - 144, - 85, - 81, - 145, - 146, - 144, - 145, - 127, - 140, - 91, - 225, - 229, - 235, - 236, - 125, - 91, - 209, - 79, - 113, - 66, - 125, - 30, - 132, - 243, - 221, - 3, - 20, - 192, - 247, - 178, - 41, - 30, - 91, - 32, - 10, - 200, - 199, - 195, - 185, - 37, - 144, - 97, - 3, - 69, - 144, - 134, - 129, - 82, - 96, - 32, - 1, - 144, - 86, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 163, - 80, - 96, - 1, - 146, - 145, - 80, - 80, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 131, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 4, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 51, - 132, - 82, - 144, - 145, - 82, - 129, - 32, - 84, - 96, - 0, - 25, - 129, - 20, - 97, - 3, - 178, - 87, - 97, - 3, - 141, - 131, - 130, - 97, - 10, - 170, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 134, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 4, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 51, - 132, - 82, - 144, - 145, - 82, - 144, - 32, - 85, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 133, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 3, - 96, - 32, - 82, - 96, - 64, - 129, - 32, - 128, - 84, - 133, - 146, - 144, - 97, - 3, - 218, - 144, - 132, - 144, - 97, - 10, - 170, - 86, - 91, - 144, - 145, - 85, - 80, - 80, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 128, - 133, - 22, - 96, - 0, - 129, - 129, - 82, - 96, - 3, - 96, - 32, - 82, - 96, - 64, - 144, - 129, - 144, - 32, - 128, - 84, - 135, - 1, - 144, - 85, - 81, - 144, - 145, - 135, - 22, - 144, - 96, - 0, - 128, - 81, - 96, - 32, - 97, - 11, - 117, - 131, - 57, - 129, - 81, - 145, - 82, - 144, - 97, - 4, - 35, - 144, - 135, - 129, - 82, - 96, - 32, - 1, - 144, - 86, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 163, - 80, - 96, - 1, - 148, - 147, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 127, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 70, - 20, - 97, - 4, - 108, - 87, - 97, - 4, - 103, - 97, - 7, - 101, - 86, - 91, - 144, - 80, - 144, - 86, - 91, - 80, - 127, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 144, - 86, - 91, - 97, - 4, - 155, - 130, - 130, - 97, - 7, - 255, - 86, - 91, - 80, - 80, - 86, - 91, - 96, - 1, - 128, - 84, - 97, - 2, - 105, - 144, - 97, - 10, - 90, - 86, - 91, - 97, - 4, - 155, - 130, - 130, - 97, - 8, - 89, - 86, - 91, - 51, - 96, - 0, - 144, - 129, - 82, - 96, - 3, - 96, - 32, - 82, - 96, - 64, - 129, - 32, - 128, - 84, - 131, - 145, - 144, - 131, - 144, - 97, - 4, - 215, - 144, - 132, - 144, - 97, - 10, - 170, - 86, - 91, - 144, - 145, - 85, - 80, - 80, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 131, - 22, - 96, - 0, - 129, - 129, - 82, - 96, - 3, - 96, - 32, - 82, - 96, - 64, - 144, - 129, - 144, - 32, - 128, - 84, - 133, - 1, - 144, - 85, - 81, - 51, - 144, - 96, - 0, - 128, - 81, - 96, - 32, - 97, - 11, - 117, - 131, - 57, - 129, - 81, - 145, - 82, - 144, - 97, - 3, - 69, - 144, - 134, - 129, - 82, - 96, - 32, - 1, - 144, - 86, - 91, - 66, - 132, - 16, - 21, - 97, - 5, - 113, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 23, - 96, - 36, - 130, - 1, - 82, - 127, - 80, - 69, - 82, - 77, - 73, - 84, - 95, - 68, - 69, - 65, - 68, - 76, - 73, - 78, - 69, - 95, - 69, - 88, - 80, - 73, - 82, - 69, - 68, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 96, - 68, - 130, - 1, - 82, - 96, - 100, - 1, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 0, - 96, - 1, - 97, - 5, - 125, - 97, - 4, - 54, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 138, - 129, - 22, - 96, - 0, - 129, - 129, - 82, - 96, - 5, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 145, - 130, - 144, - 32, - 128, - 84, - 96, - 1, - 129, - 1, - 144, - 145, - 85, - 130, - 81, - 127, - 110, - 113, - 237, - 174, - 18, - 177, - 185, - 127, - 77, - 31, - 96, - 55, - 15, - 239, - 16, - 16, - 95, - 162, - 250, - 174, - 1, - 38, - 17, - 74, - 22, - 156, - 100, - 132, - 93, - 97, - 38, - 201, - 129, - 132, - 1, - 82, - 128, - 132, - 1, - 148, - 144, - 148, - 82, - 147, - 141, - 22, - 96, - 96, - 132, - 1, - 82, - 96, - 128, - 131, - 1, - 140, - 144, - 82, - 96, - 160, - 131, - 1, - 147, - 144, - 147, - 82, - 96, - 192, - 128, - 131, - 1, - 139, - 144, - 82, - 129, - 81, - 128, - 132, - 3, - 144, - 145, - 1, - 129, - 82, - 96, - 224, - 131, - 1, - 144, - 145, - 82, - 128, - 81, - 146, - 1, - 145, - 144, - 145, - 32, - 97, - 25, - 1, - 96, - 240, - 27, - 97, - 1, - 0, - 131, - 1, - 82, - 97, - 1, - 2, - 130, - 1, - 146, - 144, - 146, - 82, - 97, - 1, - 34, - 129, - 1, - 145, - 144, - 145, - 82, - 97, - 1, - 66, - 1, - 96, - 64, - 128, - 81, - 96, - 31, - 25, - 129, - 132, - 3, - 1, - 129, - 82, - 130, - 130, - 82, - 128, - 81, - 96, - 32, - 145, - 130, - 1, - 32, - 96, - 0, - 132, - 82, - 144, - 131, - 1, - 128, - 131, - 82, - 82, - 96, - 255, - 135, - 22, - 144, - 130, - 1, - 82, - 96, - 96, - 129, - 1, - 133, - 144, - 82, - 96, - 128, - 129, - 1, - 132, - 144, - 82, - 96, - 160, - 1, - 96, - 32, - 96, - 64, - 81, - 96, - 32, - 129, - 3, - 144, - 128, - 132, - 3, - 144, - 133, - 90, - 250, - 21, - 128, - 21, - 97, - 6, - 137, - 87, - 61, - 96, - 0, - 128, - 62, - 61, - 96, - 0, - 253, - 91, - 80, - 80, - 96, - 64, - 81, - 96, - 31, - 25, - 1, - 81, - 145, - 80, - 80, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 129, - 22, - 21, - 128, - 21, - 144, - 97, - 6, - 191, - 87, - 80, - 135, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 20, - 91, - 97, - 6, - 252, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 14, - 96, - 36, - 130, - 1, - 82, - 109, - 36, - 167, - 43, - 32, - 166, - 36, - 162, - 47, - 169, - 164, - 163, - 167, - 34, - 169, - 96, - 145, - 27, - 96, - 68, - 130, - 1, - 82, - 96, - 100, - 1, - 97, - 5, - 104, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 144, - 129, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 4, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 138, - 133, - 22, - 128, - 133, - 82, - 144, - 131, - 82, - 146, - 129, - 144, - 32, - 137, - 144, - 85, - 81, - 136, - 129, - 82, - 145, - 146, - 138, - 22, - 145, - 127, - 140, - 91, - 225, - 229, - 235, - 236, - 125, - 91, - 209, - 79, - 113, - 66, - 125, - 30, - 132, - 243, - 221, - 3, - 20, - 192, - 247, - 178, - 41, - 30, - 91, - 32, - 10, - 200, - 199, - 195, - 185, - 37, - 145, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 163, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 127, - 139, - 115, - 195, - 198, - 155, - 184, - 254, - 61, - 81, - 46, - 204, - 76, - 247, - 89, - 204, - 121, - 35, - 159, - 123, - 23, - 155, - 15, - 250, - 202, - 169, - 167, - 93, - 82, - 43, - 57, - 64, - 15, - 96, - 0, - 96, - 64, - 81, - 97, - 7, - 151, - 145, - 144, - 97, - 10, - 193, - 86, - 91, - 96, - 64, - 128, - 81, - 145, - 130, - 144, - 3, - 130, - 32, - 96, - 32, - 131, - 1, - 147, - 144, - 147, - 82, - 129, - 1, - 145, - 144, - 145, - 82, - 127, - 200, - 158, - 253, - 170, - 84, - 192, - 242, - 12, - 122, - 223, - 97, - 40, - 130, - 223, - 9, - 80, - 245, - 169, - 81, - 99, - 126, - 3, - 7, - 205, - 203, - 76, - 103, - 47, - 41, - 139, - 139, - 198, - 96, - 96, - 130, - 1, - 82, - 70, - 96, - 128, - 130, - 1, - 82, - 48, - 96, - 160, - 130, - 1, - 82, - 96, - 192, - 1, - 96, - 64, - 81, - 96, - 32, - 129, - 131, - 3, - 3, - 129, - 82, - 144, - 96, - 64, - 82, - 128, - 81, - 144, - 96, - 32, - 1, - 32, - 144, - 80, - 144, - 86, - 91, - 128, - 96, - 2, - 96, - 0, - 130, - 130, - 84, - 97, - 8, - 17, - 145, - 144, - 97, - 11, - 92, - 86, - 91, - 144, - 145, - 85, - 80, - 80, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 130, - 22, - 96, - 0, - 129, - 129, - 82, - 96, - 3, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 128, - 84, - 134, - 1, - 144, - 85, - 81, - 132, - 129, - 82, - 96, - 0, - 128, - 81, - 96, - 32, - 97, - 11, - 117, - 131, - 57, - 129, - 81, - 145, - 82, - 145, - 1, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 163, - 80, - 80, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 130, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 3, - 96, - 32, - 82, - 96, - 64, - 129, - 32, - 128, - 84, - 131, - 146, - 144, - 97, - 8, - 129, - 144, - 132, - 144, - 97, - 10, - 170, - 86, - 91, - 144, - 145, - 85, - 80, - 80, - 96, - 2, - 128, - 84, - 130, - 144, - 3, - 144, - 85, - 96, - 64, - 81, - 129, - 129, - 82, - 96, - 0, - 144, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 132, - 22, - 144, - 96, - 0, - 128, - 81, - 96, - 32, - 97, - 11, - 117, - 131, - 57, - 129, - 81, - 145, - 82, - 144, - 96, - 32, - 1, - 97, - 8, - 77, - 86, - 91, - 96, - 0, - 96, - 32, - 128, - 131, - 82, - 131, - 81, - 128, - 130, - 133, - 1, - 82, - 96, - 0, - 91, - 129, - 129, - 16, - 21, - 97, - 8, - 232, - 87, - 133, - 129, - 1, - 131, - 1, - 81, - 133, - 130, - 1, - 96, - 64, - 1, - 82, - 130, - 1, - 97, - 8, - 204, - 86, - 91, - 129, - 129, - 17, - 21, - 97, - 8, - 250, - 87, - 96, - 0, - 96, - 64, - 131, - 135, - 1, - 1, - 82, - 91, - 80, - 96, - 31, - 1, - 96, - 31, - 25, - 22, - 146, - 144, - 146, - 1, - 96, - 64, - 1, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 128, - 53, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 129, - 22, - 129, - 20, - 97, - 9, - 39, - 87, - 96, - 0, - 128, - 253, - 91, - 145, - 144, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 64, - 131, - 133, - 3, - 18, - 21, - 97, - 9, - 63, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 9, - 72, - 131, - 97, - 9, - 16, - 86, - 91, - 148, - 96, - 32, - 147, - 144, - 147, - 1, - 53, - 147, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 96, - 96, - 132, - 134, - 3, - 18, - 21, - 97, - 9, - 107, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 9, - 116, - 132, - 97, - 9, - 16, - 86, - 91, - 146, - 80, - 97, - 9, - 130, - 96, - 32, - 133, - 1, - 97, - 9, - 16, - 86, - 91, - 145, - 80, - 96, - 64, - 132, - 1, - 53, - 144, - 80, - 146, - 80, - 146, - 80, - 146, - 86, - 91, - 96, - 0, - 96, - 32, - 130, - 132, - 3, - 18, - 21, - 97, - 9, - 164, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 9, - 173, - 130, - 97, - 9, - 16, - 86, - 91, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 128, - 96, - 0, - 128, - 96, - 0, - 96, - 224, - 136, - 138, - 3, - 18, - 21, - 97, - 9, - 207, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 9, - 216, - 136, - 97, - 9, - 16, - 86, - 91, - 150, - 80, - 97, - 9, - 230, - 96, - 32, - 137, - 1, - 97, - 9, - 16, - 86, - 91, - 149, - 80, - 96, - 64, - 136, - 1, - 53, - 148, - 80, - 96, - 96, - 136, - 1, - 53, - 147, - 80, - 96, - 128, - 136, - 1, - 53, - 96, - 255, - 129, - 22, - 129, - 20, - 97, - 10, - 10, - 87, - 96, - 0, - 128, - 253, - 91, - 150, - 153, - 149, - 152, - 80, - 147, - 150, - 146, - 149, - 148, - 96, - 160, - 132, - 1, - 53, - 148, - 80, - 96, - 192, - 144, - 147, - 1, - 53, - 146, - 145, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 64, - 131, - 133, - 3, - 18, - 21, - 97, - 10, - 58, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 10, - 67, - 131, - 97, - 9, - 16, - 86, - 91, - 145, - 80, - 97, - 10, - 81, - 96, - 32, - 132, - 1, - 97, - 9, - 16, - 86, - 91, - 144, - 80, - 146, - 80, - 146, - 144, - 80, - 86, - 91, - 96, - 1, - 129, - 129, - 28, - 144, - 130, - 22, - 128, - 97, - 10, - 110, - 87, - 96, - 127, - 130, - 22, - 145, - 80, - 91, - 96, - 32, - 130, - 16, - 129, - 3, - 97, - 10, - 142, - 87, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 34, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 80, - 145, - 144, - 80, - 86, - 91, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 17, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 96, - 0, - 130, - 130, - 16, - 21, - 97, - 10, - 188, - 87, - 97, - 10, - 188, - 97, - 10, - 148, - 86, - 91, - 80, - 3, - 144, - 86, - 91, - 96, - 0, - 128, - 131, - 84, - 129, - 96, - 1, - 130, - 129, - 28, - 145, - 80, - 128, - 131, - 22, - 128, - 97, - 10, - 221, - 87, - 96, - 127, - 131, - 22, - 146, - 80, - 91, - 96, - 32, - 128, - 132, - 16, - 130, - 3, - 97, - 10, - 252, - 87, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 134, - 82, - 96, - 34, - 96, - 4, - 82, - 96, - 36, - 134, - 253, - 91, - 129, - 128, - 21, - 97, - 11, - 16, - 87, - 96, - 1, - 129, - 20, - 97, - 11, - 33, - 87, - 97, - 11, - 78, - 86, - 91, - 96, - 255, - 25, - 134, - 22, - 137, - 82, - 132, - 137, - 1, - 150, - 80, - 97, - 11, - 78, - 86, - 91, - 96, - 0, - 138, - 129, - 82, - 96, - 32, - 144, - 32, - 96, - 0, - 91, - 134, - 129, - 16, - 21, - 97, - 11, - 70, - 87, - 129, - 84, - 139, - 130, - 1, - 82, - 144, - 133, - 1, - 144, - 131, - 1, - 97, - 11, - 45, - 86, - 91, - 80, - 80, - 132, - 137, - 1, - 150, - 80, - 91, - 80, - 148, - 152, - 151, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 130, - 25, - 130, - 17, - 21, - 97, - 11, - 111, - 87, - 97, - 11, - 111, - 97, - 10, - 148, - 86, - 91, - 80, - 1, - 144, - 86, - 254, - 221, - 242, - 82, - 173, - 27, - 226, - 200, - 155, - 105, - 194, - 176, - 104, - 252, - 55, - 141, - 170, - 149, - 43, - 167, - 241, - 99, - 196, - 161, - 22, - 40, - 245, - 90, - 77, - 245, - 35, - 179, - 239, - 162, - 100, - 105, - 112, - 102, - 115, - 88, - 34, - 18, - 32, - 246, - 37, - 189, - 229, - 138, - 246, - 52, - 99, - 10, - 251, - 17, - 203, - 240, - 141, - 93, - 137, - 68, - 32, - 134, - 185, - 156, - 213, - 189, - 127, - 138, - 204, - 140, - 8, - 77, - 101, - 241, - 20, - 100, - 115, - 111, - 108, - 99, - 67, - 0, - 8, - 13, - 0, - 51, - ]; - ///The deployed bytecode of the contract. - pub static MOCKERC20_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = - ::ethers::core::types::Bytes::from_static(__DEPLOYED_BYTECODE); - pub struct MockERC20(::ethers::contract::Contract); - impl ::core::clone::Clone for MockERC20 { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for MockERC20 { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for MockERC20 { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for MockERC20 { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(stringify!(MockERC20)) - .field(&self.address()) - .finish() - } - } - impl MockERC20 { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self(::ethers::contract::Contract::new( - address.into(), - MOCKERC20_ABI.clone(), - client, - )) - } - /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. - /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction - /// - /// Notes: - /// - If there are no constructor arguments, you should pass `()` as the argument. - /// - The default poll duration is 7 seconds. - /// - The default number of confirmations is 1 block. - /// - /// - /// # Example - /// - /// Generate contract bindings with `abigen!` and deploy a new contract instance. - /// - /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. - /// - /// ```ignore - /// # async fn deploy(client: ::std::sync::Arc) { - /// abigen!(Greeter, "../greeter.json"); - /// - /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); - /// let msg = greeter_contract.greet().call().await.unwrap(); - /// # } - /// ``` - pub fn deploy( - client: ::std::sync::Arc, - constructor_args: T, - ) -> ::core::result::Result< - ::ethers::contract::builders::ContractDeployer, - ::ethers::contract::ContractError, - > { - let factory = ::ethers::contract::ContractFactory::new( - MOCKERC20_ABI.clone(), - MOCKERC20_BYTECODE.clone().into(), - client, - ); - let deployer = factory.deploy(constructor_args)?; - let deployer = ::ethers::contract::ContractDeployer::new(deployer); - Ok(deployer) - } - ///Calls the contract's `DOMAIN_SEPARATOR` (0x3644e515) function - pub fn domain_separator(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([54, 68, 229, 21], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `allowance` (0xdd62ed3e) function - pub fn allowance( - &self, - p0: ::ethers::core::types::Address, - p1: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([221, 98, 237, 62], (p0, p1)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `approve` (0x095ea7b3) function - pub fn approve( - &self, - spender: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([9, 94, 167, 179], (spender, amount)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `balanceOf` (0x70a08231) function - pub fn balance_of( - &self, - p0: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([112, 160, 130, 49], p0) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `burn` (0x9dc29fac) function - pub fn burn( - &self, - from: ::ethers::core::types::Address, - value: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([157, 194, 159, 172], (from, value)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `decimals` (0x313ce567) function - pub fn decimals(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([49, 60, 229, 103], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `mint` (0x40c10f19) function - pub fn mint( - &self, - to: ::ethers::core::types::Address, - value: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([64, 193, 15, 25], (to, value)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `name` (0x06fdde03) function - pub fn name(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([6, 253, 222, 3], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `nonces` (0x7ecebe00) function - pub fn nonces( - &self, - p0: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([126, 206, 190, 0], p0) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `permit` (0xd505accf) function - pub fn permit( - &self, - owner: ::ethers::core::types::Address, - spender: ::ethers::core::types::Address, - value: ::ethers::core::types::U256, - deadline: ::ethers::core::types::U256, - v: u8, - r: [u8; 32], - s: [u8; 32], - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash( - [213, 5, 172, 207], - (owner, spender, value, deadline, v, r, s), - ) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `symbol` (0x95d89b41) function - pub fn symbol( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([149, 216, 155, 65], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `totalSupply` (0x18160ddd) function - pub fn total_supply( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([24, 22, 13, 221], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `transfer` (0xa9059cbb) function - pub fn transfer( - &self, - to: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([169, 5, 156, 187], (to, amount)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `transferFrom` (0x23b872dd) function - pub fn transfer_from( - &self, - from: ::ethers::core::types::Address, - to: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([35, 184, 114, 221], (from, to, amount)) - .expect("method not found (this should never happen)") - } - ///Gets the contract's `Approval` event - pub fn approval_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, ApprovalFilter> { - self.0.event() - } - ///Gets the contract's `Transfer` event - pub fn transfer_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, TransferFilter> { - self.0.event() - } - /// Returns an `Event` builder for all the events of this contract. - pub fn events( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, MockERC20Events> { - self.0 - .event_with_filter(::core::default::Default::default()) - } - } - impl From<::ethers::contract::Contract> for MockERC20 { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent(name = "Approval", abi = "Approval(address,address,uint256)")] - pub struct ApprovalFilter { - #[ethevent(indexed)] - pub owner: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub spender: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent(name = "Transfer", abi = "Transfer(address,address,uint256)")] - pub struct TransferFilter { - #[ethevent(indexed)] - pub from: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub to: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - ///Container type for all of the contract's events - #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] - pub enum MockERC20Events { - ApprovalFilter(ApprovalFilter), - TransferFilter(TransferFilter), - } - impl ::ethers::contract::EthLogDecode for MockERC20Events { - fn decode_log( - log: &::ethers::core::abi::RawLog, - ) -> ::core::result::Result { - if let Ok(decoded) = ApprovalFilter::decode_log(log) { - return Ok(MockERC20Events::ApprovalFilter(decoded)); - } - if let Ok(decoded) = TransferFilter::decode_log(log) { - return Ok(MockERC20Events::TransferFilter(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData) - } - } - impl ::core::fmt::Display for MockERC20Events { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::ApprovalFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::TransferFilter(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for MockERC20Events { - fn from(value: ApprovalFilter) -> Self { - Self::ApprovalFilter(value) - } - } - impl ::core::convert::From for MockERC20Events { - fn from(value: TransferFilter) -> Self { - Self::TransferFilter(value) - } - } - ///Container type for all input parameters for the `DOMAIN_SEPARATOR` function with signature `DOMAIN_SEPARATOR()` and selector `0x3644e515` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "DOMAIN_SEPARATOR", abi = "DOMAIN_SEPARATOR()")] - pub struct DomainSeparatorCall; - ///Container type for all input parameters for the `allowance` function with signature `allowance(address,address)` and selector `0xdd62ed3e` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "allowance", abi = "allowance(address,address)")] - pub struct AllowanceCall( - pub ::ethers::core::types::Address, - pub ::ethers::core::types::Address, - ); - ///Container type for all input parameters for the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "approve", abi = "approve(address,uint256)")] - pub struct ApproveCall { - pub spender: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "balanceOf", abi = "balanceOf(address)")] - pub struct BalanceOfCall(pub ::ethers::core::types::Address); - ///Container type for all input parameters for the `burn` function with signature `burn(address,uint256)` and selector `0x9dc29fac` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "burn", abi = "burn(address,uint256)")] - pub struct BurnCall { - pub from: ::ethers::core::types::Address, - pub value: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `decimals` function with signature `decimals()` and selector `0x313ce567` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "decimals", abi = "decimals()")] - pub struct DecimalsCall; - ///Container type for all input parameters for the `mint` function with signature `mint(address,uint256)` and selector `0x40c10f19` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "mint", abi = "mint(address,uint256)")] - pub struct MintCall { - pub to: ::ethers::core::types::Address, - pub value: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `name` function with signature `name()` and selector `0x06fdde03` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "name", abi = "name()")] - pub struct NameCall; - ///Container type for all input parameters for the `nonces` function with signature `nonces(address)` and selector `0x7ecebe00` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "nonces", abi = "nonces(address)")] - pub struct NoncesCall(pub ::ethers::core::types::Address); - ///Container type for all input parameters for the `permit` function with signature `permit(address,address,uint256,uint256,uint8,bytes32,bytes32)` and selector `0xd505accf` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall( - name = "permit", - abi = "permit(address,address,uint256,uint256,uint8,bytes32,bytes32)" - )] - pub struct PermitCall { - pub owner: ::ethers::core::types::Address, - pub spender: ::ethers::core::types::Address, - pub value: ::ethers::core::types::U256, - pub deadline: ::ethers::core::types::U256, - pub v: u8, - pub r: [u8; 32], - pub s: [u8; 32], - } - ///Container type for all input parameters for the `symbol` function with signature `symbol()` and selector `0x95d89b41` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "symbol", abi = "symbol()")] - pub struct SymbolCall; - ///Container type for all input parameters for the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "totalSupply", abi = "totalSupply()")] - pub struct TotalSupplyCall; - ///Container type for all input parameters for the `transfer` function with signature `transfer(address,uint256)` and selector `0xa9059cbb` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "transfer", abi = "transfer(address,uint256)")] - pub struct TransferCall { - pub to: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "transferFrom", abi = "transferFrom(address,address,uint256)")] - pub struct TransferFromCall { - pub from: ::ethers::core::types::Address, - pub to: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - ///Container type for all of the contract's call - #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] - pub enum MockERC20Calls { - DomainSeparator(DomainSeparatorCall), - Allowance(AllowanceCall), - Approve(ApproveCall), - BalanceOf(BalanceOfCall), - Burn(BurnCall), - Decimals(DecimalsCall), - Mint(MintCall), - Name(NameCall), - Nonces(NoncesCall), - Permit(PermitCall), - Symbol(SymbolCall), - TotalSupply(TotalSupplyCall), - Transfer(TransferCall), - TransferFrom(TransferFromCall), - } - impl ::ethers::core::abi::AbiDecode for MockERC20Calls { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::DomainSeparator(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Allowance(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Approve(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::BalanceOf(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Burn(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Decimals(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Mint(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Name(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Nonces(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Permit(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Symbol(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::TotalSupply(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Transfer(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::TransferFrom(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for MockERC20Calls { - fn encode(self) -> Vec { - match self { - Self::DomainSeparator(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Allowance(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Approve(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::BalanceOf(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Burn(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Decimals(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Mint(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Name(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Nonces(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Permit(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Symbol(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::TotalSupply(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Transfer(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::TransferFrom(element) => ::ethers::core::abi::AbiEncode::encode(element), - } - } - } - impl ::core::fmt::Display for MockERC20Calls { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::DomainSeparator(element) => ::core::fmt::Display::fmt(element, f), - Self::Allowance(element) => ::core::fmt::Display::fmt(element, f), - Self::Approve(element) => ::core::fmt::Display::fmt(element, f), - Self::BalanceOf(element) => ::core::fmt::Display::fmt(element, f), - Self::Burn(element) => ::core::fmt::Display::fmt(element, f), - Self::Decimals(element) => ::core::fmt::Display::fmt(element, f), - Self::Mint(element) => ::core::fmt::Display::fmt(element, f), - Self::Name(element) => ::core::fmt::Display::fmt(element, f), - Self::Nonces(element) => ::core::fmt::Display::fmt(element, f), - Self::Permit(element) => ::core::fmt::Display::fmt(element, f), - Self::Symbol(element) => ::core::fmt::Display::fmt(element, f), - Self::TotalSupply(element) => ::core::fmt::Display::fmt(element, f), - Self::Transfer(element) => ::core::fmt::Display::fmt(element, f), - Self::TransferFrom(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for MockERC20Calls { - fn from(value: DomainSeparatorCall) -> Self { - Self::DomainSeparator(value) - } - } - impl ::core::convert::From for MockERC20Calls { - fn from(value: AllowanceCall) -> Self { - Self::Allowance(value) - } - } - impl ::core::convert::From for MockERC20Calls { - fn from(value: ApproveCall) -> Self { - Self::Approve(value) - } - } - impl ::core::convert::From for MockERC20Calls { - fn from(value: BalanceOfCall) -> Self { - Self::BalanceOf(value) - } - } - impl ::core::convert::From for MockERC20Calls { - fn from(value: BurnCall) -> Self { - Self::Burn(value) - } - } - impl ::core::convert::From for MockERC20Calls { - fn from(value: DecimalsCall) -> Self { - Self::Decimals(value) - } - } - impl ::core::convert::From for MockERC20Calls { - fn from(value: MintCall) -> Self { - Self::Mint(value) - } - } - impl ::core::convert::From for MockERC20Calls { - fn from(value: NameCall) -> Self { - Self::Name(value) - } - } - impl ::core::convert::From for MockERC20Calls { - fn from(value: NoncesCall) -> Self { - Self::Nonces(value) - } - } - impl ::core::convert::From for MockERC20Calls { - fn from(value: PermitCall) -> Self { - Self::Permit(value) - } - } - impl ::core::convert::From for MockERC20Calls { - fn from(value: SymbolCall) -> Self { - Self::Symbol(value) - } - } - impl ::core::convert::From for MockERC20Calls { - fn from(value: TotalSupplyCall) -> Self { - Self::TotalSupply(value) - } - } - impl ::core::convert::From for MockERC20Calls { - fn from(value: TransferCall) -> Self { - Self::Transfer(value) - } - } - impl ::core::convert::From for MockERC20Calls { - fn from(value: TransferFromCall) -> Self { - Self::TransferFrom(value) - } - } - ///Container type for all return fields from the `DOMAIN_SEPARATOR` function with signature `DOMAIN_SEPARATOR()` and selector `0x3644e515` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct DomainSeparatorReturn(pub [u8; 32]); - ///Container type for all return fields from the `allowance` function with signature `allowance(address,address)` and selector `0xdd62ed3e` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct AllowanceReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct ApproveReturn(pub bool); - ///Container type for all return fields from the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct BalanceOfReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `decimals` function with signature `decimals()` and selector `0x313ce567` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct DecimalsReturn(pub u8); - ///Container type for all return fields from the `name` function with signature `name()` and selector `0x06fdde03` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct NameReturn(pub ::std::string::String); - ///Container type for all return fields from the `nonces` function with signature `nonces(address)` and selector `0x7ecebe00` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct NoncesReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `symbol` function with signature `symbol()` and selector `0x95d89b41` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct SymbolReturn(pub ::std::string::String); - ///Container type for all return fields from the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct TotalSupplyReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `transfer` function with signature `transfer(address,uint256)` and selector `0xa9059cbb` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct TransferReturn(pub bool); - ///Container type for all return fields from the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct TransferFromReturn(pub bool); -} diff --git a/crates/bindings/src/objective.rs b/crates/bindings/src/objective.rs deleted file mode 100644 index 6555a79a..00000000 --- a/crates/bindings/src/objective.rs +++ /dev/null @@ -1,2081 +0,0 @@ -pub use objective::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types -)] -pub mod objective { - pub use super::super::shared_types::*; - #[rustfmt::skip] - const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaLiquidity\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Allocate\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint16\",\"name\":\"priorityFee\",\"type\":\"uint16\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint16\",\"name\":\"fee\",\"type\":\"uint16\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint16\",\"name\":\"jit\",\"type\":\"uint16\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"ChangeParameters\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"feeAssetDec\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"feeQuoteDec\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true}],\"type\":\"event\",\"name\":\"Collect\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"pairId\",\"type\":\"uint24\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint8\",\"name\":\"decimalsAsset\",\"type\":\"uint8\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint8\",\"name\":\"decimalsQuote\",\"type\":\"uint8\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"CreatePair\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"bool\",\"name\":\"isMutable\",\"type\":\"bool\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"CreatePool\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaLiquidity\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Deallocate\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"DecreaseReserveBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"DecreaseUserBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Deposit\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"IncreaseReserveBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"IncreaseUserBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"sellAsset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"input\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"tokenOut\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"output\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"feeAmountDec\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"int256\",\"name\":\"invariantWad\",\"type\":\"int256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Swap\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"prevFee\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"nextFee\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"UpdateProtocolFee\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\",\"name\":\"VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"WETH\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"priorityFee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"fee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"jit\",\"type\":\"uint16\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"changeParameters\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"int256\",\"name\":\"invariant\",\"type\":\"int256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"reserveX\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"reserveY\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"checkInvariant\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\",\"components\":[]},{\"internalType\":\"int256\",\"name\":\"nextInvariant\",\"type\":\"int256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"checkPool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"int256\",\"name\":\"delta\",\"type\":\"int256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"checkPosition\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"bool\",\"name\":\"sellAsset\",\"type\":\"bool\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"reserveIn\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"computeMaxInput\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"computeReservesFromPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"reserveX\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"reserveY\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"deposit\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"draw\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"fund\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"bool\",\"name\":\"sellAsset\",\"type\":\"bool\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getAmountOut\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"output\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"int128\",\"name\":\"deltaLiquidity\",\"type\":\"int128\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getLiquidityDeltas\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"deltaAsset\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"deltaQuote\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getMaxLiquidity\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"deltaLiquidity\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getNetBalance\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPairId\",\"outputs\":[{\"internalType\":\"uint24\",\"name\":\"pairId\",\"type\":\"uint24\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPairNonce\",\"outputs\":[{\"internalType\":\"uint24\",\"name\":\"\",\"type\":\"uint24\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"pairNonce\",\"type\":\"uint24\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPoolNonce\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPoolReserves\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getReserve\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getVirtualPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getVirtualReservesPerLiquidity\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"deltaAsset\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"deltaQuote\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\",\"components\":[]}],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"multiprocess\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"pairId\",\"type\":\"uint24\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"pairs\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"tokenAsset\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsAsset\",\"type\":\"uint8\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"tokenQuote\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsQuote\",\"type\":\"uint8\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"pools\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"virtualX\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"virtualY\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"liquidity\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint32\",\"name\":\"lastTimestamp\",\"type\":\"uint32\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"controller\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"invariantGrowthGlobal\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthGlobalAsset\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthGlobalQuote\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"struct PortfolioCurve\",\"name\":\"\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"uint128\",\"name\":\"maxPrice\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"jit\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"fee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"duration\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"volatility\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"priorityFee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint32\",\"name\":\"createdAt\",\"type\":\"uint32\",\"components\":[]},{\"internalType\":\"bool\",\"name\":\"perpetual\",\"type\":\"bool\",\"components\":[]}]},{\"internalType\":\"struct PortfolioPair\",\"name\":\"\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"address\",\"name\":\"tokenAsset\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsAsset\",\"type\":\"uint8\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"tokenQuote\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsQuote\",\"type\":\"uint8\",\"components\":[]}]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"positions\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"freeLiquidity\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint32\",\"name\":\"lastTimestamp\",\"type\":\"uint32\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"invariantGrowthLast\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthAssetLast\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthQuoteLast\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"tokensOwedAsset\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"tokensOwedQuote\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"invariantOwed\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"setProtocolFee\",\"outputs\":[]}]"; - ///The parsed JSON ABI of the contract. - pub static OBJECTIVE_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = - ::ethers::contract::Lazy::new(|| { - ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid") - }); - pub struct Objective(::ethers::contract::Contract); - impl ::core::clone::Clone for Objective { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for Objective { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for Objective { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for Objective { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(stringify!(Objective)) - .field(&self.address()) - .finish() - } - } - impl Objective { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self(::ethers::contract::Contract::new( - address.into(), - OBJECTIVE_ABI.clone(), - client, - )) - } - ///Calls the contract's `REGISTRY` (0x06433b1b) function - pub fn registry( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([6, 67, 59, 27], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `VERSION` (0xffa1ad74) function - pub fn version( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([255, 161, 173, 116], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `WETH` (0xad5c4648) function - pub fn weth( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([173, 92, 70, 72], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `changeParameters` (0xaf777855) function - pub fn change_parameters( - &self, - pool_id: u64, - priority_fee: u16, - fee: u16, - jit: u16, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([175, 119, 120, 85], (pool_id, priority_fee, fee, jit)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `checkInvariant` (0x2f337da5) function - pub fn check_invariant( - &self, - pool_id: u64, - invariant: ::ethers::core::types::I256, - reserve_x: ::ethers::core::types::U256, - reserve_y: ::ethers::core::types::U256, - timestamp: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall - { - self.0 - .method_hash( - [47, 51, 125, 165], - (pool_id, invariant, reserve_x, reserve_y, timestamp), - ) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `checkPool` (0xa68aaa41) function - pub fn check_pool( - &self, - pool_id: u64, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([166, 138, 170, 65], pool_id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `checkPosition` (0x2cc6641e) function - pub fn check_position( - &self, - pool_id: u64, - owner: ::ethers::core::types::Address, - delta: ::ethers::core::types::I256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([44, 198, 100, 30], (pool_id, owner, delta)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `computeMaxInput` (0x989bafba) function - pub fn compute_max_input( - &self, - pool_id: u64, - sell_asset: bool, - reserve_in: ::ethers::core::types::U256, - liquidity: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash( - [152, 155, 175, 186], - (pool_id, sell_asset, reserve_in, liquidity), - ) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `computeReservesFromPrice` (0xc48d887a) function - pub fn compute_reserves_from_price( - &self, - pool_id: u64, - price: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall< - M, - (::ethers::core::types::U256, ::ethers::core::types::U256), - > { - self.0 - .method_hash([196, 141, 136, 122], (pool_id, price)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `deposit` (0xd0e30db0) function - pub fn deposit(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([208, 227, 13, 176], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `draw` (0xad24d6a0) function - pub fn draw( - &self, - token: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - to: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([173, 36, 214, 160], (token, amount, to)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `fund` (0x7b1837de) function - pub fn fund( - &self, - token: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([123, 24, 55, 222], (token, amount)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getAmountOut` (0x7dae4890) function - pub fn get_amount_out( - &self, - pool_id: u64, - sell_asset: bool, - amount_in: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([125, 174, 72, 144], (pool_id, sell_asset, amount_in)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getBalance` (0xd4fac45d) function - pub fn get_balance( - &self, - owner: ::ethers::core::types::Address, - token: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([212, 250, 196, 93], (owner, token)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getLiquidityDeltas` (0x8992f20a) function - pub fn get_liquidity_deltas( - &self, - pool_id: u64, - delta_liquidity: i128, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([137, 146, 242, 10], (pool_id, delta_liquidity)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getMaxLiquidity` (0xd6b7dec5) function - pub fn get_max_liquidity( - &self, - pool_id: u64, - delta_asset: ::ethers::core::types::U256, - delta_quote: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([214, 183, 222, 197], (pool_id, delta_asset, delta_quote)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getNetBalance` (0x4dc68a90) function - pub fn get_net_balance( - &self, - token: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([77, 198, 138, 144], token) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getPairId` (0x3f92a339) function - pub fn get_pair_id( - &self, - asset: ::ethers::core::types::Address, - quote: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([63, 146, 163, 57], (asset, quote)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getPairNonce` (0x078888d6) function - pub fn get_pair_nonce(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([7, 136, 136, 214], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getPoolNonce` (0xa5cd8a49) function - pub fn get_pool_nonce( - &self, - pair_nonce: u32, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([165, 205, 138, 73], pair_nonce) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getPoolReserves` (0x2afb9df8) function - pub fn get_pool_reserves( - &self, - pool_id: u64, - ) -> ::ethers::contract::builders::ContractCall< - M, - (::ethers::core::types::U256, ::ethers::core::types::U256), - > { - self.0 - .method_hash([42, 251, 157, 248], pool_id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getReserve` (0xc9a396e9) function - pub fn get_reserve( - &self, - token: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([201, 163, 150, 233], token) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getVirtualPrice` (0x61b7ea6a) function - pub fn get_virtual_price( - &self, - pool_id: u64, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([97, 183, 234, 106], pool_id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getVirtualReservesPerLiquidity` (0x1a4b905b) function - pub fn get_virtual_reserves_per_liquidity( - &self, - pool_id: u64, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([26, 75, 144, 91], pool_id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `multiprocess` (0xa0fdf413) function - pub fn multiprocess( - &self, - data: ::ethers::core::types::Bytes, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([160, 253, 244, 19], data) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `pairs` (0x5e47663c) function - pub fn pairs( - &self, - pair_id: u32, - ) -> ::ethers::contract::builders::ContractCall< - M, - ( - ::ethers::core::types::Address, - u8, - ::ethers::core::types::Address, - u8, - ), - > { - self.0 - .method_hash([94, 71, 102, 60], pair_id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `pools` (0x89a5f084) function - pub fn pools( - &self, - pool_id: u64, - ) -> ::ethers::contract::builders::ContractCall< - M, - ( - u128, - u128, - u128, - u32, - ::ethers::core::types::Address, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - PortfolioCurve, - PortfolioPair, - ), - > { - self.0 - .method_hash([137, 165, 240, 132], pool_id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `positions` (0xb68513ea) function - pub fn positions( - &self, - owner: ::ethers::core::types::Address, - pool_id: u64, - ) -> ::ethers::contract::builders::ContractCall< - M, - ( - u128, - u32, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - u128, - u128, - u128, - ), - > { - self.0 - .method_hash([182, 133, 19, 234], (owner, pool_id)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `setProtocolFee` (0x787dce3d) function - pub fn set_protocol_fee( - &self, - fee: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([120, 125, 206, 61], fee) - .expect("method not found (this should never happen)") - } - ///Gets the contract's `Allocate` event - pub fn allocate_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, AllocateFilter> { - self.0.event() - } - ///Gets the contract's `ChangeParameters` event - pub fn change_parameters_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, ChangeParametersFilter> - { - self.0.event() - } - ///Gets the contract's `Collect` event - pub fn collect_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, CollectFilter> { - self.0.event() - } - ///Gets the contract's `CreatePair` event - pub fn create_pair_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, CreatePairFilter> { - self.0.event() - } - ///Gets the contract's `CreatePool` event - pub fn create_pool_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, CreatePoolFilter> { - self.0.event() - } - ///Gets the contract's `Deallocate` event - pub fn deallocate_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, DeallocateFilter> { - self.0.event() - } - ///Gets the contract's `DecreaseReserveBalance` event - pub fn decrease_reserve_balance_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, DecreaseReserveBalanceFilter> - { - self.0.event() - } - ///Gets the contract's `DecreaseUserBalance` event - pub fn decrease_user_balance_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, DecreaseUserBalanceFilter> - { - self.0.event() - } - ///Gets the contract's `Deposit` event - pub fn deposit_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, DepositFilter> { - self.0.event() - } - ///Gets the contract's `IncreaseReserveBalance` event - pub fn increase_reserve_balance_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, IncreaseReserveBalanceFilter> - { - self.0.event() - } - ///Gets the contract's `IncreaseUserBalance` event - pub fn increase_user_balance_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, IncreaseUserBalanceFilter> - { - self.0.event() - } - ///Gets the contract's `Swap` event - pub fn swap_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, SwapFilter> { - self.0.event() - } - ///Gets the contract's `UpdateProtocolFee` event - pub fn update_protocol_fee_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, UpdateProtocolFeeFilter> - { - self.0.event() - } - /// Returns an `Event` builder for all the events of this contract. - pub fn events( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, ObjectiveEvents> { - self.0 - .event_with_filter(::core::default::Default::default()) - } - } - impl From<::ethers::contract::Contract> for Objective { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "Allocate", - abi = "Allocate(uint64,address,address,uint256,uint256,uint256)" - )] - pub struct AllocateFilter { - #[ethevent(indexed)] - pub pool_id: u64, - #[ethevent(indexed)] - pub asset: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub quote: ::ethers::core::types::Address, - pub delta_asset: ::ethers::core::types::U256, - pub delta_quote: ::ethers::core::types::U256, - pub delta_liquidity: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "ChangeParameters", - abi = "ChangeParameters(uint64,uint16,uint16,uint16)" - )] - pub struct ChangeParametersFilter { - #[ethevent(indexed)] - pub pool_id: u64, - #[ethevent(indexed)] - pub priority_fee: u16, - #[ethevent(indexed)] - pub fee: u16, - pub jit: u16, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "Collect", - abi = "Collect(uint64,address,uint256,address,uint256,address)" - )] - pub struct CollectFilter { - pub pool_id: u64, - #[ethevent(indexed)] - pub account: ::ethers::core::types::Address, - pub fee_asset_dec: ::ethers::core::types::U256, - #[ethevent(indexed)] - pub asset: ::ethers::core::types::Address, - pub fee_quote_dec: ::ethers::core::types::U256, - #[ethevent(indexed)] - pub quote: ::ethers::core::types::Address, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "CreatePair", - abi = "CreatePair(uint24,address,address,uint8,uint8)" - )] - pub struct CreatePairFilter { - #[ethevent(indexed)] - pub pair_id: u32, - #[ethevent(indexed)] - pub asset: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub quote: ::ethers::core::types::Address, - pub decimals_asset: u8, - pub decimals_quote: u8, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "CreatePool", - abi = "CreatePool(uint64,bool,address,address,uint256)" - )] - pub struct CreatePoolFilter { - #[ethevent(indexed)] - pub pool_id: u64, - pub is_mutable: bool, - #[ethevent(indexed)] - pub asset: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub quote: ::ethers::core::types::Address, - pub price: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "Deallocate", - abi = "Deallocate(uint64,address,address,uint256,uint256,uint256)" - )] - pub struct DeallocateFilter { - #[ethevent(indexed)] - pub pool_id: u64, - #[ethevent(indexed)] - pub asset: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub quote: ::ethers::core::types::Address, - pub delta_asset: ::ethers::core::types::U256, - pub delta_quote: ::ethers::core::types::U256, - pub delta_liquidity: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "DecreaseReserveBalance", - abi = "DecreaseReserveBalance(address,uint256)" - )] - pub struct DecreaseReserveBalanceFilter { - #[ethevent(indexed)] - pub token: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "DecreaseUserBalance", - abi = "DecreaseUserBalance(address,address,uint256)" - )] - pub struct DecreaseUserBalanceFilter { - #[ethevent(indexed)] - pub account: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub token: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent(name = "Deposit", abi = "Deposit(address,uint256)")] - pub struct DepositFilter { - #[ethevent(indexed)] - pub account: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "IncreaseReserveBalance", - abi = "IncreaseReserveBalance(address,uint256)" - )] - pub struct IncreaseReserveBalanceFilter { - #[ethevent(indexed)] - pub token: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "IncreaseUserBalance", - abi = "IncreaseUserBalance(address,address,uint256)" - )] - pub struct IncreaseUserBalanceFilter { - #[ethevent(indexed)] - pub account: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub token: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "Swap", - abi = "Swap(uint64,uint256,address,uint256,address,uint256,uint256,int256)" - )] - pub struct SwapFilter { - #[ethevent(indexed)] - pub pool_id: u64, - pub price: ::ethers::core::types::U256, - #[ethevent(indexed)] - pub sell_asset: ::ethers::core::types::Address, - pub input: ::ethers::core::types::U256, - #[ethevent(indexed)] - pub token_out: ::ethers::core::types::Address, - pub output: ::ethers::core::types::U256, - pub fee_amount_dec: ::ethers::core::types::U256, - pub invariant_wad: ::ethers::core::types::I256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent(name = "UpdateProtocolFee", abi = "UpdateProtocolFee(uint256,uint256)")] - pub struct UpdateProtocolFeeFilter { - pub prev_fee: ::ethers::core::types::U256, - pub next_fee: ::ethers::core::types::U256, - } - ///Container type for all of the contract's events - #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] - pub enum ObjectiveEvents { - AllocateFilter(AllocateFilter), - ChangeParametersFilter(ChangeParametersFilter), - CollectFilter(CollectFilter), - CreatePairFilter(CreatePairFilter), - CreatePoolFilter(CreatePoolFilter), - DeallocateFilter(DeallocateFilter), - DecreaseReserveBalanceFilter(DecreaseReserveBalanceFilter), - DecreaseUserBalanceFilter(DecreaseUserBalanceFilter), - DepositFilter(DepositFilter), - IncreaseReserveBalanceFilter(IncreaseReserveBalanceFilter), - IncreaseUserBalanceFilter(IncreaseUserBalanceFilter), - SwapFilter(SwapFilter), - UpdateProtocolFeeFilter(UpdateProtocolFeeFilter), - } - impl ::ethers::contract::EthLogDecode for ObjectiveEvents { - fn decode_log( - log: &::ethers::core::abi::RawLog, - ) -> ::core::result::Result { - if let Ok(decoded) = AllocateFilter::decode_log(log) { - return Ok(ObjectiveEvents::AllocateFilter(decoded)); - } - if let Ok(decoded) = ChangeParametersFilter::decode_log(log) { - return Ok(ObjectiveEvents::ChangeParametersFilter(decoded)); - } - if let Ok(decoded) = CollectFilter::decode_log(log) { - return Ok(ObjectiveEvents::CollectFilter(decoded)); - } - if let Ok(decoded) = CreatePairFilter::decode_log(log) { - return Ok(ObjectiveEvents::CreatePairFilter(decoded)); - } - if let Ok(decoded) = CreatePoolFilter::decode_log(log) { - return Ok(ObjectiveEvents::CreatePoolFilter(decoded)); - } - if let Ok(decoded) = DeallocateFilter::decode_log(log) { - return Ok(ObjectiveEvents::DeallocateFilter(decoded)); - } - if let Ok(decoded) = DecreaseReserveBalanceFilter::decode_log(log) { - return Ok(ObjectiveEvents::DecreaseReserveBalanceFilter(decoded)); - } - if let Ok(decoded) = DecreaseUserBalanceFilter::decode_log(log) { - return Ok(ObjectiveEvents::DecreaseUserBalanceFilter(decoded)); - } - if let Ok(decoded) = DepositFilter::decode_log(log) { - return Ok(ObjectiveEvents::DepositFilter(decoded)); - } - if let Ok(decoded) = IncreaseReserveBalanceFilter::decode_log(log) { - return Ok(ObjectiveEvents::IncreaseReserveBalanceFilter(decoded)); - } - if let Ok(decoded) = IncreaseUserBalanceFilter::decode_log(log) { - return Ok(ObjectiveEvents::IncreaseUserBalanceFilter(decoded)); - } - if let Ok(decoded) = SwapFilter::decode_log(log) { - return Ok(ObjectiveEvents::SwapFilter(decoded)); - } - if let Ok(decoded) = UpdateProtocolFeeFilter::decode_log(log) { - return Ok(ObjectiveEvents::UpdateProtocolFeeFilter(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData) - } - } - impl ::core::fmt::Display for ObjectiveEvents { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::AllocateFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::ChangeParametersFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::CollectFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::CreatePairFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::CreatePoolFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::DeallocateFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::DecreaseReserveBalanceFilter(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::DecreaseUserBalanceFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::DepositFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::IncreaseReserveBalanceFilter(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::IncreaseUserBalanceFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::SwapFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::UpdateProtocolFeeFilter(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for ObjectiveEvents { - fn from(value: AllocateFilter) -> Self { - Self::AllocateFilter(value) - } - } - impl ::core::convert::From for ObjectiveEvents { - fn from(value: ChangeParametersFilter) -> Self { - Self::ChangeParametersFilter(value) - } - } - impl ::core::convert::From for ObjectiveEvents { - fn from(value: CollectFilter) -> Self { - Self::CollectFilter(value) - } - } - impl ::core::convert::From for ObjectiveEvents { - fn from(value: CreatePairFilter) -> Self { - Self::CreatePairFilter(value) - } - } - impl ::core::convert::From for ObjectiveEvents { - fn from(value: CreatePoolFilter) -> Self { - Self::CreatePoolFilter(value) - } - } - impl ::core::convert::From for ObjectiveEvents { - fn from(value: DeallocateFilter) -> Self { - Self::DeallocateFilter(value) - } - } - impl ::core::convert::From for ObjectiveEvents { - fn from(value: DecreaseReserveBalanceFilter) -> Self { - Self::DecreaseReserveBalanceFilter(value) - } - } - impl ::core::convert::From for ObjectiveEvents { - fn from(value: DecreaseUserBalanceFilter) -> Self { - Self::DecreaseUserBalanceFilter(value) - } - } - impl ::core::convert::From for ObjectiveEvents { - fn from(value: DepositFilter) -> Self { - Self::DepositFilter(value) - } - } - impl ::core::convert::From for ObjectiveEvents { - fn from(value: IncreaseReserveBalanceFilter) -> Self { - Self::IncreaseReserveBalanceFilter(value) - } - } - impl ::core::convert::From for ObjectiveEvents { - fn from(value: IncreaseUserBalanceFilter) -> Self { - Self::IncreaseUserBalanceFilter(value) - } - } - impl ::core::convert::From for ObjectiveEvents { - fn from(value: SwapFilter) -> Self { - Self::SwapFilter(value) - } - } - impl ::core::convert::From for ObjectiveEvents { - fn from(value: UpdateProtocolFeeFilter) -> Self { - Self::UpdateProtocolFeeFilter(value) - } - } - ///Container type for all input parameters for the `REGISTRY` function with signature `REGISTRY()` and selector `0x06433b1b` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "REGISTRY", abi = "REGISTRY()")] - pub struct RegistryCall; - ///Container type for all input parameters for the `VERSION` function with signature `VERSION()` and selector `0xffa1ad74` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "VERSION", abi = "VERSION()")] - pub struct VersionCall; - ///Container type for all input parameters for the `WETH` function with signature `WETH()` and selector `0xad5c4648` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "WETH", abi = "WETH()")] - pub struct WethCall; - ///Container type for all input parameters for the `changeParameters` function with signature `changeParameters(uint64,uint16,uint16,uint16)` and selector `0xaf777855` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall( - name = "changeParameters", - abi = "changeParameters(uint64,uint16,uint16,uint16)" - )] - pub struct ChangeParametersCall { - pub pool_id: u64, - pub priority_fee: u16, - pub fee: u16, - pub jit: u16, - } - ///Container type for all input parameters for the `checkInvariant` function with signature `checkInvariant(uint64,int256,uint256,uint256,uint256)` and selector `0x2f337da5` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall( - name = "checkInvariant", - abi = "checkInvariant(uint64,int256,uint256,uint256,uint256)" - )] - pub struct CheckInvariantCall { - pub pool_id: u64, - pub invariant: ::ethers::core::types::I256, - pub reserve_x: ::ethers::core::types::U256, - pub reserve_y: ::ethers::core::types::U256, - pub timestamp: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `checkPool` function with signature `checkPool(uint64)` and selector `0xa68aaa41` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "checkPool", abi = "checkPool(uint64)")] - pub struct CheckPoolCall { - pub pool_id: u64, - } - ///Container type for all input parameters for the `checkPosition` function with signature `checkPosition(uint64,address,int256)` and selector `0x2cc6641e` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "checkPosition", abi = "checkPosition(uint64,address,int256)")] - pub struct CheckPositionCall { - pub pool_id: u64, - pub owner: ::ethers::core::types::Address, - pub delta: ::ethers::core::types::I256, - } - ///Container type for all input parameters for the `computeMaxInput` function with signature `computeMaxInput(uint64,bool,uint256,uint256)` and selector `0x989bafba` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall( - name = "computeMaxInput", - abi = "computeMaxInput(uint64,bool,uint256,uint256)" - )] - pub struct ComputeMaxInputCall { - pub pool_id: u64, - pub sell_asset: bool, - pub reserve_in: ::ethers::core::types::U256, - pub liquidity: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `computeReservesFromPrice` function with signature `computeReservesFromPrice(uint64,uint256)` and selector `0xc48d887a` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall( - name = "computeReservesFromPrice", - abi = "computeReservesFromPrice(uint64,uint256)" - )] - pub struct ComputeReservesFromPriceCall { - pub pool_id: u64, - pub price: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `deposit` function with signature `deposit()` and selector `0xd0e30db0` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "deposit", abi = "deposit()")] - pub struct DepositCall; - ///Container type for all input parameters for the `draw` function with signature `draw(address,uint256,address)` and selector `0xad24d6a0` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "draw", abi = "draw(address,uint256,address)")] - pub struct DrawCall { - pub token: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - pub to: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `fund` function with signature `fund(address,uint256)` and selector `0x7b1837de` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "fund", abi = "fund(address,uint256)")] - pub struct FundCall { - pub token: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `getAmountOut` function with signature `getAmountOut(uint64,bool,uint256)` and selector `0x7dae4890` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getAmountOut", abi = "getAmountOut(uint64,bool,uint256)")] - pub struct GetAmountOutCall { - pub pool_id: u64, - pub sell_asset: bool, - pub amount_in: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `getBalance` function with signature `getBalance(address,address)` and selector `0xd4fac45d` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getBalance", abi = "getBalance(address,address)")] - pub struct GetBalanceCall { - pub owner: ::ethers::core::types::Address, - pub token: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `getLiquidityDeltas` function with signature `getLiquidityDeltas(uint64,int128)` and selector `0x8992f20a` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getLiquidityDeltas", abi = "getLiquidityDeltas(uint64,int128)")] - pub struct GetLiquidityDeltasCall { - pub pool_id: u64, - pub delta_liquidity: i128, - } - ///Container type for all input parameters for the `getMaxLiquidity` function with signature `getMaxLiquidity(uint64,uint256,uint256)` and selector `0xd6b7dec5` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall( - name = "getMaxLiquidity", - abi = "getMaxLiquidity(uint64,uint256,uint256)" - )] - pub struct GetMaxLiquidityCall { - pub pool_id: u64, - pub delta_asset: ::ethers::core::types::U256, - pub delta_quote: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `getNetBalance` function with signature `getNetBalance(address)` and selector `0x4dc68a90` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getNetBalance", abi = "getNetBalance(address)")] - pub struct GetNetBalanceCall { - pub token: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `getPairId` function with signature `getPairId(address,address)` and selector `0x3f92a339` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getPairId", abi = "getPairId(address,address)")] - pub struct GetPairIdCall { - pub asset: ::ethers::core::types::Address, - pub quote: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `getPairNonce` function with signature `getPairNonce()` and selector `0x078888d6` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getPairNonce", abi = "getPairNonce()")] - pub struct GetPairNonceCall; - ///Container type for all input parameters for the `getPoolNonce` function with signature `getPoolNonce(uint24)` and selector `0xa5cd8a49` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getPoolNonce", abi = "getPoolNonce(uint24)")] - pub struct GetPoolNonceCall { - pub pair_nonce: u32, - } - ///Container type for all input parameters for the `getPoolReserves` function with signature `getPoolReserves(uint64)` and selector `0x2afb9df8` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getPoolReserves", abi = "getPoolReserves(uint64)")] - pub struct GetPoolReservesCall { - pub pool_id: u64, - } - ///Container type for all input parameters for the `getReserve` function with signature `getReserve(address)` and selector `0xc9a396e9` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getReserve", abi = "getReserve(address)")] - pub struct GetReserveCall { - pub token: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `getVirtualPrice` function with signature `getVirtualPrice(uint64)` and selector `0x61b7ea6a` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getVirtualPrice", abi = "getVirtualPrice(uint64)")] - pub struct GetVirtualPriceCall { - pub pool_id: u64, - } - ///Container type for all input parameters for the `getVirtualReservesPerLiquidity` function with signature `getVirtualReservesPerLiquidity(uint64)` and selector `0x1a4b905b` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall( - name = "getVirtualReservesPerLiquidity", - abi = "getVirtualReservesPerLiquidity(uint64)" - )] - pub struct GetVirtualReservesPerLiquidityCall { - pub pool_id: u64, - } - ///Container type for all input parameters for the `multiprocess` function with signature `multiprocess(bytes)` and selector `0xa0fdf413` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "multiprocess", abi = "multiprocess(bytes)")] - pub struct MultiprocessCall { - pub data: ::ethers::core::types::Bytes, - } - ///Container type for all input parameters for the `pairs` function with signature `pairs(uint24)` and selector `0x5e47663c` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "pairs", abi = "pairs(uint24)")] - pub struct PairsCall { - pub pair_id: u32, - } - ///Container type for all input parameters for the `pools` function with signature `pools(uint64)` and selector `0x89a5f084` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "pools", abi = "pools(uint64)")] - pub struct PoolsCall { - pub pool_id: u64, - } - ///Container type for all input parameters for the `positions` function with signature `positions(address,uint64)` and selector `0xb68513ea` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "positions", abi = "positions(address,uint64)")] - pub struct PositionsCall { - pub owner: ::ethers::core::types::Address, - pub pool_id: u64, - } - ///Container type for all input parameters for the `setProtocolFee` function with signature `setProtocolFee(uint256)` and selector `0x787dce3d` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "setProtocolFee", abi = "setProtocolFee(uint256)")] - pub struct SetProtocolFeeCall { - pub fee: ::ethers::core::types::U256, - } - ///Container type for all of the contract's call - #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] - pub enum ObjectiveCalls { - Registry(RegistryCall), - Version(VersionCall), - Weth(WethCall), - ChangeParameters(ChangeParametersCall), - CheckInvariant(CheckInvariantCall), - CheckPool(CheckPoolCall), - CheckPosition(CheckPositionCall), - ComputeMaxInput(ComputeMaxInputCall), - ComputeReservesFromPrice(ComputeReservesFromPriceCall), - Deposit(DepositCall), - Draw(DrawCall), - Fund(FundCall), - GetAmountOut(GetAmountOutCall), - GetBalance(GetBalanceCall), - GetLiquidityDeltas(GetLiquidityDeltasCall), - GetMaxLiquidity(GetMaxLiquidityCall), - GetNetBalance(GetNetBalanceCall), - GetPairId(GetPairIdCall), - GetPairNonce(GetPairNonceCall), - GetPoolNonce(GetPoolNonceCall), - GetPoolReserves(GetPoolReservesCall), - GetReserve(GetReserveCall), - GetVirtualPrice(GetVirtualPriceCall), - GetVirtualReservesPerLiquidity(GetVirtualReservesPerLiquidityCall), - Multiprocess(MultiprocessCall), - Pairs(PairsCall), - Pools(PoolsCall), - Positions(PositionsCall), - SetProtocolFee(SetProtocolFeeCall), - } - impl ::ethers::core::abi::AbiDecode for ObjectiveCalls { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Registry(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Version(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Weth(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::ChangeParameters(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::CheckInvariant(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::CheckPool(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::CheckPosition(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::ComputeMaxInput(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::ComputeReservesFromPrice(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Deposit(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Draw(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Fund(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::GetAmountOut(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::GetBalance(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::GetLiquidityDeltas(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::GetMaxLiquidity(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::GetNetBalance(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::GetPairId(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::GetPairNonce(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::GetPoolNonce(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::GetPoolReserves(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::GetReserve(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::GetVirtualPrice(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::GetVirtualReservesPerLiquidity(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::Multiprocess(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Pairs(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Pools(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Positions(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::SetProtocolFee(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for ObjectiveCalls { - fn encode(self) -> Vec { - match self { - Self::Registry(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Version(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Weth(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::ChangeParameters(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::CheckInvariant(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::CheckPool(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::CheckPosition(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::ComputeMaxInput(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::ComputeReservesFromPrice(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Deposit(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Draw(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Fund(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetAmountOut(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetBalance(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetLiquidityDeltas(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::GetMaxLiquidity(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetNetBalance(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetPairId(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetPairNonce(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetPoolNonce(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetPoolReserves(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetReserve(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetVirtualPrice(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetVirtualReservesPerLiquidity(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Multiprocess(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Pairs(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Pools(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Positions(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::SetProtocolFee(element) => ::ethers::core::abi::AbiEncode::encode(element), - } - } - } - impl ::core::fmt::Display for ObjectiveCalls { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::Registry(element) => ::core::fmt::Display::fmt(element, f), - Self::Version(element) => ::core::fmt::Display::fmt(element, f), - Self::Weth(element) => ::core::fmt::Display::fmt(element, f), - Self::ChangeParameters(element) => ::core::fmt::Display::fmt(element, f), - Self::CheckInvariant(element) => ::core::fmt::Display::fmt(element, f), - Self::CheckPool(element) => ::core::fmt::Display::fmt(element, f), - Self::CheckPosition(element) => ::core::fmt::Display::fmt(element, f), - Self::ComputeMaxInput(element) => ::core::fmt::Display::fmt(element, f), - Self::ComputeReservesFromPrice(element) => ::core::fmt::Display::fmt(element, f), - Self::Deposit(element) => ::core::fmt::Display::fmt(element, f), - Self::Draw(element) => ::core::fmt::Display::fmt(element, f), - Self::Fund(element) => ::core::fmt::Display::fmt(element, f), - Self::GetAmountOut(element) => ::core::fmt::Display::fmt(element, f), - Self::GetBalance(element) => ::core::fmt::Display::fmt(element, f), - Self::GetLiquidityDeltas(element) => ::core::fmt::Display::fmt(element, f), - Self::GetMaxLiquidity(element) => ::core::fmt::Display::fmt(element, f), - Self::GetNetBalance(element) => ::core::fmt::Display::fmt(element, f), - Self::GetPairId(element) => ::core::fmt::Display::fmt(element, f), - Self::GetPairNonce(element) => ::core::fmt::Display::fmt(element, f), - Self::GetPoolNonce(element) => ::core::fmt::Display::fmt(element, f), - Self::GetPoolReserves(element) => ::core::fmt::Display::fmt(element, f), - Self::GetReserve(element) => ::core::fmt::Display::fmt(element, f), - Self::GetVirtualPrice(element) => ::core::fmt::Display::fmt(element, f), - Self::GetVirtualReservesPerLiquidity(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::Multiprocess(element) => ::core::fmt::Display::fmt(element, f), - Self::Pairs(element) => ::core::fmt::Display::fmt(element, f), - Self::Pools(element) => ::core::fmt::Display::fmt(element, f), - Self::Positions(element) => ::core::fmt::Display::fmt(element, f), - Self::SetProtocolFee(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for ObjectiveCalls { - fn from(value: RegistryCall) -> Self { - Self::Registry(value) - } - } - impl ::core::convert::From for ObjectiveCalls { - fn from(value: VersionCall) -> Self { - Self::Version(value) - } - } - impl ::core::convert::From for ObjectiveCalls { - fn from(value: WethCall) -> Self { - Self::Weth(value) - } - } - impl ::core::convert::From for ObjectiveCalls { - fn from(value: ChangeParametersCall) -> Self { - Self::ChangeParameters(value) - } - } - impl ::core::convert::From for ObjectiveCalls { - fn from(value: CheckInvariantCall) -> Self { - Self::CheckInvariant(value) - } - } - impl ::core::convert::From for ObjectiveCalls { - fn from(value: CheckPoolCall) -> Self { - Self::CheckPool(value) - } - } - impl ::core::convert::From for ObjectiveCalls { - fn from(value: CheckPositionCall) -> Self { - Self::CheckPosition(value) - } - } - impl ::core::convert::From for ObjectiveCalls { - fn from(value: ComputeMaxInputCall) -> Self { - Self::ComputeMaxInput(value) - } - } - impl ::core::convert::From for ObjectiveCalls { - fn from(value: ComputeReservesFromPriceCall) -> Self { - Self::ComputeReservesFromPrice(value) - } - } - impl ::core::convert::From for ObjectiveCalls { - fn from(value: DepositCall) -> Self { - Self::Deposit(value) - } - } - impl ::core::convert::From for ObjectiveCalls { - fn from(value: DrawCall) -> Self { - Self::Draw(value) - } - } - impl ::core::convert::From for ObjectiveCalls { - fn from(value: FundCall) -> Self { - Self::Fund(value) - } - } - impl ::core::convert::From for ObjectiveCalls { - fn from(value: GetAmountOutCall) -> Self { - Self::GetAmountOut(value) - } - } - impl ::core::convert::From for ObjectiveCalls { - fn from(value: GetBalanceCall) -> Self { - Self::GetBalance(value) - } - } - impl ::core::convert::From for ObjectiveCalls { - fn from(value: GetLiquidityDeltasCall) -> Self { - Self::GetLiquidityDeltas(value) - } - } - impl ::core::convert::From for ObjectiveCalls { - fn from(value: GetMaxLiquidityCall) -> Self { - Self::GetMaxLiquidity(value) - } - } - impl ::core::convert::From for ObjectiveCalls { - fn from(value: GetNetBalanceCall) -> Self { - Self::GetNetBalance(value) - } - } - impl ::core::convert::From for ObjectiveCalls { - fn from(value: GetPairIdCall) -> Self { - Self::GetPairId(value) - } - } - impl ::core::convert::From for ObjectiveCalls { - fn from(value: GetPairNonceCall) -> Self { - Self::GetPairNonce(value) - } - } - impl ::core::convert::From for ObjectiveCalls { - fn from(value: GetPoolNonceCall) -> Self { - Self::GetPoolNonce(value) - } - } - impl ::core::convert::From for ObjectiveCalls { - fn from(value: GetPoolReservesCall) -> Self { - Self::GetPoolReserves(value) - } - } - impl ::core::convert::From for ObjectiveCalls { - fn from(value: GetReserveCall) -> Self { - Self::GetReserve(value) - } - } - impl ::core::convert::From for ObjectiveCalls { - fn from(value: GetVirtualPriceCall) -> Self { - Self::GetVirtualPrice(value) - } - } - impl ::core::convert::From for ObjectiveCalls { - fn from(value: GetVirtualReservesPerLiquidityCall) -> Self { - Self::GetVirtualReservesPerLiquidity(value) - } - } - impl ::core::convert::From for ObjectiveCalls { - fn from(value: MultiprocessCall) -> Self { - Self::Multiprocess(value) - } - } - impl ::core::convert::From for ObjectiveCalls { - fn from(value: PairsCall) -> Self { - Self::Pairs(value) - } - } - impl ::core::convert::From for ObjectiveCalls { - fn from(value: PoolsCall) -> Self { - Self::Pools(value) - } - } - impl ::core::convert::From for ObjectiveCalls { - fn from(value: PositionsCall) -> Self { - Self::Positions(value) - } - } - impl ::core::convert::From for ObjectiveCalls { - fn from(value: SetProtocolFeeCall) -> Self { - Self::SetProtocolFee(value) - } - } - ///Container type for all return fields from the `REGISTRY` function with signature `REGISTRY()` and selector `0x06433b1b` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct RegistryReturn(pub ::ethers::core::types::Address); - ///Container type for all return fields from the `VERSION` function with signature `VERSION()` and selector `0xffa1ad74` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct VersionReturn(pub ::std::string::String); - ///Container type for all return fields from the `WETH` function with signature `WETH()` and selector `0xad5c4648` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct WethReturn(pub ::ethers::core::types::Address); - ///Container type for all return fields from the `checkInvariant` function with signature `checkInvariant(uint64,int256,uint256,uint256,uint256)` and selector `0x2f337da5` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct CheckInvariantReturn { - pub success: bool, - pub next_invariant: ::ethers::core::types::I256, - } - ///Container type for all return fields from the `checkPool` function with signature `checkPool(uint64)` and selector `0xa68aaa41` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct CheckPoolReturn(pub bool); - ///Container type for all return fields from the `checkPosition` function with signature `checkPosition(uint64,address,int256)` and selector `0x2cc6641e` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct CheckPositionReturn(pub bool); - ///Container type for all return fields from the `computeMaxInput` function with signature `computeMaxInput(uint64,bool,uint256,uint256)` and selector `0x989bafba` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct ComputeMaxInputReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `computeReservesFromPrice` function with signature `computeReservesFromPrice(uint64,uint256)` and selector `0xc48d887a` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct ComputeReservesFromPriceReturn { - pub reserve_x: ::ethers::core::types::U256, - pub reserve_y: ::ethers::core::types::U256, - } - ///Container type for all return fields from the `getAmountOut` function with signature `getAmountOut(uint64,bool,uint256)` and selector `0x7dae4890` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetAmountOutReturn { - pub output: ::ethers::core::types::U256, - } - ///Container type for all return fields from the `getBalance` function with signature `getBalance(address,address)` and selector `0xd4fac45d` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetBalanceReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `getLiquidityDeltas` function with signature `getLiquidityDeltas(uint64,int128)` and selector `0x8992f20a` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetLiquidityDeltasReturn { - pub delta_asset: u128, - pub delta_quote: u128, - } - ///Container type for all return fields from the `getMaxLiquidity` function with signature `getMaxLiquidity(uint64,uint256,uint256)` and selector `0xd6b7dec5` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetMaxLiquidityReturn { - pub delta_liquidity: u128, - } - ///Container type for all return fields from the `getNetBalance` function with signature `getNetBalance(address)` and selector `0x4dc68a90` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetNetBalanceReturn(pub ::ethers::core::types::I256); - ///Container type for all return fields from the `getPairId` function with signature `getPairId(address,address)` and selector `0x3f92a339` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetPairIdReturn { - pub pair_id: u32, - } - ///Container type for all return fields from the `getPairNonce` function with signature `getPairNonce()` and selector `0x078888d6` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetPairNonceReturn(pub u32); - ///Container type for all return fields from the `getPoolNonce` function with signature `getPoolNonce(uint24)` and selector `0xa5cd8a49` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetPoolNonceReturn(pub u32); - ///Container type for all return fields from the `getPoolReserves` function with signature `getPoolReserves(uint64)` and selector `0x2afb9df8` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetPoolReservesReturn { - pub delta_asset: ::ethers::core::types::U256, - pub delta_quote: ::ethers::core::types::U256, - } - ///Container type for all return fields from the `getReserve` function with signature `getReserve(address)` and selector `0xc9a396e9` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetReserveReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `getVirtualPrice` function with signature `getVirtualPrice(uint64)` and selector `0x61b7ea6a` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetVirtualPriceReturn { - pub price: ::ethers::core::types::U256, - } - ///Container type for all return fields from the `getVirtualReservesPerLiquidity` function with signature `getVirtualReservesPerLiquidity(uint64)` and selector `0x1a4b905b` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetVirtualReservesPerLiquidityReturn { - pub delta_asset: u128, - pub delta_quote: u128, - } - ///Container type for all return fields from the `pairs` function with signature `pairs(uint24)` and selector `0x5e47663c` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct PairsReturn { - pub token_asset: ::ethers::core::types::Address, - pub decimals_asset: u8, - pub token_quote: ::ethers::core::types::Address, - pub decimals_quote: u8, - } - ///Container type for all return fields from the `pools` function with signature `pools(uint64)` and selector `0x89a5f084` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct PoolsReturn { - pub virtual_x: u128, - pub virtual_y: u128, - pub liquidity: u128, - pub last_timestamp: u32, - pub controller: ::ethers::core::types::Address, - pub invariant_growth_global: ::ethers::core::types::U256, - pub fee_growth_global_asset: ::ethers::core::types::U256, - pub fee_growth_global_quote: ::ethers::core::types::U256, - pub p8: PortfolioCurve, - pub p9: PortfolioPair, - } - ///Container type for all return fields from the `positions` function with signature `positions(address,uint64)` and selector `0xb68513ea` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct PositionsReturn { - pub free_liquidity: u128, - pub last_timestamp: u32, - pub invariant_growth_last: ::ethers::core::types::U256, - pub fee_growth_asset_last: ::ethers::core::types::U256, - pub fee_growth_quote_last: ::ethers::core::types::U256, - pub tokens_owed_asset: u128, - pub tokens_owed_quote: u128, - pub invariant_owed: u128, - } -} diff --git a/crates/bindings/src/portfolio_lib.rs b/crates/bindings/src/portfolio_lib.rs deleted file mode 100644 index 740d7dc5..00000000 --- a/crates/bindings/src/portfolio_lib.rs +++ /dev/null @@ -1,63 +0,0 @@ -pub use portfolio_lib::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types -)] -pub mod portfolio_lib { - #[rustfmt::skip] - const __ABI: &str = "[]"; - ///The parsed JSON ABI of the contract. - pub static PORTFOLIOLIB_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = - ::ethers::contract::Lazy::new(|| { - ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid") - }); - pub struct PortfolioLib(::ethers::contract::Contract); - impl ::core::clone::Clone for PortfolioLib { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for PortfolioLib { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for PortfolioLib { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for PortfolioLib { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(stringify!(PortfolioLib)) - .field(&self.address()) - .finish() - } - } - impl PortfolioLib { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self(::ethers::contract::Contract::new( - address.into(), - PORTFOLIOLIB_ABI.clone(), - client, - )) - } - } - impl From<::ethers::contract::Contract> for PortfolioLib { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } -} diff --git a/crates/bindings/src/portfolio_like.rs b/crates/bindings/src/portfolio_like.rs deleted file mode 100644 index ee2c6719..00000000 --- a/crates/bindings/src/portfolio_like.rs +++ /dev/null @@ -1,163 +0,0 @@ -pub use portfolio_like::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types -)] -pub mod portfolio_like { - #[rustfmt::skip] - const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"draw\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"setProtocolFee\",\"outputs\":[]}]"; - ///The parsed JSON ABI of the contract. - pub static PORTFOLIOLIKE_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = - ::ethers::contract::Lazy::new(|| { - ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid") - }); - pub struct PortfolioLike(::ethers::contract::Contract); - impl ::core::clone::Clone for PortfolioLike { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for PortfolioLike { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for PortfolioLike { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for PortfolioLike { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(stringify!(PortfolioLike)) - .field(&self.address()) - .finish() - } - } - impl PortfolioLike { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self(::ethers::contract::Contract::new( - address.into(), - PORTFOLIOLIKE_ABI.clone(), - client, - )) - } - ///Calls the contract's `draw` (0xad24d6a0) function - pub fn draw( - &self, - p0: ::ethers::core::types::Address, - p1: ::ethers::core::types::U256, - p2: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([173, 36, 214, 160], (p0, p1, p2)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `setProtocolFee` (0x787dce3d) function - pub fn set_protocol_fee( - &self, - p0: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([120, 125, 206, 61], p0) - .expect("method not found (this should never happen)") - } - } - impl From<::ethers::contract::Contract> - for PortfolioLike - { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - ///Container type for all input parameters for the `draw` function with signature `draw(address,uint256,address)` and selector `0xad24d6a0` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "draw", abi = "draw(address,uint256,address)")] - pub struct DrawCall( - pub ::ethers::core::types::Address, - pub ::ethers::core::types::U256, - pub ::ethers::core::types::Address, - ); - ///Container type for all input parameters for the `setProtocolFee` function with signature `setProtocolFee(uint256)` and selector `0x787dce3d` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "setProtocolFee", abi = "setProtocolFee(uint256)")] - pub struct SetProtocolFeeCall(pub ::ethers::core::types::U256); - ///Container type for all of the contract's call - #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] - pub enum PortfolioLikeCalls { - Draw(DrawCall), - SetProtocolFee(SetProtocolFeeCall), - } - impl ::ethers::core::abi::AbiDecode for PortfolioLikeCalls { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Draw(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::SetProtocolFee(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for PortfolioLikeCalls { - fn encode(self) -> Vec { - match self { - Self::Draw(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::SetProtocolFee(element) => ::ethers::core::abi::AbiEncode::encode(element), - } - } - } - impl ::core::fmt::Display for PortfolioLikeCalls { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::Draw(element) => ::core::fmt::Display::fmt(element, f), - Self::SetProtocolFee(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for PortfolioLikeCalls { - fn from(value: DrawCall) -> Self { - Self::Draw(value) - } - } - impl ::core::convert::From for PortfolioLikeCalls { - fn from(value: SetProtocolFeeCall) -> Self { - Self::SetProtocolFee(value) - } - } -} diff --git a/crates/bindings/src/portfolio_virtual.rs b/crates/bindings/src/portfolio_virtual.rs deleted file mode 100644 index 8c0b89c6..00000000 --- a/crates/bindings/src/portfolio_virtual.rs +++ /dev/null @@ -1,2873 +0,0 @@ -pub use portfolio_virtual::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types -)] -pub mod portfolio_virtual { - pub use super::super::shared_types::*; - #[rustfmt::skip] - const __ABI: &str = "[{\"inputs\":[],\"type\":\"error\",\"name\":\"DrawBalance\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"EtherTransferFail\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"delta\",\"type\":\"uint256\",\"components\":[]}],\"type\":\"error\",\"name\":\"InsufficientReserve\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"InvalidBalance\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\",\"components\":[]}],\"type\":\"error\",\"name\":\"InvalidBytesLength\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\",\"components\":[]}],\"type\":\"error\",\"name\":\"InvalidDecimals\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"fee\",\"type\":\"uint16\",\"components\":[]}],\"type\":\"error\",\"name\":\"InvalidFee\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"InvalidInstruction\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"prev\",\"type\":\"int256\",\"components\":[]},{\"internalType\":\"int256\",\"name\":\"next\",\"type\":\"int256\",\"components\":[]}],\"type\":\"error\",\"name\":\"InvalidInvariant\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"pointer\",\"type\":\"uint256\",\"components\":[]}],\"type\":\"error\",\"name\":\"InvalidJump\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"InvalidPair\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"InvalidReentrancy\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"InvalidSettlement\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"InvalidTransfer\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"distance\",\"type\":\"uint256\",\"components\":[]}],\"type\":\"error\",\"name\":\"JitLiquidity\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"int256\",\"name\":\"net\",\"type\":\"int256\",\"components\":[]}],\"type\":\"error\",\"name\":\"NegativeBalance\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"type\":\"error\",\"name\":\"NonExistentPool\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"type\":\"error\",\"name\":\"NonExistentPosition\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"NotController\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"pairId\",\"type\":\"uint24\",\"components\":[]}],\"type\":\"error\",\"name\":\"PairExists\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"PoolExpired\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"SameTokenError\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"ZeroAmounts\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"ZeroInput\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"ZeroLiquidity\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"ZeroOutput\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"ZeroPrice\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"ZeroValue\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaLiquidity\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Allocate\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint16\",\"name\":\"priorityFee\",\"type\":\"uint16\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint16\",\"name\":\"fee\",\"type\":\"uint16\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint16\",\"name\":\"jit\",\"type\":\"uint16\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"ChangeParameters\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"feeAssetDec\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"feeQuoteDec\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true}],\"type\":\"event\",\"name\":\"Collect\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"pairId\",\"type\":\"uint24\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint8\",\"name\":\"decimalsAsset\",\"type\":\"uint8\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint8\",\"name\":\"decimalsQuote\",\"type\":\"uint8\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"CreatePair\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"bool\",\"name\":\"isMutable\",\"type\":\"bool\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"CreatePool\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaLiquidity\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Deallocate\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"DecreaseReserveBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"DecreaseUserBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Deposit\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"IncreaseReserveBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"IncreaseUserBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"sellAsset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"input\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"tokenOut\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"output\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"feeAmountDec\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"int256\",\"name\":\"invariantWad\",\"type\":\"int256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Swap\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"prevFee\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"nextFee\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"UpdateProtocolFee\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\",\"name\":\"VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"WETH\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"__account__\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"settled\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"priorityFee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"fee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"jit\",\"type\":\"uint16\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"changeParameters\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"int256\",\"name\":\"invariant\",\"type\":\"int256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"reserveX\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"reserveY\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"checkInvariant\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\",\"components\":[]},{\"internalType\":\"int256\",\"name\":\"nextInvariant\",\"type\":\"int256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"checkPool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"int256\",\"name\":\"delta\",\"type\":\"int256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"checkPosition\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"bool\",\"name\":\"sellAsset\",\"type\":\"bool\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"reserveIn\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"computeMaxInput\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"computeReservesFromPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"reserveX\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"reserveY\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"deposit\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"draw\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"fund\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"bool\",\"name\":\"sellAsset\",\"type\":\"bool\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getAmountOut\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"output\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"int128\",\"name\":\"deltaLiquidity\",\"type\":\"int128\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getLiquidityDeltas\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"deltaAsset\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"deltaQuote\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getMaxLiquidity\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"deltaLiquidity\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getNetBalance\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPairId\",\"outputs\":[{\"internalType\":\"uint24\",\"name\":\"\",\"type\":\"uint24\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPairNonce\",\"outputs\":[{\"internalType\":\"uint24\",\"name\":\"\",\"type\":\"uint24\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"\",\"type\":\"uint24\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPoolNonce\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPoolReserves\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getReserve\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getVirtualPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getVirtualReservesPerLiquidity\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"deltaAsset\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"deltaQuote\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\",\"components\":[]}],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"multiprocess\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"\",\"type\":\"uint24\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"pairs\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"tokenAsset\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsAsset\",\"type\":\"uint8\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"tokenQuote\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsQuote\",\"type\":\"uint8\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"pools\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"virtualX\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"virtualY\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"liquidity\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint32\",\"name\":\"lastTimestamp\",\"type\":\"uint32\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"controller\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"invariantGrowthGlobal\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthGlobalAsset\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthGlobalQuote\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"struct PortfolioCurve\",\"name\":\"params\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"uint128\",\"name\":\"maxPrice\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"jit\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"fee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"duration\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"volatility\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"priorityFee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint32\",\"name\":\"createdAt\",\"type\":\"uint32\",\"components\":[]},{\"internalType\":\"bool\",\"name\":\"perpetual\",\"type\":\"bool\",\"components\":[]}]},{\"internalType\":\"struct PortfolioPair\",\"name\":\"pair\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"address\",\"name\":\"tokenAsset\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsAsset\",\"type\":\"uint8\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"tokenQuote\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsQuote\",\"type\":\"uint8\",\"components\":[]}]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"positions\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"freeLiquidity\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint32\",\"name\":\"lastTimestamp\",\"type\":\"uint32\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"invariantGrowthLast\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthAssetLast\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthQuoteLast\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"tokensOwedAsset\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"tokensOwedQuote\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"invariantOwed\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"setProtocolFee\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"payable\",\"type\":\"receive\",\"outputs\":[]}]"; - ///The parsed JSON ABI of the contract. - pub static PORTFOLIOVIRTUAL_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = - ::ethers::contract::Lazy::new(|| { - ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid") - }); - pub struct PortfolioVirtual(::ethers::contract::Contract); - impl ::core::clone::Clone for PortfolioVirtual { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for PortfolioVirtual { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for PortfolioVirtual { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for PortfolioVirtual { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(stringify!(PortfolioVirtual)) - .field(&self.address()) - .finish() - } - } - impl PortfolioVirtual { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self(::ethers::contract::Contract::new( - address.into(), - PORTFOLIOVIRTUAL_ABI.clone(), - client, - )) - } - ///Calls the contract's `REGISTRY` (0x06433b1b) function - pub fn registry( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([6, 67, 59, 27], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `VERSION` (0xffa1ad74) function - pub fn version( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([255, 161, 173, 116], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `WETH` (0xad5c4648) function - pub fn weth( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([173, 92, 70, 72], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `__account__` (0xda31ee54) function - pub fn account(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([218, 49, 238, 84], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `changeParameters` (0xaf777855) function - pub fn change_parameters( - &self, - pool_id: u64, - priority_fee: u16, - fee: u16, - jit: u16, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([175, 119, 120, 85], (pool_id, priority_fee, fee, jit)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `checkInvariant` (0x2f337da5) function - pub fn check_invariant( - &self, - pool_id: u64, - invariant: ::ethers::core::types::I256, - reserve_x: ::ethers::core::types::U256, - reserve_y: ::ethers::core::types::U256, - timestamp: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall - { - self.0 - .method_hash( - [47, 51, 125, 165], - (pool_id, invariant, reserve_x, reserve_y, timestamp), - ) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `checkPool` (0xa68aaa41) function - pub fn check_pool( - &self, - pool_id: u64, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([166, 138, 170, 65], pool_id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `checkPosition` (0x2cc6641e) function - pub fn check_position( - &self, - pool_id: u64, - owner: ::ethers::core::types::Address, - delta: ::ethers::core::types::I256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([44, 198, 100, 30], (pool_id, owner, delta)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `computeMaxInput` (0x989bafba) function - pub fn compute_max_input( - &self, - pool_id: u64, - sell_asset: bool, - reserve_in: ::ethers::core::types::U256, - liquidity: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash( - [152, 155, 175, 186], - (pool_id, sell_asset, reserve_in, liquidity), - ) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `computeReservesFromPrice` (0xc48d887a) function - pub fn compute_reserves_from_price( - &self, - pool_id: u64, - price: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall< - M, - (::ethers::core::types::U256, ::ethers::core::types::U256), - > { - self.0 - .method_hash([196, 141, 136, 122], (pool_id, price)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `deposit` (0xd0e30db0) function - pub fn deposit(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([208, 227, 13, 176], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `draw` (0xad24d6a0) function - pub fn draw( - &self, - token: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - to: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([173, 36, 214, 160], (token, amount, to)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `fund` (0x7b1837de) function - pub fn fund( - &self, - token: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([123, 24, 55, 222], (token, amount)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getAmountOut` (0x7dae4890) function - pub fn get_amount_out( - &self, - pool_id: u64, - sell_asset: bool, - amount_in: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([125, 174, 72, 144], (pool_id, sell_asset, amount_in)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getBalance` (0xd4fac45d) function - pub fn get_balance( - &self, - owner: ::ethers::core::types::Address, - token: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([212, 250, 196, 93], (owner, token)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getLiquidityDeltas` (0x8992f20a) function - pub fn get_liquidity_deltas( - &self, - pool_id: u64, - delta_liquidity: i128, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([137, 146, 242, 10], (pool_id, delta_liquidity)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getMaxLiquidity` (0xd6b7dec5) function - pub fn get_max_liquidity( - &self, - pool_id: u64, - amount_0: ::ethers::core::types::U256, - amount_1: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([214, 183, 222, 197], (pool_id, amount_0, amount_1)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getNetBalance` (0x4dc68a90) function - pub fn get_net_balance( - &self, - token: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([77, 198, 138, 144], token) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getPairId` (0x3f92a339) function - pub fn get_pair_id( - &self, - p0: ::ethers::core::types::Address, - p1: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([63, 146, 163, 57], (p0, p1)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getPairNonce` (0x078888d6) function - pub fn get_pair_nonce(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([7, 136, 136, 214], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getPoolNonce` (0xa5cd8a49) function - pub fn get_pool_nonce( - &self, - p0: u32, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([165, 205, 138, 73], p0) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getPoolReserves` (0x2afb9df8) function - pub fn get_pool_reserves( - &self, - pool_id: u64, - ) -> ::ethers::contract::builders::ContractCall< - M, - (::ethers::core::types::U256, ::ethers::core::types::U256), - > { - self.0 - .method_hash([42, 251, 157, 248], pool_id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getReserve` (0xc9a396e9) function - pub fn get_reserve( - &self, - token: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([201, 163, 150, 233], token) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getVirtualPrice` (0x61b7ea6a) function - pub fn get_virtual_price( - &self, - pool_id: u64, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([97, 183, 234, 106], pool_id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getVirtualReservesPerLiquidity` (0x1a4b905b) function - pub fn get_virtual_reserves_per_liquidity( - &self, - pool_id: u64, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([26, 75, 144, 91], pool_id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `multiprocess` (0xa0fdf413) function - pub fn multiprocess( - &self, - data: ::ethers::core::types::Bytes, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([160, 253, 244, 19], data) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `pairs` (0x5e47663c) function - pub fn pairs( - &self, - p0: u32, - ) -> ::ethers::contract::builders::ContractCall< - M, - ( - ::ethers::core::types::Address, - u8, - ::ethers::core::types::Address, - u8, - ), - > { - self.0 - .method_hash([94, 71, 102, 60], p0) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `pools` (0x89a5f084) function - pub fn pools( - &self, - p0: u64, - ) -> ::ethers::contract::builders::ContractCall< - M, - ( - u128, - u128, - u128, - u32, - ::ethers::core::types::Address, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - PortfolioCurve, - PortfolioPair, - ), - > { - self.0 - .method_hash([137, 165, 240, 132], p0) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `positions` (0xb68513ea) function - pub fn positions( - &self, - p0: ::ethers::core::types::Address, - p1: u64, - ) -> ::ethers::contract::builders::ContractCall< - M, - ( - u128, - u32, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - u128, - u128, - u128, - ), - > { - self.0 - .method_hash([182, 133, 19, 234], (p0, p1)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `setProtocolFee` (0x787dce3d) function - pub fn set_protocol_fee( - &self, - fee: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([120, 125, 206, 61], fee) - .expect("method not found (this should never happen)") - } - ///Gets the contract's `Allocate` event - pub fn allocate_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, AllocateFilter> { - self.0.event() - } - ///Gets the contract's `ChangeParameters` event - pub fn change_parameters_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, ChangeParametersFilter> - { - self.0.event() - } - ///Gets the contract's `Collect` event - pub fn collect_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, CollectFilter> { - self.0.event() - } - ///Gets the contract's `CreatePair` event - pub fn create_pair_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, CreatePairFilter> { - self.0.event() - } - ///Gets the contract's `CreatePool` event - pub fn create_pool_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, CreatePoolFilter> { - self.0.event() - } - ///Gets the contract's `Deallocate` event - pub fn deallocate_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, DeallocateFilter> { - self.0.event() - } - ///Gets the contract's `DecreaseReserveBalance` event - pub fn decrease_reserve_balance_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, DecreaseReserveBalanceFilter> - { - self.0.event() - } - ///Gets the contract's `DecreaseUserBalance` event - pub fn decrease_user_balance_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, DecreaseUserBalanceFilter> - { - self.0.event() - } - ///Gets the contract's `Deposit` event - pub fn deposit_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, DepositFilter> { - self.0.event() - } - ///Gets the contract's `IncreaseReserveBalance` event - pub fn increase_reserve_balance_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, IncreaseReserveBalanceFilter> - { - self.0.event() - } - ///Gets the contract's `IncreaseUserBalance` event - pub fn increase_user_balance_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, IncreaseUserBalanceFilter> - { - self.0.event() - } - ///Gets the contract's `Swap` event - pub fn swap_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, SwapFilter> { - self.0.event() - } - ///Gets the contract's `UpdateProtocolFee` event - pub fn update_protocol_fee_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, UpdateProtocolFeeFilter> - { - self.0.event() - } - /// Returns an `Event` builder for all the events of this contract. - pub fn events( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, PortfolioVirtualEvents> - { - self.0 - .event_with_filter(::core::default::Default::default()) - } - } - impl From<::ethers::contract::Contract> - for PortfolioVirtual - { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - ///Custom Error type `DrawBalance` with signature `DrawBalance()` and selector `0xc9f2f26c` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "DrawBalance", abi = "DrawBalance()")] - pub struct DrawBalance; - ///Custom Error type `EtherTransferFail` with signature `EtherTransferFail()` and selector `0x75f42683` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "EtherTransferFail", abi = "EtherTransferFail()")] - pub struct EtherTransferFail; - ///Custom Error type `InsufficientReserve` with signature `InsufficientReserve(uint256,uint256)` and selector `0x315276c9` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror( - name = "InsufficientReserve", - abi = "InsufficientReserve(uint256,uint256)" - )] - pub struct InsufficientReserve { - pub amount: ::ethers::core::types::U256, - pub delta: ::ethers::core::types::U256, - } - ///Custom Error type `InvalidBalance` with signature `InvalidBalance()` and selector `0xc52e3eff` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "InvalidBalance", abi = "InvalidBalance()")] - pub struct InvalidBalance; - ///Custom Error type `InvalidBytesLength` with signature `InvalidBytesLength(uint256,uint256)` and selector `0xe19dc95e` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror( - name = "InvalidBytesLength", - abi = "InvalidBytesLength(uint256,uint256)" - )] - pub struct InvalidBytesLength { - pub expected: ::ethers::core::types::U256, - pub length: ::ethers::core::types::U256, - } - ///Custom Error type `InvalidDecimals` with signature `InvalidDecimals(uint8)` and selector `0xca950391` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "InvalidDecimals", abi = "InvalidDecimals(uint8)")] - pub struct InvalidDecimals { - pub decimals: u8, - } - ///Custom Error type `InvalidFee` with signature `InvalidFee(uint16)` and selector `0xf6f4a38f` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "InvalidFee", abi = "InvalidFee(uint16)")] - pub struct InvalidFee { - pub fee: u16, - } - ///Custom Error type `InvalidInstruction` with signature `InvalidInstruction()` and selector `0xd8c48f68` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "InvalidInstruction", abi = "InvalidInstruction()")] - pub struct InvalidInstruction; - ///Custom Error type `InvalidInvariant` with signature `InvalidInvariant(int256,int256)` and selector `0x2125a168` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "InvalidInvariant", abi = "InvalidInvariant(int256,int256)")] - pub struct InvalidInvariant { - pub prev: ::ethers::core::types::I256, - pub next: ::ethers::core::types::I256, - } - ///Custom Error type `InvalidJump` with signature `InvalidJump(uint256)` and selector `0x80f63bd1` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "InvalidJump", abi = "InvalidJump(uint256)")] - pub struct InvalidJump { - pub pointer: ::ethers::core::types::U256, - } - ///Custom Error type `InvalidPair` with signature `InvalidPair()` and selector `0x1e4f7d8c` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "InvalidPair", abi = "InvalidPair()")] - pub struct InvalidPair; - ///Custom Error type `InvalidReentrancy` with signature `InvalidReentrancy()` and selector `0xffc72209` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "InvalidReentrancy", abi = "InvalidReentrancy()")] - pub struct InvalidReentrancy; - ///Custom Error type `InvalidSettlement` with signature `InvalidSettlement()` and selector `0x115931c4` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "InvalidSettlement", abi = "InvalidSettlement()")] - pub struct InvalidSettlement; - ///Custom Error type `InvalidTransfer` with signature `InvalidTransfer()` and selector `0x2f352531` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "InvalidTransfer", abi = "InvalidTransfer()")] - pub struct InvalidTransfer; - ///Custom Error type `JitLiquidity` with signature `JitLiquidity(uint256)` and selector `0x9a231b2c` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "JitLiquidity", abi = "JitLiquidity(uint256)")] - pub struct JitLiquidity { - pub distance: ::ethers::core::types::U256, - } - ///Custom Error type `NegativeBalance` with signature `NegativeBalance(address,int256)` and selector `0xfe239baa` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "NegativeBalance", abi = "NegativeBalance(address,int256)")] - pub struct NegativeBalance { - pub token: ::ethers::core::types::Address, - pub net: ::ethers::core::types::I256, - } - ///Custom Error type `NonExistentPool` with signature `NonExistentPool(uint64)` and selector `0xd4480d46` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "NonExistentPool", abi = "NonExistentPool(uint64)")] - pub struct NonExistentPool { - pub pool_id: u64, - } - ///Custom Error type `NonExistentPosition` with signature `NonExistentPosition(address,uint64)` and selector `0x5f3605b6` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror( - name = "NonExistentPosition", - abi = "NonExistentPosition(address,uint64)" - )] - pub struct NonExistentPosition { - pub owner: ::ethers::core::types::Address, - pub pool_id: u64, - } - ///Custom Error type `NotController` with signature `NotController()` and selector `0x23019e67` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "NotController", abi = "NotController()")] - pub struct NotController; - ///Custom Error type `PairExists` with signature `PairExists(uint24)` and selector `0x3325fa77` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "PairExists", abi = "PairExists(uint24)")] - pub struct PairExists { - pub pair_id: u32, - } - ///Custom Error type `PoolExpired` with signature `PoolExpired()` and selector `0x398b36db` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "PoolExpired", abi = "PoolExpired()")] - pub struct PoolExpired; - ///Custom Error type `SameTokenError` with signature `SameTokenError()` and selector `0xec38b794` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "SameTokenError", abi = "SameTokenError()")] - pub struct SameTokenError; - ///Custom Error type `ZeroAmounts` with signature `ZeroAmounts()` and selector `0x213c7cc5` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "ZeroAmounts", abi = "ZeroAmounts()")] - pub struct ZeroAmounts; - ///Custom Error type `ZeroInput` with signature `ZeroInput()` and selector `0xaf458c07` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "ZeroInput", abi = "ZeroInput()")] - pub struct ZeroInput; - ///Custom Error type `ZeroLiquidity` with signature `ZeroLiquidity()` and selector `0x10074548` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "ZeroLiquidity", abi = "ZeroLiquidity()")] - pub struct ZeroLiquidity; - ///Custom Error type `ZeroOutput` with signature `ZeroOutput()` and selector `0xe618637e` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "ZeroOutput", abi = "ZeroOutput()")] - pub struct ZeroOutput; - ///Custom Error type `ZeroPrice` with signature `ZeroPrice()` and selector `0x4dfba023` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "ZeroPrice", abi = "ZeroPrice()")] - pub struct ZeroPrice; - ///Custom Error type `ZeroValue` with signature `ZeroValue()` and selector `0x7c946ed7` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "ZeroValue", abi = "ZeroValue()")] - pub struct ZeroValue; - ///Container type for all of the contract's custom errors - #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] - pub enum PortfolioVirtualErrors { - DrawBalance(DrawBalance), - EtherTransferFail(EtherTransferFail), - InsufficientReserve(InsufficientReserve), - InvalidBalance(InvalidBalance), - InvalidBytesLength(InvalidBytesLength), - InvalidDecimals(InvalidDecimals), - InvalidFee(InvalidFee), - InvalidInstruction(InvalidInstruction), - InvalidInvariant(InvalidInvariant), - InvalidJump(InvalidJump), - InvalidPair(InvalidPair), - InvalidReentrancy(InvalidReentrancy), - InvalidSettlement(InvalidSettlement), - InvalidTransfer(InvalidTransfer), - JitLiquidity(JitLiquidity), - NegativeBalance(NegativeBalance), - NonExistentPool(NonExistentPool), - NonExistentPosition(NonExistentPosition), - NotController(NotController), - PairExists(PairExists), - PoolExpired(PoolExpired), - SameTokenError(SameTokenError), - ZeroAmounts(ZeroAmounts), - ZeroInput(ZeroInput), - ZeroLiquidity(ZeroLiquidity), - ZeroOutput(ZeroOutput), - ZeroPrice(ZeroPrice), - ZeroValue(ZeroValue), - } - impl ::ethers::core::abi::AbiDecode for PortfolioVirtualErrors { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) = ::decode(data) { - return Ok(Self::DrawBalance(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::EtherTransferFail(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::InsufficientReserve(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::InvalidBalance(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::InvalidBytesLength(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::InvalidDecimals(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::InvalidFee(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::InvalidInstruction(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::InvalidInvariant(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::InvalidJump(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::InvalidPair(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::InvalidReentrancy(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::InvalidSettlement(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::InvalidTransfer(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::JitLiquidity(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::NegativeBalance(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::NonExistentPool(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::NonExistentPosition(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::NotController(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::PairExists(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::PoolExpired(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::SameTokenError(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::ZeroAmounts(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::ZeroInput(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::ZeroLiquidity(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::ZeroOutput(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::ZeroPrice(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::ZeroValue(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for PortfolioVirtualErrors { - fn encode(self) -> ::std::vec::Vec { - match self { - Self::DrawBalance(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::EtherTransferFail(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::InsufficientReserve(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::InvalidBalance(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::InvalidBytesLength(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::InvalidDecimals(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::InvalidFee(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::InvalidInstruction(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::InvalidInvariant(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::InvalidJump(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::InvalidPair(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::InvalidReentrancy(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::InvalidSettlement(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::InvalidTransfer(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::JitLiquidity(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::NegativeBalance(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::NonExistentPool(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::NonExistentPosition(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::NotController(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::PairExists(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::PoolExpired(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::SameTokenError(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::ZeroAmounts(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::ZeroInput(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::ZeroLiquidity(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::ZeroOutput(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::ZeroPrice(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::ZeroValue(element) => ::ethers::core::abi::AbiEncode::encode(element), - } - } - } - impl ::core::fmt::Display for PortfolioVirtualErrors { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::DrawBalance(element) => ::core::fmt::Display::fmt(element, f), - Self::EtherTransferFail(element) => ::core::fmt::Display::fmt(element, f), - Self::InsufficientReserve(element) => ::core::fmt::Display::fmt(element, f), - Self::InvalidBalance(element) => ::core::fmt::Display::fmt(element, f), - Self::InvalidBytesLength(element) => ::core::fmt::Display::fmt(element, f), - Self::InvalidDecimals(element) => ::core::fmt::Display::fmt(element, f), - Self::InvalidFee(element) => ::core::fmt::Display::fmt(element, f), - Self::InvalidInstruction(element) => ::core::fmt::Display::fmt(element, f), - Self::InvalidInvariant(element) => ::core::fmt::Display::fmt(element, f), - Self::InvalidJump(element) => ::core::fmt::Display::fmt(element, f), - Self::InvalidPair(element) => ::core::fmt::Display::fmt(element, f), - Self::InvalidReentrancy(element) => ::core::fmt::Display::fmt(element, f), - Self::InvalidSettlement(element) => ::core::fmt::Display::fmt(element, f), - Self::InvalidTransfer(element) => ::core::fmt::Display::fmt(element, f), - Self::JitLiquidity(element) => ::core::fmt::Display::fmt(element, f), - Self::NegativeBalance(element) => ::core::fmt::Display::fmt(element, f), - Self::NonExistentPool(element) => ::core::fmt::Display::fmt(element, f), - Self::NonExistentPosition(element) => ::core::fmt::Display::fmt(element, f), - Self::NotController(element) => ::core::fmt::Display::fmt(element, f), - Self::PairExists(element) => ::core::fmt::Display::fmt(element, f), - Self::PoolExpired(element) => ::core::fmt::Display::fmt(element, f), - Self::SameTokenError(element) => ::core::fmt::Display::fmt(element, f), - Self::ZeroAmounts(element) => ::core::fmt::Display::fmt(element, f), - Self::ZeroInput(element) => ::core::fmt::Display::fmt(element, f), - Self::ZeroLiquidity(element) => ::core::fmt::Display::fmt(element, f), - Self::ZeroOutput(element) => ::core::fmt::Display::fmt(element, f), - Self::ZeroPrice(element) => ::core::fmt::Display::fmt(element, f), - Self::ZeroValue(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for PortfolioVirtualErrors { - fn from(value: DrawBalance) -> Self { - Self::DrawBalance(value) - } - } - impl ::core::convert::From for PortfolioVirtualErrors { - fn from(value: EtherTransferFail) -> Self { - Self::EtherTransferFail(value) - } - } - impl ::core::convert::From for PortfolioVirtualErrors { - fn from(value: InsufficientReserve) -> Self { - Self::InsufficientReserve(value) - } - } - impl ::core::convert::From for PortfolioVirtualErrors { - fn from(value: InvalidBalance) -> Self { - Self::InvalidBalance(value) - } - } - impl ::core::convert::From for PortfolioVirtualErrors { - fn from(value: InvalidBytesLength) -> Self { - Self::InvalidBytesLength(value) - } - } - impl ::core::convert::From for PortfolioVirtualErrors { - fn from(value: InvalidDecimals) -> Self { - Self::InvalidDecimals(value) - } - } - impl ::core::convert::From for PortfolioVirtualErrors { - fn from(value: InvalidFee) -> Self { - Self::InvalidFee(value) - } - } - impl ::core::convert::From for PortfolioVirtualErrors { - fn from(value: InvalidInstruction) -> Self { - Self::InvalidInstruction(value) - } - } - impl ::core::convert::From for PortfolioVirtualErrors { - fn from(value: InvalidInvariant) -> Self { - Self::InvalidInvariant(value) - } - } - impl ::core::convert::From for PortfolioVirtualErrors { - fn from(value: InvalidJump) -> Self { - Self::InvalidJump(value) - } - } - impl ::core::convert::From for PortfolioVirtualErrors { - fn from(value: InvalidPair) -> Self { - Self::InvalidPair(value) - } - } - impl ::core::convert::From for PortfolioVirtualErrors { - fn from(value: InvalidReentrancy) -> Self { - Self::InvalidReentrancy(value) - } - } - impl ::core::convert::From for PortfolioVirtualErrors { - fn from(value: InvalidSettlement) -> Self { - Self::InvalidSettlement(value) - } - } - impl ::core::convert::From for PortfolioVirtualErrors { - fn from(value: InvalidTransfer) -> Self { - Self::InvalidTransfer(value) - } - } - impl ::core::convert::From for PortfolioVirtualErrors { - fn from(value: JitLiquidity) -> Self { - Self::JitLiquidity(value) - } - } - impl ::core::convert::From for PortfolioVirtualErrors { - fn from(value: NegativeBalance) -> Self { - Self::NegativeBalance(value) - } - } - impl ::core::convert::From for PortfolioVirtualErrors { - fn from(value: NonExistentPool) -> Self { - Self::NonExistentPool(value) - } - } - impl ::core::convert::From for PortfolioVirtualErrors { - fn from(value: NonExistentPosition) -> Self { - Self::NonExistentPosition(value) - } - } - impl ::core::convert::From for PortfolioVirtualErrors { - fn from(value: NotController) -> Self { - Self::NotController(value) - } - } - impl ::core::convert::From for PortfolioVirtualErrors { - fn from(value: PairExists) -> Self { - Self::PairExists(value) - } - } - impl ::core::convert::From for PortfolioVirtualErrors { - fn from(value: PoolExpired) -> Self { - Self::PoolExpired(value) - } - } - impl ::core::convert::From for PortfolioVirtualErrors { - fn from(value: SameTokenError) -> Self { - Self::SameTokenError(value) - } - } - impl ::core::convert::From for PortfolioVirtualErrors { - fn from(value: ZeroAmounts) -> Self { - Self::ZeroAmounts(value) - } - } - impl ::core::convert::From for PortfolioVirtualErrors { - fn from(value: ZeroInput) -> Self { - Self::ZeroInput(value) - } - } - impl ::core::convert::From for PortfolioVirtualErrors { - fn from(value: ZeroLiquidity) -> Self { - Self::ZeroLiquidity(value) - } - } - impl ::core::convert::From for PortfolioVirtualErrors { - fn from(value: ZeroOutput) -> Self { - Self::ZeroOutput(value) - } - } - impl ::core::convert::From for PortfolioVirtualErrors { - fn from(value: ZeroPrice) -> Self { - Self::ZeroPrice(value) - } - } - impl ::core::convert::From for PortfolioVirtualErrors { - fn from(value: ZeroValue) -> Self { - Self::ZeroValue(value) - } - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "Allocate", - abi = "Allocate(uint64,address,address,uint256,uint256,uint256)" - )] - pub struct AllocateFilter { - #[ethevent(indexed)] - pub pool_id: u64, - #[ethevent(indexed)] - pub asset: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub quote: ::ethers::core::types::Address, - pub delta_asset: ::ethers::core::types::U256, - pub delta_quote: ::ethers::core::types::U256, - pub delta_liquidity: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "ChangeParameters", - abi = "ChangeParameters(uint64,uint16,uint16,uint16)" - )] - pub struct ChangeParametersFilter { - #[ethevent(indexed)] - pub pool_id: u64, - #[ethevent(indexed)] - pub priority_fee: u16, - #[ethevent(indexed)] - pub fee: u16, - pub jit: u16, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "Collect", - abi = "Collect(uint64,address,uint256,address,uint256,address)" - )] - pub struct CollectFilter { - pub pool_id: u64, - #[ethevent(indexed)] - pub account: ::ethers::core::types::Address, - pub fee_asset_dec: ::ethers::core::types::U256, - #[ethevent(indexed)] - pub asset: ::ethers::core::types::Address, - pub fee_quote_dec: ::ethers::core::types::U256, - #[ethevent(indexed)] - pub quote: ::ethers::core::types::Address, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "CreatePair", - abi = "CreatePair(uint24,address,address,uint8,uint8)" - )] - pub struct CreatePairFilter { - #[ethevent(indexed)] - pub pair_id: u32, - #[ethevent(indexed)] - pub asset: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub quote: ::ethers::core::types::Address, - pub decimals_asset: u8, - pub decimals_quote: u8, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "CreatePool", - abi = "CreatePool(uint64,bool,address,address,uint256)" - )] - pub struct CreatePoolFilter { - #[ethevent(indexed)] - pub pool_id: u64, - pub is_mutable: bool, - #[ethevent(indexed)] - pub asset: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub quote: ::ethers::core::types::Address, - pub price: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "Deallocate", - abi = "Deallocate(uint64,address,address,uint256,uint256,uint256)" - )] - pub struct DeallocateFilter { - #[ethevent(indexed)] - pub pool_id: u64, - #[ethevent(indexed)] - pub asset: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub quote: ::ethers::core::types::Address, - pub delta_asset: ::ethers::core::types::U256, - pub delta_quote: ::ethers::core::types::U256, - pub delta_liquidity: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "DecreaseReserveBalance", - abi = "DecreaseReserveBalance(address,uint256)" - )] - pub struct DecreaseReserveBalanceFilter { - #[ethevent(indexed)] - pub token: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "DecreaseUserBalance", - abi = "DecreaseUserBalance(address,address,uint256)" - )] - pub struct DecreaseUserBalanceFilter { - #[ethevent(indexed)] - pub account: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub token: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent(name = "Deposit", abi = "Deposit(address,uint256)")] - pub struct DepositFilter { - #[ethevent(indexed)] - pub account: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "IncreaseReserveBalance", - abi = "IncreaseReserveBalance(address,uint256)" - )] - pub struct IncreaseReserveBalanceFilter { - #[ethevent(indexed)] - pub token: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "IncreaseUserBalance", - abi = "IncreaseUserBalance(address,address,uint256)" - )] - pub struct IncreaseUserBalanceFilter { - #[ethevent(indexed)] - pub account: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub token: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "Swap", - abi = "Swap(uint64,uint256,address,uint256,address,uint256,uint256,int256)" - )] - pub struct SwapFilter { - #[ethevent(indexed)] - pub pool_id: u64, - pub price: ::ethers::core::types::U256, - #[ethevent(indexed)] - pub sell_asset: ::ethers::core::types::Address, - pub input: ::ethers::core::types::U256, - #[ethevent(indexed)] - pub token_out: ::ethers::core::types::Address, - pub output: ::ethers::core::types::U256, - pub fee_amount_dec: ::ethers::core::types::U256, - pub invariant_wad: ::ethers::core::types::I256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent(name = "UpdateProtocolFee", abi = "UpdateProtocolFee(uint256,uint256)")] - pub struct UpdateProtocolFeeFilter { - pub prev_fee: ::ethers::core::types::U256, - pub next_fee: ::ethers::core::types::U256, - } - ///Container type for all of the contract's events - #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] - pub enum PortfolioVirtualEvents { - AllocateFilter(AllocateFilter), - ChangeParametersFilter(ChangeParametersFilter), - CollectFilter(CollectFilter), - CreatePairFilter(CreatePairFilter), - CreatePoolFilter(CreatePoolFilter), - DeallocateFilter(DeallocateFilter), - DecreaseReserveBalanceFilter(DecreaseReserveBalanceFilter), - DecreaseUserBalanceFilter(DecreaseUserBalanceFilter), - DepositFilter(DepositFilter), - IncreaseReserveBalanceFilter(IncreaseReserveBalanceFilter), - IncreaseUserBalanceFilter(IncreaseUserBalanceFilter), - SwapFilter(SwapFilter), - UpdateProtocolFeeFilter(UpdateProtocolFeeFilter), - } - impl ::ethers::contract::EthLogDecode for PortfolioVirtualEvents { - fn decode_log( - log: &::ethers::core::abi::RawLog, - ) -> ::core::result::Result { - if let Ok(decoded) = AllocateFilter::decode_log(log) { - return Ok(PortfolioVirtualEvents::AllocateFilter(decoded)); - } - if let Ok(decoded) = ChangeParametersFilter::decode_log(log) { - return Ok(PortfolioVirtualEvents::ChangeParametersFilter(decoded)); - } - if let Ok(decoded) = CollectFilter::decode_log(log) { - return Ok(PortfolioVirtualEvents::CollectFilter(decoded)); - } - if let Ok(decoded) = CreatePairFilter::decode_log(log) { - return Ok(PortfolioVirtualEvents::CreatePairFilter(decoded)); - } - if let Ok(decoded) = CreatePoolFilter::decode_log(log) { - return Ok(PortfolioVirtualEvents::CreatePoolFilter(decoded)); - } - if let Ok(decoded) = DeallocateFilter::decode_log(log) { - return Ok(PortfolioVirtualEvents::DeallocateFilter(decoded)); - } - if let Ok(decoded) = DecreaseReserveBalanceFilter::decode_log(log) { - return Ok(PortfolioVirtualEvents::DecreaseReserveBalanceFilter( - decoded, - )); - } - if let Ok(decoded) = DecreaseUserBalanceFilter::decode_log(log) { - return Ok(PortfolioVirtualEvents::DecreaseUserBalanceFilter(decoded)); - } - if let Ok(decoded) = DepositFilter::decode_log(log) { - return Ok(PortfolioVirtualEvents::DepositFilter(decoded)); - } - if let Ok(decoded) = IncreaseReserveBalanceFilter::decode_log(log) { - return Ok(PortfolioVirtualEvents::IncreaseReserveBalanceFilter( - decoded, - )); - } - if let Ok(decoded) = IncreaseUserBalanceFilter::decode_log(log) { - return Ok(PortfolioVirtualEvents::IncreaseUserBalanceFilter(decoded)); - } - if let Ok(decoded) = SwapFilter::decode_log(log) { - return Ok(PortfolioVirtualEvents::SwapFilter(decoded)); - } - if let Ok(decoded) = UpdateProtocolFeeFilter::decode_log(log) { - return Ok(PortfolioVirtualEvents::UpdateProtocolFeeFilter(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData) - } - } - impl ::core::fmt::Display for PortfolioVirtualEvents { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::AllocateFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::ChangeParametersFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::CollectFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::CreatePairFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::CreatePoolFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::DeallocateFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::DecreaseReserveBalanceFilter(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::DecreaseUserBalanceFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::DepositFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::IncreaseReserveBalanceFilter(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::IncreaseUserBalanceFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::SwapFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::UpdateProtocolFeeFilter(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for PortfolioVirtualEvents { - fn from(value: AllocateFilter) -> Self { - Self::AllocateFilter(value) - } - } - impl ::core::convert::From for PortfolioVirtualEvents { - fn from(value: ChangeParametersFilter) -> Self { - Self::ChangeParametersFilter(value) - } - } - impl ::core::convert::From for PortfolioVirtualEvents { - fn from(value: CollectFilter) -> Self { - Self::CollectFilter(value) - } - } - impl ::core::convert::From for PortfolioVirtualEvents { - fn from(value: CreatePairFilter) -> Self { - Self::CreatePairFilter(value) - } - } - impl ::core::convert::From for PortfolioVirtualEvents { - fn from(value: CreatePoolFilter) -> Self { - Self::CreatePoolFilter(value) - } - } - impl ::core::convert::From for PortfolioVirtualEvents { - fn from(value: DeallocateFilter) -> Self { - Self::DeallocateFilter(value) - } - } - impl ::core::convert::From for PortfolioVirtualEvents { - fn from(value: DecreaseReserveBalanceFilter) -> Self { - Self::DecreaseReserveBalanceFilter(value) - } - } - impl ::core::convert::From for PortfolioVirtualEvents { - fn from(value: DecreaseUserBalanceFilter) -> Self { - Self::DecreaseUserBalanceFilter(value) - } - } - impl ::core::convert::From for PortfolioVirtualEvents { - fn from(value: DepositFilter) -> Self { - Self::DepositFilter(value) - } - } - impl ::core::convert::From for PortfolioVirtualEvents { - fn from(value: IncreaseReserveBalanceFilter) -> Self { - Self::IncreaseReserveBalanceFilter(value) - } - } - impl ::core::convert::From for PortfolioVirtualEvents { - fn from(value: IncreaseUserBalanceFilter) -> Self { - Self::IncreaseUserBalanceFilter(value) - } - } - impl ::core::convert::From for PortfolioVirtualEvents { - fn from(value: SwapFilter) -> Self { - Self::SwapFilter(value) - } - } - impl ::core::convert::From for PortfolioVirtualEvents { - fn from(value: UpdateProtocolFeeFilter) -> Self { - Self::UpdateProtocolFeeFilter(value) - } - } - ///Container type for all input parameters for the `REGISTRY` function with signature `REGISTRY()` and selector `0x06433b1b` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "REGISTRY", abi = "REGISTRY()")] - pub struct RegistryCall; - ///Container type for all input parameters for the `VERSION` function with signature `VERSION()` and selector `0xffa1ad74` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "VERSION", abi = "VERSION()")] - pub struct VersionCall; - ///Container type for all input parameters for the `WETH` function with signature `WETH()` and selector `0xad5c4648` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "WETH", abi = "WETH()")] - pub struct WethCall; - ///Container type for all input parameters for the `__account__` function with signature `__account__()` and selector `0xda31ee54` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "__account__", abi = "__account__()")] - pub struct AccountCall; - ///Container type for all input parameters for the `changeParameters` function with signature `changeParameters(uint64,uint16,uint16,uint16)` and selector `0xaf777855` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall( - name = "changeParameters", - abi = "changeParameters(uint64,uint16,uint16,uint16)" - )] - pub struct ChangeParametersCall { - pub pool_id: u64, - pub priority_fee: u16, - pub fee: u16, - pub jit: u16, - } - ///Container type for all input parameters for the `checkInvariant` function with signature `checkInvariant(uint64,int256,uint256,uint256,uint256)` and selector `0x2f337da5` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall( - name = "checkInvariant", - abi = "checkInvariant(uint64,int256,uint256,uint256,uint256)" - )] - pub struct CheckInvariantCall { - pub pool_id: u64, - pub invariant: ::ethers::core::types::I256, - pub reserve_x: ::ethers::core::types::U256, - pub reserve_y: ::ethers::core::types::U256, - pub timestamp: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `checkPool` function with signature `checkPool(uint64)` and selector `0xa68aaa41` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "checkPool", abi = "checkPool(uint64)")] - pub struct CheckPoolCall { - pub pool_id: u64, - } - ///Container type for all input parameters for the `checkPosition` function with signature `checkPosition(uint64,address,int256)` and selector `0x2cc6641e` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "checkPosition", abi = "checkPosition(uint64,address,int256)")] - pub struct CheckPositionCall { - pub pool_id: u64, - pub owner: ::ethers::core::types::Address, - pub delta: ::ethers::core::types::I256, - } - ///Container type for all input parameters for the `computeMaxInput` function with signature `computeMaxInput(uint64,bool,uint256,uint256)` and selector `0x989bafba` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall( - name = "computeMaxInput", - abi = "computeMaxInput(uint64,bool,uint256,uint256)" - )] - pub struct ComputeMaxInputCall { - pub pool_id: u64, - pub sell_asset: bool, - pub reserve_in: ::ethers::core::types::U256, - pub liquidity: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `computeReservesFromPrice` function with signature `computeReservesFromPrice(uint64,uint256)` and selector `0xc48d887a` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall( - name = "computeReservesFromPrice", - abi = "computeReservesFromPrice(uint64,uint256)" - )] - pub struct ComputeReservesFromPriceCall { - pub pool_id: u64, - pub price: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `deposit` function with signature `deposit()` and selector `0xd0e30db0` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "deposit", abi = "deposit()")] - pub struct DepositCall; - ///Container type for all input parameters for the `draw` function with signature `draw(address,uint256,address)` and selector `0xad24d6a0` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "draw", abi = "draw(address,uint256,address)")] - pub struct DrawCall { - pub token: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - pub to: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `fund` function with signature `fund(address,uint256)` and selector `0x7b1837de` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "fund", abi = "fund(address,uint256)")] - pub struct FundCall { - pub token: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `getAmountOut` function with signature `getAmountOut(uint64,bool,uint256)` and selector `0x7dae4890` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getAmountOut", abi = "getAmountOut(uint64,bool,uint256)")] - pub struct GetAmountOutCall { - pub pool_id: u64, - pub sell_asset: bool, - pub amount_in: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `getBalance` function with signature `getBalance(address,address)` and selector `0xd4fac45d` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getBalance", abi = "getBalance(address,address)")] - pub struct GetBalanceCall { - pub owner: ::ethers::core::types::Address, - pub token: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `getLiquidityDeltas` function with signature `getLiquidityDeltas(uint64,int128)` and selector `0x8992f20a` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getLiquidityDeltas", abi = "getLiquidityDeltas(uint64,int128)")] - pub struct GetLiquidityDeltasCall { - pub pool_id: u64, - pub delta_liquidity: i128, - } - ///Container type for all input parameters for the `getMaxLiquidity` function with signature `getMaxLiquidity(uint64,uint256,uint256)` and selector `0xd6b7dec5` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall( - name = "getMaxLiquidity", - abi = "getMaxLiquidity(uint64,uint256,uint256)" - )] - pub struct GetMaxLiquidityCall { - pub pool_id: u64, - pub amount_0: ::ethers::core::types::U256, - pub amount_1: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `getNetBalance` function with signature `getNetBalance(address)` and selector `0x4dc68a90` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getNetBalance", abi = "getNetBalance(address)")] - pub struct GetNetBalanceCall { - pub token: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `getPairId` function with signature `getPairId(address,address)` and selector `0x3f92a339` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getPairId", abi = "getPairId(address,address)")] - pub struct GetPairIdCall( - pub ::ethers::core::types::Address, - pub ::ethers::core::types::Address, - ); - ///Container type for all input parameters for the `getPairNonce` function with signature `getPairNonce()` and selector `0x078888d6` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getPairNonce", abi = "getPairNonce()")] - pub struct GetPairNonceCall; - ///Container type for all input parameters for the `getPoolNonce` function with signature `getPoolNonce(uint24)` and selector `0xa5cd8a49` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getPoolNonce", abi = "getPoolNonce(uint24)")] - pub struct GetPoolNonceCall(pub u32); - ///Container type for all input parameters for the `getPoolReserves` function with signature `getPoolReserves(uint64)` and selector `0x2afb9df8` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getPoolReserves", abi = "getPoolReserves(uint64)")] - pub struct GetPoolReservesCall { - pub pool_id: u64, - } - ///Container type for all input parameters for the `getReserve` function with signature `getReserve(address)` and selector `0xc9a396e9` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getReserve", abi = "getReserve(address)")] - pub struct GetReserveCall { - pub token: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `getVirtualPrice` function with signature `getVirtualPrice(uint64)` and selector `0x61b7ea6a` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getVirtualPrice", abi = "getVirtualPrice(uint64)")] - pub struct GetVirtualPriceCall { - pub pool_id: u64, - } - ///Container type for all input parameters for the `getVirtualReservesPerLiquidity` function with signature `getVirtualReservesPerLiquidity(uint64)` and selector `0x1a4b905b` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall( - name = "getVirtualReservesPerLiquidity", - abi = "getVirtualReservesPerLiquidity(uint64)" - )] - pub struct GetVirtualReservesPerLiquidityCall { - pub pool_id: u64, - } - ///Container type for all input parameters for the `multiprocess` function with signature `multiprocess(bytes)` and selector `0xa0fdf413` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "multiprocess", abi = "multiprocess(bytes)")] - pub struct MultiprocessCall { - pub data: ::ethers::core::types::Bytes, - } - ///Container type for all input parameters for the `pairs` function with signature `pairs(uint24)` and selector `0x5e47663c` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "pairs", abi = "pairs(uint24)")] - pub struct PairsCall(pub u32); - ///Container type for all input parameters for the `pools` function with signature `pools(uint64)` and selector `0x89a5f084` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "pools", abi = "pools(uint64)")] - pub struct PoolsCall(pub u64); - ///Container type for all input parameters for the `positions` function with signature `positions(address,uint64)` and selector `0xb68513ea` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "positions", abi = "positions(address,uint64)")] - pub struct PositionsCall(pub ::ethers::core::types::Address, pub u64); - ///Container type for all input parameters for the `setProtocolFee` function with signature `setProtocolFee(uint256)` and selector `0x787dce3d` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "setProtocolFee", abi = "setProtocolFee(uint256)")] - pub struct SetProtocolFeeCall { - pub fee: ::ethers::core::types::U256, - } - ///Container type for all of the contract's call - #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] - pub enum PortfolioVirtualCalls { - Registry(RegistryCall), - Version(VersionCall), - Weth(WethCall), - Account(AccountCall), - ChangeParameters(ChangeParametersCall), - CheckInvariant(CheckInvariantCall), - CheckPool(CheckPoolCall), - CheckPosition(CheckPositionCall), - ComputeMaxInput(ComputeMaxInputCall), - ComputeReservesFromPrice(ComputeReservesFromPriceCall), - Deposit(DepositCall), - Draw(DrawCall), - Fund(FundCall), - GetAmountOut(GetAmountOutCall), - GetBalance(GetBalanceCall), - GetLiquidityDeltas(GetLiquidityDeltasCall), - GetMaxLiquidity(GetMaxLiquidityCall), - GetNetBalance(GetNetBalanceCall), - GetPairId(GetPairIdCall), - GetPairNonce(GetPairNonceCall), - GetPoolNonce(GetPoolNonceCall), - GetPoolReserves(GetPoolReservesCall), - GetReserve(GetReserveCall), - GetVirtualPrice(GetVirtualPriceCall), - GetVirtualReservesPerLiquidity(GetVirtualReservesPerLiquidityCall), - Multiprocess(MultiprocessCall), - Pairs(PairsCall), - Pools(PoolsCall), - Positions(PositionsCall), - SetProtocolFee(SetProtocolFeeCall), - } - impl ::ethers::core::abi::AbiDecode for PortfolioVirtualCalls { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Registry(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Version(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Weth(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Account(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::ChangeParameters(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::CheckInvariant(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::CheckPool(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::CheckPosition(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::ComputeMaxInput(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::ComputeReservesFromPrice(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Deposit(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Draw(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Fund(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::GetAmountOut(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::GetBalance(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::GetLiquidityDeltas(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::GetMaxLiquidity(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::GetNetBalance(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::GetPairId(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::GetPairNonce(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::GetPoolNonce(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::GetPoolReserves(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::GetReserve(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::GetVirtualPrice(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::GetVirtualReservesPerLiquidity(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::Multiprocess(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Pairs(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Pools(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Positions(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::SetProtocolFee(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for PortfolioVirtualCalls { - fn encode(self) -> Vec { - match self { - Self::Registry(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Version(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Weth(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Account(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::ChangeParameters(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::CheckInvariant(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::CheckPool(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::CheckPosition(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::ComputeMaxInput(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::ComputeReservesFromPrice(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Deposit(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Draw(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Fund(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetAmountOut(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetBalance(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetLiquidityDeltas(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::GetMaxLiquidity(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetNetBalance(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetPairId(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetPairNonce(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetPoolNonce(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetPoolReserves(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetReserve(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetVirtualPrice(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetVirtualReservesPerLiquidity(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Multiprocess(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Pairs(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Pools(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Positions(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::SetProtocolFee(element) => ::ethers::core::abi::AbiEncode::encode(element), - } - } - } - impl ::core::fmt::Display for PortfolioVirtualCalls { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::Registry(element) => ::core::fmt::Display::fmt(element, f), - Self::Version(element) => ::core::fmt::Display::fmt(element, f), - Self::Weth(element) => ::core::fmt::Display::fmt(element, f), - Self::Account(element) => ::core::fmt::Display::fmt(element, f), - Self::ChangeParameters(element) => ::core::fmt::Display::fmt(element, f), - Self::CheckInvariant(element) => ::core::fmt::Display::fmt(element, f), - Self::CheckPool(element) => ::core::fmt::Display::fmt(element, f), - Self::CheckPosition(element) => ::core::fmt::Display::fmt(element, f), - Self::ComputeMaxInput(element) => ::core::fmt::Display::fmt(element, f), - Self::ComputeReservesFromPrice(element) => ::core::fmt::Display::fmt(element, f), - Self::Deposit(element) => ::core::fmt::Display::fmt(element, f), - Self::Draw(element) => ::core::fmt::Display::fmt(element, f), - Self::Fund(element) => ::core::fmt::Display::fmt(element, f), - Self::GetAmountOut(element) => ::core::fmt::Display::fmt(element, f), - Self::GetBalance(element) => ::core::fmt::Display::fmt(element, f), - Self::GetLiquidityDeltas(element) => ::core::fmt::Display::fmt(element, f), - Self::GetMaxLiquidity(element) => ::core::fmt::Display::fmt(element, f), - Self::GetNetBalance(element) => ::core::fmt::Display::fmt(element, f), - Self::GetPairId(element) => ::core::fmt::Display::fmt(element, f), - Self::GetPairNonce(element) => ::core::fmt::Display::fmt(element, f), - Self::GetPoolNonce(element) => ::core::fmt::Display::fmt(element, f), - Self::GetPoolReserves(element) => ::core::fmt::Display::fmt(element, f), - Self::GetReserve(element) => ::core::fmt::Display::fmt(element, f), - Self::GetVirtualPrice(element) => ::core::fmt::Display::fmt(element, f), - Self::GetVirtualReservesPerLiquidity(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::Multiprocess(element) => ::core::fmt::Display::fmt(element, f), - Self::Pairs(element) => ::core::fmt::Display::fmt(element, f), - Self::Pools(element) => ::core::fmt::Display::fmt(element, f), - Self::Positions(element) => ::core::fmt::Display::fmt(element, f), - Self::SetProtocolFee(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for PortfolioVirtualCalls { - fn from(value: RegistryCall) -> Self { - Self::Registry(value) - } - } - impl ::core::convert::From for PortfolioVirtualCalls { - fn from(value: VersionCall) -> Self { - Self::Version(value) - } - } - impl ::core::convert::From for PortfolioVirtualCalls { - fn from(value: WethCall) -> Self { - Self::Weth(value) - } - } - impl ::core::convert::From for PortfolioVirtualCalls { - fn from(value: AccountCall) -> Self { - Self::Account(value) - } - } - impl ::core::convert::From for PortfolioVirtualCalls { - fn from(value: ChangeParametersCall) -> Self { - Self::ChangeParameters(value) - } - } - impl ::core::convert::From for PortfolioVirtualCalls { - fn from(value: CheckInvariantCall) -> Self { - Self::CheckInvariant(value) - } - } - impl ::core::convert::From for PortfolioVirtualCalls { - fn from(value: CheckPoolCall) -> Self { - Self::CheckPool(value) - } - } - impl ::core::convert::From for PortfolioVirtualCalls { - fn from(value: CheckPositionCall) -> Self { - Self::CheckPosition(value) - } - } - impl ::core::convert::From for PortfolioVirtualCalls { - fn from(value: ComputeMaxInputCall) -> Self { - Self::ComputeMaxInput(value) - } - } - impl ::core::convert::From for PortfolioVirtualCalls { - fn from(value: ComputeReservesFromPriceCall) -> Self { - Self::ComputeReservesFromPrice(value) - } - } - impl ::core::convert::From for PortfolioVirtualCalls { - fn from(value: DepositCall) -> Self { - Self::Deposit(value) - } - } - impl ::core::convert::From for PortfolioVirtualCalls { - fn from(value: DrawCall) -> Self { - Self::Draw(value) - } - } - impl ::core::convert::From for PortfolioVirtualCalls { - fn from(value: FundCall) -> Self { - Self::Fund(value) - } - } - impl ::core::convert::From for PortfolioVirtualCalls { - fn from(value: GetAmountOutCall) -> Self { - Self::GetAmountOut(value) - } - } - impl ::core::convert::From for PortfolioVirtualCalls { - fn from(value: GetBalanceCall) -> Self { - Self::GetBalance(value) - } - } - impl ::core::convert::From for PortfolioVirtualCalls { - fn from(value: GetLiquidityDeltasCall) -> Self { - Self::GetLiquidityDeltas(value) - } - } - impl ::core::convert::From for PortfolioVirtualCalls { - fn from(value: GetMaxLiquidityCall) -> Self { - Self::GetMaxLiquidity(value) - } - } - impl ::core::convert::From for PortfolioVirtualCalls { - fn from(value: GetNetBalanceCall) -> Self { - Self::GetNetBalance(value) - } - } - impl ::core::convert::From for PortfolioVirtualCalls { - fn from(value: GetPairIdCall) -> Self { - Self::GetPairId(value) - } - } - impl ::core::convert::From for PortfolioVirtualCalls { - fn from(value: GetPairNonceCall) -> Self { - Self::GetPairNonce(value) - } - } - impl ::core::convert::From for PortfolioVirtualCalls { - fn from(value: GetPoolNonceCall) -> Self { - Self::GetPoolNonce(value) - } - } - impl ::core::convert::From for PortfolioVirtualCalls { - fn from(value: GetPoolReservesCall) -> Self { - Self::GetPoolReserves(value) - } - } - impl ::core::convert::From for PortfolioVirtualCalls { - fn from(value: GetReserveCall) -> Self { - Self::GetReserve(value) - } - } - impl ::core::convert::From for PortfolioVirtualCalls { - fn from(value: GetVirtualPriceCall) -> Self { - Self::GetVirtualPrice(value) - } - } - impl ::core::convert::From for PortfolioVirtualCalls { - fn from(value: GetVirtualReservesPerLiquidityCall) -> Self { - Self::GetVirtualReservesPerLiquidity(value) - } - } - impl ::core::convert::From for PortfolioVirtualCalls { - fn from(value: MultiprocessCall) -> Self { - Self::Multiprocess(value) - } - } - impl ::core::convert::From for PortfolioVirtualCalls { - fn from(value: PairsCall) -> Self { - Self::Pairs(value) - } - } - impl ::core::convert::From for PortfolioVirtualCalls { - fn from(value: PoolsCall) -> Self { - Self::Pools(value) - } - } - impl ::core::convert::From for PortfolioVirtualCalls { - fn from(value: PositionsCall) -> Self { - Self::Positions(value) - } - } - impl ::core::convert::From for PortfolioVirtualCalls { - fn from(value: SetProtocolFeeCall) -> Self { - Self::SetProtocolFee(value) - } - } - ///Container type for all return fields from the `REGISTRY` function with signature `REGISTRY()` and selector `0x06433b1b` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct RegistryReturn(pub ::ethers::core::types::Address); - ///Container type for all return fields from the `VERSION` function with signature `VERSION()` and selector `0xffa1ad74` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct VersionReturn(pub ::std::string::String); - ///Container type for all return fields from the `WETH` function with signature `WETH()` and selector `0xad5c4648` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct WethReturn(pub ::ethers::core::types::Address); - ///Container type for all return fields from the `__account__` function with signature `__account__()` and selector `0xda31ee54` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct AccountReturn { - pub settled: bool, - } - ///Container type for all return fields from the `checkInvariant` function with signature `checkInvariant(uint64,int256,uint256,uint256,uint256)` and selector `0x2f337da5` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct CheckInvariantReturn { - pub success: bool, - pub next_invariant: ::ethers::core::types::I256, - } - ///Container type for all return fields from the `checkPool` function with signature `checkPool(uint64)` and selector `0xa68aaa41` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct CheckPoolReturn(pub bool); - ///Container type for all return fields from the `checkPosition` function with signature `checkPosition(uint64,address,int256)` and selector `0x2cc6641e` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct CheckPositionReturn(pub bool); - ///Container type for all return fields from the `computeMaxInput` function with signature `computeMaxInput(uint64,bool,uint256,uint256)` and selector `0x989bafba` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct ComputeMaxInputReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `computeReservesFromPrice` function with signature `computeReservesFromPrice(uint64,uint256)` and selector `0xc48d887a` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct ComputeReservesFromPriceReturn { - pub reserve_x: ::ethers::core::types::U256, - pub reserve_y: ::ethers::core::types::U256, - } - ///Container type for all return fields from the `getAmountOut` function with signature `getAmountOut(uint64,bool,uint256)` and selector `0x7dae4890` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetAmountOutReturn { - pub output: ::ethers::core::types::U256, - } - ///Container type for all return fields from the `getBalance` function with signature `getBalance(address,address)` and selector `0xd4fac45d` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetBalanceReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `getLiquidityDeltas` function with signature `getLiquidityDeltas(uint64,int128)` and selector `0x8992f20a` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetLiquidityDeltasReturn { - pub delta_asset: u128, - pub delta_quote: u128, - } - ///Container type for all return fields from the `getMaxLiquidity` function with signature `getMaxLiquidity(uint64,uint256,uint256)` and selector `0xd6b7dec5` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetMaxLiquidityReturn { - pub delta_liquidity: u128, - } - ///Container type for all return fields from the `getNetBalance` function with signature `getNetBalance(address)` and selector `0x4dc68a90` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetNetBalanceReturn(pub ::ethers::core::types::I256); - ///Container type for all return fields from the `getPairId` function with signature `getPairId(address,address)` and selector `0x3f92a339` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetPairIdReturn(pub u32); - ///Container type for all return fields from the `getPairNonce` function with signature `getPairNonce()` and selector `0x078888d6` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetPairNonceReturn(pub u32); - ///Container type for all return fields from the `getPoolNonce` function with signature `getPoolNonce(uint24)` and selector `0xa5cd8a49` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetPoolNonceReturn(pub u32); - ///Container type for all return fields from the `getPoolReserves` function with signature `getPoolReserves(uint64)` and selector `0x2afb9df8` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetPoolReservesReturn { - pub delta_asset: ::ethers::core::types::U256, - pub delta_quote: ::ethers::core::types::U256, - } - ///Container type for all return fields from the `getReserve` function with signature `getReserve(address)` and selector `0xc9a396e9` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetReserveReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `getVirtualPrice` function with signature `getVirtualPrice(uint64)` and selector `0x61b7ea6a` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetVirtualPriceReturn { - pub price: ::ethers::core::types::U256, - } - ///Container type for all return fields from the `getVirtualReservesPerLiquidity` function with signature `getVirtualReservesPerLiquidity(uint64)` and selector `0x1a4b905b` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetVirtualReservesPerLiquidityReturn { - pub delta_asset: u128, - pub delta_quote: u128, - } - ///Container type for all return fields from the `pairs` function with signature `pairs(uint24)` and selector `0x5e47663c` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct PairsReturn { - pub token_asset: ::ethers::core::types::Address, - pub decimals_asset: u8, - pub token_quote: ::ethers::core::types::Address, - pub decimals_quote: u8, - } - ///Container type for all return fields from the `pools` function with signature `pools(uint64)` and selector `0x89a5f084` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct PoolsReturn { - pub virtual_x: u128, - pub virtual_y: u128, - pub liquidity: u128, - pub last_timestamp: u32, - pub controller: ::ethers::core::types::Address, - pub invariant_growth_global: ::ethers::core::types::U256, - pub fee_growth_global_asset: ::ethers::core::types::U256, - pub fee_growth_global_quote: ::ethers::core::types::U256, - pub params: PortfolioCurve, - pub pair: PortfolioPair, - } - ///Container type for all return fields from the `positions` function with signature `positions(address,uint64)` and selector `0xb68513ea` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct PositionsReturn { - pub free_liquidity: u128, - pub last_timestamp: u32, - pub invariant_growth_last: ::ethers::core::types::U256, - pub fee_growth_asset_last: ::ethers::core::types::U256, - pub fee_growth_quote_last: ::ethers::core::types::U256, - pub tokens_owed_asset: u128, - pub tokens_owed_quote: u128, - pub invariant_owed: u128, - } -} diff --git a/crates/bindings/src/safe_cast_lib.rs b/crates/bindings/src/reverting_contract.rs similarity index 53% rename from crates/bindings/src/safe_cast_lib.rs rename to crates/bindings/src/reverting_contract.rs index a45c9724..7994e0a3 100644 --- a/crates/bindings/src/safe_cast_lib.rs +++ b/crates/bindings/src/reverting_contract.rs @@ -1,4 +1,4 @@ -pub use safe_cast_lib::*; +pub use reverting_contract::*; /// This module was auto-generated with ethers-rs Abigen. /// More information at: #[allow( @@ -7,188 +7,48 @@ pub use safe_cast_lib::*; clippy::upper_case_acronyms, clippy::type_complexity, dead_code, - non_camel_case_types + non_camel_case_types, )] -pub mod safe_cast_lib { +pub mod reverting_contract { #[rustfmt::skip] - const __ABI: &str = "[]"; + const __ABI: &str = "[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\",\"outputs\":[]}]"; ///The parsed JSON ABI of the contract. - pub static SAFECASTLIB_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = - ::ethers::contract::Lazy::new(|| { - ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid") - }); + pub static REVERTINGCONTRACT_ABI: ::ethers::contract::Lazy< + ::ethers::core::abi::Abi, + > = ::ethers::contract::Lazy::new(|| { + ::ethers::core::utils::__serde_json::from_str(__ABI) + .expect("ABI is always valid") + }); #[rustfmt::skip] const __BYTECODE: &[u8] = &[ 96, - 86, - 96, - 55, - 96, - 11, - 130, - 130, - 130, - 57, 128, - 81, - 96, - 0, - 26, - 96, - 115, - 20, - 96, - 42, - 87, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 0, 96, - 4, + 64, 82, + 52, + 128, + 21, 96, - 36, + 15, + 87, 96, 0, + 128, 253, 91, - 48, - 96, - 0, - 82, - 96, - 115, - 129, - 83, - 130, - 129, - 243, - 254, - 115, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 48, - 20, - 96, - 128, - 96, - 64, - 82, 96, 0, 128, 253, 254, - 162, - 100, - 105, - 112, - 102, - 115, - 88, - 34, - 18, - 32, - 55, - 53, - 238, - 101, - 110, - 120, - 193, - 20, - 232, - 24, - 75, - 58, - 214, - 234, - 18, - 218, - 248, - 71, - 199, - 120, - 128, - 106, - 211, - 47, - 241, - 200, - 108, - 199, - 0, - 254, - 220, - 103, - 100, - 115, - 111, - 108, - 99, - 67, - 0, - 8, - 13, - 0, - 51, ]; ///The bytecode of the contract. - pub static SAFECASTLIB_BYTECODE: ::ethers::core::types::Bytes = - ::ethers::core::types::Bytes::from_static(__BYTECODE); + pub static REVERTINGCONTRACT_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __BYTECODE, + ); #[rustfmt::skip] const __DEPLOYED_BYTECODE: &[u8] = &[ - 115, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 48, - 20, 96, 128, 96, @@ -209,38 +69,38 @@ pub mod safe_cast_lib { 34, 18, 32, - 55, - 53, - 238, - 101, - 110, - 120, - 193, - 20, - 232, - 24, - 75, - 58, - 214, - 234, - 18, - 218, + 127, + 112, + 102, + 45, + 76, 248, - 71, - 199, - 120, - 128, - 106, - 211, + 41, + 249, + 118, + 154, 47, - 241, - 200, - 108, - 199, + 48, + 250, + 2, 0, - 254, - 220, - 103, + 231, + 250, + 6, + 166, + 0, + 53, + 235, + 229, + 90, + 38, + 197, + 8, + 163, + 213, + 10, + 141, + 22, 100, 115, 111, @@ -249,49 +109,50 @@ pub mod safe_cast_lib { 67, 0, 8, - 13, + 19, 0, 51, ]; ///The deployed bytecode of the contract. - pub static SAFECASTLIB_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = - ::ethers::core::types::Bytes::from_static(__DEPLOYED_BYTECODE); - pub struct SafeCastLib(::ethers::contract::Contract); - impl ::core::clone::Clone for SafeCastLib { + pub static REVERTINGCONTRACT_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __DEPLOYED_BYTECODE, + ); + pub struct RevertingContract(::ethers::contract::Contract); + impl ::core::clone::Clone for RevertingContract { fn clone(&self) -> Self { Self(::core::clone::Clone::clone(&self.0)) } } - impl ::core::ops::Deref for SafeCastLib { + impl ::core::ops::Deref for RevertingContract { type Target = ::ethers::contract::Contract; fn deref(&self) -> &Self::Target { &self.0 } } - impl ::core::ops::DerefMut for SafeCastLib { + impl ::core::ops::DerefMut for RevertingContract { fn deref_mut(&mut self) -> &mut Self::Target { &mut self.0 } } - impl ::core::fmt::Debug for SafeCastLib { + impl ::core::fmt::Debug for RevertingContract { fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(stringify!(SafeCastLib)) - .field(&self.address()) - .finish() + f.debug_tuple(stringify!(RevertingContract)).field(&self.address()).finish() } } - impl SafeCastLib { + impl RevertingContract { /// Creates a new contract instance with the specified `ethers` client at /// `address`. The contract derefs to a `ethers::Contract` object. pub fn new>( address: T, client: ::std::sync::Arc, ) -> Self { - Self(::ethers::contract::Contract::new( - address.into(), - SAFECASTLIB_ABI.clone(), - client, - )) + Self( + ::ethers::contract::Contract::new( + address.into(), + REVERTINGCONTRACT_ABI.clone(), + client, + ), + ) } /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction @@ -324,8 +185,8 @@ pub mod safe_cast_lib { ::ethers::contract::ContractError, > { let factory = ::ethers::contract::ContractFactory::new( - SAFECASTLIB_ABI.clone(), - SAFECASTLIB_BYTECODE.clone().into(), + REVERTINGCONTRACT_ABI.clone(), + REVERTINGCONTRACT_BYTECODE.clone().into(), client, ); let deployer = factory.deploy(constructor_args)?; @@ -333,7 +194,8 @@ pub mod safe_cast_lib { Ok(deployer) } } - impl From<::ethers::contract::Contract> for SafeCastLib { + impl From<::ethers::contract::Contract> + for RevertingContract { fn from(contract: ::ethers::contract::Contract) -> Self { Self::new(contract.address(), contract.client()) } diff --git a/crates/bindings/src/rmm01_extended_lib.rs b/crates/bindings/src/rmm01_extended_lib.rs deleted file mode 100644 index 709cff27..00000000 --- a/crates/bindings/src/rmm01_extended_lib.rs +++ /dev/null @@ -1,343 +0,0 @@ -pub use rmm01_extended_lib::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types -)] -pub mod rmm01_extended_lib { - #[rustfmt::skip] - const __ABI: &str = "[]"; - ///The parsed JSON ABI of the contract. - pub static RMM01EXTENDEDLIB_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = - ::ethers::contract::Lazy::new(|| { - ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid") - }); - #[rustfmt::skip] - const __BYTECODE: &[u8] = &[ - 96, - 86, - 96, - 55, - 96, - 11, - 130, - 130, - 130, - 57, - 128, - 81, - 96, - 0, - 26, - 96, - 115, - 20, - 96, - 42, - 87, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 0, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 48, - 96, - 0, - 82, - 96, - 115, - 129, - 83, - 130, - 129, - 243, - 254, - 115, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 48, - 20, - 96, - 128, - 96, - 64, - 82, - 96, - 0, - 128, - 253, - 254, - 162, - 100, - 105, - 112, - 102, - 115, - 88, - 34, - 18, - 32, - 236, - 68, - 44, - 55, - 205, - 99, - 188, - 139, - 34, - 180, - 45, - 64, - 170, - 205, - 10, - 236, - 255, - 231, - 128, - 214, - 13, - 102, - 161, - 167, - 57, - 134, - 212, - 240, - 8, - 118, - 17, - 182, - 100, - 115, - 111, - 108, - 99, - 67, - 0, - 8, - 13, - 0, - 51, - ]; - ///The bytecode of the contract. - pub static RMM01EXTENDEDLIB_BYTECODE: ::ethers::core::types::Bytes = - ::ethers::core::types::Bytes::from_static(__BYTECODE); - #[rustfmt::skip] - const __DEPLOYED_BYTECODE: &[u8] = &[ - 115, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 48, - 20, - 96, - 128, - 96, - 64, - 82, - 96, - 0, - 128, - 253, - 254, - 162, - 100, - 105, - 112, - 102, - 115, - 88, - 34, - 18, - 32, - 236, - 68, - 44, - 55, - 205, - 99, - 188, - 139, - 34, - 180, - 45, - 64, - 170, - 205, - 10, - 236, - 255, - 231, - 128, - 214, - 13, - 102, - 161, - 167, - 57, - 134, - 212, - 240, - 8, - 118, - 17, - 182, - 100, - 115, - 111, - 108, - 99, - 67, - 0, - 8, - 13, - 0, - 51, - ]; - ///The deployed bytecode of the contract. - pub static RMM01EXTENDEDLIB_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = - ::ethers::core::types::Bytes::from_static(__DEPLOYED_BYTECODE); - pub struct RMM01ExtendedLib(::ethers::contract::Contract); - impl ::core::clone::Clone for RMM01ExtendedLib { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for RMM01ExtendedLib { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for RMM01ExtendedLib { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for RMM01ExtendedLib { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(stringify!(RMM01ExtendedLib)) - .field(&self.address()) - .finish() - } - } - impl RMM01ExtendedLib { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self(::ethers::contract::Contract::new( - address.into(), - RMM01EXTENDEDLIB_ABI.clone(), - client, - )) - } - /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. - /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction - /// - /// Notes: - /// - If there are no constructor arguments, you should pass `()` as the argument. - /// - The default poll duration is 7 seconds. - /// - The default number of confirmations is 1 block. - /// - /// - /// # Example - /// - /// Generate contract bindings with `abigen!` and deploy a new contract instance. - /// - /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. - /// - /// ```ignore - /// # async fn deploy(client: ::std::sync::Arc) { - /// abigen!(Greeter, "../greeter.json"); - /// - /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); - /// let msg = greeter_contract.greet().call().await.unwrap(); - /// # } - /// ``` - pub fn deploy( - client: ::std::sync::Arc, - constructor_args: T, - ) -> ::core::result::Result< - ::ethers::contract::builders::ContractDeployer, - ::ethers::contract::ContractError, - > { - let factory = ::ethers::contract::ContractFactory::new( - RMM01EXTENDEDLIB_ABI.clone(), - RMM01EXTENDEDLIB_BYTECODE.clone().into(), - client, - ); - let deployer = factory.deploy(constructor_args)?; - let deployer = ::ethers::contract::ContractDeployer::new(deployer); - Ok(deployer) - } - } - impl From<::ethers::contract::Contract> - for RMM01ExtendedLib - { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } -} diff --git a/crates/bindings/src/rmm01_lib.rs b/crates/bindings/src/rmm01_lib.rs deleted file mode 100644 index 97c38c94..00000000 --- a/crates/bindings/src/rmm01_lib.rs +++ /dev/null @@ -1,415 +0,0 @@ -pub use rmm01_lib::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types -)] -pub mod rmm01_lib { - #[rustfmt::skip] - const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"wad\",\"type\":\"int256\",\"components\":[]}],\"type\":\"error\",\"name\":\"OverflowWad\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"UndefinedPrice\",\"outputs\":[]}]"; - ///The parsed JSON ABI of the contract. - pub static RMM01LIB_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = - ::ethers::contract::Lazy::new(|| { - ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid") - }); - #[rustfmt::skip] - const __BYTECODE: &[u8] = &[ - 96, - 86, - 96, - 55, - 96, - 11, - 130, - 130, - 130, - 57, - 128, - 81, - 96, - 0, - 26, - 96, - 115, - 20, - 96, - 42, - 87, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 0, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 48, - 96, - 0, - 82, - 96, - 115, - 129, - 83, - 130, - 129, - 243, - 254, - 115, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 48, - 20, - 96, - 128, - 96, - 64, - 82, - 96, - 0, - 128, - 253, - 254, - 162, - 100, - 105, - 112, - 102, - 115, - 88, - 34, - 18, - 32, - 132, - 147, - 13, - 73, - 76, - 59, - 205, - 253, - 184, - 240, - 77, - 233, - 115, - 36, - 199, - 216, - 81, - 200, - 116, - 164, - 162, - 168, - 52, - 52, - 101, - 47, - 230, - 248, - 213, - 68, - 82, - 88, - 100, - 115, - 111, - 108, - 99, - 67, - 0, - 8, - 13, - 0, - 51, - ]; - ///The bytecode of the contract. - pub static RMM01LIB_BYTECODE: ::ethers::core::types::Bytes = - ::ethers::core::types::Bytes::from_static(__BYTECODE); - #[rustfmt::skip] - const __DEPLOYED_BYTECODE: &[u8] = &[ - 115, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 48, - 20, - 96, - 128, - 96, - 64, - 82, - 96, - 0, - 128, - 253, - 254, - 162, - 100, - 105, - 112, - 102, - 115, - 88, - 34, - 18, - 32, - 132, - 147, - 13, - 73, - 76, - 59, - 205, - 253, - 184, - 240, - 77, - 233, - 115, - 36, - 199, - 216, - 81, - 200, - 116, - 164, - 162, - 168, - 52, - 52, - 101, - 47, - 230, - 248, - 213, - 68, - 82, - 88, - 100, - 115, - 111, - 108, - 99, - 67, - 0, - 8, - 13, - 0, - 51, - ]; - ///The deployed bytecode of the contract. - pub static RMM01LIB_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = - ::ethers::core::types::Bytes::from_static(__DEPLOYED_BYTECODE); - pub struct RMM01Lib(::ethers::contract::Contract); - impl ::core::clone::Clone for RMM01Lib { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for RMM01Lib { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for RMM01Lib { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for RMM01Lib { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(stringify!(RMM01Lib)) - .field(&self.address()) - .finish() - } - } - impl RMM01Lib { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self(::ethers::contract::Contract::new( - address.into(), - RMM01LIB_ABI.clone(), - client, - )) - } - /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. - /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction - /// - /// Notes: - /// - If there are no constructor arguments, you should pass `()` as the argument. - /// - The default poll duration is 7 seconds. - /// - The default number of confirmations is 1 block. - /// - /// - /// # Example - /// - /// Generate contract bindings with `abigen!` and deploy a new contract instance. - /// - /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. - /// - /// ```ignore - /// # async fn deploy(client: ::std::sync::Arc) { - /// abigen!(Greeter, "../greeter.json"); - /// - /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); - /// let msg = greeter_contract.greet().call().await.unwrap(); - /// # } - /// ``` - pub fn deploy( - client: ::std::sync::Arc, - constructor_args: T, - ) -> ::core::result::Result< - ::ethers::contract::builders::ContractDeployer, - ::ethers::contract::ContractError, - > { - let factory = ::ethers::contract::ContractFactory::new( - RMM01LIB_ABI.clone(), - RMM01LIB_BYTECODE.clone().into(), - client, - ); - let deployer = factory.deploy(constructor_args)?; - let deployer = ::ethers::contract::ContractDeployer::new(deployer); - Ok(deployer) - } - } - impl From<::ethers::contract::Contract> for RMM01Lib { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - ///Custom Error type `OverflowWad` with signature `OverflowWad(int256)` and selector `0xb11558df` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "OverflowWad", abi = "OverflowWad(int256)")] - pub struct OverflowWad { - pub wad: ::ethers::core::types::I256, - } - ///Custom Error type `UndefinedPrice` with signature `UndefinedPrice()` and selector `0x22053363` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "UndefinedPrice", abi = "UndefinedPrice()")] - pub struct UndefinedPrice; - ///Container type for all of the contract's custom errors - #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] - pub enum RMM01LibErrors { - OverflowWad(OverflowWad), - UndefinedPrice(UndefinedPrice), - } - impl ::ethers::core::abi::AbiDecode for RMM01LibErrors { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) = ::decode(data) { - return Ok(Self::OverflowWad(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::UndefinedPrice(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for RMM01LibErrors { - fn encode(self) -> ::std::vec::Vec { - match self { - Self::OverflowWad(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::UndefinedPrice(element) => ::ethers::core::abi::AbiEncode::encode(element), - } - } - } - impl ::core::fmt::Display for RMM01LibErrors { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::OverflowWad(element) => ::core::fmt::Display::fmt(element, f), - Self::UndefinedPrice(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for RMM01LibErrors { - fn from(value: OverflowWad) -> Self { - Self::OverflowWad(value) - } - } - impl ::core::convert::From for RMM01LibErrors { - fn from(value: UndefinedPrice) -> Self { - Self::UndefinedPrice(value) - } - } -} diff --git a/crates/bindings/src/rmm01_portfolio.rs b/crates/bindings/src/rmm01_portfolio.rs deleted file mode 100644 index 66480fa1..00000000 --- a/crates/bindings/src/rmm01_portfolio.rs +++ /dev/null @@ -1,75476 +0,0 @@ -pub use rmm01_portfolio::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types -)] -pub mod rmm01_portfolio { - pub use super::super::shared_types::*; - #[rustfmt::skip] - const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"weth\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"registry\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"DrawBalance\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"EtherTransferFail\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"Infinity\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"delta\",\"type\":\"uint256\",\"components\":[]}],\"type\":\"error\",\"name\":\"InsufficientReserve\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"InvalidBalance\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\",\"components\":[]}],\"type\":\"error\",\"name\":\"InvalidBytesLength\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\",\"components\":[]}],\"type\":\"error\",\"name\":\"InvalidDecimals\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"fee\",\"type\":\"uint16\",\"components\":[]}],\"type\":\"error\",\"name\":\"InvalidFee\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"InvalidInstruction\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"prev\",\"type\":\"int256\",\"components\":[]},{\"internalType\":\"int256\",\"name\":\"next\",\"type\":\"int256\",\"components\":[]}],\"type\":\"error\",\"name\":\"InvalidInvariant\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"pointer\",\"type\":\"uint256\",\"components\":[]}],\"type\":\"error\",\"name\":\"InvalidJump\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"InvalidPair\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"InvalidReentrancy\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"InvalidSettlement\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"InvalidTransfer\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"distance\",\"type\":\"uint256\",\"components\":[]}],\"type\":\"error\",\"name\":\"JitLiquidity\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"Min\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"int256\",\"name\":\"net\",\"type\":\"int256\",\"components\":[]}],\"type\":\"error\",\"name\":\"NegativeBalance\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"NegativeInfinity\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"type\":\"error\",\"name\":\"NonExistentPool\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"type\":\"error\",\"name\":\"NonExistentPosition\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"NotController\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"OOB\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"OutOfBounds\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"wad\",\"type\":\"int256\",\"components\":[]}],\"type\":\"error\",\"name\":\"OverflowWad\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"pairId\",\"type\":\"uint24\",\"components\":[]}],\"type\":\"error\",\"name\":\"PairExists\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"PoolExpired\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"SameTokenError\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"SwapInputTooSmall\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"UndefinedPrice\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"ZeroAmounts\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"ZeroInput\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"ZeroLiquidity\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"ZeroOutput\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"ZeroPrice\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"ZeroValue\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaLiquidity\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Allocate\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint16\",\"name\":\"priorityFee\",\"type\":\"uint16\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint16\",\"name\":\"fee\",\"type\":\"uint16\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint16\",\"name\":\"jit\",\"type\":\"uint16\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"ChangeParameters\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"feeAssetDec\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"feeQuoteDec\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true}],\"type\":\"event\",\"name\":\"Collect\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"pairId\",\"type\":\"uint24\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint8\",\"name\":\"decimalsAsset\",\"type\":\"uint8\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint8\",\"name\":\"decimalsQuote\",\"type\":\"uint8\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"CreatePair\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"bool\",\"name\":\"isMutable\",\"type\":\"bool\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"CreatePool\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaLiquidity\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Deallocate\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"DecreaseReserveBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"DecreaseUserBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Deposit\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"IncreaseReserveBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"IncreaseUserBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"sellAsset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"input\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"tokenOut\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"output\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"feeAmountDec\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"int256\",\"name\":\"invariantWad\",\"type\":\"int256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Swap\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"prevFee\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"nextFee\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"UpdateProtocolFee\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\",\"name\":\"VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"WETH\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"__account__\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"settled\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"priorityFee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"fee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"jit\",\"type\":\"uint16\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"changeParameters\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"int256\",\"name\":\"invariant\",\"type\":\"int256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"reserveX\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"reserveY\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"checkInvariant\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]},{\"internalType\":\"int256\",\"name\":\"nextInvariant\",\"type\":\"int256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"checkPool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"int256\",\"name\":\"delta\",\"type\":\"int256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"checkPosition\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"bool\",\"name\":\"sellAsset\",\"type\":\"bool\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"reserveIn\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"computeMaxInput\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"computeReservesFromPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"reserveX\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"reserveY\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"deposit\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"draw\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"fund\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"bool\",\"name\":\"sellAsset\",\"type\":\"bool\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getAmountOut\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"output\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"int128\",\"name\":\"deltaLiquidity\",\"type\":\"int128\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getLiquidityDeltas\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"deltaAsset\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"deltaQuote\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getMaxLiquidity\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"deltaLiquidity\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getNetBalance\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPairId\",\"outputs\":[{\"internalType\":\"uint24\",\"name\":\"\",\"type\":\"uint24\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPairNonce\",\"outputs\":[{\"internalType\":\"uint24\",\"name\":\"\",\"type\":\"uint24\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"\",\"type\":\"uint24\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPoolNonce\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPoolReserves\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getReserve\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getVirtualPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getVirtualReservesPerLiquidity\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"deltaAsset\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"deltaQuote\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\",\"components\":[]}],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"multiprocess\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"\",\"type\":\"uint24\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"pairs\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"tokenAsset\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsAsset\",\"type\":\"uint8\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"tokenQuote\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsQuote\",\"type\":\"uint8\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"pools\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"virtualX\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"virtualY\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"liquidity\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint32\",\"name\":\"lastTimestamp\",\"type\":\"uint32\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"controller\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"invariantGrowthGlobal\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthGlobalAsset\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthGlobalQuote\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"struct PortfolioCurve\",\"name\":\"params\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"uint128\",\"name\":\"maxPrice\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"jit\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"fee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"duration\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"volatility\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"priorityFee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint32\",\"name\":\"createdAt\",\"type\":\"uint32\",\"components\":[]},{\"internalType\":\"bool\",\"name\":\"perpetual\",\"type\":\"bool\",\"components\":[]}]},{\"internalType\":\"struct PortfolioPair\",\"name\":\"pair\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"address\",\"name\":\"tokenAsset\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsAsset\",\"type\":\"uint8\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"tokenQuote\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsQuote\",\"type\":\"uint8\",\"components\":[]}]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"positions\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"freeLiquidity\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint32\",\"name\":\"lastTimestamp\",\"type\":\"uint32\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"invariantGrowthLast\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthAssetLast\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthQuoteLast\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"tokensOwedAsset\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"tokensOwedQuote\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"invariantOwed\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"setProtocolFee\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"payable\",\"type\":\"receive\",\"outputs\":[]}]"; - ///The parsed JSON ABI of the contract. - pub static RMM01PORTFOLIO_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = - ::ethers::contract::Lazy::new(|| { - ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid") - }); - #[rustfmt::skip] - const __BYTECODE: &[u8] = &[ - 96, - 192, - 96, - 64, - 82, - 96, - 1, - 96, - 11, - 85, - 96, - 4, - 96, - 12, - 85, - 52, - 128, - 21, - 98, - 0, - 0, - 27, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 96, - 64, - 81, - 98, - 0, - 141, - 216, - 56, - 3, - 128, - 98, - 0, - 141, - 216, - 131, - 57, - 129, - 1, - 96, - 64, - 129, - 144, - 82, - 98, - 0, - 0, - 62, - 145, - 98, - 0, - 0, - 128, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 145, - 130, - 22, - 96, - 128, - 82, - 22, - 96, - 160, - 82, - 96, - 4, - 128, - 84, - 96, - 255, - 25, - 22, - 96, - 1, - 23, - 144, - 85, - 98, - 0, - 0, - 184, - 86, - 91, - 128, - 81, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 129, - 22, - 129, - 20, - 98, - 0, - 0, - 123, - 87, - 96, - 0, - 128, - 253, - 91, - 145, - 144, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 64, - 131, - 133, - 3, - 18, - 21, - 98, - 0, - 0, - 148, - 87, - 96, - 0, - 128, - 253, - 91, - 98, - 0, - 0, - 159, - 131, - 98, - 0, - 0, - 99, - 86, - 91, - 145, - 80, - 98, - 0, - 0, - 175, - 96, - 32, - 132, - 1, - 98, - 0, - 0, - 99, - 86, - 91, - 144, - 80, - 146, - 80, - 146, - 144, - 80, - 86, - 91, - 96, - 128, - 81, - 96, - 160, - 81, - 97, - 140, - 208, - 98, - 0, - 1, - 8, - 96, - 0, - 57, - 96, - 0, - 129, - 129, - 97, - 2, - 36, - 1, - 82, - 129, - 129, - 97, - 24, - 150, - 1, - 82, - 97, - 88, - 223, - 1, - 82, - 96, - 0, - 129, - 129, - 97, - 1, - 225, - 1, - 82, - 129, - 129, - 97, - 8, - 112, - 1, - 82, - 129, - 129, - 97, - 37, - 97, - 1, - 82, - 129, - 129, - 97, - 37, - 157, - 1, - 82, - 97, - 65, - 87, - 1, - 82, - 97, - 140, - 208, - 96, - 0, - 243, - 254, - 96, - 128, - 96, - 64, - 82, - 96, - 4, - 54, - 16, - 97, - 1, - 209, - 87, - 96, - 0, - 53, - 96, - 224, - 28, - 128, - 99, - 152, - 155, - 175, - 186, - 17, - 97, - 0, - 247, - 87, - 128, - 99, - 182, - 133, - 19, - 234, - 17, - 97, - 0, - 149, - 87, - 128, - 99, - 212, - 250, - 196, - 93, - 17, - 97, - 0, - 100, - 87, - 128, - 99, - 212, - 250, - 196, - 93, - 20, - 97, - 9, - 221, - 87, - 128, - 99, - 214, - 183, - 222, - 197, - 20, - 97, - 9, - 253, - 87, - 128, - 99, - 218, - 49, - 238, - 84, - 20, - 97, - 10, - 53, - 87, - 128, - 99, - 255, - 161, - 173, - 116, - 20, - 97, - 10, - 79, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 99, - 182, - 133, - 19, - 234, - 20, - 97, - 8, - 178, - 87, - 128, - 99, - 196, - 141, - 136, - 122, - 20, - 97, - 9, - 127, - 87, - 128, - 99, - 201, - 163, - 150, - 233, - 20, - 97, - 9, - 159, - 87, - 128, - 99, - 208, - 227, - 13, - 176, - 20, - 97, - 9, - 213, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 99, - 166, - 138, - 170, - 65, - 17, - 97, - 0, - 209, - 87, - 128, - 99, - 166, - 138, - 170, - 65, - 20, - 97, - 8, - 30, - 87, - 128, - 99, - 173, - 36, - 214, - 160, - 20, - 97, - 8, - 62, - 87, - 128, - 99, - 173, - 92, - 70, - 72, - 20, - 97, - 8, - 94, - 87, - 128, - 99, - 175, - 119, - 120, - 85, - 20, - 97, - 8, - 146, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 99, - 152, - 155, - 175, - 186, - 20, - 97, - 7, - 163, - 87, - 128, - 99, - 160, - 253, - 244, - 19, - 20, - 97, - 7, - 195, - 87, - 128, - 99, - 165, - 205, - 138, - 73, - 20, - 97, - 7, - 214, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 99, - 77, - 198, - 138, - 144, - 17, - 97, - 1, - 111, - 87, - 128, - 99, - 123, - 24, - 55, - 222, - 17, - 97, - 1, - 62, - 87, - 128, - 99, - 123, - 24, - 55, - 222, - 20, - 97, - 4, - 165, - 87, - 128, - 99, - 125, - 174, - 72, - 144, - 20, - 97, - 4, - 197, - 87, - 128, - 99, - 137, - 146, - 242, - 10, - 20, - 97, - 4, - 229, - 87, - 128, - 99, - 137, - 165, - 240, - 132, - 20, - 97, - 5, - 5, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 99, - 77, - 198, - 138, - 144, - 20, - 97, - 3, - 172, - 87, - 128, - 99, - 94, - 71, - 102, - 60, - 20, - 97, - 3, - 218, - 87, - 128, - 99, - 97, - 183, - 234, - 106, - 20, - 97, - 4, - 101, - 87, - 128, - 99, - 120, - 125, - 206, - 61, - 20, - 97, - 4, - 133, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 99, - 42, - 251, - 157, - 248, - 17, - 97, - 1, - 171, - 87, - 128, - 99, - 42, - 251, - 157, - 248, - 20, - 97, - 2, - 211, - 87, - 128, - 99, - 44, - 198, - 100, - 30, - 20, - 97, - 3, - 8, - 87, - 128, - 99, - 47, - 51, - 125, - 165, - 20, - 97, - 3, - 56, - 87, - 128, - 99, - 63, - 146, - 163, - 57, - 20, - 97, - 3, - 111, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 99, - 6, - 67, - 59, - 27, - 20, - 97, - 2, - 18, - 87, - 128, - 99, - 7, - 136, - 136, - 214, - 20, - 97, - 2, - 99, - 87, - 128, - 99, - 26, - 75, - 144, - 91, - 20, - 97, - 2, - 147, - 87, - 96, - 0, - 128, - 253, - 91, - 54, - 97, - 2, - 13, - 87, - 51, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 127, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22, - 20, - 97, - 2, - 11, - 87, - 96, - 0, - 128, - 253, - 91, - 0, - 91, - 96, - 0, - 128, - 253, - 91, - 52, - 128, - 21, - 97, - 2, - 30, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 2, - 70, - 127, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 129, - 86, - 91, - 96, - 64, - 81, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 144, - 145, - 22, - 129, - 82, - 96, - 32, - 1, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 243, - 91, - 52, - 128, - 21, - 97, - 2, - 111, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 96, - 5, - 84, - 97, - 2, - 127, - 144, - 98, - 255, - 255, - 255, - 22, - 129, - 86, - 91, - 96, - 64, - 81, - 98, - 255, - 255, - 255, - 144, - 145, - 22, - 129, - 82, - 96, - 32, - 1, - 97, - 2, - 90, - 86, - 91, - 52, - 128, - 21, - 97, - 2, - 159, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 2, - 179, - 97, - 2, - 174, - 54, - 96, - 4, - 97, - 130, - 213, - 86, - 91, - 97, - 10, - 113, - 86, - 91, - 96, - 64, - 128, - 81, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 147, - 132, - 22, - 129, - 82, - 146, - 144, - 145, - 22, - 96, - 32, - 131, - 1, - 82, - 1, - 97, - 2, - 90, - 86, - 91, - 52, - 128, - 21, - 97, - 2, - 223, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 2, - 243, - 97, - 2, - 238, - 54, - 96, - 4, - 97, - 130, - 213, - 86, - 91, - 97, - 13, - 135, - 86, - 91, - 96, - 64, - 128, - 81, - 146, - 131, - 82, - 96, - 32, - 131, - 1, - 145, - 144, - 145, - 82, - 1, - 97, - 2, - 90, - 86, - 91, - 52, - 128, - 21, - 97, - 3, - 20, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 3, - 40, - 97, - 3, - 35, - 54, - 96, - 4, - 97, - 131, - 5, - 86, - 91, - 97, - 16, - 169, - 86, - 91, - 96, - 64, - 81, - 144, - 21, - 21, - 129, - 82, - 96, - 32, - 1, - 97, - 2, - 90, - 86, - 91, - 52, - 128, - 21, - 97, - 3, - 68, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 3, - 88, - 97, - 3, - 83, - 54, - 96, - 4, - 97, - 131, - 68, - 86, - 91, - 97, - 17, - 154, - 86, - 91, - 96, - 64, - 128, - 81, - 146, - 21, - 21, - 131, - 82, - 96, - 32, - 131, - 1, - 145, - 144, - 145, - 82, - 1, - 97, - 2, - 90, - 86, - 91, - 52, - 128, - 21, - 97, - 3, - 123, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 2, - 127, - 97, - 3, - 138, - 54, - 96, - 4, - 97, - 131, - 134, - 86, - 91, - 96, - 9, - 96, - 32, - 144, - 129, - 82, - 96, - 0, - 146, - 131, - 82, - 96, - 64, - 128, - 132, - 32, - 144, - 145, - 82, - 144, - 130, - 82, - 144, - 32, - 84, - 98, - 255, - 255, - 255, - 22, - 129, - 86, - 91, - 52, - 128, - 21, - 97, - 3, - 184, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 3, - 204, - 97, - 3, - 199, - 54, - 96, - 4, - 97, - 131, - 191, - 86, - 91, - 97, - 24, - 63, - 86, - 91, - 96, - 64, - 81, - 144, - 129, - 82, - 96, - 32, - 1, - 97, - 2, - 90, - 86, - 91, - 52, - 128, - 21, - 97, - 3, - 230, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 4, - 49, - 97, - 3, - 245, - 54, - 96, - 4, - 97, - 131, - 220, - 86, - 91, - 96, - 7, - 96, - 32, - 82, - 96, - 0, - 144, - 129, - 82, - 96, - 64, - 144, - 32, - 128, - 84, - 96, - 1, - 144, - 145, - 1, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 128, - 131, - 22, - 146, - 96, - 255, - 96, - 1, - 96, - 160, - 27, - 145, - 130, - 144, - 4, - 129, - 22, - 147, - 146, - 131, - 22, - 146, - 145, - 144, - 145, - 4, - 22, - 132, - 86, - 91, - 96, - 64, - 128, - 81, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 149, - 134, - 22, - 129, - 82, - 96, - 255, - 148, - 133, - 22, - 96, - 32, - 130, - 1, - 82, - 148, - 144, - 146, - 22, - 145, - 132, - 1, - 145, - 144, - 145, - 82, - 22, - 96, - 96, - 130, - 1, - 82, - 96, - 128, - 1, - 97, - 2, - 90, - 86, - 91, - 52, - 128, - 21, - 97, - 4, - 113, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 3, - 204, - 97, - 4, - 128, - 54, - 96, - 4, - 97, - 130, - 213, - 86, - 91, - 97, - 24, - 82, - 86, - 91, - 52, - 128, - 21, - 97, - 4, - 145, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 2, - 11, - 97, - 4, - 160, - 54, - 96, - 4, - 97, - 132, - 1, - 86, - 91, - 97, - 24, - 102, - 86, - 91, - 52, - 128, - 21, - 97, - 4, - 177, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 2, - 11, - 97, - 4, - 192, - 54, - 96, - 4, - 97, - 132, - 26, - 86, - 91, - 97, - 25, - 236, - 86, - 91, - 52, - 128, - 21, - 97, - 4, - 209, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 3, - 204, - 97, - 4, - 224, - 54, - 96, - 4, - 97, - 132, - 86, - 86, - 91, - 97, - 26, - 109, - 86, - 91, - 52, - 128, - 21, - 97, - 4, - 241, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 2, - 179, - 97, - 5, - 0, - 54, - 96, - 4, - 97, - 132, - 146, - 86, - 91, - 97, - 29, - 148, - 86, - 91, - 52, - 128, - 21, - 97, - 5, - 17, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 7, - 141, - 97, - 5, - 32, - 54, - 96, - 4, - 97, - 130, - 213, - 86, - 91, - 96, - 8, - 96, - 32, - 82, - 128, - 96, - 0, - 82, - 96, - 64, - 96, - 0, - 32, - 96, - 0, - 145, - 80, - 144, - 80, - 128, - 96, - 0, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 144, - 128, - 96, - 0, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 144, - 128, - 96, - 1, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 144, - 128, - 96, - 1, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 144, - 128, - 96, - 2, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 144, - 128, - 96, - 3, - 1, - 84, - 144, - 128, - 96, - 4, - 1, - 84, - 144, - 128, - 96, - 5, - 1, - 84, - 144, - 128, - 96, - 6, - 1, - 96, - 64, - 81, - 128, - 97, - 1, - 0, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 18, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 22, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 24, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 26, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 30, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 21, - 21, - 21, - 21, - 129, - 82, - 80, - 80, - 144, - 128, - 96, - 7, - 1, - 96, - 64, - 81, - 128, - 96, - 128, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 80, - 80, - 144, - 80, - 138, - 86, - 91, - 96, - 64, - 81, - 97, - 2, - 90, - 154, - 153, - 152, - 151, - 150, - 149, - 148, - 147, - 146, - 145, - 144, - 97, - 132, - 196, - 86, - 91, - 52, - 128, - 21, - 97, - 7, - 175, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 3, - 204, - 97, - 7, - 190, - 54, - 96, - 4, - 97, - 133, - 225, - 86, - 91, - 97, - 32, - 183, - 86, - 91, - 97, - 2, - 11, - 97, - 7, - 209, - 54, - 96, - 4, - 97, - 134, - 35, - 86, - 91, - 97, - 33, - 39, - 86, - 91, - 52, - 128, - 21, - 97, - 7, - 226, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 8, - 9, - 97, - 7, - 241, - 54, - 96, - 4, - 97, - 131, - 220, - 86, - 91, - 96, - 6, - 96, - 32, - 82, - 96, - 0, - 144, - 129, - 82, - 96, - 64, - 144, - 32, - 84, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 86, - 91, - 96, - 64, - 81, - 99, - 255, - 255, - 255, - 255, - 144, - 145, - 22, - 129, - 82, - 96, - 32, - 1, - 97, - 2, - 90, - 86, - 91, - 52, - 128, - 21, - 97, - 8, - 42, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 3, - 40, - 97, - 8, - 57, - 54, - 96, - 4, - 97, - 130, - 213, - 86, - 91, - 97, - 33, - 165, - 86, - 91, - 52, - 128, - 21, - 97, - 8, - 74, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 2, - 11, - 97, - 8, - 89, - 54, - 96, - 4, - 97, - 134, - 148, - 86, - 91, - 97, - 36, - 187, - 86, - 91, - 52, - 128, - 21, - 97, - 8, - 106, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 2, - 70, - 127, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 129, - 86, - 91, - 52, - 128, - 21, - 97, - 8, - 158, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 2, - 11, - 97, - 8, - 173, - 54, - 96, - 4, - 97, - 134, - 232, - 86, - 91, - 97, - 38, - 9, - 86, - 91, - 52, - 128, - 21, - 97, - 8, - 190, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 9, - 43, - 97, - 8, - 205, - 54, - 96, - 4, - 97, - 135, - 60, - 86, - 91, - 96, - 10, - 96, - 32, - 144, - 129, - 82, - 96, - 0, - 146, - 131, - 82, - 96, - 64, - 128, - 132, - 32, - 144, - 145, - 82, - 144, - 130, - 82, - 144, - 32, - 128, - 84, - 96, - 1, - 130, - 1, - 84, - 96, - 2, - 131, - 1, - 84, - 96, - 3, - 132, - 1, - 84, - 96, - 4, - 133, - 1, - 84, - 96, - 5, - 144, - 149, - 1, - 84, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 128, - 134, - 22, - 150, - 99, - 255, - 255, - 255, - 255, - 96, - 1, - 96, - 128, - 27, - 151, - 136, - 144, - 4, - 22, - 150, - 129, - 131, - 22, - 147, - 145, - 4, - 130, - 22, - 145, - 22, - 136, - 86, - 91, - 96, - 64, - 128, - 81, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 153, - 138, - 22, - 129, - 82, - 99, - 255, - 255, - 255, - 255, - 144, - 152, - 22, - 96, - 32, - 137, - 1, - 82, - 135, - 1, - 149, - 144, - 149, - 82, - 96, - 96, - 134, - 1, - 147, - 144, - 147, - 82, - 96, - 128, - 133, - 1, - 145, - 144, - 145, - 82, - 132, - 22, - 96, - 160, - 132, - 1, - 82, - 131, - 22, - 96, - 192, - 131, - 1, - 82, - 145, - 144, - 145, - 22, - 96, - 224, - 130, - 1, - 82, - 97, - 1, - 0, - 1, - 97, - 2, - 90, - 86, - 91, - 52, - 128, - 21, - 97, - 9, - 139, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 2, - 243, - 97, - 9, - 154, - 54, - 96, - 4, - 97, - 135, - 113, - 86, - 91, - 97, - 40, - 9, - 86, - 91, - 52, - 128, - 21, - 97, - 9, - 171, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 3, - 204, - 97, - 9, - 186, - 54, - 96, - 4, - 97, - 131, - 191, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 1, - 96, - 32, - 82, - 96, - 64, - 144, - 32, - 84, - 144, - 86, - 91, - 97, - 2, - 11, - 97, - 43, - 36, - 86, - 91, - 52, - 128, - 21, - 97, - 9, - 233, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 3, - 204, - 97, - 9, - 248, - 54, - 96, - 4, - 97, - 131, - 134, - 86, - 91, - 97, - 43, - 170, - 86, - 91, - 52, - 128, - 21, - 97, - 10, - 9, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 10, - 29, - 97, - 10, - 24, - 54, - 96, - 4, - 97, - 135, - 141, - 86, - 91, - 97, - 43, - 211, - 86, - 91, - 96, - 64, - 81, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 144, - 145, - 22, - 129, - 82, - 96, - 32, - 1, - 97, - 2, - 90, - 86, - 91, - 52, - 128, - 21, - 97, - 10, - 65, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 96, - 4, - 84, - 97, - 3, - 40, - 144, - 96, - 255, - 22, - 129, - 86, - 91, - 52, - 128, - 21, - 97, - 10, - 91, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 10, - 100, - 97, - 46, - 235, - 86, - 91, - 96, - 64, - 81, - 97, - 2, - 90, - 145, - 144, - 97, - 135, - 236, - 86, - 91, - 96, - 0, - 128, - 97, - 13, - 126, - 96, - 8, - 96, - 0, - 133, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 144, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 32, - 96, - 64, - 81, - 128, - 97, - 1, - 64, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 2, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 3, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 4, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 5, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 6, - 130, - 1, - 96, - 64, - 81, - 128, - 97, - 1, - 0, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 18, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 22, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 24, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 26, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 30, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 21, - 21, - 21, - 21, - 129, - 82, - 80, - 80, - 129, - 82, - 96, - 32, - 1, - 96, - 7, - 130, - 1, - 96, - 64, - 81, - 128, - 96, - 128, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 80, - 80, - 129, - 82, - 80, - 80, - 97, - 47, - 8, - 86, - 91, - 145, - 80, - 145, - 80, - 145, - 80, - 145, - 86, - 91, - 96, - 0, - 128, - 97, - 16, - 148, - 96, - 8, - 96, - 0, - 133, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 144, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 32, - 96, - 64, - 81, - 128, - 97, - 1, - 64, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 2, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 3, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 4, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 5, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 6, - 130, - 1, - 96, - 64, - 81, - 128, - 97, - 1, - 0, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 18, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 22, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 24, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 26, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 30, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 21, - 21, - 21, - 21, - 129, - 82, - 80, - 80, - 129, - 82, - 96, - 32, - 1, - 96, - 7, - 130, - 1, - 96, - 64, - 81, - 128, - 96, - 128, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 80, - 80, - 129, - 82, - 80, - 80, - 97, - 47, - 136, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 145, - 130, - 22, - 149, - 145, - 22, - 147, - 80, - 145, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 130, - 18, - 21, - 97, - 17, - 143, - 87, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 131, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 10, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 136, - 22, - 132, - 82, - 130, - 82, - 128, - 131, - 32, - 129, - 81, - 97, - 1, - 0, - 129, - 1, - 131, - 82, - 129, - 84, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 128, - 130, - 22, - 131, - 82, - 99, - 255, - 255, - 255, - 255, - 96, - 1, - 96, - 128, - 27, - 146, - 131, - 144, - 4, - 129, - 22, - 150, - 132, - 1, - 150, - 144, - 150, - 82, - 96, - 1, - 132, - 1, - 84, - 148, - 131, - 1, - 148, - 144, - 148, - 82, - 96, - 2, - 131, - 1, - 84, - 96, - 96, - 131, - 1, - 82, - 96, - 3, - 131, - 1, - 84, - 96, - 128, - 131, - 1, - 82, - 96, - 4, - 131, - 1, - 84, - 128, - 133, - 22, - 96, - 160, - 132, - 1, - 82, - 4, - 131, - 22, - 96, - 192, - 130, - 1, - 82, - 96, - 5, - 144, - 145, - 1, - 84, - 144, - 145, - 22, - 96, - 224, - 130, - 1, - 82, - 97, - 17, - 93, - 145, - 66, - 144, - 97, - 47, - 163, - 22, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 134, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 8, - 96, - 32, - 82, - 96, - 64, - 144, - 32, - 96, - 6, - 1, - 84, - 96, - 1, - 96, - 128, - 27, - 144, - 4, - 97, - 255, - 255, - 22, - 17, - 21, - 145, - 80, - 97, - 17, - 147, - 144, - 80, - 86, - 91, - 80, - 96, - 1, - 91, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 97, - 20, - 179, - 132, - 96, - 8, - 96, - 0, - 139, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 144, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 32, - 96, - 64, - 81, - 128, - 97, - 1, - 64, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 2, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 3, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 4, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 5, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 6, - 130, - 1, - 96, - 64, - 81, - 128, - 97, - 1, - 0, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 18, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 22, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 24, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 26, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 30, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 21, - 21, - 21, - 21, - 129, - 82, - 80, - 80, - 129, - 82, - 96, - 32, - 1, - 96, - 7, - 130, - 1, - 96, - 64, - 81, - 128, - 96, - 128, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 80, - 80, - 129, - 82, - 80, - 80, - 97, - 47, - 187, - 144, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 144, - 80, - 97, - 23, - 194, - 96, - 8, - 96, - 0, - 138, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 144, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 32, - 96, - 64, - 81, - 128, - 97, - 1, - 64, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 2, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 3, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 4, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 5, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 6, - 130, - 1, - 96, - 64, - 81, - 128, - 97, - 1, - 0, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 18, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 22, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 24, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 26, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 30, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 21, - 21, - 21, - 21, - 129, - 82, - 80, - 80, - 129, - 82, - 96, - 32, - 1, - 96, - 7, - 130, - 1, - 96, - 64, - 81, - 128, - 96, - 128, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 80, - 80, - 129, - 82, - 80, - 80, - 135, - 135, - 132, - 97, - 48, - 1, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 137, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 8, - 96, - 32, - 129, - 144, - 82, - 96, - 64, - 130, - 32, - 1, - 84, - 145, - 147, - 80, - 144, - 97, - 23, - 247, - 144, - 137, - 144, - 96, - 1, - 96, - 160, - 27, - 144, - 4, - 96, - 255, - 22, - 97, - 48, - 70, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 138, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 8, - 96, - 32, - 129, - 144, - 82, - 96, - 64, - 130, - 32, - 1, - 84, - 145, - 146, - 80, - 144, - 97, - 24, - 44, - 144, - 133, - 144, - 96, - 1, - 96, - 160, - 27, - 144, - 4, - 96, - 255, - 22, - 97, - 48, - 70, - 86, - 91, - 145, - 144, - 145, - 18, - 21, - 147, - 80, - 80, - 80, - 149, - 80, - 149, - 147, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 97, - 24, - 76, - 129, - 131, - 48, - 97, - 48, - 92, - 86, - 91, - 146, - 145, - 80, - 80, - 86, - 91, - 96, - 0, - 97, - 24, - 93, - 130, - 97, - 48, - 152, - 86, - 91, - 80, - 144, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 11, - 84, - 96, - 1, - 20, - 97, - 24, - 140, - 87, - 96, - 64, - 81, - 96, - 1, - 98, - 56, - 221, - 247, - 96, - 224, - 27, - 3, - 25, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 2, - 96, - 11, - 129, - 144, - 85, - 80, - 127, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 99, - 247, - 124, - 71, - 145, - 96, - 64, - 81, - 129, - 99, - 255, - 255, - 255, - 255, - 22, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 32, - 96, - 64, - 81, - 128, - 131, - 3, - 129, - 134, - 90, - 250, - 21, - 128, - 21, - 97, - 24, - 242, - 87, - 61, - 96, - 0, - 128, - 62, - 61, - 96, - 0, - 253, - 91, - 80, - 80, - 80, - 80, - 96, - 64, - 81, - 61, - 96, - 31, - 25, - 96, - 31, - 130, - 1, - 22, - 130, - 1, - 128, - 96, - 64, - 82, - 80, - 129, - 1, - 144, - 97, - 25, - 22, - 145, - 144, - 97, - 136, - 31, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 51, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 20, - 97, - 25, - 71, - 87, - 96, - 64, - 81, - 99, - 35, - 1, - 158, - 103, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 20, - 129, - 17, - 128, - 97, - 25, - 86, - 87, - 80, - 96, - 4, - 129, - 16, - 91, - 21, - 97, - 25, - 127, - 87, - 96, - 64, - 81, - 99, - 246, - 244, - 163, - 143, - 96, - 224, - 27, - 129, - 82, - 97, - 255, - 255, - 130, - 22, - 96, - 4, - 130, - 1, - 82, - 96, - 36, - 1, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 13, - 128, - 84, - 144, - 130, - 144, - 85, - 96, - 64, - 128, - 81, - 130, - 129, - 82, - 96, - 32, - 129, - 1, - 132, - 144, - 82, - 127, - 129, - 201, - 57, - 20, - 72, - 0, - 40, - 118, - 3, - 71, - 155, - 151, - 187, - 169, - 193, - 18, - 136, - 206, - 122, - 188, - 90, - 203, - 72, - 144, - 121, - 225, - 89, - 243, - 92, - 249, - 139, - 209, - 145, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 161, - 80, - 96, - 1, - 96, - 11, - 85, - 96, - 4, - 84, - 96, - 255, - 22, - 97, - 25, - 233, - 87, - 96, - 64, - 81, - 99, - 4, - 86, - 76, - 113, - 96, - 226, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 80, - 86, - 91, - 96, - 11, - 84, - 96, - 1, - 20, - 97, - 26, - 18, - 87, - 96, - 64, - 81, - 96, - 1, - 98, - 56, - 221, - 247, - 96, - 224, - 27, - 3, - 25, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 2, - 96, - 11, - 85, - 96, - 1, - 129, - 1, - 97, - 26, - 44, - 87, - 97, - 26, - 41, - 130, - 51, - 97, - 57, - 236, - 86, - 91, - 144, - 80, - 91, - 97, - 26, - 57, - 96, - 0, - 131, - 48, - 132, - 97, - 58, - 204, - 86, - 91, - 97, - 26, - 65, - 97, - 58, - 225, - 86, - 91, - 96, - 1, - 96, - 11, - 85, - 96, - 4, - 84, - 96, - 255, - 22, - 97, - 26, - 105, - 87, - 96, - 64, - 81, - 99, - 4, - 86, - 76, - 113, - 96, - 226, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 8, - 96, - 0, - 134, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 144, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 32, - 96, - 64, - 81, - 128, - 97, - 1, - 64, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 2, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 3, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 4, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 5, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 6, - 130, - 1, - 96, - 64, - 81, - 128, - 97, - 1, - 0, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 18, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 22, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 24, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 26, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 30, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 21, - 21, - 21, - 21, - 129, - 82, - 80, - 80, - 129, - 82, - 96, - 32, - 1, - 96, - 7, - 130, - 1, - 96, - 64, - 81, - 128, - 96, - 128, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 80, - 80, - 129, - 82, - 80, - 80, - 144, - 80, - 97, - 29, - 139, - 132, - 132, - 66, - 132, - 97, - 63, - 115, - 144, - 147, - 146, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 149, - 148, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 97, - 32, - 171, - 131, - 96, - 8, - 96, - 0, - 135, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 144, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 32, - 96, - 64, - 81, - 128, - 97, - 1, - 64, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 2, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 3, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 4, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 5, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 6, - 130, - 1, - 96, - 64, - 81, - 128, - 97, - 1, - 0, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 18, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 22, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 24, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 26, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 30, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 21, - 21, - 21, - 21, - 129, - 82, - 80, - 80, - 129, - 82, - 96, - 32, - 1, - 96, - 7, - 130, - 1, - 96, - 64, - 81, - 128, - 96, - 128, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 80, - 80, - 129, - 82, - 80, - 80, - 97, - 64, - 48, - 144, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 145, - 80, - 145, - 80, - 91, - 146, - 80, - 146, - 144, - 80, - 86, - 91, - 96, - 0, - 128, - 132, - 21, - 97, - 32, - 227, - 87, - 97, - 32, - 220, - 131, - 97, - 32, - 214, - 134, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 97, - 136, - 82, - 86, - 91, - 144, - 97, - 65, - 53, - 86, - 91, - 144, - 80, - 97, - 33, - 28, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 134, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 8, - 96, - 32, - 82, - 96, - 64, - 144, - 32, - 96, - 6, - 1, - 84, - 97, - 33, - 25, - 144, - 132, - 144, - 97, - 32, - 214, - 144, - 135, - 144, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 97, - 136, - 82, - 86, - 91, - 144, - 80, - 91, - 144, - 80, - 91, - 148, - 147, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 11, - 84, - 96, - 1, - 20, - 97, - 33, - 77, - 87, - 96, - 64, - 81, - 96, - 1, - 98, - 56, - 221, - 247, - 96, - 224, - 27, - 3, - 25, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 2, - 96, - 11, - 85, - 97, - 33, - 90, - 97, - 65, - 74, - 86, - 91, - 96, - 85, - 96, - 249, - 27, - 130, - 130, - 96, - 0, - 129, - 97, - 33, - 112, - 87, - 97, - 33, - 112, - 97, - 136, - 105, - 86, - 91, - 144, - 80, - 1, - 53, - 96, - 248, - 28, - 96, - 248, - 27, - 96, - 1, - 96, - 1, - 96, - 248, - 27, - 3, - 25, - 22, - 20, - 97, - 33, - 152, - 87, - 97, - 33, - 147, - 130, - 130, - 97, - 65, - 178, - 86, - 91, - 97, - 26, - 57, - 86, - 91, - 97, - 26, - 57, - 130, - 130, - 97, - 65, - 178, - 97, - 69, - 10, - 86, - 91, - 96, - 0, - 97, - 24, - 76, - 96, - 8, - 96, - 0, - 132, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 144, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 32, - 96, - 64, - 81, - 128, - 97, - 1, - 64, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 2, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 3, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 4, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 5, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 6, - 130, - 1, - 96, - 64, - 81, - 128, - 97, - 1, - 0, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 18, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 22, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 24, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 26, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 30, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 21, - 21, - 21, - 21, - 129, - 82, - 80, - 80, - 129, - 82, - 96, - 32, - 1, - 96, - 7, - 130, - 1, - 96, - 64, - 81, - 128, - 96, - 128, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 80, - 80, - 129, - 82, - 80, - 80, - 96, - 96, - 1, - 81, - 99, - 255, - 255, - 255, - 255, - 22, - 21, - 21, - 144, - 86, - 91, - 96, - 11, - 84, - 96, - 1, - 20, - 97, - 36, - 225, - 87, - 96, - 64, - 81, - 96, - 1, - 98, - 56, - 221, - 247, - 96, - 224, - 27, - 3, - 25, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 2, - 96, - 11, - 85, - 48, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 130, - 22, - 3, - 97, - 37, - 15, - 87, - 96, - 64, - 81, - 99, - 47, - 53, - 37, - 49, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 0, - 97, - 37, - 27, - 51, - 133, - 97, - 43, - 170, - 86, - 91, - 144, - 80, - 96, - 0, - 25, - 131, - 3, - 97, - 37, - 42, - 87, - 128, - 146, - 80, - 91, - 128, - 131, - 17, - 21, - 97, - 37, - 75, - 87, - 96, - 64, - 81, - 99, - 50, - 124, - 188, - 155, - 96, - 226, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 97, - 37, - 85, - 132, - 132, - 97, - 69, - 216, - 86, - 91, - 97, - 37, - 95, - 132, - 132, - 97, - 70, - 43, - 86, - 91, - 127, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 132, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 3, - 97, - 37, - 200, - 87, - 97, - 37, - 195, - 127, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 131, - 133, - 97, - 70, - 126, - 86, - 91, - 97, - 37, - 211, - 86, - 91, - 97, - 37, - 211, - 132, - 131, - 133, - 97, - 71, - 101, - 86, - 91, - 97, - 37, - 219, - 97, - 58, - 225, - 86, - 91, - 80, - 96, - 1, - 96, - 11, - 85, - 96, - 4, - 84, - 96, - 255, - 22, - 97, - 38, - 4, - 87, - 96, - 64, - 81, - 99, - 4, - 86, - 76, - 113, - 96, - 226, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 80, - 80, - 80, - 86, - 91, - 96, - 11, - 84, - 96, - 1, - 20, - 97, - 38, - 47, - 87, - 96, - 64, - 81, - 96, - 1, - 98, - 56, - 221, - 247, - 96, - 224, - 27, - 3, - 25, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 2, - 96, - 11, - 129, - 144, - 85, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 133, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 8, - 96, - 32, - 82, - 96, - 64, - 144, - 32, - 144, - 129, - 1, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 51, - 20, - 97, - 38, - 122, - 87, - 96, - 64, - 81, - 99, - 35, - 1, - 158, - 103, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 64, - 128, - 81, - 97, - 1, - 0, - 129, - 1, - 130, - 82, - 96, - 0, - 128, - 130, - 82, - 96, - 32, - 130, - 1, - 129, - 144, - 82, - 145, - 129, - 1, - 130, - 144, - 82, - 96, - 96, - 129, - 1, - 130, - 144, - 82, - 96, - 128, - 129, - 1, - 130, - 144, - 82, - 96, - 160, - 129, - 1, - 130, - 144, - 82, - 96, - 192, - 129, - 1, - 130, - 144, - 82, - 96, - 224, - 129, - 1, - 145, - 144, - 145, - 82, - 80, - 96, - 64, - 128, - 81, - 97, - 1, - 0, - 129, - 1, - 130, - 82, - 96, - 6, - 131, - 1, - 84, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 129, - 22, - 130, - 82, - 97, - 255, - 255, - 96, - 1, - 96, - 128, - 27, - 130, - 4, - 129, - 22, - 96, - 32, - 132, - 1, - 82, - 96, - 1, - 96, - 144, - 27, - 130, - 4, - 129, - 22, - 147, - 131, - 1, - 147, - 144, - 147, - 82, - 96, - 1, - 96, - 160, - 27, - 129, - 4, - 131, - 22, - 96, - 96, - 131, - 1, - 82, - 96, - 1, - 96, - 176, - 27, - 129, - 4, - 131, - 22, - 96, - 128, - 131, - 1, - 82, - 96, - 1, - 96, - 192, - 27, - 129, - 4, - 131, - 22, - 96, - 160, - 131, - 1, - 82, - 99, - 255, - 255, - 255, - 255, - 96, - 1, - 96, - 208, - 27, - 130, - 4, - 22, - 96, - 192, - 131, - 1, - 82, - 96, - 255, - 96, - 1, - 96, - 240, - 27, - 144, - 145, - 4, - 22, - 21, - 21, - 96, - 224, - 130, - 1, - 82, - 144, - 131, - 22, - 21, - 97, - 39, - 90, - 87, - 97, - 255, - 255, - 131, - 22, - 96, - 32, - 130, - 1, - 82, - 91, - 97, - 255, - 255, - 132, - 22, - 21, - 97, - 39, - 111, - 87, - 97, - 255, - 255, - 132, - 22, - 96, - 64, - 130, - 1, - 82, - 91, - 97, - 255, - 255, - 133, - 22, - 21, - 97, - 39, - 132, - 87, - 97, - 255, - 255, - 133, - 22, - 96, - 160, - 130, - 1, - 82, - 91, - 97, - 39, - 142, - 130, - 130, - 97, - 71, - 227, - 86, - 91, - 96, - 64, - 81, - 97, - 255, - 255, - 132, - 129, - 22, - 130, - 82, - 128, - 134, - 22, - 145, - 144, - 135, - 22, - 144, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 137, - 22, - 144, - 127, - 99, - 136, - 150, - 84, - 253, - 163, - 215, - 78, - 149, - 252, - 123, - 230, - 211, - 16, - 196, - 83, - 198, - 136, - 59, - 108, - 205, - 232, - 64, - 12, - 71, - 103, - 39, - 35, - 126, - 99, - 42, - 194, - 144, - 96, - 32, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 164, - 80, - 80, - 96, - 1, - 96, - 11, - 85, - 96, - 4, - 84, - 96, - 255, - 22, - 97, - 40, - 3, - 87, - 96, - 64, - 81, - 99, - 4, - 86, - 76, - 113, - 96, - 226, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 97, - 43, - 25, - 96, - 8, - 96, - 0, - 134, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 144, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 32, - 96, - 64, - 81, - 128, - 97, - 1, - 64, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 2, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 3, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 4, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 5, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 6, - 130, - 1, - 96, - 64, - 81, - 128, - 97, - 1, - 0, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 18, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 22, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 24, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 26, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 30, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 21, - 21, - 21, - 21, - 129, - 82, - 80, - 80, - 129, - 82, - 96, - 32, - 1, - 96, - 7, - 130, - 1, - 96, - 64, - 81, - 128, - 96, - 128, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 80, - 80, - 129, - 82, - 80, - 80, - 132, - 96, - 0, - 97, - 72, - 225, - 86, - 91, - 144, - 149, - 144, - 148, - 80, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 11, - 84, - 96, - 1, - 20, - 97, - 43, - 74, - 87, - 96, - 64, - 81, - 96, - 1, - 98, - 56, - 221, - 247, - 96, - 224, - 27, - 3, - 25, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 2, - 96, - 11, - 85, - 52, - 96, - 0, - 3, - 97, - 43, - 112, - 87, - 96, - 64, - 81, - 99, - 124, - 148, - 110, - 215, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 97, - 43, - 120, - 97, - 65, - 74, - 86, - 91, - 97, - 43, - 128, - 97, - 58, - 225, - 86, - 91, - 96, - 1, - 96, - 11, - 85, - 96, - 4, - 84, - 96, - 255, - 22, - 97, - 43, - 168, - 87, - 96, - 64, - 81, - 99, - 4, - 86, - 76, - 113, - 96, - 226, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 145, - 130, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 32, - 129, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 147, - 144, - 148, - 22, - 130, - 82, - 145, - 144, - 145, - 82, - 32, - 84, - 144, - 86, - 91, - 96, - 0, - 97, - 33, - 31, - 131, - 131, - 96, - 8, - 96, - 0, - 136, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 144, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 32, - 96, - 64, - 81, - 128, - 97, - 1, - 64, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 2, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 3, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 4, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 5, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 6, - 130, - 1, - 96, - 64, - 81, - 128, - 97, - 1, - 0, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 18, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 22, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 24, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 26, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 30, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 21, - 21, - 21, - 21, - 129, - 82, - 80, - 80, - 129, - 82, - 96, - 32, - 1, - 96, - 7, - 130, - 1, - 96, - 64, - 81, - 128, - 96, - 128, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 80, - 80, - 129, - 82, - 80, - 80, - 97, - 73, - 105, - 144, - 146, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 96, - 96, - 96, - 32, - 96, - 0, - 82, - 107, - 11, - 118, - 49, - 46, - 48, - 46, - 48, - 45, - 98, - 101, - 116, - 97, - 96, - 43, - 82, - 96, - 96, - 96, - 0, - 243, - 91, - 96, - 0, - 128, - 96, - 0, - 128, - 97, - 47, - 30, - 133, - 128, - 81, - 96, - 32, - 144, - 145, - 1, - 81, - 144, - 145, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 145, - 80, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 145, - 80, - 97, - 47, - 91, - 97, - 47, - 86, - 134, - 97, - 1, - 32, - 1, - 81, - 96, - 32, - 1, - 81, - 96, - 255, - 22, - 132, - 97, - 74, - 33, - 144, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 97, - 74, - 55, - 86, - 91, - 147, - 80, - 97, - 47, - 127, - 97, - 47, - 86, - 134, - 97, - 1, - 32, - 1, - 81, - 96, - 96, - 1, - 81, - 96, - 255, - 22, - 131, - 97, - 74, - 33, - 144, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 146, - 80, - 80, - 80, - 145, - 80, - 145, - 86, - 91, - 96, - 0, - 128, - 97, - 13, - 126, - 131, - 96, - 64, - 1, - 81, - 97, - 47, - 156, - 144, - 97, - 136, - 127, - 86, - 91, - 132, - 144, - 97, - 64, - 48, - 86, - 91, - 96, - 0, - 130, - 96, - 32, - 1, - 81, - 99, - 255, - 255, - 255, - 255, - 22, - 130, - 97, - 17, - 147, - 145, - 144, - 97, - 136, - 82, - 86, - 91, - 96, - 0, - 130, - 97, - 1, - 0, - 1, - 81, - 96, - 224, - 1, - 81, - 21, - 97, - 47, - 215, - 87, - 80, - 99, - 1, - 225, - 133, - 89, - 97, - 24, - 76, - 86, - 91, - 96, - 0, - 97, - 47, - 231, - 132, - 97, - 1, - 0, - 1, - 81, - 97, - 74, - 77, - 86, - 91, - 99, - 255, - 255, - 255, - 255, - 22, - 128, - 132, - 3, - 144, - 132, - 16, - 2, - 131, - 3, - 146, - 144, - 146, - 3, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 97, - 33, - 28, - 131, - 133, - 135, - 97, - 1, - 0, - 1, - 81, - 96, - 0, - 1, - 81, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 97, - 48, - 64, - 137, - 97, - 1, - 0, - 1, - 81, - 96, - 128, - 1, - 81, - 97, - 255, - 255, - 22, - 97, - 39, - 16, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 145, - 144, - 145, - 2, - 4, - 144, - 86, - 91, - 134, - 97, - 74, - 116, - 86, - 91, - 96, - 0, - 128, - 97, - 48, - 82, - 131, - 97, - 74, - 145, - 86, - 91, - 144, - 147, - 5, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 130, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 1, - 132, - 1, - 96, - 32, - 82, - 96, - 64, - 129, - 32, - 84, - 129, - 97, - 48, - 130, - 133, - 133, - 97, - 57, - 236, - 86, - 91, - 144, - 80, - 97, - 48, - 142, - 130, - 130, - 97, - 136, - 165, - 86, - 91, - 150, - 149, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 128, - 96, - 8, - 96, - 0, - 134, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 144, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 32, - 144, - 80, - 97, - 51, - 181, - 66, - 130, - 96, - 64, - 81, - 128, - 97, - 1, - 64, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 2, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 3, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 4, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 5, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 6, - 130, - 1, - 96, - 64, - 81, - 128, - 97, - 1, - 0, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 18, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 22, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 24, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 26, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 30, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 21, - 21, - 21, - 21, - 129, - 82, - 80, - 80, - 129, - 82, - 96, - 32, - 1, - 96, - 7, - 130, - 1, - 96, - 64, - 81, - 128, - 96, - 128, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 80, - 80, - 129, - 82, - 80, - 80, - 97, - 47, - 187, - 144, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 145, - 80, - 96, - 0, - 128, - 97, - 54, - 167, - 131, - 96, - 64, - 81, - 128, - 97, - 1, - 64, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 2, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 3, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 4, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 5, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 6, - 130, - 1, - 96, - 64, - 81, - 128, - 97, - 1, - 0, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 18, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 22, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 24, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 26, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 30, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 21, - 21, - 21, - 21, - 129, - 82, - 80, - 80, - 129, - 82, - 96, - 32, - 1, - 96, - 7, - 130, - 1, - 96, - 64, - 81, - 128, - 96, - 128, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 80, - 80, - 129, - 82, - 80, - 80, - 128, - 81, - 96, - 32, - 144, - 145, - 1, - 81, - 144, - 145, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 145, - 80, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 145, - 80, - 97, - 57, - 177, - 130, - 130, - 134, - 134, - 96, - 64, - 81, - 128, - 97, - 1, - 64, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 2, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 3, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 4, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 5, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 6, - 130, - 1, - 96, - 64, - 81, - 128, - 97, - 1, - 0, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 18, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 22, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 24, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 26, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 30, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 21, - 21, - 21, - 21, - 129, - 82, - 80, - 80, - 129, - 82, - 96, - 32, - 1, - 96, - 7, - 130, - 1, - 96, - 64, - 81, - 128, - 96, - 128, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 80, - 80, - 129, - 82, - 80, - 80, - 97, - 48, - 1, - 144, - 147, - 146, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 96, - 6, - 132, - 1, - 84, - 96, - 15, - 145, - 144, - 145, - 11, - 149, - 80, - 97, - 57, - 224, - 144, - 131, - 144, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 129, - 22, - 144, - 96, - 1, - 96, - 176, - 27, - 144, - 4, - 97, - 255, - 255, - 22, - 135, - 97, - 74, - 169, - 86, - 91, - 149, - 80, - 80, - 80, - 80, - 145, - 147, - 144, - 146, - 80, - 86, - 91, - 96, - 64, - 128, - 81, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 131, - 129, - 22, - 96, - 36, - 128, - 132, - 1, - 145, - 144, - 145, - 82, - 131, - 81, - 128, - 132, - 3, - 144, - 145, - 1, - 129, - 82, - 96, - 68, - 144, - 146, - 1, - 131, - 82, - 96, - 32, - 130, - 1, - 128, - 81, - 96, - 1, - 96, - 1, - 96, - 224, - 27, - 3, - 22, - 99, - 112, - 160, - 130, - 49, - 96, - 224, - 27, - 23, - 144, - 82, - 145, - 81, - 96, - 0, - 146, - 131, - 146, - 131, - 146, - 145, - 135, - 22, - 145, - 97, - 58, - 70, - 145, - 144, - 97, - 136, - 228, - 86, - 91, - 96, - 0, - 96, - 64, - 81, - 128, - 131, - 3, - 129, - 133, - 90, - 250, - 145, - 80, - 80, - 61, - 128, - 96, - 0, - 129, - 20, - 97, - 58, - 129, - 87, - 96, - 64, - 81, - 145, - 80, - 96, - 31, - 25, - 96, - 63, - 61, - 1, - 22, - 130, - 1, - 96, - 64, - 82, - 61, - 130, - 82, - 61, - 96, - 0, - 96, - 32, - 132, - 1, - 62, - 97, - 58, - 134, - 86, - 91, - 96, - 96, - 145, - 80, - 91, - 80, - 145, - 80, - 145, - 80, - 129, - 21, - 128, - 97, - 58, - 154, - 87, - 80, - 128, - 81, - 96, - 32, - 20, - 21, - 91, - 21, - 97, - 58, - 184, - 87, - 96, - 64, - 81, - 99, - 197, - 46, - 62, - 255, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 128, - 128, - 96, - 32, - 1, - 144, - 81, - 129, - 1, - 144, - 97, - 29, - 139, - 145, - 144, - 97, - 137, - 0, - 86, - 91, - 97, - 58, - 214, - 132, - 132, - 97, - 76, - 48, - 86, - 91, - 97, - 40, - 3, - 131, - 131, - 131, - 97, - 76, - 192, - 86, - 91, - 96, - 0, - 128, - 96, - 3, - 1, - 128, - 84, - 128, - 96, - 32, - 2, - 96, - 32, - 1, - 96, - 64, - 81, - 144, - 129, - 1, - 96, - 64, - 82, - 128, - 146, - 145, - 144, - 129, - 129, - 82, - 96, - 32, - 1, - 130, - 128, - 84, - 128, - 21, - 97, - 59, - 59, - 87, - 96, - 32, - 2, - 130, - 1, - 145, - 144, - 96, - 0, - 82, - 96, - 32, - 96, - 0, - 32, - 144, - 91, - 129, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 1, - 144, - 145, - 1, - 144, - 96, - 32, - 1, - 128, - 131, - 17, - 97, - 59, - 29, - 87, - 91, - 80, - 80, - 80, - 80, - 80, - 144, - 80, - 96, - 0, - 129, - 81, - 144, - 80, - 128, - 96, - 0, - 3, - 97, - 59, - 90, - 87, - 97, - 26, - 105, - 96, - 0, - 97, - 76, - 204, - 86, - 91, - 128, - 91, - 96, - 0, - 131, - 97, - 59, - 106, - 96, - 1, - 132, - 97, - 136, - 82, - 86, - 91, - 129, - 81, - 129, - 16, - 97, - 59, - 122, - 87, - 97, - 59, - 122, - 97, - 136, - 105, - 86, - 91, - 96, - 32, - 2, - 96, - 32, - 1, - 1, - 81, - 144, - 80, - 96, - 0, - 128, - 96, - 0, - 97, - 59, - 159, - 132, - 48, - 96, - 0, - 97, - 76, - 251, - 144, - 146, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 145, - 148, - 80, - 146, - 80, - 144, - 80, - 130, - 21, - 97, - 60, - 52, - 87, - 96, - 64, - 81, - 131, - 129, - 82, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 133, - 22, - 144, - 51, - 144, - 127, - 73, - 225, - 68, - 60, - 178, - 94, - 23, - 203, - 235, - 197, - 10, - 163, - 227, - 165, - 163, - 223, - 58, - 195, - 52, - 175, - 133, - 43, - 198, - 243, - 232, - 210, - 88, - 85, - 130, - 87, - 187, - 17, - 144, - 96, - 32, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 163, - 131, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 127, - 128, - 178, - 23, - 72, - 199, - 135, - 197, - 46, - 135, - 166, - 178, - 34, - 1, - 30, - 10, - 14, - 208, - 249, - 204, - 32, - 21, - 240, - 206, - 212, - 103, - 72, - 100, - 45, - 198, - 46, - 233, - 248, - 132, - 96, - 64, - 81, - 97, - 60, - 39, - 145, - 129, - 82, - 96, - 32, - 1, - 144, - 86, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 162, - 97, - 61, - 65, - 86, - 91, - 129, - 21, - 97, - 60, - 190, - 87, - 96, - 64, - 81, - 130, - 129, - 82, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 133, - 22, - 144, - 51, - 144, - 127, - 11, - 11, - 130, - 25, - 83, - 229, - 84, - 91, - 113, - 242, - 8, - 88, - 51, - 228, - 168, - 223, - 208, - 217, - 155, - 189, - 255, - 81, - 24, - 152, - 103, - 42, - 232, - 23, - 154, - 152, - 45, - 243, - 144, - 96, - 32, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 163, - 131, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 127, - 28, - 113, - 30, - 202, - 141, - 11, - 105, - 75, - 188, - 176, - 161, - 68, - 98, - 167, - 0, - 98, - 34, - 231, - 33, - 149, - 75, - 44, - 95, - 247, - 152, - 246, - 6, - 129, - 126, - 177, - 16, - 50, - 131, - 96, - 64, - 81, - 97, - 60, - 181, - 145, - 129, - 82, - 96, - 32, - 1, - 144, - 86, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 162, - 91, - 128, - 21, - 97, - 61, - 65, - 87, - 96, - 14, - 96, - 64, - 81, - 128, - 96, - 96, - 1, - 96, - 64, - 82, - 128, - 134, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 131, - 129, - 82, - 96, - 32, - 1, - 97, - 60, - 240, - 135, - 48, - 97, - 57, - 236, - 86, - 91, - 144, - 82, - 129, - 84, - 96, - 1, - 128, - 130, - 1, - 132, - 85, - 96, - 0, - 147, - 132, - 82, - 96, - 32, - 147, - 132, - 144, - 32, - 131, - 81, - 96, - 3, - 144, - 147, - 2, - 1, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 25, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 144, - 147, - 22, - 146, - 144, - 146, - 23, - 130, - 85, - 146, - 130, - 1, - 81, - 146, - 129, - 1, - 146, - 144, - 146, - 85, - 96, - 64, - 1, - 81, - 96, - 2, - 144, - 145, - 1, - 85, - 91, - 96, - 3, - 128, - 84, - 128, - 97, - 61, - 82, - 87, - 97, - 61, - 82, - 97, - 137, - 25, - 86, - 91, - 96, - 0, - 130, - 129, - 82, - 96, - 32, - 129, - 32, - 130, - 1, - 96, - 0, - 25, - 144, - 129, - 1, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 25, - 22, - 144, - 85, - 145, - 130, - 1, - 144, - 146, - 85, - 134, - 1, - 149, - 144, - 3, - 96, - 1, - 1, - 147, - 80, - 97, - 59, - 92, - 146, - 80, - 80, - 80, - 87, - 96, - 0, - 96, - 14, - 128, - 84, - 128, - 96, - 32, - 2, - 96, - 32, - 1, - 96, - 64, - 81, - 144, - 129, - 1, - 96, - 64, - 82, - 128, - 146, - 145, - 144, - 129, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 144, - 91, - 130, - 130, - 16, - 21, - 97, - 62, - 2, - 87, - 96, - 0, - 132, - 129, - 82, - 96, - 32, - 144, - 129, - 144, - 32, - 96, - 64, - 128, - 81, - 96, - 96, - 129, - 1, - 130, - 82, - 96, - 3, - 134, - 2, - 144, - 146, - 1, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 131, - 82, - 96, - 1, - 128, - 130, - 1, - 84, - 132, - 134, - 1, - 82, - 96, - 2, - 144, - 145, - 1, - 84, - 145, - 131, - 1, - 145, - 144, - 145, - 82, - 144, - 131, - 82, - 144, - 146, - 1, - 145, - 1, - 97, - 61, - 173, - 86, - 91, - 80, - 80, - 130, - 81, - 146, - 147, - 80, - 80, - 80, - 91, - 128, - 21, - 97, - 62, - 112, - 87, - 96, - 0, - 97, - 62, - 31, - 96, - 1, - 131, - 97, - 136, - 82, - 86, - 91, - 144, - 80, - 97, - 62, - 102, - 131, - 130, - 129, - 81, - 129, - 16, - 97, - 62, - 54, - 87, - 97, - 62, - 54, - 97, - 136, - 105, - 86, - 91, - 96, - 32, - 2, - 96, - 32, - 1, - 1, - 81, - 96, - 0, - 1, - 81, - 48, - 133, - 132, - 129, - 81, - 129, - 16, - 97, - 62, - 85, - 87, - 97, - 62, - 85, - 97, - 136, - 105, - 86, - 91, - 96, - 32, - 2, - 96, - 32, - 1, - 1, - 81, - 96, - 32, - 1, - 81, - 97, - 76, - 192, - 86, - 91, - 80, - 96, - 0, - 25, - 1, - 97, - 62, - 12, - 86, - 91, - 80, - 128, - 81, - 91, - 128, - 21, - 97, - 63, - 86, - 87, - 96, - 0, - 97, - 62, - 135, - 96, - 1, - 131, - 97, - 136, - 82, - 86, - 91, - 144, - 80, - 96, - 0, - 131, - 130, - 129, - 81, - 129, - 16, - 97, - 62, - 157, - 87, - 97, - 62, - 157, - 97, - 136, - 105, - 86, - 91, - 96, - 32, - 2, - 96, - 32, - 1, - 1, - 81, - 96, - 0, - 1, - 81, - 144, - 80, - 96, - 0, - 132, - 131, - 129, - 81, - 129, - 16, - 97, - 62, - 191, - 87, - 97, - 62, - 191, - 97, - 136, - 105, - 86, - 91, - 96, - 32, - 2, - 96, - 32, - 1, - 1, - 81, - 96, - 64, - 1, - 81, - 144, - 80, - 96, - 0, - 97, - 62, - 217, - 131, - 48, - 97, - 57, - 236, - 86, - 91, - 144, - 80, - 96, - 0, - 130, - 135, - 134, - 129, - 81, - 129, - 16, - 97, - 62, - 240, - 87, - 97, - 62, - 240, - 97, - 136, - 105, - 86, - 91, - 96, - 32, - 2, - 96, - 32, - 1, - 1, - 81, - 96, - 32, - 1, - 81, - 97, - 63, - 6, - 145, - 144, - 97, - 137, - 47, - 86, - 91, - 144, - 80, - 128, - 130, - 16, - 21, - 97, - 63, - 69, - 87, - 131, - 97, - 63, - 27, - 130, - 132, - 97, - 136, - 165, - 86, - 91, - 96, - 64, - 81, - 99, - 127, - 17, - 205, - 213, - 96, - 225, - 27, - 129, - 82, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 144, - 146, - 22, - 96, - 4, - 131, - 1, - 82, - 96, - 36, - 130, - 1, - 82, - 96, - 68, - 1, - 97, - 25, - 118, - 86, - 91, - 133, - 96, - 1, - 144, - 3, - 149, - 80, - 80, - 80, - 80, - 80, - 80, - 97, - 62, - 116, - 86, - 91, - 97, - 63, - 96, - 96, - 0, - 97, - 76, - 204, - 86, - 91, - 97, - 63, - 108, - 96, - 14, - 96, - 0, - 97, - 129, - 241, - 86, - 91, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 97, - 63, - 132, - 135, - 135, - 135, - 135, - 97, - 77, - 224, - 86, - 91, - 145, - 80, - 145, - 80, - 96, - 0, - 128, - 97, - 63, - 151, - 137, - 133, - 138, - 134, - 97, - 78, - 223, - 86, - 91, - 145, - 80, - 145, - 80, - 129, - 129, - 17, - 21, - 97, - 63, - 188, - 87, - 96, - 64, - 81, - 99, - 1, - 0, - 7, - 39, - 96, - 229, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 192, - 132, - 1, - 81, - 97, - 63, - 207, - 144, - 97, - 32, - 214, - 131, - 133, - 97, - 136, - 82, - 86, - 91, - 132, - 97, - 1, - 0, - 1, - 129, - 129, - 81, - 97, - 63, - 225, - 145, - 144, - 97, - 137, - 47, - 86, - 91, - 144, - 82, - 80, - 96, - 0, - 136, - 97, - 63, - 250, - 87, - 137, - 97, - 1, - 32, - 1, - 81, - 96, - 32, - 1, - 81, - 97, - 64, - 5, - 86, - 91, - 137, - 97, - 1, - 32, - 1, - 81, - 96, - 96, - 1, - 81, - 91, - 96, - 255, - 22, - 144, - 80, - 97, - 64, - 34, - 129, - 134, - 97, - 1, - 0, - 1, - 81, - 97, - 74, - 33, - 144, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 154, - 153, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 15, - 131, - 144, - 11, - 21, - 97, - 32, - 176, - 87, - 131, - 81, - 96, - 32, - 133, - 1, - 81, - 96, - 0, - 145, - 130, - 145, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 145, - 80, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 145, - 80, - 96, - 0, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 97, - 64, - 127, - 136, - 97, - 1, - 32, - 1, - 81, - 96, - 32, - 1, - 81, - 96, - 255, - 22, - 97, - 74, - 145, - 86, - 91, - 97, - 64, - 137, - 145, - 144, - 97, - 137, - 71, - 86, - 91, - 144, - 80, - 96, - 0, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 97, - 64, - 171, - 137, - 97, - 1, - 32, - 1, - 81, - 96, - 96, - 1, - 81, - 96, - 255, - 22, - 97, - 74, - 145, - 86, - 91, - 97, - 64, - 181, - 145, - 144, - 97, - 137, - 71, - 86, - 91, - 144, - 80, - 96, - 0, - 128, - 136, - 96, - 15, - 11, - 19, - 21, - 97, - 64, - 244, - 87, - 80, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 135, - 22, - 97, - 64, - 221, - 97, - 47, - 86, - 134, - 131, - 134, - 97, - 79, - 199, - 86, - 91, - 150, - 80, - 97, - 64, - 237, - 97, - 47, - 86, - 133, - 131, - 133, - 97, - 79, - 199, - 86, - 91, - 149, - 80, - 97, - 65, - 41, - 86, - 91, - 97, - 64, - 253, - 136, - 97, - 136, - 127, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 144, - 80, - 97, - 65, - 22, - 97, - 47, - 86, - 134, - 131, - 134, - 97, - 79, - 245, - 86, - 91, - 150, - 80, - 97, - 65, - 38, - 97, - 47, - 86, - 133, - 131, - 133, - 97, - 79, - 245, - 86, - 91, - 149, - 80, - 91, - 80, - 80, - 80, - 80, - 80, - 146, - 80, - 146, - 144, - 80, - 86, - 91, - 96, - 0, - 97, - 17, - 147, - 131, - 131, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 97, - 79, - 245, - 86, - 91, - 52, - 21, - 97, - 43, - 168, - 87, - 97, - 65, - 123, - 96, - 0, - 127, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 97, - 80, - 20, - 86, - 91, - 96, - 64, - 81, - 52, - 129, - 82, - 51, - 144, - 127, - 225, - 255, - 252, - 196, - 146, - 61, - 4, - 181, - 89, - 244, - 210, - 154, - 139, - 252, - 108, - 218, - 4, - 235, - 91, - 13, - 60, - 70, - 7, - 81, - 194, - 64, - 44, - 92, - 92, - 201, - 16, - 156, - 144, - 96, - 32, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 162, - 86, - 91, - 96, - 0, - 97, - 65, - 231, - 131, - 131, - 96, - 0, - 129, - 129, - 16, - 97, - 65, - 202, - 87, - 97, - 65, - 202, - 97, - 136, - 105, - 86, - 91, - 145, - 144, - 145, - 1, - 53, - 96, - 4, - 129, - 144, - 28, - 96, - 255, - 96, - 244, - 27, - 22, - 146, - 96, - 15, - 96, - 248, - 27, - 144, - 145, - 22, - 145, - 80, - 86, - 91, - 145, - 80, - 80, - 96, - 1, - 96, - 1, - 96, - 248, - 27, - 3, - 25, - 128, - 130, - 22, - 1, - 97, - 66, - 43, - 87, - 96, - 0, - 128, - 96, - 0, - 97, - 66, - 10, - 134, - 134, - 97, - 80, - 115, - 86, - 91, - 146, - 80, - 146, - 80, - 146, - 80, - 97, - 66, - 33, - 131, - 96, - 255, - 22, - 96, - 1, - 20, - 131, - 131, - 97, - 80, - 227, - 86, - 91, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 253, - 96, - 248, - 27, - 96, - 1, - 96, - 1, - 96, - 248, - 27, - 3, - 25, - 130, - 22, - 1, - 97, - 66, - 102, - 87, - 96, - 0, - 128, - 96, - 0, - 97, - 66, - 79, - 134, - 134, - 97, - 80, - 115, - 86, - 91, - 146, - 80, - 146, - 80, - 146, - 80, - 97, - 66, - 33, - 131, - 96, - 255, - 22, - 96, - 1, - 20, - 131, - 131, - 97, - 82, - 206, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 248, - 27, - 3, - 25, - 129, - 22, - 96, - 3, - 96, - 249, - 27, - 20, - 128, - 97, - 66, - 143, - 87, - 80, - 96, - 1, - 96, - 1, - 96, - 248, - 27, - 3, - 25, - 129, - 22, - 96, - 5, - 96, - 248, - 27, - 20, - 91, - 21, - 97, - 67, - 74, - 87, - 96, - 64, - 128, - 81, - 96, - 160, - 129, - 1, - 130, - 82, - 132, - 53, - 96, - 0, - 144, - 129, - 26, - 96, - 15, - 129, - 22, - 96, - 6, - 20, - 96, - 255, - 144, - 129, - 22, - 96, - 128, - 133, - 1, - 82, - 96, - 1, - 96, - 9, - 137, - 1, - 53, - 132, - 26, - 128, - 138, - 1, - 130, - 129, - 1, - 53, - 96, - 8, - 131, - 140, - 3, - 96, - 0, - 25, - 1, - 129, - 2, - 97, - 1, - 0, - 144, - 129, - 3, - 146, - 144, - 146, - 28, - 146, - 53, - 136, - 26, - 96, - 10, - 144, - 129, - 10, - 147, - 144, - 147, - 2, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 144, - 129, - 22, - 96, - 96, - 139, - 1, - 82, - 96, - 11, - 142, - 1, - 53, - 96, - 10, - 25, - 144, - 149, - 1, - 144, - 145, - 2, - 144, - 145, - 3, - 146, - 144, - 146, - 28, - 129, - 140, - 1, - 53, - 144, - 150, - 26, - 144, - 10, - 148, - 144, - 148, - 2, - 144, - 147, - 22, - 148, - 132, - 1, - 148, - 144, - 148, - 82, - 144, - 134, - 1, - 53, - 96, - 192, - 28, - 96, - 32, - 131, - 1, - 82, - 96, - 4, - 28, - 144, - 145, - 22, - 129, - 82, - 97, - 67, - 65, - 129, - 97, - 84, - 180, - 86, - 91, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 245, - 96, - 248, - 27, - 96, - 1, - 96, - 1, - 96, - 248, - 27, - 3, - 25, - 130, - 22, - 1, - 97, - 68, - 59, - 87, - 96, - 0, - 128, - 96, - 0, - 128, - 96, - 0, - 128, - 96, - 0, - 128, - 96, - 0, - 97, - 68, - 9, - 140, - 140, - 96, - 1, - 128, - 131, - 1, - 53, - 96, - 232, - 28, - 147, - 96, - 4, - 132, - 1, - 53, - 96, - 96, - 28, - 147, - 96, - 24, - 129, - 1, - 53, - 96, - 240, - 144, - 129, - 28, - 148, - 96, - 26, - 131, - 1, - 53, - 130, - 28, - 148, - 96, - 28, - 132, - 1, - 53, - 131, - 28, - 148, - 96, - 30, - 133, - 1, - 53, - 132, - 28, - 148, - 96, - 32, - 129, - 1, - 53, - 144, - 148, - 28, - 147, - 96, - 35, - 129, - 1, - 53, - 96, - 0, - 144, - 129, - 26, - 96, - 10, - 144, - 129, - 10, - 96, - 36, - 132, - 1, - 53, - 96, - 8, - 96, - 35, - 25, - 96, - 34, - 135, - 1, - 53, - 134, - 26, - 144, - 129, - 1, - 130, - 2, - 97, - 1, - 0, - 144, - 129, - 3, - 147, - 144, - 147, - 28, - 147, - 144, - 147, - 2, - 152, - 149, - 131, - 1, - 128, - 53, - 144, - 149, - 26, - 144, - 147, - 10, - 147, - 144, - 150, - 1, - 53, - 96, - 0, - 25, - 145, - 144, - 148, - 3, - 1, - 2, - 144, - 147, - 3, - 28, - 145, - 144, - 145, - 2, - 144, - 86, - 91, - 152, - 80, - 152, - 80, - 152, - 80, - 152, - 80, - 152, - 80, - 152, - 80, - 152, - 80, - 152, - 80, - 152, - 80, - 97, - 68, - 44, - 137, - 137, - 137, - 137, - 137, - 137, - 137, - 137, - 137, - 97, - 92, - 89, - 86, - 91, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 61, - 96, - 250, - 27, - 96, - 1, - 96, - 1, - 96, - 248, - 27, - 3, - 25, - 130, - 22, - 1, - 97, - 68, - 115, - 87, - 96, - 0, - 128, - 97, - 68, - 93, - 133, - 133, - 97, - 95, - 236, - 86, - 91, - 145, - 80, - 145, - 80, - 97, - 68, - 107, - 130, - 130, - 97, - 96, - 51, - 86, - 91, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 63, - 96, - 250, - 27, - 96, - 1, - 96, - 1, - 96, - 248, - 27, - 3, - 25, - 130, - 22, - 1, - 97, - 68, - 241, - 87, - 96, - 0, - 128, - 128, - 133, - 53, - 96, - 184, - 129, - 144, - 28, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 144, - 96, - 10, - 129, - 129, - 26, - 129, - 10, - 96, - 11, - 138, - 1, - 53, - 96, - 8, - 96, - 9, - 133, - 144, - 26, - 96, - 10, - 25, - 129, - 1, - 130, - 2, - 97, - 1, - 0, - 144, - 129, - 3, - 147, - 144, - 147, - 28, - 147, - 144, - 147, - 2, - 148, - 131, - 26, - 144, - 147, - 10, - 96, - 1, - 131, - 141, - 1, - 1, - 53, - 146, - 139, - 3, - 96, - 0, - 25, - 1, - 144, - 147, - 2, - 144, - 3, - 28, - 2, - 146, - 80, - 146, - 80, - 146, - 80, - 97, - 68, - 107, - 131, - 131, - 131, - 97, - 99, - 52, - 86, - 91, - 96, - 64, - 81, - 99, - 27, - 24, - 145, - 237, - 96, - 227, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 0, - 131, - 131, - 96, - 1, - 129, - 129, - 16, - 97, - 69, - 31, - 87, - 97, - 69, - 31, - 97, - 136, - 105, - 86, - 91, - 145, - 144, - 145, - 1, - 53, - 96, - 248, - 28, - 145, - 80, - 96, - 2, - 144, - 80, - 96, - 0, - 128, - 128, - 91, - 132, - 96, - 255, - 22, - 129, - 20, - 97, - 66, - 33, - 87, - 131, - 146, - 80, - 135, - 135, - 132, - 129, - 129, - 16, - 97, - 69, - 81, - 87, - 97, - 69, - 81, - 97, - 136, - 105, - 86, - 91, - 97, - 69, - 98, - 146, - 1, - 53, - 96, - 248, - 28, - 144, - 80, - 132, - 97, - 137, - 47, - 86, - 91, - 97, - 69, - 109, - 144, - 96, - 1, - 97, - 137, - 47, - 86, - 91, - 145, - 80, - 134, - 130, - 17, - 21, - 97, - 69, - 147, - 87, - 96, - 64, - 81, - 99, - 128, - 246, - 59, - 209, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 129, - 1, - 131, - 144, - 82, - 96, - 36, - 1, - 97, - 25, - 118, - 86, - 91, - 54, - 96, - 0, - 97, - 69, - 162, - 132, - 134, - 139, - 141, - 97, - 137, - 102, - 86, - 91, - 148, - 150, - 80, - 134, - 148, - 144, - 146, - 80, - 144, - 80, - 97, - 69, - 197, - 97, - 69, - 188, - 130, - 96, - 1, - 129, - 134, - 97, - 137, - 102, - 86, - 91, - 138, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 80, - 80, - 128, - 97, - 69, - 209, - 144, - 97, - 137, - 144, - 86, - 91, - 144, - 80, - 97, - 69, - 50, - 86, - 91, - 97, - 69, - 229, - 96, - 0, - 51, - 132, - 132, - 97, - 101, - 143, - 86, - 91, - 80, - 80, - 96, - 64, - 81, - 129, - 129, - 82, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 131, - 22, - 144, - 51, - 144, - 127, - 11, - 11, - 130, - 25, - 83, - 229, - 84, - 91, - 113, - 242, - 8, - 88, - 51, - 228, - 168, - 223, - 208, - 217, - 155, - 189, - 255, - 81, - 24, - 152, - 103, - 42, - 232, - 23, - 154, - 152, - 45, - 243, - 144, - 96, - 32, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 163, - 80, - 80, - 86, - 91, - 97, - 70, - 55, - 96, - 0, - 131, - 131, - 97, - 101, - 221, - 86, - 91, - 129, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 127, - 28, - 113, - 30, - 202, - 141, - 11, - 105, - 75, - 188, - 176, - 161, - 68, - 98, - 167, - 0, - 98, - 34, - 231, - 33, - 149, - 75, - 44, - 95, - 247, - 152, - 246, - 6, - 129, - 126, - 177, - 16, - 50, - 130, - 96, - 64, - 81, - 97, - 70, - 114, - 145, - 129, - 82, - 96, - 32, - 1, - 144, - 86, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 162, - 80, - 80, - 86, - 91, - 96, - 64, - 81, - 99, - 46, - 26, - 125, - 77, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 129, - 1, - 130, - 144, - 82, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 132, - 22, - 144, - 99, - 46, - 26, - 125, - 77, - 144, - 96, - 36, - 1, - 96, - 0, - 96, - 64, - 81, - 128, - 131, - 3, - 129, - 96, - 0, - 135, - 128, - 59, - 21, - 128, - 21, - 97, - 70, - 192, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 90, - 241, - 21, - 128, - 21, - 97, - 70, - 212, - 87, - 61, - 96, - 0, - 128, - 62, - 61, - 96, - 0, - 253, - 91, - 80, - 80, - 96, - 64, - 128, - 81, - 96, - 0, - 128, - 130, - 82, - 96, - 32, - 130, - 1, - 146, - 131, - 144, - 82, - 147, - 80, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 134, - 22, - 146, - 80, - 132, - 145, - 97, - 71, - 1, - 145, - 144, - 97, - 136, - 228, - 86, - 91, - 96, - 0, - 96, - 64, - 81, - 128, - 131, - 3, - 129, - 133, - 135, - 90, - 241, - 146, - 80, - 80, - 80, - 61, - 128, - 96, - 0, - 129, - 20, - 97, - 71, - 62, - 87, - 96, - 64, - 81, - 145, - 80, - 96, - 31, - 25, - 96, - 63, - 61, - 1, - 22, - 130, - 1, - 96, - 64, - 82, - 61, - 130, - 82, - 61, - 96, - 0, - 96, - 32, - 132, - 1, - 62, - 97, - 71, - 67, - 86, - 91, - 96, - 96, - 145, - 80, - 91, - 80, - 80, - 144, - 80, - 128, - 97, - 40, - 3, - 87, - 96, - 64, - 81, - 99, - 117, - 244, - 38, - 131, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 0, - 96, - 64, - 81, - 99, - 169, - 5, - 156, - 187, - 96, - 224, - 27, - 96, - 0, - 82, - 131, - 96, - 4, - 82, - 130, - 96, - 36, - 82, - 96, - 32, - 96, - 0, - 96, - 68, - 96, - 0, - 128, - 137, - 90, - 241, - 61, - 21, - 96, - 31, - 61, - 17, - 96, - 1, - 96, - 0, - 81, - 20, - 22, - 23, - 22, - 145, - 80, - 96, - 0, - 96, - 96, - 82, - 128, - 96, - 64, - 82, - 80, - 128, - 97, - 40, - 3, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 15, - 96, - 36, - 130, - 1, - 82, - 110, - 21, - 20, - 144, - 83, - 148, - 209, - 145, - 84, - 151, - 209, - 144, - 82, - 83, - 17, - 81, - 96, - 138, - 27, - 96, - 68, - 130, - 1, - 82, - 96, - 100, - 1, - 97, - 25, - 118, - 86, - 91, - 97, - 71, - 236, - 129, - 97, - 102, - 98, - 86, - 91, - 128, - 81, - 96, - 6, - 146, - 144, - 146, - 1, - 128, - 84, - 96, - 32, - 131, - 1, - 81, - 96, - 64, - 132, - 1, - 81, - 96, - 96, - 133, - 1, - 81, - 96, - 128, - 134, - 1, - 81, - 96, - 160, - 135, - 1, - 81, - 96, - 192, - 136, - 1, - 81, - 96, - 224, - 144, - 152, - 1, - 81, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 144, - 153, - 22, - 113, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 25, - 144, - 150, - 22, - 149, - 144, - 149, - 23, - 96, - 1, - 96, - 128, - 27, - 97, - 255, - 255, - 149, - 134, - 22, - 2, - 23, - 99, - 255, - 255, - 255, - 255, - 96, - 144, - 27, - 25, - 22, - 96, - 1, - 96, - 144, - 27, - 147, - 133, - 22, - 147, - 144, - 147, - 2, - 97, - 255, - 255, - 96, - 160, - 27, - 25, - 22, - 146, - 144, - 146, - 23, - 96, - 1, - 96, - 160, - 27, - 145, - 132, - 22, - 145, - 144, - 145, - 2, - 23, - 99, - 255, - 255, - 255, - 255, - 96, - 176, - 27, - 25, - 22, - 96, - 1, - 96, - 176, - 27, - 145, - 131, - 22, - 145, - 144, - 145, - 2, - 97, - 255, - 255, - 96, - 192, - 27, - 25, - 22, - 23, - 96, - 1, - 96, - 192, - 27, - 145, - 144, - 146, - 22, - 2, - 23, - 100, - 255, - 255, - 255, - 255, - 255, - 96, - 208, - 27, - 25, - 22, - 96, - 1, - 96, - 208, - 27, - 99, - 255, - 255, - 255, - 255, - 144, - 147, - 22, - 146, - 144, - 146, - 2, - 96, - 255, - 96, - 240, - 27, - 25, - 22, - 145, - 144, - 145, - 23, - 96, - 1, - 96, - 240, - 27, - 146, - 21, - 21, - 146, - 144, - 146, - 2, - 145, - 144, - 145, - 23, - 144, - 85, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 133, - 97, - 1, - 0, - 1, - 81, - 96, - 0, - 1, - 81, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 144, - 80, - 96, - 0, - 97, - 73, - 34, - 135, - 97, - 1, - 0, - 1, - 81, - 96, - 128, - 1, - 81, - 97, - 255, - 255, - 22, - 97, - 39, - 16, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 145, - 144, - 145, - 2, - 4, - 144, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 73, - 47, - 136, - 97, - 102, - 127, - 86, - 91, - 144, - 80, - 97, - 73, - 74, - 135, - 132, - 138, - 97, - 1, - 0, - 1, - 81, - 96, - 128, - 1, - 81, - 97, - 255, - 255, - 22, - 132, - 97, - 102, - 158, - 86, - 91, - 148, - 80, - 97, - 73, - 92, - 133, - 132, - 132, - 132, - 138, - 96, - 15, - 11, - 97, - 103, - 173, - 86, - 91, - 147, - 80, - 80, - 80, - 80, - 147, - 80, - 147, - 145, - 80, - 80, - 86, - 91, - 96, - 0, - 97, - 73, - 141, - 97, - 47, - 86, - 133, - 97, - 1, - 32, - 1, - 81, - 96, - 32, - 1, - 81, - 96, - 255, - 22, - 133, - 97, - 104, - 200, - 144, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 146, - 80, - 97, - 73, - 186, - 97, - 47, - 86, - 133, - 97, - 1, - 32, - 1, - 81, - 96, - 96, - 1, - 81, - 96, - 255, - 22, - 132, - 97, - 104, - 200, - 144, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 145, - 80, - 96, - 0, - 128, - 97, - 73, - 216, - 134, - 128, - 81, - 96, - 32, - 144, - 145, - 1, - 81, - 144, - 145, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 145, - 130, - 22, - 147, - 80, - 22, - 144, - 80, - 96, - 0, - 97, - 73, - 244, - 134, - 132, - 97, - 104, - 223, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 74, - 2, - 134, - 132, - 97, - 104, - 223, - 86, - 91, - 144, - 80, - 97, - 74, - 21, - 129, - 131, - 17, - 130, - 132, - 3, - 2, - 131, - 3, - 97, - 74, - 55, - 86, - 91, - 152, - 151, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 97, - 74, - 45, - 131, - 97, - 74, - 145, - 86, - 91, - 144, - 147, - 4, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 96, - 1, - 96, - 128, - 27, - 130, - 16, - 97, - 74, - 73, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 144, - 86, - 91, - 96, - 0, - 97, - 24, - 76, - 130, - 96, - 192, - 1, - 81, - 99, - 255, - 255, - 255, - 255, - 22, - 97, - 74, - 110, - 132, - 96, - 96, - 1, - 81, - 97, - 255, - 255, - 22, - 97, - 104, - 244, - 86, - 91, - 1, - 97, - 105, - 65, - 86, - 91, - 96, - 0, - 128, - 97, - 74, - 132, - 134, - 134, - 134, - 134, - 134, - 97, - 103, - 173, - 86, - 91, - 144, - 150, - 3, - 150, - 149, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 97, - 74, - 158, - 130, - 96, - 18, - 97, - 136, - 82, - 86, - 91, - 97, - 24, - 76, - 144, - 96, - 10, - 97, - 138, - 141, - 86, - 91, - 96, - 0, - 128, - 99, - 1, - 225, - 133, - 89, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 132, - 2, - 4, - 144, - 80, - 96, - 0, - 97, - 39, - 16, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 134, - 2, - 4, - 144, - 80, - 134, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 16, - 21, - 97, - 74, - 254, - 87, - 96, - 64, - 81, - 99, - 177, - 21, - 88, - 223, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 129, - 1, - 136, - 144, - 82, - 96, - 36, - 1, - 97, - 25, - 118, - 86, - 91, - 134, - 96, - 0, - 3, - 97, - 75, - 31, - 87, - 96, - 64, - 81, - 99, - 34, - 5, - 51, - 99, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 129, - 21, - 128, - 97, - 75, - 42, - 87, - 80, - 128, - 21, - 91, - 21, - 97, - 75, - 57, - 87, - 133, - 146, - 80, - 80, - 80, - 97, - 33, - 31, - 86, - 91, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 135, - 3, - 97, - 75, - 82, - 87, - 133, - 146, - 80, - 80, - 80, - 97, - 33, - 31, - 86, - 91, - 96, - 0, - 97, - 75, - 102, - 136, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 97, - 136, - 165, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 75, - 115, - 130, - 97, - 105, - 84, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 75, - 147, - 132, - 99, - 59, - 154, - 202, - 0, - 97, - 75, - 137, - 136, - 97, - 105, - 241, - 86, - 91, - 97, - 32, - 214, - 145, - 144, - 97, - 137, - 71, - 86, - 91, - 144, - 80, - 96, - 0, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 97, - 75, - 170, - 131, - 133, - 97, - 138, - 153, - 86, - 91, - 97, - 75, - 180, - 145, - 144, - 97, - 139, - 52, - 86, - 91, - 144, - 80, - 96, - 0, - 103, - 27, - 193, - 109, - 103, - 78, - 200, - 0, - 0, - 97, - 75, - 203, - 135, - 128, - 97, - 137, - 71, - 86, - 91, - 97, - 75, - 213, - 145, - 144, - 97, - 139, - 98, - 86, - 91, - 144, - 80, - 96, - 0, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 97, - 75, - 236, - 137, - 132, - 97, - 137, - 71, - 86, - 91, - 97, - 75, - 246, - 145, - 144, - 97, - 139, - 52, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 76, - 4, - 130, - 133, - 97, - 136, - 165, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 76, - 17, - 130, - 97, - 106, - 149, - 86, - 91, - 144, - 80, - 97, - 76, - 29, - 129, - 143, - 97, - 65, - 53, - 86, - 91, - 159, - 158, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 4, - 130, - 1, - 84, - 96, - 255, - 22, - 21, - 97, - 76, - 74, - 87, - 96, - 4, - 130, - 1, - 128, - 84, - 96, - 255, - 25, - 22, - 144, - 85, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 129, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 2, - 131, - 1, - 96, - 32, - 82, - 96, - 64, - 144, - 32, - 84, - 96, - 255, - 22, - 97, - 26, - 105, - 87, - 96, - 3, - 130, - 1, - 128, - 84, - 96, - 1, - 128, - 130, - 1, - 131, - 85, - 96, - 0, - 146, - 131, - 82, - 96, - 32, - 128, - 132, - 32, - 144, - 146, - 1, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 134, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 25, - 144, - 145, - 22, - 129, - 23, - 144, - 145, - 85, - 131, - 82, - 96, - 2, - 133, - 1, - 144, - 145, - 82, - 96, - 64, - 144, - 145, - 32, - 128, - 84, - 96, - 255, - 25, - 22, - 144, - 145, - 23, - 144, - 85, - 80, - 80, - 86, - 91, - 97, - 38, - 4, - 131, - 51, - 132, - 132, - 97, - 108, - 62, - 86, - 91, - 96, - 3, - 129, - 1, - 84, - 21, - 97, - 76, - 222, - 87, - 97, - 76, - 222, - 97, - 139, - 118, - 86, - 91, - 96, - 4, - 129, - 1, - 128, - 84, - 96, - 255, - 25, - 22, - 96, - 1, - 23, - 144, - 85, - 97, - 25, - 233, - 96, - 3, - 130, - 1, - 96, - 0, - 97, - 130, - 18, - 86, - 91, - 96, - 0, - 128, - 128, - 128, - 97, - 77, - 11, - 135, - 135, - 135, - 97, - 48, - 92, - 86, - 91, - 144, - 80, - 96, - 0, - 129, - 19, - 21, - 97, - 77, - 90, - 87, - 146, - 80, - 130, - 97, - 77, - 37, - 135, - 51, - 136, - 132, - 97, - 108, - 197, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 134, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 1, - 136, - 1, - 96, - 32, - 82, - 96, - 64, - 129, - 32, - 128, - 84, - 131, - 146, - 144, - 97, - 77, - 79, - 144, - 132, - 144, - 97, - 137, - 47, - 86, - 91, - 144, - 145, - 85, - 80, - 97, - 77, - 181, - 144, - 80, - 86, - 91, - 96, - 0, - 129, - 18, - 21, - 97, - 77, - 181, - 87, - 97, - 77, - 108, - 129, - 97, - 139, - 140, - 86, - 91, - 145, - 80, - 97, - 77, - 122, - 135, - 51, - 136, - 133, - 97, - 101, - 143, - 86, - 91, - 144, - 147, - 80, - 145, - 80, - 130, - 21, - 97, - 77, - 181, - 87, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 134, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 1, - 136, - 1, - 96, - 32, - 82, - 96, - 64, - 129, - 32, - 128, - 84, - 133, - 146, - 144, - 97, - 77, - 175, - 144, - 132, - 144, - 97, - 136, - 82, - 86, - 91, - 144, - 145, - 85, - 80, - 80, - 91, - 80, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 144, - 148, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 2, - 144, - 149, - 1, - 96, - 32, - 82, - 96, - 64, - 144, - 148, - 32, - 128, - 84, - 96, - 255, - 25, - 22, - 144, - 85, - 147, - 144, - 80, - 86, - 91, - 97, - 77, - 232, - 97, - 130, - 48, - 86, - 91, - 96, - 0, - 97, - 77, - 242, - 97, - 130, - 48, - 86, - 91, - 96, - 128, - 135, - 1, - 81, - 96, - 0, - 144, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 97, - 78, - 22, - 87, - 135, - 97, - 1, - 0, - 1, - 81, - 96, - 64, - 1, - 81, - 97, - 78, - 33, - 86, - 91, - 135, - 97, - 1, - 0, - 1, - 81, - 96, - 160, - 1, - 81, - 91, - 97, - 255, - 255, - 22, - 144, - 80, - 97, - 78, - 55, - 136, - 128, - 81, - 96, - 32, - 144, - 145, - 1, - 81, - 144, - 145, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 144, - 129, - 22, - 96, - 96, - 133, - 1, - 82, - 22, - 96, - 64, - 131, - 1, - 82, - 97, - 78, - 87, - 136, - 134, - 97, - 47, - 187, - 86, - 91, - 146, - 80, - 97, - 78, - 109, - 136, - 131, - 96, - 64, - 1, - 81, - 132, - 96, - 96, - 1, - 81, - 134, - 97, - 48, - 1, - 86, - 91, - 130, - 82, - 97, - 78, - 155, - 135, - 97, - 78, - 134, - 87, - 136, - 97, - 1, - 32, - 1, - 81, - 96, - 96, - 1, - 81, - 97, - 78, - 145, - 86, - 91, - 136, - 97, - 1, - 32, - 1, - 81, - 96, - 32, - 1, - 81, - 91, - 135, - 144, - 96, - 255, - 22, - 97, - 104, - 200, - 86, - 91, - 96, - 128, - 131, - 1, - 129, - 144, - 82, - 96, - 64, - 137, - 1, - 81, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 192, - 132, - 1, - 82, - 97, - 39, - 16, - 144, - 97, - 78, - 196, - 144, - 131, - 144, - 97, - 137, - 71, - 86, - 91, - 97, - 78, - 206, - 145, - 144, - 97, - 139, - 98, - 86, - 91, - 96, - 160, - 131, - 1, - 82, - 80, - 145, - 80, - 148, - 80, - 148, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 128, - 96, - 0, - 97, - 79, - 12, - 137, - 97, - 1, - 0, - 1, - 81, - 96, - 128, - 1, - 81, - 97, - 255, - 255, - 22, - 97, - 39, - 16, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 145, - 144, - 145, - 2, - 4, - 144, - 86, - 91, - 144, - 80, - 134, - 21, - 97, - 79, - 39, - 87, - 96, - 64, - 136, - 1, - 81, - 96, - 96, - 137, - 1, - 81, - 149, - 80, - 146, - 80, - 97, - 79, - 55, - 86, - 91, - 96, - 64, - 136, - 1, - 81, - 96, - 96, - 137, - 1, - 81, - 144, - 149, - 80, - 146, - 80, - 91, - 97, - 79, - 89, - 136, - 96, - 192, - 1, - 81, - 137, - 96, - 160, - 1, - 81, - 138, - 96, - 128, - 1, - 81, - 97, - 79, - 83, - 145, - 144, - 97, - 136, - 82, - 86, - 91, - 144, - 97, - 104, - 223, - 86, - 91, - 97, - 79, - 99, - 144, - 132, - 97, - 137, - 47, - 86, - 91, - 145, - 80, - 134, - 21, - 97, - 79, - 149, - 87, - 97, - 79, - 142, - 130, - 138, - 97, - 1, - 0, - 1, - 81, - 96, - 0, - 1, - 81, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 131, - 137, - 140, - 96, - 0, - 1, - 81, - 97, - 103, - 173, - 86, - 91, - 147, - 80, - 97, - 79, - 187, - 86, - 91, - 97, - 79, - 184, - 130, - 138, - 97, - 1, - 0, - 1, - 81, - 96, - 0, - 1, - 81, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 131, - 137, - 140, - 96, - 0, - 1, - 81, - 97, - 109, - 4, - 86, - 91, - 147, - 80, - 91, - 80, - 80, - 80, - 148, - 80, - 148, - 146, - 80, - 80, - 80, - 86, - 91, - 130, - 130, - 2, - 129, - 21, - 21, - 132, - 21, - 133, - 131, - 4, - 133, - 20, - 23, - 22, - 97, - 79, - 223, - 87, - 96, - 0, - 128, - 253, - 91, - 96, - 1, - 130, - 96, - 1, - 131, - 3, - 4, - 1, - 129, - 21, - 21, - 2, - 144, - 80, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 130, - 130, - 2, - 129, - 21, - 21, - 132, - 21, - 133, - 131, - 4, - 133, - 20, - 23, - 22, - 97, - 80, - 13, - 87, - 96, - 0, - 128, - 253, - 91, - 4, - 146, - 145, - 80, - 80, - 86, - 91, - 52, - 21, - 97, - 26, - 105, - 87, - 97, - 80, - 36, - 130, - 130, - 97, - 76, - 48, - 86, - 91, - 128, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 99, - 208, - 227, - 13, - 176, - 52, - 96, - 64, - 81, - 130, - 99, - 255, - 255, - 255, - 255, - 22, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 0, - 96, - 64, - 81, - 128, - 131, - 3, - 129, - 133, - 136, - 128, - 59, - 21, - 128, - 21, - 97, - 80, - 95, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 90, - 241, - 21, - 128, - 21, - 97, - 67, - 65, - 87, - 61, - 96, - 0, - 128, - 62, - 61, - 96, - 0, - 253, - 91, - 96, - 0, - 128, - 128, - 96, - 11, - 132, - 16, - 21, - 97, - 80, - 163, - 87, - 96, - 64, - 81, - 99, - 112, - 206, - 228, - 175, - 96, - 225, - 27, - 129, - 82, - 96, - 11, - 96, - 4, - 130, - 1, - 82, - 96, - 36, - 129, - 1, - 133, - 144, - 82, - 96, - 68, - 1, - 97, - 25, - 118, - 86, - 91, - 80, - 80, - 80, - 144, - 53, - 96, - 252, - 129, - 144, - 28, - 146, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 96, - 184, - 131, - 144, - 28, - 22, - 146, - 96, - 255, - 96, - 176, - 132, - 144, - 28, - 22, - 96, - 10, - 10, - 96, - 80, - 147, - 144, - 147, - 27, - 96, - 9, - 25, - 144, - 145, - 1, - 96, - 8, - 2, - 97, - 1, - 0, - 3, - 28, - 145, - 144, - 145, - 2, - 144, - 86, - 91, - 96, - 0, - 128, - 97, - 80, - 239, - 132, - 97, - 33, - 165, - 86, - 91, - 97, - 81, - 23, - 87, - 96, - 64, - 81, - 99, - 106, - 36, - 6, - 163, - 96, - 225, - 27, - 129, - 82, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 133, - 22, - 96, - 4, - 130, - 1, - 82, - 96, - 36, - 1, - 97, - 25, - 118, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 132, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 8, - 96, - 32, - 129, - 144, - 82, - 96, - 64, - 144, - 145, - 32, - 96, - 7, - 129, - 1, - 84, - 145, - 1, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 145, - 130, - 22, - 145, - 22, - 134, - 21, - 97, - 81, - 104, - 87, - 97, - 81, - 101, - 134, - 97, - 81, - 91, - 51, - 133, - 97, - 43, - 170, - 86, - 91, - 97, - 10, - 24, - 51, - 133, - 97, - 43, - 170, - 86, - 91, - 148, - 80, - 91, - 132, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 0, - 3, - 97, - 81, - 146, - 87, - 96, - 64, - 81, - 99, - 2, - 0, - 232, - 169, - 96, - 227, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 97, - 81, - 159, - 134, - 97, - 5, - 0, - 135, - 97, - 110, - 64, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 145, - 130, - 22, - 149, - 80, - 22, - 146, - 80, - 131, - 21, - 128, - 97, - 81, - 186, - 87, - 80, - 130, - 21, - 91, - 21, - 97, - 81, - 216, - 87, - 96, - 64, - 81, - 99, - 33, - 60, - 124, - 197, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 0, - 96, - 64, - 81, - 128, - 97, - 1, - 0, - 1, - 96, - 64, - 82, - 128, - 51, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 136, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 66, - 129, - 82, - 96, - 32, - 1, - 134, - 129, - 82, - 96, - 32, - 1, - 133, - 129, - 82, - 96, - 32, - 1, - 132, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 131, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 97, - 82, - 61, - 136, - 97, - 110, - 64, - 86, - 91, - 96, - 15, - 11, - 144, - 82, - 144, - 80, - 97, - 82, - 77, - 129, - 97, - 110, - 86, - 86, - 91, - 80, - 80, - 80, - 129, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 131, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 136, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 127, - 253, - 255, - 236, - 167, - 81, - 240, - 220, - 170, - 183, - 85, - 49, - 203, - 129, - 60, - 18, - 187, - 253, - 86, - 238, - 62, - 150, - 76, - 196, - 113, - 215, - 239, - 67, - 147, - 36, - 2, - 238, - 24, - 136, - 136, - 139, - 96, - 64, - 81, - 97, - 82, - 187, - 147, - 146, - 145, - 144, - 146, - 131, - 82, - 96, - 32, - 131, - 1, - 145, - 144, - 145, - 82, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 64, - 130, - 1, - 82, - 96, - 96, - 1, - 144, - 86, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 164, - 80, - 80, - 80, - 147, - 80, - 147, - 145, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 97, - 82, - 218, - 132, - 97, - 33, - 165, - 86, - 91, - 97, - 83, - 2, - 87, - 96, - 64, - 81, - 99, - 106, - 36, - 6, - 163, - 96, - 225, - 27, - 129, - 82, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 133, - 22, - 96, - 4, - 130, - 1, - 82, - 96, - 36, - 1, - 97, - 25, - 118, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 132, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 8, - 96, - 32, - 129, - 144, - 82, - 96, - 64, - 144, - 145, - 32, - 96, - 7, - 129, - 1, - 84, - 145, - 1, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 145, - 130, - 22, - 145, - 22, - 134, - 21, - 97, - 83, - 104, - 87, - 51, - 96, - 0, - 144, - 129, - 82, - 96, - 10, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 138, - 22, - 132, - 82, - 144, - 145, - 82, - 144, - 32, - 84, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 148, - 80, - 91, - 132, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 0, - 3, - 97, - 83, - 146, - 87, - 96, - 64, - 81, - 99, - 2, - 0, - 232, - 169, - 96, - 227, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 97, - 83, - 168, - 134, - 97, - 83, - 159, - 135, - 97, - 110, - 64, - 86, - 91, - 97, - 5, - 0, - 144, - 97, - 136, - 127, - 86, - 91, - 129, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 145, - 80, - 128, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 144, - 80, - 128, - 148, - 80, - 129, - 149, - 80, - 80, - 80, - 96, - 0, - 96, - 64, - 81, - 128, - 97, - 1, - 0, - 1, - 96, - 64, - 82, - 128, - 51, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 136, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 66, - 129, - 82, - 96, - 32, - 1, - 134, - 129, - 82, - 96, - 32, - 1, - 133, - 129, - 82, - 96, - 32, - 1, - 132, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 131, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 97, - 84, - 45, - 136, - 97, - 110, - 64, - 86, - 91, - 97, - 84, - 54, - 144, - 97, - 136, - 127, - 86, - 91, - 96, - 15, - 11, - 144, - 82, - 144, - 80, - 97, - 84, - 70, - 129, - 97, - 110, - 86, - 86, - 91, - 80, - 80, - 80, - 129, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 131, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 136, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 127, - 48, - 132, - 202, - 244, - 137, - 102, - 92, - 171, - 7, - 69, - 44, - 254, - 79, - 61, - 14, - 181, - 224, - 220, - 21, - 234, - 198, - 252, - 101, - 128, - 152, - 133, - 142, - 99, - 158, - 112, - 229, - 58, - 136, - 136, - 139, - 96, - 64, - 81, - 97, - 82, - 187, - 147, - 146, - 145, - 144, - 146, - 131, - 82, - 96, - 32, - 131, - 1, - 145, - 144, - 145, - 82, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 64, - 130, - 1, - 82, - 96, - 96, - 1, - 144, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 131, - 96, - 64, - 1, - 81, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 0, - 3, - 97, - 84, - 231, - 87, - 96, - 64, - 81, - 99, - 175, - 69, - 140, - 7, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 32, - 128, - 133, - 1, - 128, - 81, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 8, - 144, - 146, - 82, - 96, - 64, - 144, - 145, - 32, - 144, - 81, - 97, - 85, - 17, - 144, - 97, - 33, - 165, - 86, - 91, - 97, - 85, - 63, - 87, - 96, - 32, - 133, - 1, - 81, - 96, - 64, - 81, - 99, - 106, - 36, - 6, - 163, - 96, - 225, - 27, - 129, - 82, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 144, - 145, - 22, - 96, - 4, - 130, - 1, - 82, - 96, - 36, - 1, - 97, - 25, - 118, - 86, - 91, - 96, - 128, - 133, - 1, - 81, - 96, - 15, - 128, - 84, - 96, - 255, - 144, - 146, - 22, - 96, - 1, - 20, - 96, - 255, - 25, - 144, - 146, - 22, - 145, - 144, - 145, - 23, - 144, - 85, - 96, - 2, - 129, - 1, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 51, - 20, - 97, - 85, - 133, - 87, - 96, - 6, - 129, - 1, - 84, - 96, - 1, - 96, - 144, - 27, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 85, - 150, - 86, - 91, - 96, - 6, - 129, - 1, - 84, - 96, - 1, - 96, - 192, - 27, - 144, - 4, - 97, - 255, - 255, - 22, - 91, - 96, - 15, - 128, - 84, - 97, - 255, - 255, - 146, - 144, - 146, - 22, - 96, - 1, - 96, - 168, - 27, - 2, - 97, - 255, - 255, - 96, - 168, - 27, - 25, - 131, - 22, - 129, - 23, - 144, - 145, - 85, - 96, - 255, - 144, - 129, - 22, - 145, - 22, - 23, - 21, - 97, - 86, - 17, - 87, - 96, - 4, - 129, - 1, - 84, - 96, - 17, - 85, - 96, - 7, - 129, - 1, - 84, - 96, - 15, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 146, - 131, - 22, - 97, - 1, - 0, - 2, - 97, - 1, - 0, - 96, - 1, - 96, - 168, - 27, - 3, - 25, - 144, - 145, - 22, - 23, - 144, - 85, - 96, - 8, - 130, - 1, - 84, - 96, - 16, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 25, - 22, - 145, - 144, - 146, - 22, - 23, - 144, - 85, - 97, - 86, - 92, - 86, - 91, - 96, - 5, - 129, - 1, - 84, - 96, - 17, - 85, - 96, - 8, - 129, - 1, - 84, - 96, - 15, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 146, - 131, - 22, - 97, - 1, - 0, - 2, - 97, - 1, - 0, - 96, - 1, - 96, - 168, - 27, - 3, - 25, - 144, - 145, - 22, - 23, - 144, - 85, - 96, - 7, - 130, - 1, - 84, - 96, - 16, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 25, - 22, - 145, - 144, - 146, - 22, - 23, - 144, - 85, - 91, - 97, - 86, - 100, - 97, - 130, - 48, - 86, - 91, - 96, - 0, - 128, - 97, - 86, - 116, - 136, - 96, - 32, - 1, - 81, - 97, - 111, - 185, - 86, - 91, - 145, - 80, - 145, - 80, - 129, - 97, - 86, - 150, - 87, - 96, - 64, - 81, - 99, - 57, - 139, - 54, - 219, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 15, - 84, - 96, - 0, - 144, - 97, - 86, - 207, - 144, - 51, - 144, - 96, - 255, - 22, - 97, - 86, - 188, - 87, - 96, - 8, - 135, - 1, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 97, - 43, - 170, - 86, - 91, - 96, - 7, - 135, - 1, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 97, - 43, - 170, - 86, - 91, - 144, - 80, - 136, - 96, - 0, - 1, - 81, - 96, - 255, - 22, - 96, - 1, - 20, - 97, - 86, - 243, - 87, - 136, - 96, - 64, - 1, - 81, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 97, - 86, - 245, - 86, - 91, - 128, - 91, - 96, - 15, - 84, - 144, - 151, - 80, - 97, - 87, - 52, - 144, - 96, - 255, - 22, - 97, - 87, - 26, - 87, - 96, - 8, - 134, - 1, - 84, - 96, - 1, - 96, - 160, - 27, - 144, - 4, - 96, - 255, - 22, - 97, - 87, - 42, - 86, - 91, - 96, - 7, - 134, - 1, - 84, - 96, - 1, - 96, - 160, - 27, - 144, - 4, - 96, - 255, - 22, - 91, - 136, - 144, - 96, - 255, - 22, - 97, - 104, - 200, - 86, - 91, - 96, - 96, - 138, - 1, - 81, - 96, - 15, - 84, - 145, - 152, - 80, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 150, - 80, - 97, - 87, - 127, - 144, - 96, - 255, - 22, - 97, - 87, - 105, - 87, - 96, - 7, - 134, - 1, - 84, - 96, - 1, - 96, - 160, - 27, - 144, - 4, - 96, - 255, - 22, - 97, - 78, - 145, - 86, - 91, - 96, - 8, - 134, - 1, - 84, - 135, - 144, - 96, - 1, - 96, - 160, - 27, - 144, - 4, - 96, - 255, - 22, - 97, - 104, - 200, - 86, - 91, - 145, - 132, - 82, - 80, - 96, - 224, - 131, - 1, - 134, - 144, - 82, - 96, - 1, - 132, - 1, - 84, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 144, - 129, - 22, - 96, - 192, - 133, - 1, - 82, - 97, - 1, - 0, - 132, - 1, - 130, - 144, - 82, - 132, - 84, - 96, - 1, - 96, - 128, - 27, - 129, - 4, - 130, - 22, - 96, - 96, - 134, - 1, - 82, - 22, - 96, - 64, - 132, - 1, - 82, - 147, - 80, - 80, - 96, - 0, - 131, - 144, - 3, - 97, - 87, - 226, - 87, - 96, - 64, - 81, - 99, - 115, - 12, - 49, - 191, - 96, - 225, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 128, - 96, - 224, - 1, - 81, - 96, - 0, - 3, - 97, - 88, - 7, - 87, - 96, - 64, - 81, - 99, - 175, - 69, - 140, - 7, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 128, - 96, - 192, - 1, - 81, - 96, - 0, - 3, - 97, - 88, - 44, - 87, - 96, - 64, - 81, - 99, - 2, - 0, - 232, - 169, - 96, - 227, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 97, - 1, - 0, - 129, - 1, - 81, - 96, - 15, - 84, - 96, - 0, - 145, - 130, - 145, - 130, - 145, - 130, - 145, - 130, - 145, - 130, - 145, - 130, - 145, - 144, - 96, - 255, - 22, - 21, - 97, - 88, - 97, - 87, - 96, - 64, - 137, - 1, - 81, - 96, - 96, - 138, - 1, - 81, - 144, - 152, - 80, - 148, - 80, - 97, - 88, - 112, - 86, - 91, - 96, - 64, - 137, - 1, - 81, - 96, - 96, - 138, - 1, - 81, - 152, - 80, - 148, - 80, - 91, - 96, - 224, - 137, - 1, - 81, - 96, - 15, - 84, - 144, - 147, - 80, - 97, - 39, - 16, - 144, - 97, - 88, - 148, - 144, - 96, - 1, - 96, - 168, - 27, - 144, - 4, - 97, - 255, - 255, - 22, - 133, - 97, - 137, - 71, - 86, - 91, - 97, - 88, - 158, - 145, - 144, - 97, - 139, - 98, - 86, - 91, - 96, - 160, - 138, - 1, - 82, - 96, - 13, - 84, - 21, - 97, - 89, - 21, - 87, - 96, - 0, - 96, - 13, - 84, - 138, - 96, - 160, - 1, - 81, - 97, - 88, - 191, - 145, - 144, - 97, - 139, - 98, - 86, - 91, - 144, - 80, - 128, - 138, - 96, - 160, - 1, - 129, - 129, - 81, - 97, - 88, - 211, - 145, - 144, - 97, - 136, - 82, - 86, - 91, - 144, - 82, - 80, - 96, - 15, - 84, - 97, - 89, - 19, - 144, - 127, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 144, - 97, - 1, - 0, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 131, - 97, - 115, - 21, - 86, - 91, - 80, - 91, - 96, - 160, - 137, - 1, - 81, - 97, - 89, - 36, - 144, - 132, - 97, - 136, - 82, - 86, - 91, - 145, - 80, - 97, - 89, - 61, - 137, - 96, - 192, - 1, - 81, - 132, - 97, - 104, - 223, - 144, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 97, - 89, - 71, - 144, - 137, - 97, - 137, - 47, - 86, - 91, - 150, - 80, - 97, - 89, - 96, - 137, - 96, - 192, - 1, - 81, - 131, - 97, - 104, - 223, - 144, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 97, - 89, - 106, - 144, - 137, - 97, - 137, - 47, - 86, - 91, - 149, - 80, - 97, - 89, - 131, - 137, - 96, - 192, - 1, - 81, - 130, - 97, - 104, - 223, - 144, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 97, - 89, - 141, - 144, - 134, - 97, - 136, - 82, - 86, - 91, - 96, - 15, - 84, - 144, - 148, - 80, - 96, - 0, - 147, - 80, - 131, - 146, - 80, - 96, - 255, - 22, - 21, - 144, - 80, - 97, - 89, - 183, - 87, - 96, - 96, - 136, - 1, - 131, - 144, - 82, - 96, - 64, - 136, - 1, - 133, - 144, - 82, - 97, - 89, - 198, - 86, - 91, - 96, - 96, - 136, - 1, - 133, - 144, - 82, - 96, - 64, - 136, - 1, - 131, - 144, - 82, - 91, - 97, - 89, - 227, - 141, - 96, - 32, - 1, - 81, - 137, - 96, - 0, - 1, - 81, - 138, - 96, - 64, - 1, - 81, - 139, - 96, - 96, - 1, - 81, - 66, - 97, - 17, - 154, - 86, - 91, - 144, - 146, - 80, - 144, - 80, - 129, - 97, - 90, - 19, - 87, - 135, - 81, - 96, - 64, - 81, - 99, - 4, - 36, - 180, - 45, - 96, - 227, - 27, - 129, - 82, - 96, - 4, - 129, - 1, - 145, - 144, - 145, - 82, - 96, - 36, - 129, - 1, - 130, - 144, - 82, - 96, - 68, - 1, - 97, - 25, - 118, - 86, - 91, - 96, - 15, - 11, - 96, - 32, - 128, - 137, - 1, - 145, - 144, - 145, - 82, - 140, - 1, - 81, - 96, - 0, - 145, - 80, - 97, - 90, - 48, - 144, - 136, - 97, - 115, - 116, - 86, - 91, - 144, - 80, - 128, - 97, - 90, - 86, - 87, - 96, - 15, - 84, - 96, - 255, - 22, - 21, - 97, - 90, - 78, - 87, - 96, - 64, - 135, - 1, - 133, - 144, - 82, - 97, - 90, - 86, - 86, - 91, - 96, - 96, - 135, - 1, - 133, - 144, - 82, - 91, - 80, - 96, - 32, - 139, - 1, - 81, - 96, - 64, - 135, - 1, - 81, - 96, - 96, - 136, - 1, - 81, - 96, - 192, - 137, - 1, - 81, - 96, - 15, - 84, - 97, - 90, - 165, - 148, - 147, - 146, - 145, - 144, - 96, - 255, - 22, - 97, - 90, - 132, - 87, - 96, - 0, - 97, - 90, - 136, - 86, - 91, - 96, - 17, - 84, - 91, - 96, - 15, - 84, - 96, - 255, - 22, - 97, - 90, - 154, - 87, - 96, - 17, - 84, - 97, - 90, - 157, - 86, - 91, - 96, - 0, - 91, - 96, - 18, - 84, - 97, - 116, - 46, - 86, - 91, - 96, - 15, - 84, - 96, - 0, - 144, - 129, - 144, - 96, - 255, - 22, - 21, - 97, - 90, - 216, - 87, - 80, - 80, - 96, - 7, - 135, - 1, - 84, - 96, - 8, - 136, - 1, - 84, - 96, - 255, - 96, - 1, - 96, - 160, - 27, - 146, - 131, - 144, - 4, - 129, - 22, - 146, - 144, - 145, - 4, - 22, - 97, - 90, - 247, - 86, - 91, - 80, - 80, - 96, - 8, - 135, - 1, - 84, - 96, - 7, - 136, - 1, - 84, - 96, - 255, - 96, - 1, - 96, - 160, - 27, - 146, - 131, - 144, - 4, - 129, - 22, - 146, - 144, - 145, - 4, - 22, - 91, - 96, - 224, - 136, - 1, - 81, - 97, - 91, - 6, - 144, - 131, - 97, - 74, - 33, - 86, - 91, - 96, - 224, - 137, - 1, - 82, - 97, - 1, - 0, - 136, - 1, - 81, - 97, - 91, - 27, - 144, - 130, - 97, - 74, - 33, - 86, - 91, - 136, - 97, - 1, - 0, - 1, - 129, - 129, - 82, - 80, - 80, - 80, - 80, - 97, - 91, - 77, - 96, - 15, - 96, - 0, - 1, - 96, - 1, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 135, - 96, - 224, - 1, - 81, - 97, - 116, - 238, - 86, - 91, - 96, - 16, - 84, - 97, - 1, - 0, - 135, - 1, - 81, - 97, - 91, - 105, - 145, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 144, - 97, - 70, - 43, - 86, - 91, - 96, - 16, - 84, - 96, - 15, - 84, - 96, - 32, - 141, - 1, - 81, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 146, - 131, - 22, - 146, - 97, - 1, - 0, - 144, - 146, - 4, - 144, - 145, - 22, - 144, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 129, - 22, - 144, - 127, - 97, - 126, - 155, - 20, - 125, - 3, - 180, - 78, - 28, - 201, - 66, - 120, - 47, - 118, - 32, - 200, - 150, - 51, - 38, - 149, - 107, - 101, - 163, - 96, - 8, - 242, - 129, - 202, - 97, - 147, - 2, - 50, - 144, - 97, - 91, - 192, - 144, - 97, - 24, - 82, - 86, - 91, - 138, - 96, - 224, - 1, - 81, - 139, - 97, - 1, - 0, - 1, - 81, - 140, - 96, - 160, - 1, - 81, - 141, - 96, - 32, - 1, - 81, - 96, - 64, - 81, - 97, - 92, - 4, - 149, - 148, - 147, - 146, - 145, - 144, - 148, - 133, - 82, - 96, - 32, - 133, - 1, - 147, - 144, - 147, - 82, - 96, - 64, - 132, - 1, - 145, - 144, - 145, - 82, - 96, - 96, - 131, - 1, - 82, - 96, - 128, - 130, - 1, - 82, - 96, - 160, - 1, - 144, - 86, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 164, - 80, - 80, - 96, - 15, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 184, - 27, - 3, - 25, - 22, - 144, - 85, - 80, - 80, - 96, - 16, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 25, - 22, - 144, - 85, - 80, - 96, - 0, - 96, - 17, - 129, - 144, - 85, - 96, - 18, - 85, - 96, - 32, - 149, - 144, - 149, - 1, - 81, - 96, - 224, - 134, - 1, - 81, - 97, - 1, - 0, - 144, - 150, - 1, - 81, - 144, - 150, - 144, - 148, - 80, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 129, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 0, - 3, - 97, - 92, - 133, - 87, - 96, - 64, - 81, - 99, - 77, - 251, - 160, - 35, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 0, - 98, - 255, - 255, - 255, - 139, - 22, - 21, - 97, - 92, - 152, - 87, - 138, - 97, - 92, - 161, - 86, - 91, - 96, - 5, - 84, - 98, - 255, - 255, - 255, - 22, - 91, - 144, - 80, - 128, - 98, - 255, - 255, - 255, - 22, - 96, - 0, - 3, - 97, - 92, - 201, - 87, - 96, - 64, - 81, - 99, - 7, - 147, - 223, - 99, - 96, - 226, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 98, - 255, - 255, - 255, - 129, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 6, - 96, - 32, - 82, - 96, - 64, - 129, - 32, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 141, - 22, - 21, - 21, - 146, - 145, - 144, - 130, - 144, - 97, - 92, - 255, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 97, - 139, - 168, - 86, - 91, - 145, - 144, - 97, - 1, - 0, - 10, - 129, - 84, - 129, - 99, - 255, - 255, - 255, - 255, - 2, - 25, - 22, - 144, - 131, - 99, - 255, - 255, - 255, - 255, - 22, - 2, - 23, - 144, - 85, - 144, - 80, - 97, - 93, - 53, - 131, - 131, - 131, - 96, - 40, - 146, - 144, - 146, - 27, - 96, - 32, - 145, - 144, - 145, - 27, - 23, - 23, - 144, - 86, - 91, - 147, - 80, - 80, - 96, - 0, - 96, - 8, - 96, - 0, - 133, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 144, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 32, - 144, - 80, - 139, - 129, - 96, - 2, - 1, - 96, - 0, - 97, - 1, - 0, - 10, - 129, - 84, - 129, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 2, - 25, - 22, - 144, - 131, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 2, - 23, - 144, - 85, - 80, - 129, - 128, - 21, - 97, - 93, - 153, - 87, - 80, - 97, - 255, - 255, - 139, - 22, - 21, - 91, - 21, - 97, - 93, - 189, - 87, - 96, - 64, - 81, - 99, - 246, - 244, - 163, - 143, - 96, - 224, - 27, - 129, - 82, - 97, - 255, - 255, - 140, - 22, - 96, - 4, - 130, - 1, - 82, - 96, - 36, - 1, - 97, - 25, - 118, - 86, - 91, - 96, - 0, - 97, - 93, - 200, - 66, - 97, - 105, - 65, - 86, - 91, - 96, - 1, - 131, - 129, - 1, - 128, - 84, - 99, - 255, - 255, - 255, - 255, - 96, - 128, - 27, - 25, - 22, - 96, - 1, - 96, - 128, - 27, - 99, - 255, - 255, - 255, - 255, - 133, - 22, - 2, - 23, - 144, - 85, - 98, - 255, - 255, - 255, - 134, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 7, - 96, - 32, - 129, - 144, - 82, - 96, - 64, - 130, - 32, - 128, - 84, - 145, - 135, - 1, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 147, - 132, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 25, - 128, - 131, - 22, - 130, - 23, - 132, - 85, - 132, - 84, - 96, - 1, - 96, - 1, - 96, - 168, - 27, - 3, - 25, - 147, - 132, - 22, - 144, - 146, - 23, - 96, - 1, - 96, - 160, - 27, - 146, - 131, - 144, - 4, - 96, - 255, - 144, - 129, - 22, - 132, - 2, - 145, - 144, - 145, - 23, - 144, - 148, - 85, - 147, - 144, - 150, - 1, - 128, - 84, - 96, - 8, - 139, - 1, - 128, - 84, - 145, - 144, - 150, - 22, - 148, - 129, - 22, - 133, - 23, - 134, - 85, - 144, - 84, - 145, - 22, - 144, - 146, - 23, - 145, - 133, - 144, - 4, - 22, - 144, - 147, - 2, - 146, - 144, - 146, - 23, - 144, - 145, - 85, - 144, - 145, - 80, - 97, - 255, - 255, - 138, - 129, - 22, - 20, - 97, - 94, - 139, - 87, - 96, - 0, - 97, - 94, - 142, - 86, - 91, - 96, - 1, - 91, - 144, - 80, - 96, - 0, - 96, - 64, - 81, - 128, - 97, - 1, - 0, - 1, - 96, - 64, - 82, - 128, - 138, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 134, - 97, - 94, - 189, - 87, - 96, - 12, - 84, - 96, - 255, - 22, - 97, - 94, - 191, - 86, - 91, - 139, - 91, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 142, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 131, - 97, - 94, - 221, - 87, - 140, - 97, - 94, - 225, - 86, - 91, - 97, - 1, - 244, - 91, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 141, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 134, - 97, - 95, - 0, - 87, - 96, - 0, - 97, - 95, - 2, - 86, - 91, - 143, - 91, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 132, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 131, - 21, - 21, - 129, - 82, - 80, - 144, - 80, - 97, - 95, - 50, - 129, - 133, - 97, - 71, - 227, - 144, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 96, - 0, - 128, - 97, - 95, - 72, - 137, - 139, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 97, - 40, - 9, - 86, - 91, - 145, - 80, - 145, - 80, - 97, - 95, - 85, - 129, - 97, - 74, - 55, - 86, - 91, - 97, - 95, - 94, - 131, - 97, - 74, - 55, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 145, - 130, - 22, - 96, - 1, - 96, - 128, - 27, - 2, - 144, - 130, - 22, - 23, - 135, - 85, - 96, - 8, - 135, - 1, - 84, - 96, - 7, - 136, - 1, - 84, - 96, - 64, - 128, - 81, - 139, - 21, - 21, - 129, - 82, - 147, - 142, - 22, - 96, - 32, - 133, - 1, - 82, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 146, - 131, - 22, - 147, - 145, - 144, - 146, - 22, - 145, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 141, - 22, - 145, - 127, - 118, - 9, - 244, - 94, - 22, - 55, - 139, - 176, - 120, - 40, - 132, - 113, - 155, - 162, - 77, - 59, - 188, - 90, - 182, - 163, - 115, - 185, - 234, - 202, - 204, - 37, - 198, - 20, - 59, - 135, - 207, - 119, - 145, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 164, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 153, - 152, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 41, - 131, - 20, - 97, - 96, - 26, - 87, - 96, - 64, - 81, - 99, - 112, - 206, - 228, - 175, - 96, - 225, - 27, - 129, - 82, - 96, - 41, - 96, - 4, - 130, - 1, - 82, - 96, - 36, - 129, - 1, - 132, - 144, - 82, - 96, - 68, - 1, - 97, - 25, - 118, - 86, - 91, - 80, - 80, - 80, - 96, - 1, - 129, - 1, - 53, - 96, - 96, - 144, - 129, - 28, - 146, - 96, - 21, - 144, - 146, - 1, - 53, - 144, - 28, - 144, - 86, - 91, - 96, - 0, - 129, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 131, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 3, - 97, - 96, - 103, - 87, - 96, - 64, - 81, - 99, - 59, - 14, - 45, - 229, - 96, - 226, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 80, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 128, - 131, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 9, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 147, - 133, - 22, - 131, - 82, - 146, - 144, - 82, - 32, - 84, - 98, - 255, - 255, - 255, - 22, - 128, - 21, - 97, - 96, - 185, - 87, - 96, - 64, - 81, - 99, - 51, - 37, - 250, - 119, - 96, - 224, - 27, - 129, - 82, - 98, - 255, - 255, - 255, - 130, - 22, - 96, - 4, - 130, - 1, - 82, - 96, - 36, - 1, - 97, - 25, - 118, - 86, - 91, - 96, - 0, - 128, - 132, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 99, - 49, - 60, - 229, - 103, - 96, - 64, - 81, - 129, - 99, - 255, - 255, - 255, - 255, - 22, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 32, - 96, - 64, - 81, - 128, - 131, - 3, - 129, - 134, - 90, - 250, - 21, - 128, - 21, - 97, - 96, - 250, - 87, - 61, - 96, - 0, - 128, - 62, - 61, - 96, - 0, - 253, - 91, - 80, - 80, - 80, - 80, - 96, - 64, - 81, - 61, - 96, - 31, - 25, - 96, - 31, - 130, - 1, - 22, - 130, - 1, - 128, - 96, - 64, - 82, - 80, - 129, - 1, - 144, - 97, - 97, - 30, - 145, - 144, - 97, - 139, - 203, - 86, - 91, - 132, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 99, - 49, - 60, - 229, - 103, - 96, - 64, - 81, - 129, - 99, - 255, - 255, - 255, - 255, - 22, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 32, - 96, - 64, - 81, - 128, - 131, - 3, - 129, - 134, - 90, - 250, - 21, - 128, - 21, - 97, - 97, - 92, - 87, - 61, - 96, - 0, - 128, - 62, - 61, - 96, - 0, - 253, - 91, - 80, - 80, - 80, - 80, - 96, - 64, - 81, - 61, - 96, - 31, - 25, - 96, - 31, - 130, - 1, - 22, - 130, - 1, - 128, - 96, - 64, - 82, - 80, - 129, - 1, - 144, - 97, - 97, - 128, - 145, - 144, - 97, - 139, - 203, - 86, - 91, - 144, - 146, - 80, - 144, - 80, - 97, - 97, - 166, - 96, - 255, - 131, - 22, - 96, - 6, - 96, - 18, - 129, - 131, - 20, - 145, - 131, - 17, - 145, - 144, - 145, - 23, - 130, - 130, - 20, - 145, - 144, - 146, - 16, - 23, - 22, - 144, - 86, - 91, - 97, - 97, - 200, - 87, - 96, - 64, - 81, - 99, - 202, - 149, - 3, - 145, - 96, - 224, - 27, - 129, - 82, - 96, - 255, - 131, - 22, - 96, - 4, - 130, - 1, - 82, - 96, - 36, - 1, - 97, - 25, - 118, - 86, - 91, - 97, - 97, - 233, - 96, - 255, - 130, - 22, - 96, - 6, - 96, - 18, - 129, - 131, - 20, - 145, - 131, - 17, - 145, - 144, - 145, - 23, - 130, - 130, - 20, - 145, - 144, - 146, - 16, - 23, - 22, - 144, - 86, - 91, - 97, - 98, - 11, - 87, - 96, - 64, - 81, - 99, - 202, - 149, - 3, - 145, - 96, - 224, - 27, - 129, - 82, - 96, - 255, - 130, - 22, - 96, - 4, - 130, - 1, - 82, - 96, - 36, - 1, - 97, - 25, - 118, - 86, - 91, - 96, - 5, - 128, - 84, - 96, - 0, - 144, - 97, - 98, - 32, - 144, - 98, - 255, - 255, - 255, - 22, - 97, - 139, - 238, - 86, - 91, - 130, - 84, - 97, - 1, - 0, - 146, - 144, - 146, - 10, - 98, - 255, - 255, - 255, - 129, - 129, - 2, - 25, - 144, - 147, - 22, - 146, - 130, - 22, - 144, - 129, - 2, - 146, - 144, - 146, - 23, - 144, - 146, - 85, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 135, - 129, - 22, - 96, - 0, - 129, - 129, - 82, - 96, - 9, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 139, - 134, - 22, - 128, - 133, - 82, - 144, - 131, - 82, - 129, - 132, - 32, - 128, - 84, - 98, - 255, - 255, - 255, - 25, - 22, - 136, - 23, - 144, - 85, - 129, - 81, - 96, - 128, - 129, - 1, - 131, - 82, - 133, - 129, - 82, - 96, - 255, - 139, - 129, - 22, - 130, - 134, - 1, - 129, - 129, - 82, - 131, - 134, - 1, - 133, - 129, - 82, - 141, - 132, - 22, - 96, - 96, - 134, - 1, - 129, - 129, - 82, - 141, - 139, - 82, - 96, - 7, - 138, - 82, - 153, - 136, - 144, - 32, - 149, - 81, - 134, - 84, - 147, - 81, - 144, - 141, - 22, - 96, - 1, - 96, - 1, - 96, - 168, - 27, - 3, - 25, - 148, - 133, - 22, - 23, - 96, - 1, - 96, - 160, - 27, - 145, - 135, - 22, - 130, - 2, - 23, - 135, - 85, - 145, - 81, - 96, - 1, - 150, - 144, - 150, - 1, - 128, - 84, - 154, - 81, - 150, - 144, - 156, - 22, - 153, - 144, - 146, - 22, - 152, - 144, - 152, - 23, - 147, - 144, - 146, - 22, - 144, - 150, - 2, - 145, - 144, - 145, - 23, - 144, - 150, - 85, - 129, - 81, - 147, - 132, - 82, - 145, - 131, - 1, - 148, - 144, - 148, - 82, - 148, - 151, - 80, - 144, - 146, - 145, - 127, - 192, - 197, - 223, - 152, - 164, - 202, - 135, - 163, - 33, - 163, - 59, - 241, - 39, - 124, - 243, - 45, - 49, - 169, - 123, - 108, - 225, - 75, - 151, - 71, - 56, - 33, - 73, - 185, - 226, - 99, - 30, - 163, - 145, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 164, - 80, - 80, - 146, - 145, - 80, - 80, - 86, - 91, - 51, - 96, - 0, - 144, - 129, - 82, - 96, - 10, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 135, - 22, - 132, - 82, - 144, - 145, - 82, - 129, - 32, - 128, - 84, - 144, - 145, - 96, - 1, - 96, - 128, - 27, - 144, - 145, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 144, - 3, - 97, - 99, - 153, - 87, - 96, - 64, - 81, - 99, - 47, - 155, - 2, - 219, - 96, - 225, - 27, - 129, - 82, - 51, - 96, - 4, - 130, - 1, - 82, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 133, - 22, - 96, - 36, - 130, - 1, - 82, - 96, - 68, - 1, - 97, - 25, - 118, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 132, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 8, - 96, - 32, - 129, - 144, - 82, - 96, - 64, - 144, - 145, - 32, - 96, - 4, - 129, - 1, - 84, - 96, - 5, - 130, - 1, - 84, - 96, - 3, - 131, - 1, - 84, - 96, - 7, - 132, - 1, - 84, - 148, - 132, - 1, - 84, - 147, - 148, - 146, - 147, - 145, - 146, - 144, - 145, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 145, - 130, - 22, - 145, - 22, - 97, - 99, - 237, - 135, - 134, - 134, - 134, - 97, - 117, - 53, - 86, - 91, - 80, - 96, - 0, - 145, - 80, - 80, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 138, - 129, - 22, - 20, - 97, - 100, - 9, - 87, - 137, - 97, - 100, - 24, - 86, - 91, - 96, - 4, - 136, - 1, - 84, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 91, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 144, - 80, - 96, - 0, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 128, - 22, - 138, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 20, - 97, - 100, - 68, - 87, - 137, - 97, - 100, - 90, - 86, - 91, - 96, - 4, - 137, - 1, - 84, - 96, - 1, - 96, - 128, - 27, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 91, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 144, - 80, - 97, - 100, - 110, - 130, - 97, - 74, - 55, - 86, - 91, - 96, - 4, - 138, - 1, - 128, - 84, - 96, - 0, - 144, - 97, - 100, - 139, - 144, - 132, - 144, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 97, - 140, - 6, - 86, - 91, - 146, - 80, - 97, - 1, - 0, - 10, - 129, - 84, - 129, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 2, - 25, - 22, - 144, - 131, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 2, - 23, - 144, - 85, - 80, - 97, - 100, - 184, - 129, - 97, - 74, - 55, - 86, - 91, - 96, - 4, - 138, - 1, - 128, - 84, - 96, - 16, - 144, - 97, - 100, - 220, - 144, - 132, - 144, - 96, - 1, - 96, - 128, - 27, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 97, - 140, - 6, - 86, - 91, - 146, - 80, - 97, - 1, - 0, - 10, - 129, - 84, - 129, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 2, - 25, - 22, - 144, - 131, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 2, - 23, - 144, - 85, - 80, - 96, - 0, - 130, - 17, - 21, - 97, - 101, - 20, - 87, - 97, - 101, - 20, - 51, - 133, - 132, - 97, - 115, - 21, - 86, - 91, - 128, - 21, - 97, - 101, - 37, - 87, - 97, - 101, - 37, - 51, - 132, - 131, - 97, - 115, - 21, - 86, - 91, - 96, - 64, - 128, - 81, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 142, - 22, - 129, - 82, - 96, - 32, - 129, - 1, - 132, - 144, - 82, - 144, - 129, - 1, - 130, - 144, - 82, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 128, - 133, - 22, - 145, - 144, - 134, - 22, - 144, - 51, - 144, - 127, - 61, - 77, - 68, - 65, - 44, - 245, - 221, - 218, - 92, - 53, - 136, - 92, - 203, - 130, - 210, - 76, - 94, - 57, - 133, - 24, - 235, - 124, - 251, - 17, - 109, - 70, - 235, - 126, - 75, - 190, - 14, - 123, - 144, - 96, - 96, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 164, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 97, - 101, - 156, - 134, - 133, - 97, - 76, - 48, - 86, - 91, - 80, - 80, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 146, - 131, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 32, - 148, - 133, - 82, - 96, - 64, - 128, - 130, - 32, - 147, - 144, - 148, - 22, - 129, - 82, - 145, - 144, - 147, - 82, - 32, - 128, - 84, - 130, - 129, - 17, - 131, - 130, - 3, - 2, - 129, - 3, - 144, - 129, - 144, - 3, - 144, - 145, - 85, - 145, - 144, - 130, - 144, - 3, - 144, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 130, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 1, - 132, - 1, - 96, - 32, - 82, - 96, - 64, - 144, - 32, - 84, - 128, - 130, - 17, - 21, - 97, - 102, - 35, - 87, - 96, - 64, - 81, - 99, - 49, - 82, - 118, - 201, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 129, - 1, - 130, - 144, - 82, - 96, - 36, - 129, - 1, - 131, - 144, - 82, - 96, - 68, - 1, - 97, - 25, - 118, - 86, - 91, - 97, - 102, - 45, - 132, - 132, - 97, - 76, - 48, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 131, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 1, - 133, - 1, - 96, - 32, - 82, - 96, - 64, - 129, - 32, - 128, - 84, - 132, - 146, - 144, - 97, - 102, - 87, - 144, - 132, - 144, - 97, - 136, - 82, - 86, - 91, - 144, - 145, - 85, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 97, - 102, - 110, - 131, - 97, - 118, - 193, - 86, - 91, - 145, - 80, - 145, - 80, - 129, - 97, - 38, - 4, - 87, - 128, - 81, - 129, - 96, - 32, - 1, - 253, - 91, - 96, - 0, - 97, - 24, - 76, - 130, - 96, - 96, - 1, - 81, - 99, - 255, - 255, - 255, - 255, - 22, - 131, - 97, - 47, - 187, - 144, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 96, - 0, - 128, - 97, - 102, - 171, - 134, - 134, - 97, - 104, - 223, - 86, - 91, - 144, - 80, - 128, - 21, - 97, - 103, - 164, - 87, - 96, - 0, - 97, - 102, - 190, - 130, - 97, - 120, - 224, - 86, - 91, - 144, - 80, - 99, - 1, - 225, - 133, - 89, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 133, - 129, - 2, - 145, - 144, - 145, - 4, - 144, - 97, - 39, - 16, - 144, - 135, - 2, - 4, - 96, - 0, - 103, - 27, - 193, - 109, - 103, - 78, - 200, - 0, - 0, - 97, - 102, - 242, - 131, - 128, - 97, - 137, - 71, - 86, - 91, - 97, - 102, - 252, - 145, - 144, - 97, - 139, - 98, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 103, - 10, - 132, - 131, - 97, - 137, - 71, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 103, - 32, - 132, - 99, - 59, - 154, - 202, - 0, - 97, - 75, - 137, - 136, - 97, - 105, - 241, - 86, - 91, - 144, - 80, - 96, - 0, - 129, - 131, - 97, - 103, - 56, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 138, - 97, - 138, - 153, - 86, - 91, - 97, - 103, - 66, - 145, - 144, - 97, - 140, - 46, - 86, - 91, - 97, - 103, - 76, - 145, - 144, - 97, - 139, - 52, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 103, - 89, - 130, - 97, - 122, - 187, - 86, - 91, - 144, - 80, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 129, - 19, - 21, - 97, - 103, - 135, - 87, - 96, - 64, - 81, - 99, - 177, - 21, - 88, - 223, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 129, - 1, - 130, - 144, - 82, - 96, - 36, - 1, - 97, - 25, - 118, - 86, - 91, - 97, - 103, - 153, - 129, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 97, - 136, - 165, - 86, - 91, - 153, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 91, - 80, - 148, - 147, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 134, - 17, - 21, - 97, - 103, - 216, - 87, - 96, - 64, - 81, - 99, - 170, - 243, - 149, - 111, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 134, - 3, - 97, - 103, - 238, - 87, - 80, - 128, - 97, - 29, - 139, - 86, - 91, - 133, - 96, - 0, - 3, - 97, - 104, - 7, - 87, - 97, - 104, - 0, - 130, - 134, - 97, - 140, - 46, - 86, - 91, - 144, - 80, - 97, - 29, - 139, - 86, - 91, - 130, - 21, - 97, - 104, - 162, - 87, - 96, - 0, - 97, - 104, - 29, - 132, - 99, - 1, - 225, - 133, - 88, - 97, - 104, - 223, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 104, - 42, - 130, - 97, - 105, - 241, - 86, - 91, - 144, - 80, - 97, - 104, - 58, - 99, - 59, - 154, - 202, - 0, - 130, - 97, - 137, - 71, - 86, - 91, - 144, - 80, - 97, - 104, - 70, - 134, - 130, - 97, - 65, - 53, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 104, - 92, - 137, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 97, - 136, - 165, - 86, - 91, - 144, - 80, - 97, - 104, - 103, - 129, - 97, - 105, - 84, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 104, - 117, - 131, - 131, - 97, - 136, - 165, - 86, - 91, - 144, - 80, - 97, - 104, - 128, - 129, - 97, - 122, - 187, - 86, - 91, - 144, - 80, - 133, - 97, - 104, - 141, - 138, - 131, - 97, - 123, - 36, - 86, - 91, - 97, - 104, - 151, - 145, - 144, - 97, - 140, - 46, - 86, - 91, - 148, - 80, - 80, - 80, - 80, - 80, - 97, - 29, - 139, - 86, - 91, - 129, - 97, - 104, - 190, - 134, - 97, - 104, - 185, - 137, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 97, - 136, - 165, - 86, - 91, - 97, - 123, - 36, - 86, - 91, - 97, - 48, - 142, - 145, - 144, - 97, - 140, - 46, - 86, - 91, - 96, - 0, - 128, - 97, - 104, - 212, - 131, - 97, - 74, - 145, - 86, - 91, - 147, - 144, - 147, - 2, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 97, - 17, - 147, - 131, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 132, - 97, - 79, - 245, - 86, - 91, - 96, - 64, - 128, - 81, - 96, - 4, - 129, - 82, - 96, - 36, - 129, - 1, - 144, - 145, - 82, - 96, - 32, - 129, - 1, - 128, - 81, - 96, - 1, - 96, - 1, - 96, - 224, - 27, - 3, - 22, - 99, - 11, - 190, - 187, - 51, - 96, - 227, - 27, - 23, - 144, - 82, - 98, - 1, - 81, - 128, - 130, - 2, - 144, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 130, - 17, - 21, - 97, - 105, - 59, - 87, - 128, - 81, - 129, - 96, - 32, - 1, - 253, - 91, - 80, - 145, - 144, - 80, - 86, - 91, - 96, - 0, - 100, - 1, - 0, - 0, - 0, - 0, - 130, - 16, - 97, - 74, - 73, - 87, - 96, - 0, - 128, - 253, - 91, - 96, - 0, - 103, - 6, - 240, - 91, - 89, - 211, - 178, - 0, - 0, - 130, - 3, - 97, - 105, - 109, - 87, - 80, - 96, - 0, - 145, - 144, - 80, - 86, - 91, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 130, - 18, - 97, - 105, - 149, - 87, - 96, - 64, - 81, - 99, - 7, - 160, - 33, - 39, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 129, - 96, - 0, - 3, - 97, - 105, - 182, - 87, - 96, - 64, - 81, - 99, - 34, - 237, - 89, - 133, - 96, - 226, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 0, - 97, - 105, - 195, - 131, - 96, - 2, - 97, - 138, - 153, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 105, - 208, - 130, - 97, - 123, - 57, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 105, - 230, - 103, - 19, - 160, - 75, - 189, - 253, - 201, - 190, - 136, - 131, - 97, - 123, - 36, - 86, - 91, - 144, - 80, - 97, - 29, - 139, - 129, - 97, - 139, - 140, - 86, - 91, - 96, - 181, - 129, - 96, - 1, - 96, - 136, - 27, - 129, - 16, - 97, - 106, - 10, - 87, - 96, - 64, - 145, - 144, - 145, - 27, - 144, - 96, - 128, - 28, - 91, - 105, - 1, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 129, - 16, - 97, - 106, - 38, - 87, - 96, - 32, - 145, - 144, - 145, - 27, - 144, - 96, - 64, - 28, - 91, - 101, - 1, - 0, - 0, - 0, - 0, - 0, - 129, - 16, - 97, - 106, - 62, - 87, - 96, - 16, - 145, - 144, - 145, - 27, - 144, - 96, - 32, - 28, - 91, - 99, - 1, - 0, - 0, - 0, - 129, - 16, - 97, - 106, - 84, - 87, - 96, - 8, - 145, - 144, - 145, - 27, - 144, - 96, - 16, - 28, - 91, - 98, - 1, - 0, - 0, - 1, - 2, - 96, - 18, - 28, - 128, - 130, - 4, - 1, - 96, - 1, - 144, - 129, - 28, - 128, - 131, - 4, - 1, - 129, - 28, - 128, - 131, - 4, - 1, - 129, - 28, - 128, - 131, - 4, - 1, - 129, - 28, - 128, - 131, - 4, - 1, - 129, - 28, - 128, - 131, - 4, - 1, - 129, - 28, - 128, - 131, - 4, - 1, - 144, - 28, - 144, - 129, - 144, - 4, - 129, - 17, - 144, - 3, - 144, - 86, - 91, - 96, - 0, - 104, - 2, - 72, - 206, - 54, - 167, - 12, - 178, - 107, - 62, - 25, - 130, - 19, - 97, - 106, - 176, - 87, - 80, - 96, - 0, - 145, - 144, - 80, - 86, - 91, - 104, - 7, - 85, - 191, - 121, - 139, - 74, - 27, - 241, - 229, - 130, - 18, - 97, - 106, - 247, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 12, - 96, - 36, - 130, - 1, - 82, - 107, - 69, - 88, - 80, - 95, - 79, - 86, - 69, - 82, - 70, - 76, - 79, - 87, - 96, - 160, - 27, - 96, - 68, - 130, - 1, - 82, - 96, - 100, - 1, - 97, - 25, - 118, - 86, - 91, - 101, - 3, - 120, - 45, - 172, - 233, - 217, - 96, - 78, - 131, - 144, - 27, - 5, - 145, - 80, - 96, - 0, - 96, - 96, - 107, - 177, - 114, - 23, - 247, - 209, - 207, - 121, - 171, - 201, - 227, - 179, - 152, - 132, - 130, - 27, - 5, - 96, - 1, - 96, - 95, - 27, - 1, - 144, - 29, - 107, - 177, - 114, - 23, - 247, - 209, - 207, - 121, - 171, - 201, - 227, - 179, - 152, - 129, - 2, - 144, - 147, - 3, - 108, - 36, - 12, - 51, - 14, - 159, - 178, - 217, - 203, - 175, - 15, - 213, - 170, - 251, - 25, - 129, - 1, - 129, - 2, - 96, - 96, - 144, - 129, - 29, - 109, - 2, - 119, - 89, - 73, - 145, - 207, - 200, - 95, - 110, - 36, - 97, - 131, - 124, - 217, - 1, - 130, - 2, - 129, - 29, - 109, - 26, - 82, - 18, - 85, - 227, - 79, - 106, - 80, - 97, - 178, - 94, - 241, - 201, - 195, - 25, - 1, - 130, - 2, - 129, - 29, - 109, - 177, - 187, - 178, - 1, - 244, - 67, - 207, - 150, - 47, - 26, - 29, - 61, - 180, - 165, - 1, - 130, - 2, - 129, - 29, - 110, - 2, - 199, - 35, - 136, - 217, - 247, - 79, - 81, - 169, - 51, - 31, - 237, - 105, - 63, - 20, - 25, - 1, - 130, - 2, - 129, - 29, - 110, - 5, - 24, - 11, - 177, - 71, - 153, - 171, - 71, - 168, - 168, - 203, - 42, - 82, - 125, - 87, - 1, - 109, - 2, - 209, - 103, - 32, - 87, - 123, - 209, - 155, - 246, - 20, - 23, - 111, - 233, - 234, - 108, - 16, - 254, - 104, - 231, - 253, - 55, - 208, - 0, - 123, - 113, - 63, - 118, - 80, - 132, - 1, - 132, - 2, - 131, - 29, - 144, - 129, - 1, - 144, - 132, - 1, - 109, - 1, - 211, - 150, - 126, - 211, - 15, - 196, - 248, - 156, - 2, - 186, - 181, - 112, - 129, - 25, - 1, - 2, - 144, - 145, - 29, - 110, - 5, - 135, - 245, - 3, - 187, - 110, - 162, - 157, - 37, - 252, - 183, - 64, - 25, - 100, - 80, - 1, - 144, - 145, - 2, - 109, - 54, - 13, - 122, - 238, - 160, - 147, - 38, - 62, - 204, - 110, - 14, - 203, - 41, - 23, - 96, - 98, - 27, - 1, - 5, - 116, - 2, - 157, - 157, - 195, - 133, - 99, - 195, - 46, - 92, - 47, - 109, - 193, - 146, - 238, - 112, - 239, - 101, - 249, - 151, - 138, - 243, - 2, - 96, - 195, - 147, - 144, - 147, - 3, - 146, - 144, - 146, - 28, - 146, - 145, - 80, - 80, - 86, - 91, - 96, - 0, - 96, - 64, - 81, - 99, - 35, - 184, - 114, - 221, - 96, - 224, - 27, - 96, - 0, - 82, - 132, - 96, - 4, - 82, - 131, - 96, - 36, - 82, - 130, - 96, - 68, - 82, - 96, - 32, - 96, - 0, - 96, - 100, - 96, - 0, - 128, - 138, - 90, - 241, - 61, - 21, - 96, - 31, - 61, - 17, - 96, - 1, - 96, - 0, - 81, - 20, - 22, - 23, - 22, - 145, - 80, - 96, - 0, - 96, - 96, - 82, - 128, - 96, - 64, - 82, - 80, - 128, - 97, - 63, - 108, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 20, - 96, - 36, - 130, - 1, - 82, - 115, - 21, - 20, - 144, - 83, - 148, - 209, - 145, - 84, - 151, - 209, - 148, - 147, - 211, - 87, - 209, - 144, - 82, - 83, - 17, - 81, - 96, - 98, - 27, - 96, - 68, - 130, - 1, - 82, - 96, - 100, - 1, - 97, - 25, - 118, - 86, - 91, - 97, - 108, - 207, - 132, - 131, - 97, - 76, - 48, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 128, - 132, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 32, - 134, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 147, - 134, - 22, - 131, - 82, - 146, - 144, - 82, - 144, - 129, - 32, - 128, - 84, - 131, - 146, - 144, - 97, - 102, - 87, - 144, - 132, - 144, - 97, - 137, - 47, - 86, - 91, - 96, - 0, - 130, - 21, - 97, - 110, - 21, - 87, - 96, - 0, - 97, - 109, - 28, - 132, - 99, - 1, - 225, - 133, - 88, - 97, - 104, - 223, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 109, - 41, - 130, - 97, - 105, - 241, - 86, - 91, - 144, - 80, - 97, - 109, - 57, - 99, - 59, - 154, - 202, - 0, - 130, - 97, - 137, - 71, - 86, - 91, - 144, - 80, - 97, - 109, - 69, - 134, - 130, - 97, - 65, - 53, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 109, - 92, - 97, - 109, - 86, - 134, - 139, - 97, - 140, - 46, - 86, - 91, - 137, - 97, - 125, - 178, - 86, - 91, - 144, - 80, - 96, - 0, - 129, - 18, - 21, - 97, - 109, - 128, - 87, - 96, - 64, - 81, - 99, - 170, - 243, - 149, - 111, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 129, - 19, - 21, - 97, - 109, - 169, - 87, - 96, - 64, - 81, - 99, - 170, - 243, - 149, - 111, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 129, - 3, - 97, - 109, - 196, - 87, - 96, - 0, - 147, - 80, - 80, - 80, - 80, - 97, - 29, - 139, - 86, - 91, - 128, - 96, - 0, - 3, - 97, - 109, - 223, - 87, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 147, - 80, - 80, - 80, - 80, - 97, - 29, - 139, - 86, - 91, - 97, - 109, - 232, - 129, - 97, - 105, - 84, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 109, - 246, - 131, - 131, - 97, - 140, - 46, - 86, - 91, - 144, - 80, - 97, - 110, - 1, - 129, - 97, - 122, - 187, - 86, - 91, - 144, - 80, - 97, - 104, - 151, - 129, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 97, - 136, - 165, - 86, - 91, - 96, - 0, - 97, - 110, - 33, - 131, - 136, - 97, - 140, - 46, - 86, - 91, - 144, - 80, - 133, - 97, - 110, - 46, - 130, - 130, - 97, - 125, - 178, - 86, - 91, - 97, - 74, - 21, - 144, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 97, - 136, - 165, - 86, - 91, - 96, - 0, - 96, - 1, - 96, - 1, - 96, - 127, - 27, - 3, - 130, - 17, - 21, - 97, - 74, - 73, - 87, - 96, - 0, - 128, - 253, - 91, - 96, - 32, - 128, - 130, - 1, - 128, - 81, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 144, - 129, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 8, - 132, - 82, - 96, - 64, - 128, - 130, - 32, - 134, - 81, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 131, - 82, - 96, - 10, - 134, - 82, - 129, - 131, - 32, - 148, - 81, - 144, - 147, - 22, - 130, - 82, - 146, - 144, - 147, - 82, - 144, - 130, - 32, - 96, - 4, - 130, - 1, - 84, - 96, - 5, - 131, - 1, - 84, - 96, - 3, - 132, - 1, - 84, - 133, - 148, - 133, - 148, - 144, - 147, - 144, - 146, - 97, - 110, - 188, - 146, - 132, - 146, - 145, - 144, - 97, - 117, - 53, - 86, - 91, - 96, - 32, - 137, - 1, - 81, - 137, - 81, - 96, - 224, - 139, - 1, - 81, - 148, - 153, - 80, - 146, - 151, - 80, - 144, - 149, - 80, - 96, - 0, - 146, - 97, - 110, - 225, - 146, - 144, - 96, - 15, - 11, - 97, - 16, - 169, - 86, - 91, - 144, - 80, - 128, - 97, - 111, - 19, - 87, - 96, - 6, - 131, - 1, - 84, - 96, - 64, - 81, - 99, - 38, - 136, - 198, - 203, - 96, - 226, - 27, - 129, - 82, - 96, - 1, - 96, - 128, - 27, - 144, - 145, - 4, - 97, - 255, - 255, - 22, - 96, - 4, - 130, - 1, - 82, - 96, - 36, - 1, - 97, - 25, - 118, - 86, - 91, - 96, - 64, - 135, - 1, - 81, - 96, - 224, - 136, - 1, - 81, - 97, - 111, - 40, - 145, - 132, - 145, - 97, - 125, - 199, - 86, - 91, - 96, - 224, - 135, - 1, - 81, - 96, - 32, - 128, - 137, - 1, - 81, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 8, - 144, - 145, - 82, - 96, - 64, - 144, - 32, - 97, - 111, - 83, - 145, - 97, - 126, - 29, - 86, - 91, - 96, - 160, - 135, - 1, - 81, - 96, - 192, - 136, - 1, - 81, - 96, - 224, - 137, - 1, - 81, - 96, - 0, - 96, - 15, - 145, - 144, - 145, - 11, - 18, - 21, - 97, - 111, - 145, - 87, - 97, - 111, - 126, - 130, - 138, - 96, - 96, - 1, - 81, - 97, - 70, - 43, - 86, - 91, - 97, - 111, - 140, - 129, - 138, - 96, - 128, - 1, - 81, - 97, - 70, - 43, - 86, - 91, - 97, - 111, - 173, - 86, - 91, - 97, - 111, - 159, - 130, - 138, - 96, - 96, - 1, - 81, - 97, - 116, - 238, - 86, - 91, - 97, - 111, - 173, - 129, - 138, - 96, - 128, - 1, - 81, - 97, - 116, - 238, - 86, - 91, - 80, - 80, - 80, - 80, - 80, - 145, - 147, - 144, - 146, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 97, - 111, - 199, - 132, - 97, - 48, - 152, - 86, - 91, - 80, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 134, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 8, - 96, - 32, - 82, - 96, - 64, - 144, - 32, - 144, - 146, - 80, - 97, - 111, - 238, - 145, - 80, - 66, - 97, - 126, - 92, - 86, - 91, - 97, - 114, - 248, - 96, - 8, - 96, - 0, - 134, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 144, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 32, - 96, - 64, - 81, - 128, - 97, - 1, - 64, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 2, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 3, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 4, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 5, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 6, - 130, - 1, - 96, - 64, - 81, - 128, - 97, - 1, - 0, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 18, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 22, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 24, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 26, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 30, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 21, - 21, - 21, - 21, - 129, - 82, - 80, - 80, - 129, - 82, - 96, - 32, - 1, - 96, - 7, - 130, - 1, - 96, - 64, - 81, - 128, - 96, - 128, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 80, - 80, - 129, - 82, - 80, - 80, - 97, - 102, - 127, - 86, - 91, - 96, - 0, - 3, - 97, - 115, - 10, - 87, - 96, - 0, - 148, - 144, - 147, - 80, - 145, - 80, - 80, - 86, - 91, - 96, - 1, - 148, - 144, - 147, - 80, - 145, - 80, - 80, - 86, - 91, - 97, - 115, - 34, - 96, - 0, - 132, - 132, - 132, - 97, - 108, - 197, - 86, - 91, - 129, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 131, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 127, - 73, - 225, - 68, - 60, - 178, - 94, - 23, - 203, - 235, - 197, - 10, - 163, - 227, - 165, - 163, - 223, - 58, - 195, - 52, - 175, - 133, - 43, - 198, - 243, - 232, - 210, - 88, - 85, - 130, - 87, - 187, - 17, - 131, - 96, - 64, - 81, - 97, - 115, - 103, - 145, - 129, - 82, - 96, - 32, - 1, - 144, - 86, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 163, - 80, - 80, - 80, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 130, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 8, - 96, - 32, - 82, - 96, - 64, - 129, - 32, - 96, - 2, - 1, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 51, - 3, - 97, - 115, - 246, - 87, - 129, - 81, - 96, - 32, - 131, - 1, - 81, - 96, - 0, - 145, - 97, - 115, - 178, - 145, - 97, - 136, - 165, - 86, - 91, - 144, - 80, - 96, - 0, - 128, - 130, - 18, - 97, - 115, - 195, - 87, - 129, - 97, - 115, - 204, - 86, - 91, - 97, - 115, - 204, - 130, - 97, - 139, - 140, - 86, - 91, - 144, - 80, - 128, - 21, - 97, - 115, - 243, - 87, - 97, - 115, - 243, - 97, - 115, - 238, - 133, - 96, - 192, - 1, - 81, - 131, - 97, - 104, - 223, - 144, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 96, - 18, - 85, - 86, - 91, - 80, - 80, - 91, - 96, - 0, - 130, - 96, - 32, - 1, - 81, - 19, - 21, - 97, - 116, - 37, - 87, - 97, - 116, - 29, - 97, - 116, - 24, - 131, - 96, - 160, - 1, - 81, - 132, - 96, - 192, - 1, - 81, - 97, - 104, - 223, - 86, - 91, - 96, - 17, - 85, - 86, - 91, - 80, - 96, - 1, - 97, - 24, - 76, - 86, - 91, - 80, - 96, - 0, - 146, - 145, - 80, - 80, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 135, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 8, - 96, - 32, - 82, - 96, - 64, - 144, - 32, - 97, - 116, - 79, - 135, - 97, - 74, - 55, - 86, - 91, - 129, - 84, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 25, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 145, - 144, - 145, - 22, - 23, - 129, - 85, - 97, - 116, - 115, - 134, - 97, - 74, - 55, - 86, - 91, - 129, - 84, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 145, - 130, - 22, - 96, - 1, - 96, - 128, - 27, - 2, - 145, - 22, - 23, - 129, - 85, - 97, - 116, - 148, - 133, - 97, - 74, - 55, - 86, - 91, - 96, - 1, - 130, - 1, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 25, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 146, - 144, - 146, - 22, - 145, - 144, - 145, - 23, - 144, - 85, - 97, - 116, - 192, - 129, - 66, - 97, - 126, - 92, - 86, - 91, - 96, - 4, - 129, - 1, - 84, - 132, - 1, - 96, - 4, - 130, - 1, - 85, - 96, - 5, - 129, - 1, - 84, - 131, - 1, - 96, - 5, - 130, - 1, - 85, - 96, - 3, - 129, - 1, - 84, - 130, - 1, - 96, - 3, - 144, - 145, - 1, - 85, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 97, - 116, - 250, - 96, - 0, - 131, - 131, - 97, - 126, - 139, - 86, - 91, - 129, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 127, - 128, - 178, - 23, - 72, - 199, - 135, - 197, - 46, - 135, - 166, - 178, - 34, - 1, - 30, - 10, - 14, - 208, - 249, - 204, - 32, - 21, - 240, - 206, - 212, - 103, - 72, - 100, - 45, - 198, - 46, - 233, - 248, - 130, - 96, - 64, - 81, - 97, - 70, - 114, - 145, - 129, - 82, - 96, - 32, - 1, - 144, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 128, - 97, - 117, - 73, - 135, - 137, - 96, - 2, - 1, - 84, - 144, - 3, - 144, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 117, - 91, - 135, - 138, - 96, - 3, - 1, - 84, - 144, - 3, - 144, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 117, - 109, - 135, - 139, - 96, - 1, - 1, - 84, - 144, - 3, - 144, - 86, - 91, - 138, - 84, - 144, - 145, - 80, - 97, - 117, - 134, - 144, - 132, - 144, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 97, - 65, - 53, - 86, - 91, - 138, - 84, - 144, - 150, - 80, - 97, - 117, - 159, - 144, - 131, - 144, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 97, - 65, - 53, - 86, - 91, - 138, - 84, - 144, - 149, - 80, - 97, - 117, - 184, - 144, - 130, - 144, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 97, - 65, - 53, - 86, - 91, - 96, - 2, - 139, - 1, - 138, - 144, - 85, - 96, - 3, - 139, - 1, - 137, - 144, - 85, - 96, - 1, - 139, - 1, - 136, - 144, - 85, - 147, - 80, - 97, - 117, - 216, - 134, - 97, - 74, - 55, - 86, - 91, - 96, - 4, - 139, - 1, - 128, - 84, - 96, - 0, - 144, - 97, - 117, - 245, - 144, - 132, - 144, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 97, - 140, - 111, - 86, - 91, - 146, - 80, - 97, - 1, - 0, - 10, - 129, - 84, - 129, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 2, - 25, - 22, - 144, - 131, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 2, - 23, - 144, - 85, - 80, - 97, - 118, - 34, - 133, - 97, - 74, - 55, - 86, - 91, - 96, - 4, - 139, - 1, - 128, - 84, - 96, - 16, - 144, - 97, - 118, - 70, - 144, - 132, - 144, - 96, - 1, - 96, - 128, - 27, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 97, - 140, - 111, - 86, - 91, - 146, - 80, - 97, - 1, - 0, - 10, - 129, - 84, - 129, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 2, - 25, - 22, - 144, - 131, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 2, - 23, - 144, - 85, - 80, - 97, - 118, - 115, - 132, - 97, - 74, - 55, - 86, - 91, - 96, - 5, - 139, - 1, - 128, - 84, - 96, - 0, - 144, - 97, - 118, - 144, - 144, - 132, - 144, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 97, - 140, - 111, - 86, - 91, - 146, - 80, - 97, - 1, - 0, - 10, - 129, - 84, - 129, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 2, - 25, - 22, - 144, - 131, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 2, - 23, - 144, - 85, - 80, - 80, - 80, - 80, - 148, - 80, - 148, - 80, - 148, - 145, - 80, - 80, - 86, - 91, - 96, - 0, - 96, - 96, - 97, - 2, - 88, - 131, - 96, - 32, - 1, - 81, - 97, - 255, - 255, - 22, - 17, - 21, - 97, - 119, - 54, - 87, - 96, - 32, - 131, - 1, - 81, - 96, - 64, - 81, - 97, - 255, - 255, - 144, - 145, - 22, - 96, - 36, - 130, - 1, - 82, - 96, - 0, - 144, - 99, - 122, - 127, - 16, - 65, - 96, - 225, - 27, - 144, - 96, - 68, - 1, - 91, - 96, - 64, - 128, - 81, - 96, - 31, - 25, - 129, - 132, - 3, - 1, - 129, - 82, - 145, - 144, - 82, - 96, - 32, - 129, - 1, - 128, - 81, - 96, - 1, - 96, - 1, - 96, - 224, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 224, - 27, - 3, - 25, - 144, - 147, - 22, - 146, - 144, - 146, - 23, - 144, - 145, - 82, - 144, - 148, - 144, - 147, - 80, - 145, - 80, - 80, - 86, - 91, - 97, - 119, - 93, - 131, - 96, - 128, - 1, - 81, - 97, - 255, - 255, - 22, - 96, - 100, - 97, - 97, - 168, - 129, - 131, - 20, - 145, - 131, - 17, - 145, - 144, - 145, - 23, - 130, - 130, - 20, - 145, - 144, - 146, - 16, - 23, - 22, - 144, - 86, - 91, - 97, - 119, - 136, - 87, - 96, - 128, - 131, - 1, - 81, - 96, - 64, - 81, - 97, - 255, - 255, - 144, - 145, - 22, - 96, - 36, - 130, - 1, - 82, - 96, - 0, - 144, - 99, - 9, - 98, - 43, - 49, - 96, - 225, - 27, - 144, - 96, - 68, - 1, - 97, - 118, - 250, - 86, - 91, - 97, - 119, - 175, - 131, - 96, - 96, - 1, - 81, - 97, - 255, - 255, - 22, - 96, - 1, - 97, - 1, - 244, - 129, - 131, - 20, - 145, - 131, - 17, - 145, - 144, - 145, - 23, - 130, - 130, - 20, - 145, - 144, - 146, - 16, - 23, - 22, - 144, - 86, - 91, - 97, - 119, - 218, - 87, - 96, - 96, - 131, - 1, - 81, - 96, - 64, - 81, - 97, - 255, - 255, - 144, - 145, - 22, - 96, - 36, - 130, - 1, - 82, - 96, - 0, - 144, - 99, - 174, - 145, - 144, - 39, - 96, - 224, - 27, - 144, - 96, - 68, - 1, - 97, - 118, - 250, - 86, - 91, - 130, - 81, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 144, - 129, - 22, - 129, - 129, - 16, - 145, - 129, - 20, - 145, - 144, - 145, - 23, - 96, - 1, - 128, - 131, - 17, - 146, - 20, - 145, - 144, - 145, - 23, - 22, - 97, - 120, - 42, - 87, - 130, - 81, - 96, - 64, - 81, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 144, - 145, - 22, - 96, - 36, - 130, - 1, - 82, - 96, - 0, - 144, - 99, - 139, - 191, - 136, - 181, - 96, - 224, - 27, - 144, - 96, - 68, - 1, - 97, - 118, - 250, - 86, - 91, - 97, - 120, - 81, - 131, - 96, - 64, - 1, - 81, - 97, - 255, - 255, - 22, - 96, - 1, - 97, - 3, - 232, - 129, - 131, - 20, - 145, - 131, - 17, - 145, - 144, - 145, - 23, - 130, - 130, - 20, - 145, - 144, - 146, - 16, - 23, - 22, - 144, - 86, - 91, - 97, - 120, - 124, - 87, - 96, - 64, - 128, - 132, - 1, - 81, - 144, - 81, - 97, - 255, - 255, - 144, - 145, - 22, - 96, - 36, - 130, - 1, - 82, - 96, - 0, - 144, - 99, - 246, - 244, - 163, - 143, - 96, - 224, - 27, - 144, - 96, - 68, - 1, - 97, - 118, - 250, - 86, - 91, - 96, - 160, - 131, - 1, - 81, - 96, - 64, - 132, - 1, - 81, - 97, - 255, - 255, - 145, - 130, - 22, - 128, - 21, - 128, - 21, - 23, - 146, - 144, - 145, - 22, - 129, - 129, - 20, - 145, - 16, - 23, - 22, - 97, - 120, - 199, - 87, - 96, - 160, - 131, - 1, - 81, - 96, - 64, - 81, - 97, - 255, - 255, - 144, - 145, - 22, - 96, - 36, - 130, - 1, - 82, - 96, - 0, - 144, - 99, - 246, - 244, - 163, - 143, - 96, - 224, - 27, - 144, - 96, - 68, - 1, - 97, - 118, - 250, - 86, - 91, - 80, - 80, - 96, - 64, - 128, - 81, - 96, - 32, - 129, - 1, - 144, - 145, - 82, - 96, - 0, - 129, - 82, - 96, - 1, - 146, - 144, - 145, - 80, - 86, - 91, - 96, - 0, - 128, - 130, - 19, - 97, - 121, - 29, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 9, - 96, - 36, - 130, - 1, - 82, - 104, - 21, - 83, - 145, - 17, - 81, - 146, - 83, - 145, - 81, - 96, - 186, - 27, - 96, - 68, - 130, - 1, - 82, - 96, - 100, - 1, - 97, - 25, - 118, - 86, - 91, - 96, - 0, - 96, - 96, - 97, - 121, - 42, - 132, - 97, - 126, - 201, - 86, - 91, - 3, - 96, - 159, - 129, - 129, - 3, - 148, - 144, - 148, - 27, - 144, - 147, - 28, - 108, - 70, - 87, - 114, - 178, - 187, - 187, - 95, - 130, - 75, - 21, - 32, - 122, - 48, - 129, - 1, - 129, - 2, - 96, - 96, - 144, - 129, - 29, - 109, - 3, - 136, - 234, - 162, - 116, - 18, - 213, - 172, - 160, - 38, - 129, - 93, - 99, - 110, - 1, - 130, - 2, - 129, - 29, - 109, - 13, - 249, - 154, - 197, - 2, - 3, - 27, - 249, - 83, - 239, - 244, - 114, - 253, - 204, - 1, - 130, - 2, - 129, - 29, - 109, - 19, - 205, - 255, - 178, - 157, - 81, - 217, - 147, - 34, - 189, - 255, - 95, - 34, - 17, - 1, - 130, - 2, - 129, - 29, - 109, - 10, - 15, - 116, - 32, - 35, - 222, - 247, - 131, - 163, - 7, - 169, - 134, - 145, - 46, - 1, - 130, - 2, - 129, - 29, - 109, - 1, - 146, - 13, - 128, - 67, - 202, - 137, - 181, - 35, - 146, - 83, - 40, - 78, - 66, - 1, - 130, - 2, - 129, - 29, - 108, - 11, - 122, - 134, - 215, - 55, - 84, - 104, - 250, - 198, - 103, - 160, - 165, - 39, - 1, - 108, - 41, - 80, - 142, - 69, - 133, - 67, - 216, - 170, - 77, - 242, - 171, - 238, - 120, - 131, - 1, - 131, - 2, - 130, - 29, - 109, - 1, - 57, - 96, - 26, - 46, - 250, - 190, - 113, - 126, - 96, - 76, - 187, - 72, - 148, - 1, - 131, - 2, - 130, - 29, - 109, - 2, - 36, - 127, - 122, - 123, - 101, - 148, - 50, - 6, - 73, - 170, - 3, - 171, - 161, - 1, - 131, - 2, - 130, - 29, - 108, - 140, - 63, - 56, - 233, - 90, - 107, - 31, - 242, - 171, - 28, - 59, - 52, - 54, - 25, - 1, - 131, - 2, - 130, - 29, - 109, - 2, - 56, - 71, - 115, - 189, - 241, - 172, - 86, - 118, - 250, - 204, - 237, - 96, - 144, - 25, - 1, - 131, - 2, - 144, - 145, - 29, - 108, - 185, - 160, - 37, - 216, - 20, - 178, - 156, - 33, - 43, - 139, - 26, - 7, - 205, - 25, - 1, - 144, - 145, - 2, - 120, - 10, - 9, - 80, - 112, - 132, - 204, - 105, - 155, - 176, - 231, - 30, - 168, - 105, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 25, - 1, - 5, - 113, - 19, - 64, - 218, - 160, - 213, - 247, - 105, - 219, - 161, - 145, - 92, - 239, - 89, - 240, - 129, - 90, - 85, - 6, - 2, - 125, - 2, - 103, - 163, - 108, - 12, - 149, - 179, - 151, - 90, - 179, - 238, - 91, - 32, - 58, - 118, - 20, - 163, - 247, - 83, - 115, - 240, - 71, - 216, - 3, - 174, - 123, - 102, - 135, - 242, - 179, - 147, - 144, - 147, - 2, - 146, - 144, - 146, - 1, - 125, - 87, - 17, - 94, - 71, - 1, - 140, - 113, - 119, - 238, - 191, - 124, - 211, - 112, - 163, - 53, - 106, - 27, - 120, - 99, - 0, - 138, - 90, - 232, - 2, - 140, - 114, - 184, - 134, - 66, - 132, - 1, - 96, - 174, - 29, - 146, - 145, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 103, - 19, - 160, - 75, - 189, - 253, - 201, - 190, - 136, - 97, - 122, - 217, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 133, - 97, - 138, - 153, - 86, - 91, - 97, - 122, - 227, - 145, - 144, - 97, - 139, - 52, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 122, - 240, - 130, - 97, - 139, - 140, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 122, - 253, - 130, - 97, - 127, - 103, - 86, - 91, - 144, - 80, - 103, - 27, - 193, - 109, - 103, - 78, - 200, - 0, - 0, - 97, - 123, - 26, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 131, - 97, - 138, - 153, - 86, - 91, - 97, - 29, - 139, - 145, - 144, - 97, - 139, - 52, - 86, - 91, - 96, - 0, - 97, - 17, - 147, - 131, - 131, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 97, - 129, - 75, - 86, - 91, - 96, - 0, - 128, - 130, - 18, - 128, - 97, - 123, - 80, - 87, - 80, - 103, - 27, - 193, - 109, - 103, - 78, - 200, - 0, - 0, - 130, - 19, - 91, - 21, - 97, - 123, - 110, - 87, - 96, - 64, - 81, - 99, - 45, - 4, - 131, - 197, - 96, - 226, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 129, - 96, - 0, - 3, - 97, - 123, - 143, - 87, - 96, - 64, - 81, - 99, - 7, - 160, - 33, - 39, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 129, - 103, - 27, - 193, - 109, - 103, - 78, - 200, - 0, - 0, - 3, - 97, - 123, - 183, - 87, - 96, - 64, - 81, - 99, - 34, - 237, - 89, - 133, - 96, - 226, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 128, - 21, - 97, - 123, - 194, - 87, - 145, - 144, - 80, - 86, - 91, - 96, - 0, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 131, - 18, - 97, - 123, - 234, - 87, - 97, - 123, - 229, - 131, - 103, - 27, - 193, - 109, - 103, - 78, - 200, - 0, - 0, - 97, - 136, - 165, - 86, - 91, - 97, - 123, - 236, - 86, - 91, - 130, - 91, - 144, - 80, - 96, - 0, - 97, - 124, - 2, - 130, - 103, - 27, - 193, - 109, - 103, - 78, - 200, - 0, - 0, - 97, - 125, - 178, - 86, - 91, - 144, - 80, - 128, - 96, - 0, - 3, - 97, - 124, - 37, - 87, - 96, - 64, - 81, - 99, - 7, - 160, - 33, - 39, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 0, - 97, - 124, - 48, - 130, - 97, - 120, - 224, - 86, - 91, - 144, - 80, - 96, - 0, - 99, - 59, - 154, - 202, - 0, - 97, - 124, - 91, - 97, - 124, - 86, - 97, - 124, - 80, - 103, - 27, - 193, - 109, - 103, - 78, - 200, - 0, - 0, - 97, - 139, - 140, - 86, - 91, - 133, - 97, - 123, - 36, - 86, - 91, - 97, - 105, - 241, - 86, - 91, - 97, - 124, - 101, - 145, - 144, - 97, - 138, - 153, - 86, - 91, - 144, - 80, - 96, - 0, - 128, - 97, - 124, - 124, - 131, - 103, - 3, - 193, - 102, - 92, - 122, - 171, - 32, - 0, - 97, - 123, - 36, - 86, - 91, - 97, - 124, - 142, - 144, - 103, - 32, - 5, - 254, - 79, - 38, - 142, - 160, - 0, - 97, - 140, - 46, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 124, - 185, - 132, - 97, - 124, - 167, - 134, - 102, - 159, - 50, - 117, - 36, - 98, - 160, - 0, - 97, - 123, - 36, - 86, - 91, - 97, - 104, - 185, - 144, - 103, - 13, - 197, - 82, - 127, - 100, - 44, - 32, - 0, - 97, - 140, - 46, - 86, - 91, - 97, - 124, - 203, - 144, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 97, - 140, - 46, - 86, - 91, - 144, - 80, - 97, - 124, - 239, - 103, - 9, - 208, - 40, - 204, - 111, - 32, - 95, - 255, - 25, - 133, - 97, - 124, - 229, - 133, - 133, - 97, - 125, - 178, - 86, - 91, - 97, - 104, - 185, - 145, - 144, - 97, - 136, - 165, - 86, - 91, - 146, - 80, - 80, - 80, - 96, - 0, - 91, - 96, - 2, - 129, - 16, - 21, - 97, - 125, - 138, - 87, - 96, - 0, - 134, - 97, - 125, - 11, - 132, - 97, - 127, - 103, - 86, - 91, - 97, - 125, - 21, - 145, - 144, - 97, - 136, - 165, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 125, - 35, - 132, - 133, - 97, - 123, - 36, - 86, - 91, - 97, - 125, - 44, - 144, - 97, - 139, - 140, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 125, - 57, - 130, - 97, - 106, - 149, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 125, - 71, - 134, - 133, - 97, - 123, - 36, - 86, - 91, - 97, - 125, - 89, - 103, - 15, - 168, - 206, - 223, - 194, - 173, - 221, - 250, - 132, - 97, - 123, - 36, - 86, - 91, - 97, - 125, - 99, - 145, - 144, - 97, - 136, - 165, - 86, - 91, - 144, - 80, - 97, - 125, - 111, - 132, - 130, - 97, - 125, - 178, - 86, - 91, - 97, - 125, - 121, - 144, - 135, - 97, - 140, - 46, - 86, - 91, - 149, - 80, - 132, - 96, - 1, - 1, - 148, - 80, - 80, - 80, - 80, - 80, - 97, - 124, - 246, - 86, - 91, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 136, - 18, - 97, - 125, - 167, - 87, - 97, - 125, - 162, - 130, - 97, - 139, - 140, - 86, - 91, - 97, - 74, - 21, - 86, - 91, - 80, - 150, - 149, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 97, - 17, - 147, - 131, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 132, - 97, - 129, - 75, - 86, - 91, - 130, - 84, - 99, - 255, - 255, - 255, - 255, - 131, - 22, - 96, - 1, - 96, - 128, - 27, - 2, - 99, - 255, - 255, - 255, - 255, - 96, - 128, - 27, - 25, - 130, - 22, - 129, - 23, - 133, - 85, - 97, - 125, - 253, - 145, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 145, - 130, - 22, - 145, - 22, - 23, - 130, - 97, - 129, - 106, - 86, - 91, - 131, - 84, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 25, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 145, - 144, - 145, - 22, - 23, - 144, - 146, - 85, - 80, - 80, - 86, - 91, - 96, - 1, - 130, - 1, - 84, - 97, - 126, - 53, - 144, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 130, - 97, - 129, - 106, - 86, - 91, - 96, - 1, - 146, - 144, - 146, - 1, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 25, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 144, - 147, - 22, - 146, - 144, - 146, - 23, - 144, - 145, - 85, - 80, - 86, - 91, - 97, - 126, - 101, - 129, - 97, - 105, - 65, - 86, - 91, - 130, - 96, - 1, - 1, - 96, - 16, - 97, - 1, - 0, - 10, - 129, - 84, - 129, - 99, - 255, - 255, - 255, - 255, - 2, - 25, - 22, - 144, - 131, - 99, - 255, - 255, - 255, - 255, - 22, - 2, - 23, - 144, - 85, - 80, - 80, - 80, - 86, - 91, - 97, - 126, - 149, - 131, - 131, - 97, - 76, - 48, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 130, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 1, - 132, - 1, - 96, - 32, - 82, - 96, - 64, - 129, - 32, - 128, - 84, - 131, - 146, - 144, - 97, - 126, - 191, - 144, - 132, - 144, - 97, - 137, - 47, - 86, - 91, - 144, - 145, - 85, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 130, - 17, - 97, - 127, - 6, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 9, - 96, - 36, - 130, - 1, - 82, - 104, - 21, - 83, - 145, - 17, - 81, - 146, - 83, - 145, - 81, - 96, - 186, - 27, - 96, - 68, - 130, - 1, - 82, - 96, - 100, - 1, - 97, - 25, - 118, - 86, - 91, - 80, - 96, - 1, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 130, - 17, - 96, - 7, - 27, - 130, - 129, - 28, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 16, - 96, - 6, - 27, - 23, - 130, - 129, - 28, - 99, - 255, - 255, - 255, - 255, - 16, - 96, - 5, - 27, - 23, - 130, - 129, - 28, - 97, - 255, - 255, - 16, - 96, - 4, - 27, - 23, - 130, - 129, - 28, - 96, - 255, - 16, - 96, - 3, - 144, - 129, - 27, - 144, - 145, - 23, - 131, - 129, - 28, - 96, - 15, - 16, - 96, - 2, - 27, - 23, - 131, - 129, - 28, - 144, - 145, - 16, - 130, - 27, - 23, - 145, - 130, - 28, - 17, - 23, - 144, - 86, - 91, - 96, - 0, - 129, - 96, - 0, - 3, - 97, - 127, - 128, - 87, - 80, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 145, - 144, - 80, - 86, - 91, - 103, - 86, - 152, - 238, - 240, - 102, - 112, - 0, - 0, - 130, - 18, - 97, - 127, - 151, - 87, - 80, - 96, - 0, - 145, - 144, - 80, - 86, - 91, - 97, - 127, - 168, - 103, - 86, - 152, - 238, - 240, - 102, - 112, - 0, - 0, - 97, - 139, - 140, - 86, - 91, - 130, - 19, - 97, - 127, - 189, - 87, - 80, - 103, - 27, - 193, - 109, - 103, - 78, - 200, - 0, - 0, - 145, - 144, - 80, - 86, - 91, - 96, - 0, - 97, - 127, - 200, - 131, - 97, - 129, - 181, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 128, - 1, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 97, - 127, - 234, - 132, - 103, - 27, - 193, - 109, - 103, - 78, - 200, - 0, - 0, - 97, - 104, - 223, - 86, - 91, - 97, - 127, - 252, - 144, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 97, - 140, - 46, - 86, - 91, - 97, - 125, - 178, - 86, - 91, - 144, - 80, - 96, - 0, - 128, - 130, - 97, - 128, - 93, - 129, - 97, - 128, - 74, - 129, - 97, - 128, - 56, - 129, - 97, - 128, - 37, - 129, - 103, - 2, - 95, - 15, - 225, - 5, - 163, - 20, - 0, - 97, - 123, - 36, - 86, - 91, - 97, - 104, - 185, - 144, - 103, - 11, - 104, - 223, - 24, - 228, - 113, - 251, - 255, - 25, - 97, - 140, - 46, - 86, - 91, - 97, - 104, - 185, - 144, - 103, - 20, - 168, - 69, - 76, - 25, - 225, - 172, - 0, - 97, - 140, - 46, - 86, - 91, - 97, - 104, - 185, - 144, - 103, - 15, - 193, - 14, - 1, - 87, - 130, - 119, - 255, - 25, - 97, - 140, - 46, - 86, - 91, - 97, - 128, - 111, - 144, - 103, - 3, - 222, - 189, - 8, - 59, - 140, - 124, - 0, - 97, - 140, - 46, - 86, - 91, - 145, - 80, - 131, - 144, - 80, - 97, - 128, - 215, - 129, - 97, - 128, - 197, - 129, - 97, - 128, - 179, - 129, - 97, - 128, - 161, - 129, - 97, - 128, - 142, - 129, - 139, - 97, - 123, - 36, - 86, - 91, - 97, - 104, - 185, - 144, - 103, - 2, - 149, - 212, - 0, - 234, - 50, - 87, - 255, - 25, - 97, - 140, - 46, - 86, - 91, - 97, - 104, - 185, - 144, - 103, - 1, - 87, - 216, - 178, - 236, - 199, - 8, - 0, - 97, - 140, - 46, - 86, - 91, - 97, - 104, - 185, - 144, - 103, - 5, - 49, - 10, - 167, - 213, - 33, - 48, - 0, - 97, - 140, - 46, - 86, - 91, - 97, - 104, - 185, - 144, - 103, - 13, - 224, - 204, - 61, - 21, - 97, - 0, - 0, - 97, - 140, - 46, - 86, - 91, - 145, - 80, - 129, - 103, - 17, - 144, - 0, - 171, - 16, - 15, - 252, - 0, - 97, - 128, - 237, - 135, - 136, - 97, - 123, - 36, - 86, - 91, - 97, - 128, - 249, - 144, - 96, - 0, - 25, - 97, - 138, - 153, - 86, - 91, - 97, - 129, - 3, - 145, - 144, - 97, - 136, - 165, - 86, - 91, - 97, - 129, - 13, - 145, - 144, - 97, - 140, - 46, - 86, - 91, - 146, - 80, - 80, - 96, - 0, - 97, - 129, - 27, - 131, - 97, - 106, - 149, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 129, - 41, - 133, - 131, - 97, - 123, - 36, - 86, - 91, - 144, - 80, - 96, - 0, - 136, - 18, - 97, - 129, - 57, - 87, - 128, - 97, - 74, - 21, - 86, - 91, - 97, - 74, - 21, - 129, - 103, - 27, - 193, - 109, - 103, - 78, - 200, - 0, - 0, - 97, - 136, - 165, - 86, - 91, - 130, - 130, - 2, - 129, - 21, - 21, - 132, - 21, - 133, - 131, - 5, - 133, - 20, - 23, - 22, - 97, - 129, - 99, - 87, - 96, - 0, - 128, - 253, - 91, - 5, - 146, - 145, - 80, - 80, - 86, - 91, - 96, - 64, - 128, - 81, - 96, - 4, - 129, - 82, - 96, - 36, - 129, - 1, - 144, - 145, - 82, - 96, - 32, - 129, - 1, - 128, - 81, - 96, - 1, - 96, - 1, - 96, - 224, - 27, - 3, - 22, - 99, - 31, - 255, - 150, - 129, - 96, - 224, - 27, - 23, - 144, - 82, - 130, - 130, - 1, - 144, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 130, - 17, - 21, - 97, - 129, - 174, - 87, - 128, - 81, - 129, - 96, - 32, - 1, - 253, - 91, - 80, - 146, - 145, - 80, - 80, - 86, - 91, - 96, - 0, - 96, - 1, - 96, - 255, - 27, - 130, - 3, - 97, - 129, - 219, - 87, - 96, - 64, - 81, - 99, - 77, - 45, - 117, - 177, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 0, - 130, - 18, - 21, - 97, - 74, - 73, - 87, - 80, - 25, - 96, - 1, - 1, - 144, - 86, - 91, - 145, - 144, - 80, - 86, - 91, - 80, - 128, - 84, - 96, - 0, - 130, - 85, - 96, - 3, - 2, - 144, - 96, - 0, - 82, - 96, - 32, - 96, - 0, - 32, - 144, - 129, - 1, - 144, - 97, - 25, - 233, - 145, - 144, - 97, - 130, - 124, - 86, - 91, - 80, - 128, - 84, - 96, - 0, - 130, - 85, - 144, - 96, - 0, - 82, - 96, - 32, - 96, - 0, - 32, - 144, - 129, - 1, - 144, - 97, - 25, - 233, - 145, - 144, - 97, - 130, - 169, - 86, - 91, - 96, - 64, - 81, - 128, - 97, - 1, - 32, - 1, - 96, - 64, - 82, - 128, - 96, - 0, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 129, - 82, - 80, - 144, - 86, - 91, - 91, - 128, - 130, - 17, - 21, - 97, - 74, - 73, - 87, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 25, - 22, - 129, - 85, - 96, - 0, - 96, - 1, - 130, - 1, - 129, - 144, - 85, - 96, - 2, - 130, - 1, - 85, - 96, - 3, - 1, - 97, - 130, - 125, - 86, - 91, - 91, - 128, - 130, - 17, - 21, - 97, - 74, - 73, - 87, - 96, - 0, - 129, - 85, - 96, - 1, - 1, - 97, - 130, - 170, - 86, - 91, - 128, - 53, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 129, - 22, - 129, - 20, - 97, - 129, - 236, - 87, - 96, - 0, - 128, - 253, - 91, - 96, - 0, - 96, - 32, - 130, - 132, - 3, - 18, - 21, - 97, - 130, - 231, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 17, - 147, - 130, - 97, - 130, - 190, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 129, - 22, - 129, - 20, - 97, - 25, - 233, - 87, - 96, - 0, - 128, - 253, - 91, - 96, - 0, - 128, - 96, - 0, - 96, - 96, - 132, - 134, - 3, - 18, - 21, - 97, - 131, - 26, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 131, - 35, - 132, - 97, - 130, - 190, - 86, - 91, - 146, - 80, - 96, - 32, - 132, - 1, - 53, - 97, - 131, - 51, - 129, - 97, - 130, - 240, - 86, - 91, - 146, - 149, - 146, - 148, - 80, - 80, - 80, - 96, - 64, - 145, - 144, - 145, - 1, - 53, - 144, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 128, - 96, - 0, - 96, - 160, - 134, - 136, - 3, - 18, - 21, - 97, - 131, - 92, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 131, - 101, - 134, - 97, - 130, - 190, - 86, - 91, - 151, - 96, - 32, - 135, - 1, - 53, - 151, - 80, - 96, - 64, - 135, - 1, - 53, - 150, - 96, - 96, - 129, - 1, - 53, - 150, - 80, - 96, - 128, - 1, - 53, - 148, - 80, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 64, - 131, - 133, - 3, - 18, - 21, - 97, - 131, - 153, - 87, - 96, - 0, - 128, - 253, - 91, - 130, - 53, - 97, - 131, - 164, - 129, - 97, - 130, - 240, - 86, - 91, - 145, - 80, - 96, - 32, - 131, - 1, - 53, - 97, - 131, - 180, - 129, - 97, - 130, - 240, - 86, - 91, - 128, - 145, - 80, - 80, - 146, - 80, - 146, - 144, - 80, - 86, - 91, - 96, - 0, - 96, - 32, - 130, - 132, - 3, - 18, - 21, - 97, - 131, - 209, - 87, - 96, - 0, - 128, - 253, - 91, - 129, - 53, - 97, - 17, - 147, - 129, - 97, - 130, - 240, - 86, - 91, - 96, - 0, - 96, - 32, - 130, - 132, - 3, - 18, - 21, - 97, - 131, - 238, - 87, - 96, - 0, - 128, - 253, - 91, - 129, - 53, - 98, - 255, - 255, - 255, - 129, - 22, - 129, - 20, - 97, - 17, - 147, - 87, - 96, - 0, - 128, - 253, - 91, - 96, - 0, - 96, - 32, - 130, - 132, - 3, - 18, - 21, - 97, - 132, - 19, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 53, - 145, - 144, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 64, - 131, - 133, - 3, - 18, - 21, - 97, - 132, - 45, - 87, - 96, - 0, - 128, - 253, - 91, - 130, - 53, - 97, - 132, - 56, - 129, - 97, - 130, - 240, - 86, - 91, - 148, - 96, - 32, - 147, - 144, - 147, - 1, - 53, - 147, - 80, - 80, - 80, - 86, - 91, - 128, - 53, - 128, - 21, - 21, - 129, - 20, - 97, - 129, - 236, - 87, - 96, - 0, - 128, - 253, - 91, - 96, - 0, - 128, - 96, - 0, - 96, - 96, - 132, - 134, - 3, - 18, - 21, - 97, - 132, - 107, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 132, - 116, - 132, - 97, - 130, - 190, - 86, - 91, - 146, - 80, - 97, - 132, - 130, - 96, - 32, - 133, - 1, - 97, - 132, - 70, - 86, - 91, - 145, - 80, - 96, - 64, - 132, - 1, - 53, - 144, - 80, - 146, - 80, - 146, - 80, - 146, - 86, - 91, - 96, - 0, - 128, - 96, - 64, - 131, - 133, - 3, - 18, - 21, - 97, - 132, - 165, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 132, - 174, - 131, - 97, - 130, - 190, - 86, - 91, - 145, - 80, - 96, - 32, - 131, - 1, - 53, - 128, - 96, - 15, - 11, - 129, - 20, - 97, - 131, - 180, - 87, - 96, - 0, - 128, - 253, - 91, - 96, - 0, - 97, - 2, - 128, - 130, - 1, - 144, - 80, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 128, - 141, - 22, - 131, - 82, - 128, - 140, - 22, - 96, - 32, - 132, - 1, - 82, - 128, - 139, - 22, - 96, - 64, - 132, - 1, - 82, - 99, - 255, - 255, - 255, - 255, - 138, - 22, - 96, - 96, - 132, - 1, - 82, - 96, - 1, - 128, - 96, - 160, - 27, - 3, - 137, - 22, - 96, - 128, - 132, - 1, - 82, - 135, - 96, - 160, - 132, - 1, - 82, - 134, - 96, - 192, - 132, - 1, - 82, - 133, - 96, - 224, - 132, - 1, - 82, - 128, - 133, - 81, - 22, - 97, - 1, - 0, - 132, - 1, - 82, - 80, - 96, - 32, - 132, - 1, - 81, - 97, - 255, - 255, - 128, - 130, - 22, - 97, - 1, - 32, - 133, - 1, - 82, - 128, - 96, - 64, - 135, - 1, - 81, - 22, - 97, - 1, - 64, - 133, - 1, - 82, - 80, - 80, - 96, - 96, - 132, - 1, - 81, - 97, - 133, - 87, - 97, - 1, - 96, - 132, - 1, - 130, - 97, - 255, - 255, - 22, - 144, - 82, - 86, - 91, - 80, - 96, - 128, - 132, - 1, - 81, - 97, - 255, - 255, - 144, - 129, - 22, - 97, - 1, - 128, - 132, - 1, - 82, - 96, - 160, - 133, - 1, - 81, - 22, - 97, - 1, - 160, - 131, - 1, - 82, - 96, - 192, - 132, - 1, - 81, - 99, - 255, - 255, - 255, - 255, - 22, - 97, - 1, - 192, - 131, - 1, - 82, - 96, - 224, - 144, - 147, - 1, - 81, - 21, - 21, - 97, - 1, - 224, - 130, - 1, - 82, - 129, - 81, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 144, - 129, - 22, - 97, - 2, - 0, - 131, - 1, - 82, - 96, - 32, - 131, - 1, - 81, - 96, - 255, - 144, - 129, - 22, - 97, - 2, - 32, - 132, - 1, - 82, - 96, - 64, - 132, - 1, - 81, - 144, - 145, - 22, - 97, - 2, - 64, - 131, - 1, - 82, - 96, - 96, - 144, - 146, - 1, - 81, - 144, - 145, - 22, - 97, - 2, - 96, - 144, - 145, - 1, - 82, - 152, - 151, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 128, - 96, - 128, - 133, - 135, - 3, - 18, - 21, - 97, - 133, - 247, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 134, - 0, - 133, - 97, - 130, - 190, - 86, - 91, - 147, - 80, - 97, - 134, - 14, - 96, - 32, - 134, - 1, - 97, - 132, - 70, - 86, - 91, - 147, - 150, - 147, - 149, - 80, - 80, - 80, - 80, - 96, - 64, - 130, - 1, - 53, - 145, - 96, - 96, - 1, - 53, - 144, - 86, - 91, - 96, - 0, - 128, - 96, - 32, - 131, - 133, - 3, - 18, - 21, - 97, - 134, - 54, - 87, - 96, - 0, - 128, - 253, - 91, - 130, - 53, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 128, - 130, - 17, - 21, - 97, - 134, - 77, - 87, - 96, - 0, - 128, - 253, - 91, - 129, - 133, - 1, - 145, - 80, - 133, - 96, - 31, - 131, - 1, - 18, - 97, - 134, - 97, - 87, - 96, - 0, - 128, - 253, - 91, - 129, - 53, - 129, - 129, - 17, - 21, - 97, - 134, - 112, - 87, - 96, - 0, - 128, - 253, - 91, - 134, - 96, - 32, - 130, - 133, - 1, - 1, - 17, - 21, - 97, - 134, - 130, - 87, - 96, - 0, - 128, - 253, - 91, - 96, - 32, - 146, - 144, - 146, - 1, - 150, - 145, - 149, - 80, - 144, - 147, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 96, - 96, - 132, - 134, - 3, - 18, - 21, - 97, - 134, - 169, - 87, - 96, - 0, - 128, - 253, - 91, - 131, - 53, - 97, - 134, - 180, - 129, - 97, - 130, - 240, - 86, - 91, - 146, - 80, - 96, - 32, - 132, - 1, - 53, - 145, - 80, - 96, - 64, - 132, - 1, - 53, - 97, - 134, - 203, - 129, - 97, - 130, - 240, - 86, - 91, - 128, - 145, - 80, - 80, - 146, - 80, - 146, - 80, - 146, - 86, - 91, - 128, - 53, - 97, - 255, - 255, - 129, - 22, - 129, - 20, - 97, - 129, - 236, - 87, - 96, - 0, - 128, - 253, - 91, - 96, - 0, - 128, - 96, - 0, - 128, - 96, - 128, - 133, - 135, - 3, - 18, - 21, - 97, - 134, - 254, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 135, - 7, - 133, - 97, - 130, - 190, - 86, - 91, - 147, - 80, - 97, - 135, - 21, - 96, - 32, - 134, - 1, - 97, - 134, - 214, - 86, - 91, - 146, - 80, - 97, - 135, - 35, - 96, - 64, - 134, - 1, - 97, - 134, - 214, - 86, - 91, - 145, - 80, - 97, - 135, - 49, - 96, - 96, - 134, - 1, - 97, - 134, - 214, - 86, - 91, - 144, - 80, - 146, - 149, - 145, - 148, - 80, - 146, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 64, - 131, - 133, - 3, - 18, - 21, - 97, - 135, - 79, - 87, - 96, - 0, - 128, - 253, - 91, - 130, - 53, - 97, - 135, - 90, - 129, - 97, - 130, - 240, - 86, - 91, - 145, - 80, - 97, - 135, - 104, - 96, - 32, - 132, - 1, - 97, - 130, - 190, - 86, - 91, - 144, - 80, - 146, - 80, - 146, - 144, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 64, - 131, - 133, - 3, - 18, - 21, - 97, - 135, - 132, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 132, - 56, - 131, - 97, - 130, - 190, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 96, - 96, - 132, - 134, - 3, - 18, - 21, - 97, - 135, - 162, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 135, - 171, - 132, - 97, - 130, - 190, - 86, - 91, - 149, - 96, - 32, - 133, - 1, - 53, - 149, - 80, - 96, - 64, - 144, - 148, - 1, - 53, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 91, - 131, - 129, - 16, - 21, - 97, - 135, - 219, - 87, - 129, - 129, - 1, - 81, - 131, - 130, - 1, - 82, - 96, - 32, - 1, - 97, - 135, - 195, - 86, - 91, - 131, - 129, - 17, - 21, - 97, - 40, - 3, - 87, - 80, - 80, - 96, - 0, - 145, - 1, - 82, - 86, - 91, - 96, - 32, - 129, - 82, - 96, - 0, - 130, - 81, - 128, - 96, - 32, - 132, - 1, - 82, - 97, - 136, - 11, - 129, - 96, - 64, - 133, - 1, - 96, - 32, - 135, - 1, - 97, - 135, - 192, - 86, - 91, - 96, - 31, - 1, - 96, - 31, - 25, - 22, - 145, - 144, - 145, - 1, - 96, - 64, - 1, - 146, - 145, - 80, - 80, - 86, - 91, - 96, - 0, - 96, - 32, - 130, - 132, - 3, - 18, - 21, - 97, - 136, - 49, - 87, - 96, - 0, - 128, - 253, - 91, - 129, - 81, - 97, - 17, - 147, - 129, - 97, - 130, - 240, - 86, - 91, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 17, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 96, - 0, - 130, - 130, - 16, - 21, - 97, - 136, - 100, - 87, - 97, - 136, - 100, - 97, - 136, - 60, - 86, - 91, - 80, - 3, - 144, - 86, - 91, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 50, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 96, - 0, - 129, - 96, - 15, - 11, - 96, - 1, - 96, - 1, - 96, - 127, - 27, - 3, - 25, - 129, - 3, - 97, - 136, - 156, - 87, - 97, - 136, - 156, - 97, - 136, - 60, - 86, - 91, - 96, - 0, - 3, - 146, - 145, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 131, - 18, - 128, - 21, - 96, - 1, - 96, - 255, - 27, - 133, - 1, - 132, - 18, - 22, - 21, - 97, - 136, - 195, - 87, - 97, - 136, - 195, - 97, - 136, - 60, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 255, - 27, - 3, - 132, - 1, - 131, - 19, - 129, - 22, - 21, - 97, - 136, - 222, - 87, - 97, - 136, - 222, - 97, - 136, - 60, - 86, - 91, - 80, - 80, - 3, - 144, - 86, - 91, - 96, - 0, - 130, - 81, - 97, - 136, - 246, - 129, - 132, - 96, - 32, - 135, - 1, - 97, - 135, - 192, - 86, - 91, - 145, - 144, - 145, - 1, - 146, - 145, - 80, - 80, - 86, - 91, - 96, - 0, - 96, - 32, - 130, - 132, - 3, - 18, - 21, - 97, - 137, - 18, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 81, - 145, - 144, - 80, - 86, - 91, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 49, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 96, - 0, - 130, - 25, - 130, - 17, - 21, - 97, - 137, - 66, - 87, - 97, - 137, - 66, - 97, - 136, - 60, - 86, - 91, - 80, - 1, - 144, - 86, - 91, - 96, - 0, - 129, - 96, - 0, - 25, - 4, - 131, - 17, - 130, - 21, - 21, - 22, - 21, - 97, - 137, - 97, - 87, - 97, - 137, - 97, - 97, - 136, - 60, - 86, - 91, - 80, - 2, - 144, - 86, - 91, - 96, - 0, - 128, - 133, - 133, - 17, - 21, - 97, - 137, - 118, - 87, - 96, - 0, - 128, - 253, - 91, - 131, - 134, - 17, - 21, - 97, - 137, - 131, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 80, - 130, - 1, - 147, - 145, - 144, - 146, - 3, - 145, - 80, - 86, - 91, - 96, - 0, - 96, - 1, - 130, - 1, - 97, - 137, - 162, - 87, - 97, - 137, - 162, - 97, - 136, - 60, - 86, - 91, - 80, - 96, - 1, - 1, - 144, - 86, - 91, - 96, - 1, - 129, - 129, - 91, - 128, - 133, - 17, - 21, - 97, - 137, - 228, - 87, - 129, - 96, - 0, - 25, - 4, - 130, - 17, - 21, - 97, - 137, - 202, - 87, - 97, - 137, - 202, - 97, - 136, - 60, - 86, - 91, - 128, - 133, - 22, - 21, - 97, - 137, - 215, - 87, - 145, - 129, - 2, - 145, - 91, - 147, - 132, - 28, - 147, - 144, - 128, - 2, - 144, - 97, - 137, - 174, - 86, - 91, - 80, - 146, - 80, - 146, - 144, - 80, - 86, - 91, - 96, - 0, - 130, - 97, - 137, - 251, - 87, - 80, - 96, - 1, - 97, - 24, - 76, - 86, - 91, - 129, - 97, - 138, - 8, - 87, - 80, - 96, - 0, - 97, - 24, - 76, - 86, - 91, - 129, - 96, - 1, - 129, - 20, - 97, - 138, - 30, - 87, - 96, - 2, - 129, - 20, - 97, - 138, - 40, - 87, - 97, - 138, - 68, - 86, - 91, - 96, - 1, - 145, - 80, - 80, - 97, - 24, - 76, - 86, - 91, - 96, - 255, - 132, - 17, - 21, - 97, - 138, - 57, - 87, - 97, - 138, - 57, - 97, - 136, - 60, - 86, - 91, - 80, - 80, - 96, - 1, - 130, - 27, - 97, - 24, - 76, - 86, - 91, - 80, - 96, - 32, - 131, - 16, - 97, - 1, - 51, - 131, - 16, - 22, - 96, - 78, - 132, - 16, - 96, - 11, - 132, - 16, - 22, - 23, - 21, - 97, - 138, - 103, - 87, - 80, - 129, - 129, - 10, - 97, - 24, - 76, - 86, - 91, - 97, - 138, - 113, - 131, - 131, - 97, - 137, - 169, - 86, - 91, - 128, - 96, - 0, - 25, - 4, - 130, - 17, - 21, - 97, - 138, - 133, - 87, - 97, - 138, - 133, - 97, - 136, - 60, - 86, - 91, - 2, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 97, - 17, - 147, - 131, - 131, - 97, - 137, - 236, - 86, - 91, - 96, - 0, - 96, - 1, - 96, - 1, - 96, - 255, - 27, - 3, - 129, - 132, - 19, - 130, - 132, - 19, - 128, - 130, - 22, - 134, - 132, - 4, - 134, - 17, - 22, - 21, - 97, - 138, - 191, - 87, - 97, - 138, - 191, - 97, - 136, - 60, - 86, - 91, - 96, - 1, - 96, - 255, - 27, - 96, - 0, - 135, - 18, - 130, - 129, - 22, - 135, - 131, - 5, - 137, - 18, - 22, - 21, - 97, - 138, - 222, - 87, - 97, - 138, - 222, - 97, - 136, - 60, - 86, - 91, - 96, - 0, - 135, - 18, - 146, - 80, - 135, - 130, - 5, - 135, - 18, - 132, - 132, - 22, - 22, - 21, - 97, - 138, - 250, - 87, - 97, - 138, - 250, - 97, - 136, - 60, - 86, - 91, - 135, - 133, - 5, - 135, - 18, - 129, - 132, - 22, - 22, - 21, - 97, - 139, - 16, - 87, - 97, - 139, - 16, - 97, - 136, - 60, - 86, - 91, - 80, - 80, - 80, - 146, - 144, - 147, - 2, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 18, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 96, - 0, - 130, - 97, - 139, - 67, - 87, - 97, - 139, - 67, - 97, - 139, - 30, - 86, - 91, - 96, - 1, - 96, - 255, - 27, - 130, - 20, - 96, - 0, - 25, - 132, - 20, - 22, - 21, - 97, - 139, - 93, - 87, - 97, - 139, - 93, - 97, - 136, - 60, - 86, - 91, - 80, - 5, - 144, - 86, - 91, - 96, - 0, - 130, - 97, - 139, - 113, - 87, - 97, - 139, - 113, - 97, - 139, - 30, - 86, - 91, - 80, - 4, - 144, - 86, - 91, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 1, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 96, - 0, - 96, - 1, - 96, - 255, - 27, - 130, - 1, - 97, - 139, - 161, - 87, - 97, - 139, - 161, - 97, - 136, - 60, - 86, - 91, - 80, - 96, - 0, - 3, - 144, - 86, - 91, - 96, - 0, - 99, - 255, - 255, - 255, - 255, - 128, - 131, - 22, - 129, - 129, - 3, - 97, - 139, - 193, - 87, - 97, - 139, - 193, - 97, - 136, - 60, - 86, - 91, - 96, - 1, - 1, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 96, - 32, - 130, - 132, - 3, - 18, - 21, - 97, - 139, - 221, - 87, - 96, - 0, - 128, - 253, - 91, - 129, - 81, - 96, - 255, - 129, - 22, - 129, - 20, - 97, - 17, - 147, - 87, - 96, - 0, - 128, - 253, - 91, - 96, - 0, - 98, - 255, - 255, - 255, - 128, - 131, - 22, - 129, - 129, - 3, - 97, - 139, - 193, - 87, - 97, - 139, - 193, - 97, - 136, - 60, - 86, - 91, - 96, - 0, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 131, - 129, - 22, - 144, - 131, - 22, - 129, - 129, - 16, - 21, - 97, - 140, - 38, - 87, - 97, - 140, - 38, - 97, - 136, - 60, - 86, - 91, - 3, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 130, - 18, - 128, - 21, - 96, - 1, - 96, - 1, - 96, - 255, - 27, - 3, - 132, - 144, - 3, - 133, - 19, - 22, - 21, - 97, - 140, - 80, - 87, - 97, - 140, - 80, - 97, - 136, - 60, - 86, - 91, - 96, - 1, - 96, - 255, - 27, - 131, - 144, - 3, - 132, - 18, - 129, - 22, - 21, - 97, - 140, - 105, - 87, - 97, - 140, - 105, - 97, - 136, - 60, - 86, - 91, - 80, - 80, - 1, - 144, - 86, - 91, - 96, - 0, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 128, - 131, - 22, - 129, - 133, - 22, - 128, - 131, - 3, - 130, - 17, - 21, - 97, - 140, - 145, - 87, - 97, - 140, - 145, - 97, - 136, - 60, - 86, - 91, - 1, - 148, - 147, - 80, - 80, - 80, - 80, - 86, - 254, - 162, - 100, - 105, - 112, - 102, - 115, - 88, - 34, - 18, - 32, - 55, - 246, - 181, - 87, - 228, - 8, - 186, - 50, - 254, - 35, - 142, - 129, - 142, - 206, - 229, - 25, - 107, - 37, - 36, - 90, - 94, - 79, - 57, - 21, - 155, - 133, - 164, - 58, - 236, - 205, - 96, - 168, - 100, - 115, - 111, - 108, - 99, - 67, - 0, - 8, - 13, - 0, - 51, - ]; - ///The bytecode of the contract. - pub static RMM01PORTFOLIO_BYTECODE: ::ethers::core::types::Bytes = - ::ethers::core::types::Bytes::from_static(__BYTECODE); - #[rustfmt::skip] - const __DEPLOYED_BYTECODE: &[u8] = &[ - 96, - 128, - 96, - 64, - 82, - 96, - 4, - 54, - 16, - 97, - 1, - 209, - 87, - 96, - 0, - 53, - 96, - 224, - 28, - 128, - 99, - 152, - 155, - 175, - 186, - 17, - 97, - 0, - 247, - 87, - 128, - 99, - 182, - 133, - 19, - 234, - 17, - 97, - 0, - 149, - 87, - 128, - 99, - 212, - 250, - 196, - 93, - 17, - 97, - 0, - 100, - 87, - 128, - 99, - 212, - 250, - 196, - 93, - 20, - 97, - 9, - 221, - 87, - 128, - 99, - 214, - 183, - 222, - 197, - 20, - 97, - 9, - 253, - 87, - 128, - 99, - 218, - 49, - 238, - 84, - 20, - 97, - 10, - 53, - 87, - 128, - 99, - 255, - 161, - 173, - 116, - 20, - 97, - 10, - 79, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 99, - 182, - 133, - 19, - 234, - 20, - 97, - 8, - 178, - 87, - 128, - 99, - 196, - 141, - 136, - 122, - 20, - 97, - 9, - 127, - 87, - 128, - 99, - 201, - 163, - 150, - 233, - 20, - 97, - 9, - 159, - 87, - 128, - 99, - 208, - 227, - 13, - 176, - 20, - 97, - 9, - 213, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 99, - 166, - 138, - 170, - 65, - 17, - 97, - 0, - 209, - 87, - 128, - 99, - 166, - 138, - 170, - 65, - 20, - 97, - 8, - 30, - 87, - 128, - 99, - 173, - 36, - 214, - 160, - 20, - 97, - 8, - 62, - 87, - 128, - 99, - 173, - 92, - 70, - 72, - 20, - 97, - 8, - 94, - 87, - 128, - 99, - 175, - 119, - 120, - 85, - 20, - 97, - 8, - 146, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 99, - 152, - 155, - 175, - 186, - 20, - 97, - 7, - 163, - 87, - 128, - 99, - 160, - 253, - 244, - 19, - 20, - 97, - 7, - 195, - 87, - 128, - 99, - 165, - 205, - 138, - 73, - 20, - 97, - 7, - 214, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 99, - 77, - 198, - 138, - 144, - 17, - 97, - 1, - 111, - 87, - 128, - 99, - 123, - 24, - 55, - 222, - 17, - 97, - 1, - 62, - 87, - 128, - 99, - 123, - 24, - 55, - 222, - 20, - 97, - 4, - 165, - 87, - 128, - 99, - 125, - 174, - 72, - 144, - 20, - 97, - 4, - 197, - 87, - 128, - 99, - 137, - 146, - 242, - 10, - 20, - 97, - 4, - 229, - 87, - 128, - 99, - 137, - 165, - 240, - 132, - 20, - 97, - 5, - 5, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 99, - 77, - 198, - 138, - 144, - 20, - 97, - 3, - 172, - 87, - 128, - 99, - 94, - 71, - 102, - 60, - 20, - 97, - 3, - 218, - 87, - 128, - 99, - 97, - 183, - 234, - 106, - 20, - 97, - 4, - 101, - 87, - 128, - 99, - 120, - 125, - 206, - 61, - 20, - 97, - 4, - 133, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 99, - 42, - 251, - 157, - 248, - 17, - 97, - 1, - 171, - 87, - 128, - 99, - 42, - 251, - 157, - 248, - 20, - 97, - 2, - 211, - 87, - 128, - 99, - 44, - 198, - 100, - 30, - 20, - 97, - 3, - 8, - 87, - 128, - 99, - 47, - 51, - 125, - 165, - 20, - 97, - 3, - 56, - 87, - 128, - 99, - 63, - 146, - 163, - 57, - 20, - 97, - 3, - 111, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 99, - 6, - 67, - 59, - 27, - 20, - 97, - 2, - 18, - 87, - 128, - 99, - 7, - 136, - 136, - 214, - 20, - 97, - 2, - 99, - 87, - 128, - 99, - 26, - 75, - 144, - 91, - 20, - 97, - 2, - 147, - 87, - 96, - 0, - 128, - 253, - 91, - 54, - 97, - 2, - 13, - 87, - 51, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 127, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22, - 20, - 97, - 2, - 11, - 87, - 96, - 0, - 128, - 253, - 91, - 0, - 91, - 96, - 0, - 128, - 253, - 91, - 52, - 128, - 21, - 97, - 2, - 30, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 2, - 70, - 127, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 129, - 86, - 91, - 96, - 64, - 81, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 144, - 145, - 22, - 129, - 82, - 96, - 32, - 1, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 243, - 91, - 52, - 128, - 21, - 97, - 2, - 111, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 96, - 5, - 84, - 97, - 2, - 127, - 144, - 98, - 255, - 255, - 255, - 22, - 129, - 86, - 91, - 96, - 64, - 81, - 98, - 255, - 255, - 255, - 144, - 145, - 22, - 129, - 82, - 96, - 32, - 1, - 97, - 2, - 90, - 86, - 91, - 52, - 128, - 21, - 97, - 2, - 159, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 2, - 179, - 97, - 2, - 174, - 54, - 96, - 4, - 97, - 130, - 213, - 86, - 91, - 97, - 10, - 113, - 86, - 91, - 96, - 64, - 128, - 81, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 147, - 132, - 22, - 129, - 82, - 146, - 144, - 145, - 22, - 96, - 32, - 131, - 1, - 82, - 1, - 97, - 2, - 90, - 86, - 91, - 52, - 128, - 21, - 97, - 2, - 223, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 2, - 243, - 97, - 2, - 238, - 54, - 96, - 4, - 97, - 130, - 213, - 86, - 91, - 97, - 13, - 135, - 86, - 91, - 96, - 64, - 128, - 81, - 146, - 131, - 82, - 96, - 32, - 131, - 1, - 145, - 144, - 145, - 82, - 1, - 97, - 2, - 90, - 86, - 91, - 52, - 128, - 21, - 97, - 3, - 20, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 3, - 40, - 97, - 3, - 35, - 54, - 96, - 4, - 97, - 131, - 5, - 86, - 91, - 97, - 16, - 169, - 86, - 91, - 96, - 64, - 81, - 144, - 21, - 21, - 129, - 82, - 96, - 32, - 1, - 97, - 2, - 90, - 86, - 91, - 52, - 128, - 21, - 97, - 3, - 68, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 3, - 88, - 97, - 3, - 83, - 54, - 96, - 4, - 97, - 131, - 68, - 86, - 91, - 97, - 17, - 154, - 86, - 91, - 96, - 64, - 128, - 81, - 146, - 21, - 21, - 131, - 82, - 96, - 32, - 131, - 1, - 145, - 144, - 145, - 82, - 1, - 97, - 2, - 90, - 86, - 91, - 52, - 128, - 21, - 97, - 3, - 123, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 2, - 127, - 97, - 3, - 138, - 54, - 96, - 4, - 97, - 131, - 134, - 86, - 91, - 96, - 9, - 96, - 32, - 144, - 129, - 82, - 96, - 0, - 146, - 131, - 82, - 96, - 64, - 128, - 132, - 32, - 144, - 145, - 82, - 144, - 130, - 82, - 144, - 32, - 84, - 98, - 255, - 255, - 255, - 22, - 129, - 86, - 91, - 52, - 128, - 21, - 97, - 3, - 184, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 3, - 204, - 97, - 3, - 199, - 54, - 96, - 4, - 97, - 131, - 191, - 86, - 91, - 97, - 24, - 63, - 86, - 91, - 96, - 64, - 81, - 144, - 129, - 82, - 96, - 32, - 1, - 97, - 2, - 90, - 86, - 91, - 52, - 128, - 21, - 97, - 3, - 230, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 4, - 49, - 97, - 3, - 245, - 54, - 96, - 4, - 97, - 131, - 220, - 86, - 91, - 96, - 7, - 96, - 32, - 82, - 96, - 0, - 144, - 129, - 82, - 96, - 64, - 144, - 32, - 128, - 84, - 96, - 1, - 144, - 145, - 1, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 128, - 131, - 22, - 146, - 96, - 255, - 96, - 1, - 96, - 160, - 27, - 145, - 130, - 144, - 4, - 129, - 22, - 147, - 146, - 131, - 22, - 146, - 145, - 144, - 145, - 4, - 22, - 132, - 86, - 91, - 96, - 64, - 128, - 81, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 149, - 134, - 22, - 129, - 82, - 96, - 255, - 148, - 133, - 22, - 96, - 32, - 130, - 1, - 82, - 148, - 144, - 146, - 22, - 145, - 132, - 1, - 145, - 144, - 145, - 82, - 22, - 96, - 96, - 130, - 1, - 82, - 96, - 128, - 1, - 97, - 2, - 90, - 86, - 91, - 52, - 128, - 21, - 97, - 4, - 113, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 3, - 204, - 97, - 4, - 128, - 54, - 96, - 4, - 97, - 130, - 213, - 86, - 91, - 97, - 24, - 82, - 86, - 91, - 52, - 128, - 21, - 97, - 4, - 145, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 2, - 11, - 97, - 4, - 160, - 54, - 96, - 4, - 97, - 132, - 1, - 86, - 91, - 97, - 24, - 102, - 86, - 91, - 52, - 128, - 21, - 97, - 4, - 177, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 2, - 11, - 97, - 4, - 192, - 54, - 96, - 4, - 97, - 132, - 26, - 86, - 91, - 97, - 25, - 236, - 86, - 91, - 52, - 128, - 21, - 97, - 4, - 209, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 3, - 204, - 97, - 4, - 224, - 54, - 96, - 4, - 97, - 132, - 86, - 86, - 91, - 97, - 26, - 109, - 86, - 91, - 52, - 128, - 21, - 97, - 4, - 241, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 2, - 179, - 97, - 5, - 0, - 54, - 96, - 4, - 97, - 132, - 146, - 86, - 91, - 97, - 29, - 148, - 86, - 91, - 52, - 128, - 21, - 97, - 5, - 17, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 7, - 141, - 97, - 5, - 32, - 54, - 96, - 4, - 97, - 130, - 213, - 86, - 91, - 96, - 8, - 96, - 32, - 82, - 128, - 96, - 0, - 82, - 96, - 64, - 96, - 0, - 32, - 96, - 0, - 145, - 80, - 144, - 80, - 128, - 96, - 0, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 144, - 128, - 96, - 0, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 144, - 128, - 96, - 1, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 144, - 128, - 96, - 1, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 144, - 128, - 96, - 2, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 144, - 128, - 96, - 3, - 1, - 84, - 144, - 128, - 96, - 4, - 1, - 84, - 144, - 128, - 96, - 5, - 1, - 84, - 144, - 128, - 96, - 6, - 1, - 96, - 64, - 81, - 128, - 97, - 1, - 0, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 18, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 22, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 24, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 26, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 30, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 21, - 21, - 21, - 21, - 129, - 82, - 80, - 80, - 144, - 128, - 96, - 7, - 1, - 96, - 64, - 81, - 128, - 96, - 128, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 80, - 80, - 144, - 80, - 138, - 86, - 91, - 96, - 64, - 81, - 97, - 2, - 90, - 154, - 153, - 152, - 151, - 150, - 149, - 148, - 147, - 146, - 145, - 144, - 97, - 132, - 196, - 86, - 91, - 52, - 128, - 21, - 97, - 7, - 175, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 3, - 204, - 97, - 7, - 190, - 54, - 96, - 4, - 97, - 133, - 225, - 86, - 91, - 97, - 32, - 183, - 86, - 91, - 97, - 2, - 11, - 97, - 7, - 209, - 54, - 96, - 4, - 97, - 134, - 35, - 86, - 91, - 97, - 33, - 39, - 86, - 91, - 52, - 128, - 21, - 97, - 7, - 226, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 8, - 9, - 97, - 7, - 241, - 54, - 96, - 4, - 97, - 131, - 220, - 86, - 91, - 96, - 6, - 96, - 32, - 82, - 96, - 0, - 144, - 129, - 82, - 96, - 64, - 144, - 32, - 84, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 86, - 91, - 96, - 64, - 81, - 99, - 255, - 255, - 255, - 255, - 144, - 145, - 22, - 129, - 82, - 96, - 32, - 1, - 97, - 2, - 90, - 86, - 91, - 52, - 128, - 21, - 97, - 8, - 42, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 3, - 40, - 97, - 8, - 57, - 54, - 96, - 4, - 97, - 130, - 213, - 86, - 91, - 97, - 33, - 165, - 86, - 91, - 52, - 128, - 21, - 97, - 8, - 74, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 2, - 11, - 97, - 8, - 89, - 54, - 96, - 4, - 97, - 134, - 148, - 86, - 91, - 97, - 36, - 187, - 86, - 91, - 52, - 128, - 21, - 97, - 8, - 106, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 2, - 70, - 127, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 129, - 86, - 91, - 52, - 128, - 21, - 97, - 8, - 158, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 2, - 11, - 97, - 8, - 173, - 54, - 96, - 4, - 97, - 134, - 232, - 86, - 91, - 97, - 38, - 9, - 86, - 91, - 52, - 128, - 21, - 97, - 8, - 190, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 9, - 43, - 97, - 8, - 205, - 54, - 96, - 4, - 97, - 135, - 60, - 86, - 91, - 96, - 10, - 96, - 32, - 144, - 129, - 82, - 96, - 0, - 146, - 131, - 82, - 96, - 64, - 128, - 132, - 32, - 144, - 145, - 82, - 144, - 130, - 82, - 144, - 32, - 128, - 84, - 96, - 1, - 130, - 1, - 84, - 96, - 2, - 131, - 1, - 84, - 96, - 3, - 132, - 1, - 84, - 96, - 4, - 133, - 1, - 84, - 96, - 5, - 144, - 149, - 1, - 84, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 128, - 134, - 22, - 150, - 99, - 255, - 255, - 255, - 255, - 96, - 1, - 96, - 128, - 27, - 151, - 136, - 144, - 4, - 22, - 150, - 129, - 131, - 22, - 147, - 145, - 4, - 130, - 22, - 145, - 22, - 136, - 86, - 91, - 96, - 64, - 128, - 81, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 153, - 138, - 22, - 129, - 82, - 99, - 255, - 255, - 255, - 255, - 144, - 152, - 22, - 96, - 32, - 137, - 1, - 82, - 135, - 1, - 149, - 144, - 149, - 82, - 96, - 96, - 134, - 1, - 147, - 144, - 147, - 82, - 96, - 128, - 133, - 1, - 145, - 144, - 145, - 82, - 132, - 22, - 96, - 160, - 132, - 1, - 82, - 131, - 22, - 96, - 192, - 131, - 1, - 82, - 145, - 144, - 145, - 22, - 96, - 224, - 130, - 1, - 82, - 97, - 1, - 0, - 1, - 97, - 2, - 90, - 86, - 91, - 52, - 128, - 21, - 97, - 9, - 139, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 2, - 243, - 97, - 9, - 154, - 54, - 96, - 4, - 97, - 135, - 113, - 86, - 91, - 97, - 40, - 9, - 86, - 91, - 52, - 128, - 21, - 97, - 9, - 171, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 3, - 204, - 97, - 9, - 186, - 54, - 96, - 4, - 97, - 131, - 191, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 1, - 96, - 32, - 82, - 96, - 64, - 144, - 32, - 84, - 144, - 86, - 91, - 97, - 2, - 11, - 97, - 43, - 36, - 86, - 91, - 52, - 128, - 21, - 97, - 9, - 233, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 3, - 204, - 97, - 9, - 248, - 54, - 96, - 4, - 97, - 131, - 134, - 86, - 91, - 97, - 43, - 170, - 86, - 91, - 52, - 128, - 21, - 97, - 10, - 9, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 10, - 29, - 97, - 10, - 24, - 54, - 96, - 4, - 97, - 135, - 141, - 86, - 91, - 97, - 43, - 211, - 86, - 91, - 96, - 64, - 81, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 144, - 145, - 22, - 129, - 82, - 96, - 32, - 1, - 97, - 2, - 90, - 86, - 91, - 52, - 128, - 21, - 97, - 10, - 65, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 96, - 4, - 84, - 97, - 3, - 40, - 144, - 96, - 255, - 22, - 129, - 86, - 91, - 52, - 128, - 21, - 97, - 10, - 91, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 10, - 100, - 97, - 46, - 235, - 86, - 91, - 96, - 64, - 81, - 97, - 2, - 90, - 145, - 144, - 97, - 135, - 236, - 86, - 91, - 96, - 0, - 128, - 97, - 13, - 126, - 96, - 8, - 96, - 0, - 133, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 144, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 32, - 96, - 64, - 81, - 128, - 97, - 1, - 64, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 2, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 3, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 4, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 5, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 6, - 130, - 1, - 96, - 64, - 81, - 128, - 97, - 1, - 0, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 18, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 22, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 24, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 26, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 30, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 21, - 21, - 21, - 21, - 129, - 82, - 80, - 80, - 129, - 82, - 96, - 32, - 1, - 96, - 7, - 130, - 1, - 96, - 64, - 81, - 128, - 96, - 128, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 80, - 80, - 129, - 82, - 80, - 80, - 97, - 47, - 8, - 86, - 91, - 145, - 80, - 145, - 80, - 145, - 80, - 145, - 86, - 91, - 96, - 0, - 128, - 97, - 16, - 148, - 96, - 8, - 96, - 0, - 133, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 144, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 32, - 96, - 64, - 81, - 128, - 97, - 1, - 64, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 2, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 3, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 4, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 5, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 6, - 130, - 1, - 96, - 64, - 81, - 128, - 97, - 1, - 0, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 18, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 22, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 24, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 26, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 30, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 21, - 21, - 21, - 21, - 129, - 82, - 80, - 80, - 129, - 82, - 96, - 32, - 1, - 96, - 7, - 130, - 1, - 96, - 64, - 81, - 128, - 96, - 128, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 80, - 80, - 129, - 82, - 80, - 80, - 97, - 47, - 136, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 145, - 130, - 22, - 149, - 145, - 22, - 147, - 80, - 145, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 130, - 18, - 21, - 97, - 17, - 143, - 87, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 131, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 10, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 136, - 22, - 132, - 82, - 130, - 82, - 128, - 131, - 32, - 129, - 81, - 97, - 1, - 0, - 129, - 1, - 131, - 82, - 129, - 84, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 128, - 130, - 22, - 131, - 82, - 99, - 255, - 255, - 255, - 255, - 96, - 1, - 96, - 128, - 27, - 146, - 131, - 144, - 4, - 129, - 22, - 150, - 132, - 1, - 150, - 144, - 150, - 82, - 96, - 1, - 132, - 1, - 84, - 148, - 131, - 1, - 148, - 144, - 148, - 82, - 96, - 2, - 131, - 1, - 84, - 96, - 96, - 131, - 1, - 82, - 96, - 3, - 131, - 1, - 84, - 96, - 128, - 131, - 1, - 82, - 96, - 4, - 131, - 1, - 84, - 128, - 133, - 22, - 96, - 160, - 132, - 1, - 82, - 4, - 131, - 22, - 96, - 192, - 130, - 1, - 82, - 96, - 5, - 144, - 145, - 1, - 84, - 144, - 145, - 22, - 96, - 224, - 130, - 1, - 82, - 97, - 17, - 93, - 145, - 66, - 144, - 97, - 47, - 163, - 22, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 134, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 8, - 96, - 32, - 82, - 96, - 64, - 144, - 32, - 96, - 6, - 1, - 84, - 96, - 1, - 96, - 128, - 27, - 144, - 4, - 97, - 255, - 255, - 22, - 17, - 21, - 145, - 80, - 97, - 17, - 147, - 144, - 80, - 86, - 91, - 80, - 96, - 1, - 91, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 97, - 20, - 179, - 132, - 96, - 8, - 96, - 0, - 139, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 144, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 32, - 96, - 64, - 81, - 128, - 97, - 1, - 64, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 2, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 3, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 4, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 5, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 6, - 130, - 1, - 96, - 64, - 81, - 128, - 97, - 1, - 0, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 18, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 22, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 24, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 26, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 30, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 21, - 21, - 21, - 21, - 129, - 82, - 80, - 80, - 129, - 82, - 96, - 32, - 1, - 96, - 7, - 130, - 1, - 96, - 64, - 81, - 128, - 96, - 128, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 80, - 80, - 129, - 82, - 80, - 80, - 97, - 47, - 187, - 144, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 144, - 80, - 97, - 23, - 194, - 96, - 8, - 96, - 0, - 138, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 144, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 32, - 96, - 64, - 81, - 128, - 97, - 1, - 64, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 2, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 3, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 4, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 5, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 6, - 130, - 1, - 96, - 64, - 81, - 128, - 97, - 1, - 0, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 18, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 22, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 24, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 26, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 30, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 21, - 21, - 21, - 21, - 129, - 82, - 80, - 80, - 129, - 82, - 96, - 32, - 1, - 96, - 7, - 130, - 1, - 96, - 64, - 81, - 128, - 96, - 128, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 80, - 80, - 129, - 82, - 80, - 80, - 135, - 135, - 132, - 97, - 48, - 1, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 137, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 8, - 96, - 32, - 129, - 144, - 82, - 96, - 64, - 130, - 32, - 1, - 84, - 145, - 147, - 80, - 144, - 97, - 23, - 247, - 144, - 137, - 144, - 96, - 1, - 96, - 160, - 27, - 144, - 4, - 96, - 255, - 22, - 97, - 48, - 70, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 138, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 8, - 96, - 32, - 129, - 144, - 82, - 96, - 64, - 130, - 32, - 1, - 84, - 145, - 146, - 80, - 144, - 97, - 24, - 44, - 144, - 133, - 144, - 96, - 1, - 96, - 160, - 27, - 144, - 4, - 96, - 255, - 22, - 97, - 48, - 70, - 86, - 91, - 145, - 144, - 145, - 18, - 21, - 147, - 80, - 80, - 80, - 149, - 80, - 149, - 147, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 97, - 24, - 76, - 129, - 131, - 48, - 97, - 48, - 92, - 86, - 91, - 146, - 145, - 80, - 80, - 86, - 91, - 96, - 0, - 97, - 24, - 93, - 130, - 97, - 48, - 152, - 86, - 91, - 80, - 144, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 11, - 84, - 96, - 1, - 20, - 97, - 24, - 140, - 87, - 96, - 64, - 81, - 96, - 1, - 98, - 56, - 221, - 247, - 96, - 224, - 27, - 3, - 25, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 2, - 96, - 11, - 129, - 144, - 85, - 80, - 127, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 99, - 247, - 124, - 71, - 145, - 96, - 64, - 81, - 129, - 99, - 255, - 255, - 255, - 255, - 22, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 32, - 96, - 64, - 81, - 128, - 131, - 3, - 129, - 134, - 90, - 250, - 21, - 128, - 21, - 97, - 24, - 242, - 87, - 61, - 96, - 0, - 128, - 62, - 61, - 96, - 0, - 253, - 91, - 80, - 80, - 80, - 80, - 96, - 64, - 81, - 61, - 96, - 31, - 25, - 96, - 31, - 130, - 1, - 22, - 130, - 1, - 128, - 96, - 64, - 82, - 80, - 129, - 1, - 144, - 97, - 25, - 22, - 145, - 144, - 97, - 136, - 31, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 51, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 20, - 97, - 25, - 71, - 87, - 96, - 64, - 81, - 99, - 35, - 1, - 158, - 103, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 20, - 129, - 17, - 128, - 97, - 25, - 86, - 87, - 80, - 96, - 4, - 129, - 16, - 91, - 21, - 97, - 25, - 127, - 87, - 96, - 64, - 81, - 99, - 246, - 244, - 163, - 143, - 96, - 224, - 27, - 129, - 82, - 97, - 255, - 255, - 130, - 22, - 96, - 4, - 130, - 1, - 82, - 96, - 36, - 1, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 13, - 128, - 84, - 144, - 130, - 144, - 85, - 96, - 64, - 128, - 81, - 130, - 129, - 82, - 96, - 32, - 129, - 1, - 132, - 144, - 82, - 127, - 129, - 201, - 57, - 20, - 72, - 0, - 40, - 118, - 3, - 71, - 155, - 151, - 187, - 169, - 193, - 18, - 136, - 206, - 122, - 188, - 90, - 203, - 72, - 144, - 121, - 225, - 89, - 243, - 92, - 249, - 139, - 209, - 145, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 161, - 80, - 96, - 1, - 96, - 11, - 85, - 96, - 4, - 84, - 96, - 255, - 22, - 97, - 25, - 233, - 87, - 96, - 64, - 81, - 99, - 4, - 86, - 76, - 113, - 96, - 226, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 80, - 86, - 91, - 96, - 11, - 84, - 96, - 1, - 20, - 97, - 26, - 18, - 87, - 96, - 64, - 81, - 96, - 1, - 98, - 56, - 221, - 247, - 96, - 224, - 27, - 3, - 25, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 2, - 96, - 11, - 85, - 96, - 1, - 129, - 1, - 97, - 26, - 44, - 87, - 97, - 26, - 41, - 130, - 51, - 97, - 57, - 236, - 86, - 91, - 144, - 80, - 91, - 97, - 26, - 57, - 96, - 0, - 131, - 48, - 132, - 97, - 58, - 204, - 86, - 91, - 97, - 26, - 65, - 97, - 58, - 225, - 86, - 91, - 96, - 1, - 96, - 11, - 85, - 96, - 4, - 84, - 96, - 255, - 22, - 97, - 26, - 105, - 87, - 96, - 64, - 81, - 99, - 4, - 86, - 76, - 113, - 96, - 226, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 8, - 96, - 0, - 134, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 144, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 32, - 96, - 64, - 81, - 128, - 97, - 1, - 64, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 2, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 3, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 4, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 5, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 6, - 130, - 1, - 96, - 64, - 81, - 128, - 97, - 1, - 0, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 18, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 22, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 24, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 26, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 30, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 21, - 21, - 21, - 21, - 129, - 82, - 80, - 80, - 129, - 82, - 96, - 32, - 1, - 96, - 7, - 130, - 1, - 96, - 64, - 81, - 128, - 96, - 128, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 80, - 80, - 129, - 82, - 80, - 80, - 144, - 80, - 97, - 29, - 139, - 132, - 132, - 66, - 132, - 97, - 63, - 115, - 144, - 147, - 146, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 149, - 148, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 97, - 32, - 171, - 131, - 96, - 8, - 96, - 0, - 135, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 144, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 32, - 96, - 64, - 81, - 128, - 97, - 1, - 64, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 2, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 3, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 4, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 5, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 6, - 130, - 1, - 96, - 64, - 81, - 128, - 97, - 1, - 0, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 18, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 22, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 24, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 26, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 30, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 21, - 21, - 21, - 21, - 129, - 82, - 80, - 80, - 129, - 82, - 96, - 32, - 1, - 96, - 7, - 130, - 1, - 96, - 64, - 81, - 128, - 96, - 128, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 80, - 80, - 129, - 82, - 80, - 80, - 97, - 64, - 48, - 144, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 145, - 80, - 145, - 80, - 91, - 146, - 80, - 146, - 144, - 80, - 86, - 91, - 96, - 0, - 128, - 132, - 21, - 97, - 32, - 227, - 87, - 97, - 32, - 220, - 131, - 97, - 32, - 214, - 134, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 97, - 136, - 82, - 86, - 91, - 144, - 97, - 65, - 53, - 86, - 91, - 144, - 80, - 97, - 33, - 28, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 134, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 8, - 96, - 32, - 82, - 96, - 64, - 144, - 32, - 96, - 6, - 1, - 84, - 97, - 33, - 25, - 144, - 132, - 144, - 97, - 32, - 214, - 144, - 135, - 144, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 97, - 136, - 82, - 86, - 91, - 144, - 80, - 91, - 144, - 80, - 91, - 148, - 147, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 11, - 84, - 96, - 1, - 20, - 97, - 33, - 77, - 87, - 96, - 64, - 81, - 96, - 1, - 98, - 56, - 221, - 247, - 96, - 224, - 27, - 3, - 25, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 2, - 96, - 11, - 85, - 97, - 33, - 90, - 97, - 65, - 74, - 86, - 91, - 96, - 85, - 96, - 249, - 27, - 130, - 130, - 96, - 0, - 129, - 97, - 33, - 112, - 87, - 97, - 33, - 112, - 97, - 136, - 105, - 86, - 91, - 144, - 80, - 1, - 53, - 96, - 248, - 28, - 96, - 248, - 27, - 96, - 1, - 96, - 1, - 96, - 248, - 27, - 3, - 25, - 22, - 20, - 97, - 33, - 152, - 87, - 97, - 33, - 147, - 130, - 130, - 97, - 65, - 178, - 86, - 91, - 97, - 26, - 57, - 86, - 91, - 97, - 26, - 57, - 130, - 130, - 97, - 65, - 178, - 97, - 69, - 10, - 86, - 91, - 96, - 0, - 97, - 24, - 76, - 96, - 8, - 96, - 0, - 132, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 144, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 32, - 96, - 64, - 81, - 128, - 97, - 1, - 64, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 2, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 3, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 4, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 5, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 6, - 130, - 1, - 96, - 64, - 81, - 128, - 97, - 1, - 0, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 18, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 22, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 24, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 26, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 30, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 21, - 21, - 21, - 21, - 129, - 82, - 80, - 80, - 129, - 82, - 96, - 32, - 1, - 96, - 7, - 130, - 1, - 96, - 64, - 81, - 128, - 96, - 128, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 80, - 80, - 129, - 82, - 80, - 80, - 96, - 96, - 1, - 81, - 99, - 255, - 255, - 255, - 255, - 22, - 21, - 21, - 144, - 86, - 91, - 96, - 11, - 84, - 96, - 1, - 20, - 97, - 36, - 225, - 87, - 96, - 64, - 81, - 96, - 1, - 98, - 56, - 221, - 247, - 96, - 224, - 27, - 3, - 25, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 2, - 96, - 11, - 85, - 48, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 130, - 22, - 3, - 97, - 37, - 15, - 87, - 96, - 64, - 81, - 99, - 47, - 53, - 37, - 49, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 0, - 97, - 37, - 27, - 51, - 133, - 97, - 43, - 170, - 86, - 91, - 144, - 80, - 96, - 0, - 25, - 131, - 3, - 97, - 37, - 42, - 87, - 128, - 146, - 80, - 91, - 128, - 131, - 17, - 21, - 97, - 37, - 75, - 87, - 96, - 64, - 81, - 99, - 50, - 124, - 188, - 155, - 96, - 226, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 97, - 37, - 85, - 132, - 132, - 97, - 69, - 216, - 86, - 91, - 97, - 37, - 95, - 132, - 132, - 97, - 70, - 43, - 86, - 91, - 127, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 132, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 3, - 97, - 37, - 200, - 87, - 97, - 37, - 195, - 127, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 131, - 133, - 97, - 70, - 126, - 86, - 91, - 97, - 37, - 211, - 86, - 91, - 97, - 37, - 211, - 132, - 131, - 133, - 97, - 71, - 101, - 86, - 91, - 97, - 37, - 219, - 97, - 58, - 225, - 86, - 91, - 80, - 96, - 1, - 96, - 11, - 85, - 96, - 4, - 84, - 96, - 255, - 22, - 97, - 38, - 4, - 87, - 96, - 64, - 81, - 99, - 4, - 86, - 76, - 113, - 96, - 226, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 80, - 80, - 80, - 86, - 91, - 96, - 11, - 84, - 96, - 1, - 20, - 97, - 38, - 47, - 87, - 96, - 64, - 81, - 96, - 1, - 98, - 56, - 221, - 247, - 96, - 224, - 27, - 3, - 25, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 2, - 96, - 11, - 129, - 144, - 85, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 133, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 8, - 96, - 32, - 82, - 96, - 64, - 144, - 32, - 144, - 129, - 1, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 51, - 20, - 97, - 38, - 122, - 87, - 96, - 64, - 81, - 99, - 35, - 1, - 158, - 103, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 64, - 128, - 81, - 97, - 1, - 0, - 129, - 1, - 130, - 82, - 96, - 0, - 128, - 130, - 82, - 96, - 32, - 130, - 1, - 129, - 144, - 82, - 145, - 129, - 1, - 130, - 144, - 82, - 96, - 96, - 129, - 1, - 130, - 144, - 82, - 96, - 128, - 129, - 1, - 130, - 144, - 82, - 96, - 160, - 129, - 1, - 130, - 144, - 82, - 96, - 192, - 129, - 1, - 130, - 144, - 82, - 96, - 224, - 129, - 1, - 145, - 144, - 145, - 82, - 80, - 96, - 64, - 128, - 81, - 97, - 1, - 0, - 129, - 1, - 130, - 82, - 96, - 6, - 131, - 1, - 84, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 129, - 22, - 130, - 82, - 97, - 255, - 255, - 96, - 1, - 96, - 128, - 27, - 130, - 4, - 129, - 22, - 96, - 32, - 132, - 1, - 82, - 96, - 1, - 96, - 144, - 27, - 130, - 4, - 129, - 22, - 147, - 131, - 1, - 147, - 144, - 147, - 82, - 96, - 1, - 96, - 160, - 27, - 129, - 4, - 131, - 22, - 96, - 96, - 131, - 1, - 82, - 96, - 1, - 96, - 176, - 27, - 129, - 4, - 131, - 22, - 96, - 128, - 131, - 1, - 82, - 96, - 1, - 96, - 192, - 27, - 129, - 4, - 131, - 22, - 96, - 160, - 131, - 1, - 82, - 99, - 255, - 255, - 255, - 255, - 96, - 1, - 96, - 208, - 27, - 130, - 4, - 22, - 96, - 192, - 131, - 1, - 82, - 96, - 255, - 96, - 1, - 96, - 240, - 27, - 144, - 145, - 4, - 22, - 21, - 21, - 96, - 224, - 130, - 1, - 82, - 144, - 131, - 22, - 21, - 97, - 39, - 90, - 87, - 97, - 255, - 255, - 131, - 22, - 96, - 32, - 130, - 1, - 82, - 91, - 97, - 255, - 255, - 132, - 22, - 21, - 97, - 39, - 111, - 87, - 97, - 255, - 255, - 132, - 22, - 96, - 64, - 130, - 1, - 82, - 91, - 97, - 255, - 255, - 133, - 22, - 21, - 97, - 39, - 132, - 87, - 97, - 255, - 255, - 133, - 22, - 96, - 160, - 130, - 1, - 82, - 91, - 97, - 39, - 142, - 130, - 130, - 97, - 71, - 227, - 86, - 91, - 96, - 64, - 81, - 97, - 255, - 255, - 132, - 129, - 22, - 130, - 82, - 128, - 134, - 22, - 145, - 144, - 135, - 22, - 144, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 137, - 22, - 144, - 127, - 99, - 136, - 150, - 84, - 253, - 163, - 215, - 78, - 149, - 252, - 123, - 230, - 211, - 16, - 196, - 83, - 198, - 136, - 59, - 108, - 205, - 232, - 64, - 12, - 71, - 103, - 39, - 35, - 126, - 99, - 42, - 194, - 144, - 96, - 32, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 164, - 80, - 80, - 96, - 1, - 96, - 11, - 85, - 96, - 4, - 84, - 96, - 255, - 22, - 97, - 40, - 3, - 87, - 96, - 64, - 81, - 99, - 4, - 86, - 76, - 113, - 96, - 226, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 97, - 43, - 25, - 96, - 8, - 96, - 0, - 134, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 144, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 32, - 96, - 64, - 81, - 128, - 97, - 1, - 64, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 2, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 3, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 4, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 5, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 6, - 130, - 1, - 96, - 64, - 81, - 128, - 97, - 1, - 0, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 18, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 22, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 24, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 26, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 30, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 21, - 21, - 21, - 21, - 129, - 82, - 80, - 80, - 129, - 82, - 96, - 32, - 1, - 96, - 7, - 130, - 1, - 96, - 64, - 81, - 128, - 96, - 128, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 80, - 80, - 129, - 82, - 80, - 80, - 132, - 96, - 0, - 97, - 72, - 225, - 86, - 91, - 144, - 149, - 144, - 148, - 80, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 11, - 84, - 96, - 1, - 20, - 97, - 43, - 74, - 87, - 96, - 64, - 81, - 96, - 1, - 98, - 56, - 221, - 247, - 96, - 224, - 27, - 3, - 25, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 2, - 96, - 11, - 85, - 52, - 96, - 0, - 3, - 97, - 43, - 112, - 87, - 96, - 64, - 81, - 99, - 124, - 148, - 110, - 215, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 97, - 43, - 120, - 97, - 65, - 74, - 86, - 91, - 97, - 43, - 128, - 97, - 58, - 225, - 86, - 91, - 96, - 1, - 96, - 11, - 85, - 96, - 4, - 84, - 96, - 255, - 22, - 97, - 43, - 168, - 87, - 96, - 64, - 81, - 99, - 4, - 86, - 76, - 113, - 96, - 226, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 145, - 130, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 32, - 129, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 147, - 144, - 148, - 22, - 130, - 82, - 145, - 144, - 145, - 82, - 32, - 84, - 144, - 86, - 91, - 96, - 0, - 97, - 33, - 31, - 131, - 131, - 96, - 8, - 96, - 0, - 136, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 144, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 32, - 96, - 64, - 81, - 128, - 97, - 1, - 64, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 2, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 3, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 4, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 5, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 6, - 130, - 1, - 96, - 64, - 81, - 128, - 97, - 1, - 0, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 18, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 22, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 24, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 26, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 30, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 21, - 21, - 21, - 21, - 129, - 82, - 80, - 80, - 129, - 82, - 96, - 32, - 1, - 96, - 7, - 130, - 1, - 96, - 64, - 81, - 128, - 96, - 128, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 80, - 80, - 129, - 82, - 80, - 80, - 97, - 73, - 105, - 144, - 146, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 96, - 96, - 96, - 32, - 96, - 0, - 82, - 107, - 11, - 118, - 49, - 46, - 48, - 46, - 48, - 45, - 98, - 101, - 116, - 97, - 96, - 43, - 82, - 96, - 96, - 96, - 0, - 243, - 91, - 96, - 0, - 128, - 96, - 0, - 128, - 97, - 47, - 30, - 133, - 128, - 81, - 96, - 32, - 144, - 145, - 1, - 81, - 144, - 145, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 145, - 80, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 145, - 80, - 97, - 47, - 91, - 97, - 47, - 86, - 134, - 97, - 1, - 32, - 1, - 81, - 96, - 32, - 1, - 81, - 96, - 255, - 22, - 132, - 97, - 74, - 33, - 144, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 97, - 74, - 55, - 86, - 91, - 147, - 80, - 97, - 47, - 127, - 97, - 47, - 86, - 134, - 97, - 1, - 32, - 1, - 81, - 96, - 96, - 1, - 81, - 96, - 255, - 22, - 131, - 97, - 74, - 33, - 144, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 146, - 80, - 80, - 80, - 145, - 80, - 145, - 86, - 91, - 96, - 0, - 128, - 97, - 13, - 126, - 131, - 96, - 64, - 1, - 81, - 97, - 47, - 156, - 144, - 97, - 136, - 127, - 86, - 91, - 132, - 144, - 97, - 64, - 48, - 86, - 91, - 96, - 0, - 130, - 96, - 32, - 1, - 81, - 99, - 255, - 255, - 255, - 255, - 22, - 130, - 97, - 17, - 147, - 145, - 144, - 97, - 136, - 82, - 86, - 91, - 96, - 0, - 130, - 97, - 1, - 0, - 1, - 81, - 96, - 224, - 1, - 81, - 21, - 97, - 47, - 215, - 87, - 80, - 99, - 1, - 225, - 133, - 89, - 97, - 24, - 76, - 86, - 91, - 96, - 0, - 97, - 47, - 231, - 132, - 97, - 1, - 0, - 1, - 81, - 97, - 74, - 77, - 86, - 91, - 99, - 255, - 255, - 255, - 255, - 22, - 128, - 132, - 3, - 144, - 132, - 16, - 2, - 131, - 3, - 146, - 144, - 146, - 3, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 97, - 33, - 28, - 131, - 133, - 135, - 97, - 1, - 0, - 1, - 81, - 96, - 0, - 1, - 81, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 97, - 48, - 64, - 137, - 97, - 1, - 0, - 1, - 81, - 96, - 128, - 1, - 81, - 97, - 255, - 255, - 22, - 97, - 39, - 16, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 145, - 144, - 145, - 2, - 4, - 144, - 86, - 91, - 134, - 97, - 74, - 116, - 86, - 91, - 96, - 0, - 128, - 97, - 48, - 82, - 131, - 97, - 74, - 145, - 86, - 91, - 144, - 147, - 5, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 130, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 1, - 132, - 1, - 96, - 32, - 82, - 96, - 64, - 129, - 32, - 84, - 129, - 97, - 48, - 130, - 133, - 133, - 97, - 57, - 236, - 86, - 91, - 144, - 80, - 97, - 48, - 142, - 130, - 130, - 97, - 136, - 165, - 86, - 91, - 150, - 149, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 128, - 96, - 8, - 96, - 0, - 134, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 144, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 32, - 144, - 80, - 97, - 51, - 181, - 66, - 130, - 96, - 64, - 81, - 128, - 97, - 1, - 64, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 2, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 3, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 4, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 5, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 6, - 130, - 1, - 96, - 64, - 81, - 128, - 97, - 1, - 0, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 18, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 22, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 24, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 26, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 30, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 21, - 21, - 21, - 21, - 129, - 82, - 80, - 80, - 129, - 82, - 96, - 32, - 1, - 96, - 7, - 130, - 1, - 96, - 64, - 81, - 128, - 96, - 128, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 80, - 80, - 129, - 82, - 80, - 80, - 97, - 47, - 187, - 144, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 145, - 80, - 96, - 0, - 128, - 97, - 54, - 167, - 131, - 96, - 64, - 81, - 128, - 97, - 1, - 64, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 2, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 3, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 4, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 5, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 6, - 130, - 1, - 96, - 64, - 81, - 128, - 97, - 1, - 0, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 18, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 22, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 24, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 26, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 30, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 21, - 21, - 21, - 21, - 129, - 82, - 80, - 80, - 129, - 82, - 96, - 32, - 1, - 96, - 7, - 130, - 1, - 96, - 64, - 81, - 128, - 96, - 128, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 80, - 80, - 129, - 82, - 80, - 80, - 128, - 81, - 96, - 32, - 144, - 145, - 1, - 81, - 144, - 145, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 145, - 80, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 145, - 80, - 97, - 57, - 177, - 130, - 130, - 134, - 134, - 96, - 64, - 81, - 128, - 97, - 1, - 64, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 2, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 3, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 4, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 5, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 6, - 130, - 1, - 96, - 64, - 81, - 128, - 97, - 1, - 0, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 18, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 22, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 24, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 26, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 30, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 21, - 21, - 21, - 21, - 129, - 82, - 80, - 80, - 129, - 82, - 96, - 32, - 1, - 96, - 7, - 130, - 1, - 96, - 64, - 81, - 128, - 96, - 128, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 80, - 80, - 129, - 82, - 80, - 80, - 97, - 48, - 1, - 144, - 147, - 146, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 96, - 6, - 132, - 1, - 84, - 96, - 15, - 145, - 144, - 145, - 11, - 149, - 80, - 97, - 57, - 224, - 144, - 131, - 144, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 129, - 22, - 144, - 96, - 1, - 96, - 176, - 27, - 144, - 4, - 97, - 255, - 255, - 22, - 135, - 97, - 74, - 169, - 86, - 91, - 149, - 80, - 80, - 80, - 80, - 145, - 147, - 144, - 146, - 80, - 86, - 91, - 96, - 64, - 128, - 81, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 131, - 129, - 22, - 96, - 36, - 128, - 132, - 1, - 145, - 144, - 145, - 82, - 131, - 81, - 128, - 132, - 3, - 144, - 145, - 1, - 129, - 82, - 96, - 68, - 144, - 146, - 1, - 131, - 82, - 96, - 32, - 130, - 1, - 128, - 81, - 96, - 1, - 96, - 1, - 96, - 224, - 27, - 3, - 22, - 99, - 112, - 160, - 130, - 49, - 96, - 224, - 27, - 23, - 144, - 82, - 145, - 81, - 96, - 0, - 146, - 131, - 146, - 131, - 146, - 145, - 135, - 22, - 145, - 97, - 58, - 70, - 145, - 144, - 97, - 136, - 228, - 86, - 91, - 96, - 0, - 96, - 64, - 81, - 128, - 131, - 3, - 129, - 133, - 90, - 250, - 145, - 80, - 80, - 61, - 128, - 96, - 0, - 129, - 20, - 97, - 58, - 129, - 87, - 96, - 64, - 81, - 145, - 80, - 96, - 31, - 25, - 96, - 63, - 61, - 1, - 22, - 130, - 1, - 96, - 64, - 82, - 61, - 130, - 82, - 61, - 96, - 0, - 96, - 32, - 132, - 1, - 62, - 97, - 58, - 134, - 86, - 91, - 96, - 96, - 145, - 80, - 91, - 80, - 145, - 80, - 145, - 80, - 129, - 21, - 128, - 97, - 58, - 154, - 87, - 80, - 128, - 81, - 96, - 32, - 20, - 21, - 91, - 21, - 97, - 58, - 184, - 87, - 96, - 64, - 81, - 99, - 197, - 46, - 62, - 255, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 128, - 128, - 96, - 32, - 1, - 144, - 81, - 129, - 1, - 144, - 97, - 29, - 139, - 145, - 144, - 97, - 137, - 0, - 86, - 91, - 97, - 58, - 214, - 132, - 132, - 97, - 76, - 48, - 86, - 91, - 97, - 40, - 3, - 131, - 131, - 131, - 97, - 76, - 192, - 86, - 91, - 96, - 0, - 128, - 96, - 3, - 1, - 128, - 84, - 128, - 96, - 32, - 2, - 96, - 32, - 1, - 96, - 64, - 81, - 144, - 129, - 1, - 96, - 64, - 82, - 128, - 146, - 145, - 144, - 129, - 129, - 82, - 96, - 32, - 1, - 130, - 128, - 84, - 128, - 21, - 97, - 59, - 59, - 87, - 96, - 32, - 2, - 130, - 1, - 145, - 144, - 96, - 0, - 82, - 96, - 32, - 96, - 0, - 32, - 144, - 91, - 129, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 1, - 144, - 145, - 1, - 144, - 96, - 32, - 1, - 128, - 131, - 17, - 97, - 59, - 29, - 87, - 91, - 80, - 80, - 80, - 80, - 80, - 144, - 80, - 96, - 0, - 129, - 81, - 144, - 80, - 128, - 96, - 0, - 3, - 97, - 59, - 90, - 87, - 97, - 26, - 105, - 96, - 0, - 97, - 76, - 204, - 86, - 91, - 128, - 91, - 96, - 0, - 131, - 97, - 59, - 106, - 96, - 1, - 132, - 97, - 136, - 82, - 86, - 91, - 129, - 81, - 129, - 16, - 97, - 59, - 122, - 87, - 97, - 59, - 122, - 97, - 136, - 105, - 86, - 91, - 96, - 32, - 2, - 96, - 32, - 1, - 1, - 81, - 144, - 80, - 96, - 0, - 128, - 96, - 0, - 97, - 59, - 159, - 132, - 48, - 96, - 0, - 97, - 76, - 251, - 144, - 146, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 145, - 148, - 80, - 146, - 80, - 144, - 80, - 130, - 21, - 97, - 60, - 52, - 87, - 96, - 64, - 81, - 131, - 129, - 82, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 133, - 22, - 144, - 51, - 144, - 127, - 73, - 225, - 68, - 60, - 178, - 94, - 23, - 203, - 235, - 197, - 10, - 163, - 227, - 165, - 163, - 223, - 58, - 195, - 52, - 175, - 133, - 43, - 198, - 243, - 232, - 210, - 88, - 85, - 130, - 87, - 187, - 17, - 144, - 96, - 32, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 163, - 131, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 127, - 128, - 178, - 23, - 72, - 199, - 135, - 197, - 46, - 135, - 166, - 178, - 34, - 1, - 30, - 10, - 14, - 208, - 249, - 204, - 32, - 21, - 240, - 206, - 212, - 103, - 72, - 100, - 45, - 198, - 46, - 233, - 248, - 132, - 96, - 64, - 81, - 97, - 60, - 39, - 145, - 129, - 82, - 96, - 32, - 1, - 144, - 86, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 162, - 97, - 61, - 65, - 86, - 91, - 129, - 21, - 97, - 60, - 190, - 87, - 96, - 64, - 81, - 130, - 129, - 82, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 133, - 22, - 144, - 51, - 144, - 127, - 11, - 11, - 130, - 25, - 83, - 229, - 84, - 91, - 113, - 242, - 8, - 88, - 51, - 228, - 168, - 223, - 208, - 217, - 155, - 189, - 255, - 81, - 24, - 152, - 103, - 42, - 232, - 23, - 154, - 152, - 45, - 243, - 144, - 96, - 32, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 163, - 131, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 127, - 28, - 113, - 30, - 202, - 141, - 11, - 105, - 75, - 188, - 176, - 161, - 68, - 98, - 167, - 0, - 98, - 34, - 231, - 33, - 149, - 75, - 44, - 95, - 247, - 152, - 246, - 6, - 129, - 126, - 177, - 16, - 50, - 131, - 96, - 64, - 81, - 97, - 60, - 181, - 145, - 129, - 82, - 96, - 32, - 1, - 144, - 86, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 162, - 91, - 128, - 21, - 97, - 61, - 65, - 87, - 96, - 14, - 96, - 64, - 81, - 128, - 96, - 96, - 1, - 96, - 64, - 82, - 128, - 134, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 131, - 129, - 82, - 96, - 32, - 1, - 97, - 60, - 240, - 135, - 48, - 97, - 57, - 236, - 86, - 91, - 144, - 82, - 129, - 84, - 96, - 1, - 128, - 130, - 1, - 132, - 85, - 96, - 0, - 147, - 132, - 82, - 96, - 32, - 147, - 132, - 144, - 32, - 131, - 81, - 96, - 3, - 144, - 147, - 2, - 1, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 25, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 144, - 147, - 22, - 146, - 144, - 146, - 23, - 130, - 85, - 146, - 130, - 1, - 81, - 146, - 129, - 1, - 146, - 144, - 146, - 85, - 96, - 64, - 1, - 81, - 96, - 2, - 144, - 145, - 1, - 85, - 91, - 96, - 3, - 128, - 84, - 128, - 97, - 61, - 82, - 87, - 97, - 61, - 82, - 97, - 137, - 25, - 86, - 91, - 96, - 0, - 130, - 129, - 82, - 96, - 32, - 129, - 32, - 130, - 1, - 96, - 0, - 25, - 144, - 129, - 1, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 25, - 22, - 144, - 85, - 145, - 130, - 1, - 144, - 146, - 85, - 134, - 1, - 149, - 144, - 3, - 96, - 1, - 1, - 147, - 80, - 97, - 59, - 92, - 146, - 80, - 80, - 80, - 87, - 96, - 0, - 96, - 14, - 128, - 84, - 128, - 96, - 32, - 2, - 96, - 32, - 1, - 96, - 64, - 81, - 144, - 129, - 1, - 96, - 64, - 82, - 128, - 146, - 145, - 144, - 129, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 144, - 91, - 130, - 130, - 16, - 21, - 97, - 62, - 2, - 87, - 96, - 0, - 132, - 129, - 82, - 96, - 32, - 144, - 129, - 144, - 32, - 96, - 64, - 128, - 81, - 96, - 96, - 129, - 1, - 130, - 82, - 96, - 3, - 134, - 2, - 144, - 146, - 1, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 131, - 82, - 96, - 1, - 128, - 130, - 1, - 84, - 132, - 134, - 1, - 82, - 96, - 2, - 144, - 145, - 1, - 84, - 145, - 131, - 1, - 145, - 144, - 145, - 82, - 144, - 131, - 82, - 144, - 146, - 1, - 145, - 1, - 97, - 61, - 173, - 86, - 91, - 80, - 80, - 130, - 81, - 146, - 147, - 80, - 80, - 80, - 91, - 128, - 21, - 97, - 62, - 112, - 87, - 96, - 0, - 97, - 62, - 31, - 96, - 1, - 131, - 97, - 136, - 82, - 86, - 91, - 144, - 80, - 97, - 62, - 102, - 131, - 130, - 129, - 81, - 129, - 16, - 97, - 62, - 54, - 87, - 97, - 62, - 54, - 97, - 136, - 105, - 86, - 91, - 96, - 32, - 2, - 96, - 32, - 1, - 1, - 81, - 96, - 0, - 1, - 81, - 48, - 133, - 132, - 129, - 81, - 129, - 16, - 97, - 62, - 85, - 87, - 97, - 62, - 85, - 97, - 136, - 105, - 86, - 91, - 96, - 32, - 2, - 96, - 32, - 1, - 1, - 81, - 96, - 32, - 1, - 81, - 97, - 76, - 192, - 86, - 91, - 80, - 96, - 0, - 25, - 1, - 97, - 62, - 12, - 86, - 91, - 80, - 128, - 81, - 91, - 128, - 21, - 97, - 63, - 86, - 87, - 96, - 0, - 97, - 62, - 135, - 96, - 1, - 131, - 97, - 136, - 82, - 86, - 91, - 144, - 80, - 96, - 0, - 131, - 130, - 129, - 81, - 129, - 16, - 97, - 62, - 157, - 87, - 97, - 62, - 157, - 97, - 136, - 105, - 86, - 91, - 96, - 32, - 2, - 96, - 32, - 1, - 1, - 81, - 96, - 0, - 1, - 81, - 144, - 80, - 96, - 0, - 132, - 131, - 129, - 81, - 129, - 16, - 97, - 62, - 191, - 87, - 97, - 62, - 191, - 97, - 136, - 105, - 86, - 91, - 96, - 32, - 2, - 96, - 32, - 1, - 1, - 81, - 96, - 64, - 1, - 81, - 144, - 80, - 96, - 0, - 97, - 62, - 217, - 131, - 48, - 97, - 57, - 236, - 86, - 91, - 144, - 80, - 96, - 0, - 130, - 135, - 134, - 129, - 81, - 129, - 16, - 97, - 62, - 240, - 87, - 97, - 62, - 240, - 97, - 136, - 105, - 86, - 91, - 96, - 32, - 2, - 96, - 32, - 1, - 1, - 81, - 96, - 32, - 1, - 81, - 97, - 63, - 6, - 145, - 144, - 97, - 137, - 47, - 86, - 91, - 144, - 80, - 128, - 130, - 16, - 21, - 97, - 63, - 69, - 87, - 131, - 97, - 63, - 27, - 130, - 132, - 97, - 136, - 165, - 86, - 91, - 96, - 64, - 81, - 99, - 127, - 17, - 205, - 213, - 96, - 225, - 27, - 129, - 82, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 144, - 146, - 22, - 96, - 4, - 131, - 1, - 82, - 96, - 36, - 130, - 1, - 82, - 96, - 68, - 1, - 97, - 25, - 118, - 86, - 91, - 133, - 96, - 1, - 144, - 3, - 149, - 80, - 80, - 80, - 80, - 80, - 80, - 97, - 62, - 116, - 86, - 91, - 97, - 63, - 96, - 96, - 0, - 97, - 76, - 204, - 86, - 91, - 97, - 63, - 108, - 96, - 14, - 96, - 0, - 97, - 129, - 241, - 86, - 91, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 97, - 63, - 132, - 135, - 135, - 135, - 135, - 97, - 77, - 224, - 86, - 91, - 145, - 80, - 145, - 80, - 96, - 0, - 128, - 97, - 63, - 151, - 137, - 133, - 138, - 134, - 97, - 78, - 223, - 86, - 91, - 145, - 80, - 145, - 80, - 129, - 129, - 17, - 21, - 97, - 63, - 188, - 87, - 96, - 64, - 81, - 99, - 1, - 0, - 7, - 39, - 96, - 229, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 192, - 132, - 1, - 81, - 97, - 63, - 207, - 144, - 97, - 32, - 214, - 131, - 133, - 97, - 136, - 82, - 86, - 91, - 132, - 97, - 1, - 0, - 1, - 129, - 129, - 81, - 97, - 63, - 225, - 145, - 144, - 97, - 137, - 47, - 86, - 91, - 144, - 82, - 80, - 96, - 0, - 136, - 97, - 63, - 250, - 87, - 137, - 97, - 1, - 32, - 1, - 81, - 96, - 32, - 1, - 81, - 97, - 64, - 5, - 86, - 91, - 137, - 97, - 1, - 32, - 1, - 81, - 96, - 96, - 1, - 81, - 91, - 96, - 255, - 22, - 144, - 80, - 97, - 64, - 34, - 129, - 134, - 97, - 1, - 0, - 1, - 81, - 97, - 74, - 33, - 144, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 154, - 153, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 15, - 131, - 144, - 11, - 21, - 97, - 32, - 176, - 87, - 131, - 81, - 96, - 32, - 133, - 1, - 81, - 96, - 0, - 145, - 130, - 145, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 145, - 80, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 145, - 80, - 96, - 0, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 97, - 64, - 127, - 136, - 97, - 1, - 32, - 1, - 81, - 96, - 32, - 1, - 81, - 96, - 255, - 22, - 97, - 74, - 145, - 86, - 91, - 97, - 64, - 137, - 145, - 144, - 97, - 137, - 71, - 86, - 91, - 144, - 80, - 96, - 0, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 97, - 64, - 171, - 137, - 97, - 1, - 32, - 1, - 81, - 96, - 96, - 1, - 81, - 96, - 255, - 22, - 97, - 74, - 145, - 86, - 91, - 97, - 64, - 181, - 145, - 144, - 97, - 137, - 71, - 86, - 91, - 144, - 80, - 96, - 0, - 128, - 136, - 96, - 15, - 11, - 19, - 21, - 97, - 64, - 244, - 87, - 80, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 135, - 22, - 97, - 64, - 221, - 97, - 47, - 86, - 134, - 131, - 134, - 97, - 79, - 199, - 86, - 91, - 150, - 80, - 97, - 64, - 237, - 97, - 47, - 86, - 133, - 131, - 133, - 97, - 79, - 199, - 86, - 91, - 149, - 80, - 97, - 65, - 41, - 86, - 91, - 97, - 64, - 253, - 136, - 97, - 136, - 127, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 144, - 80, - 97, - 65, - 22, - 97, - 47, - 86, - 134, - 131, - 134, - 97, - 79, - 245, - 86, - 91, - 150, - 80, - 97, - 65, - 38, - 97, - 47, - 86, - 133, - 131, - 133, - 97, - 79, - 245, - 86, - 91, - 149, - 80, - 91, - 80, - 80, - 80, - 80, - 80, - 146, - 80, - 146, - 144, - 80, - 86, - 91, - 96, - 0, - 97, - 17, - 147, - 131, - 131, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 97, - 79, - 245, - 86, - 91, - 52, - 21, - 97, - 43, - 168, - 87, - 97, - 65, - 123, - 96, - 0, - 127, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 97, - 80, - 20, - 86, - 91, - 96, - 64, - 81, - 52, - 129, - 82, - 51, - 144, - 127, - 225, - 255, - 252, - 196, - 146, - 61, - 4, - 181, - 89, - 244, - 210, - 154, - 139, - 252, - 108, - 218, - 4, - 235, - 91, - 13, - 60, - 70, - 7, - 81, - 194, - 64, - 44, - 92, - 92, - 201, - 16, - 156, - 144, - 96, - 32, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 162, - 86, - 91, - 96, - 0, - 97, - 65, - 231, - 131, - 131, - 96, - 0, - 129, - 129, - 16, - 97, - 65, - 202, - 87, - 97, - 65, - 202, - 97, - 136, - 105, - 86, - 91, - 145, - 144, - 145, - 1, - 53, - 96, - 4, - 129, - 144, - 28, - 96, - 255, - 96, - 244, - 27, - 22, - 146, - 96, - 15, - 96, - 248, - 27, - 144, - 145, - 22, - 145, - 80, - 86, - 91, - 145, - 80, - 80, - 96, - 1, - 96, - 1, - 96, - 248, - 27, - 3, - 25, - 128, - 130, - 22, - 1, - 97, - 66, - 43, - 87, - 96, - 0, - 128, - 96, - 0, - 97, - 66, - 10, - 134, - 134, - 97, - 80, - 115, - 86, - 91, - 146, - 80, - 146, - 80, - 146, - 80, - 97, - 66, - 33, - 131, - 96, - 255, - 22, - 96, - 1, - 20, - 131, - 131, - 97, - 80, - 227, - 86, - 91, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 253, - 96, - 248, - 27, - 96, - 1, - 96, - 1, - 96, - 248, - 27, - 3, - 25, - 130, - 22, - 1, - 97, - 66, - 102, - 87, - 96, - 0, - 128, - 96, - 0, - 97, - 66, - 79, - 134, - 134, - 97, - 80, - 115, - 86, - 91, - 146, - 80, - 146, - 80, - 146, - 80, - 97, - 66, - 33, - 131, - 96, - 255, - 22, - 96, - 1, - 20, - 131, - 131, - 97, - 82, - 206, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 248, - 27, - 3, - 25, - 129, - 22, - 96, - 3, - 96, - 249, - 27, - 20, - 128, - 97, - 66, - 143, - 87, - 80, - 96, - 1, - 96, - 1, - 96, - 248, - 27, - 3, - 25, - 129, - 22, - 96, - 5, - 96, - 248, - 27, - 20, - 91, - 21, - 97, - 67, - 74, - 87, - 96, - 64, - 128, - 81, - 96, - 160, - 129, - 1, - 130, - 82, - 132, - 53, - 96, - 0, - 144, - 129, - 26, - 96, - 15, - 129, - 22, - 96, - 6, - 20, - 96, - 255, - 144, - 129, - 22, - 96, - 128, - 133, - 1, - 82, - 96, - 1, - 96, - 9, - 137, - 1, - 53, - 132, - 26, - 128, - 138, - 1, - 130, - 129, - 1, - 53, - 96, - 8, - 131, - 140, - 3, - 96, - 0, - 25, - 1, - 129, - 2, - 97, - 1, - 0, - 144, - 129, - 3, - 146, - 144, - 146, - 28, - 146, - 53, - 136, - 26, - 96, - 10, - 144, - 129, - 10, - 147, - 144, - 147, - 2, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 144, - 129, - 22, - 96, - 96, - 139, - 1, - 82, - 96, - 11, - 142, - 1, - 53, - 96, - 10, - 25, - 144, - 149, - 1, - 144, - 145, - 2, - 144, - 145, - 3, - 146, - 144, - 146, - 28, - 129, - 140, - 1, - 53, - 144, - 150, - 26, - 144, - 10, - 148, - 144, - 148, - 2, - 144, - 147, - 22, - 148, - 132, - 1, - 148, - 144, - 148, - 82, - 144, - 134, - 1, - 53, - 96, - 192, - 28, - 96, - 32, - 131, - 1, - 82, - 96, - 4, - 28, - 144, - 145, - 22, - 129, - 82, - 97, - 67, - 65, - 129, - 97, - 84, - 180, - 86, - 91, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 245, - 96, - 248, - 27, - 96, - 1, - 96, - 1, - 96, - 248, - 27, - 3, - 25, - 130, - 22, - 1, - 97, - 68, - 59, - 87, - 96, - 0, - 128, - 96, - 0, - 128, - 96, - 0, - 128, - 96, - 0, - 128, - 96, - 0, - 97, - 68, - 9, - 140, - 140, - 96, - 1, - 128, - 131, - 1, - 53, - 96, - 232, - 28, - 147, - 96, - 4, - 132, - 1, - 53, - 96, - 96, - 28, - 147, - 96, - 24, - 129, - 1, - 53, - 96, - 240, - 144, - 129, - 28, - 148, - 96, - 26, - 131, - 1, - 53, - 130, - 28, - 148, - 96, - 28, - 132, - 1, - 53, - 131, - 28, - 148, - 96, - 30, - 133, - 1, - 53, - 132, - 28, - 148, - 96, - 32, - 129, - 1, - 53, - 144, - 148, - 28, - 147, - 96, - 35, - 129, - 1, - 53, - 96, - 0, - 144, - 129, - 26, - 96, - 10, - 144, - 129, - 10, - 96, - 36, - 132, - 1, - 53, - 96, - 8, - 96, - 35, - 25, - 96, - 34, - 135, - 1, - 53, - 134, - 26, - 144, - 129, - 1, - 130, - 2, - 97, - 1, - 0, - 144, - 129, - 3, - 147, - 144, - 147, - 28, - 147, - 144, - 147, - 2, - 152, - 149, - 131, - 1, - 128, - 53, - 144, - 149, - 26, - 144, - 147, - 10, - 147, - 144, - 150, - 1, - 53, - 96, - 0, - 25, - 145, - 144, - 148, - 3, - 1, - 2, - 144, - 147, - 3, - 28, - 145, - 144, - 145, - 2, - 144, - 86, - 91, - 152, - 80, - 152, - 80, - 152, - 80, - 152, - 80, - 152, - 80, - 152, - 80, - 152, - 80, - 152, - 80, - 152, - 80, - 97, - 68, - 44, - 137, - 137, - 137, - 137, - 137, - 137, - 137, - 137, - 137, - 97, - 92, - 89, - 86, - 91, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 61, - 96, - 250, - 27, - 96, - 1, - 96, - 1, - 96, - 248, - 27, - 3, - 25, - 130, - 22, - 1, - 97, - 68, - 115, - 87, - 96, - 0, - 128, - 97, - 68, - 93, - 133, - 133, - 97, - 95, - 236, - 86, - 91, - 145, - 80, - 145, - 80, - 97, - 68, - 107, - 130, - 130, - 97, - 96, - 51, - 86, - 91, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 63, - 96, - 250, - 27, - 96, - 1, - 96, - 1, - 96, - 248, - 27, - 3, - 25, - 130, - 22, - 1, - 97, - 68, - 241, - 87, - 96, - 0, - 128, - 128, - 133, - 53, - 96, - 184, - 129, - 144, - 28, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 144, - 96, - 10, - 129, - 129, - 26, - 129, - 10, - 96, - 11, - 138, - 1, - 53, - 96, - 8, - 96, - 9, - 133, - 144, - 26, - 96, - 10, - 25, - 129, - 1, - 130, - 2, - 97, - 1, - 0, - 144, - 129, - 3, - 147, - 144, - 147, - 28, - 147, - 144, - 147, - 2, - 148, - 131, - 26, - 144, - 147, - 10, - 96, - 1, - 131, - 141, - 1, - 1, - 53, - 146, - 139, - 3, - 96, - 0, - 25, - 1, - 144, - 147, - 2, - 144, - 3, - 28, - 2, - 146, - 80, - 146, - 80, - 146, - 80, - 97, - 68, - 107, - 131, - 131, - 131, - 97, - 99, - 52, - 86, - 91, - 96, - 64, - 81, - 99, - 27, - 24, - 145, - 237, - 96, - 227, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 0, - 131, - 131, - 96, - 1, - 129, - 129, - 16, - 97, - 69, - 31, - 87, - 97, - 69, - 31, - 97, - 136, - 105, - 86, - 91, - 145, - 144, - 145, - 1, - 53, - 96, - 248, - 28, - 145, - 80, - 96, - 2, - 144, - 80, - 96, - 0, - 128, - 128, - 91, - 132, - 96, - 255, - 22, - 129, - 20, - 97, - 66, - 33, - 87, - 131, - 146, - 80, - 135, - 135, - 132, - 129, - 129, - 16, - 97, - 69, - 81, - 87, - 97, - 69, - 81, - 97, - 136, - 105, - 86, - 91, - 97, - 69, - 98, - 146, - 1, - 53, - 96, - 248, - 28, - 144, - 80, - 132, - 97, - 137, - 47, - 86, - 91, - 97, - 69, - 109, - 144, - 96, - 1, - 97, - 137, - 47, - 86, - 91, - 145, - 80, - 134, - 130, - 17, - 21, - 97, - 69, - 147, - 87, - 96, - 64, - 81, - 99, - 128, - 246, - 59, - 209, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 129, - 1, - 131, - 144, - 82, - 96, - 36, - 1, - 97, - 25, - 118, - 86, - 91, - 54, - 96, - 0, - 97, - 69, - 162, - 132, - 134, - 139, - 141, - 97, - 137, - 102, - 86, - 91, - 148, - 150, - 80, - 134, - 148, - 144, - 146, - 80, - 144, - 80, - 97, - 69, - 197, - 97, - 69, - 188, - 130, - 96, - 1, - 129, - 134, - 97, - 137, - 102, - 86, - 91, - 138, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 80, - 80, - 128, - 97, - 69, - 209, - 144, - 97, - 137, - 144, - 86, - 91, - 144, - 80, - 97, - 69, - 50, - 86, - 91, - 97, - 69, - 229, - 96, - 0, - 51, - 132, - 132, - 97, - 101, - 143, - 86, - 91, - 80, - 80, - 96, - 64, - 81, - 129, - 129, - 82, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 131, - 22, - 144, - 51, - 144, - 127, - 11, - 11, - 130, - 25, - 83, - 229, - 84, - 91, - 113, - 242, - 8, - 88, - 51, - 228, - 168, - 223, - 208, - 217, - 155, - 189, - 255, - 81, - 24, - 152, - 103, - 42, - 232, - 23, - 154, - 152, - 45, - 243, - 144, - 96, - 32, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 163, - 80, - 80, - 86, - 91, - 97, - 70, - 55, - 96, - 0, - 131, - 131, - 97, - 101, - 221, - 86, - 91, - 129, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 127, - 28, - 113, - 30, - 202, - 141, - 11, - 105, - 75, - 188, - 176, - 161, - 68, - 98, - 167, - 0, - 98, - 34, - 231, - 33, - 149, - 75, - 44, - 95, - 247, - 152, - 246, - 6, - 129, - 126, - 177, - 16, - 50, - 130, - 96, - 64, - 81, - 97, - 70, - 114, - 145, - 129, - 82, - 96, - 32, - 1, - 144, - 86, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 162, - 80, - 80, - 86, - 91, - 96, - 64, - 81, - 99, - 46, - 26, - 125, - 77, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 129, - 1, - 130, - 144, - 82, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 132, - 22, - 144, - 99, - 46, - 26, - 125, - 77, - 144, - 96, - 36, - 1, - 96, - 0, - 96, - 64, - 81, - 128, - 131, - 3, - 129, - 96, - 0, - 135, - 128, - 59, - 21, - 128, - 21, - 97, - 70, - 192, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 90, - 241, - 21, - 128, - 21, - 97, - 70, - 212, - 87, - 61, - 96, - 0, - 128, - 62, - 61, - 96, - 0, - 253, - 91, - 80, - 80, - 96, - 64, - 128, - 81, - 96, - 0, - 128, - 130, - 82, - 96, - 32, - 130, - 1, - 146, - 131, - 144, - 82, - 147, - 80, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 134, - 22, - 146, - 80, - 132, - 145, - 97, - 71, - 1, - 145, - 144, - 97, - 136, - 228, - 86, - 91, - 96, - 0, - 96, - 64, - 81, - 128, - 131, - 3, - 129, - 133, - 135, - 90, - 241, - 146, - 80, - 80, - 80, - 61, - 128, - 96, - 0, - 129, - 20, - 97, - 71, - 62, - 87, - 96, - 64, - 81, - 145, - 80, - 96, - 31, - 25, - 96, - 63, - 61, - 1, - 22, - 130, - 1, - 96, - 64, - 82, - 61, - 130, - 82, - 61, - 96, - 0, - 96, - 32, - 132, - 1, - 62, - 97, - 71, - 67, - 86, - 91, - 96, - 96, - 145, - 80, - 91, - 80, - 80, - 144, - 80, - 128, - 97, - 40, - 3, - 87, - 96, - 64, - 81, - 99, - 117, - 244, - 38, - 131, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 0, - 96, - 64, - 81, - 99, - 169, - 5, - 156, - 187, - 96, - 224, - 27, - 96, - 0, - 82, - 131, - 96, - 4, - 82, - 130, - 96, - 36, - 82, - 96, - 32, - 96, - 0, - 96, - 68, - 96, - 0, - 128, - 137, - 90, - 241, - 61, - 21, - 96, - 31, - 61, - 17, - 96, - 1, - 96, - 0, - 81, - 20, - 22, - 23, - 22, - 145, - 80, - 96, - 0, - 96, - 96, - 82, - 128, - 96, - 64, - 82, - 80, - 128, - 97, - 40, - 3, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 15, - 96, - 36, - 130, - 1, - 82, - 110, - 21, - 20, - 144, - 83, - 148, - 209, - 145, - 84, - 151, - 209, - 144, - 82, - 83, - 17, - 81, - 96, - 138, - 27, - 96, - 68, - 130, - 1, - 82, - 96, - 100, - 1, - 97, - 25, - 118, - 86, - 91, - 97, - 71, - 236, - 129, - 97, - 102, - 98, - 86, - 91, - 128, - 81, - 96, - 6, - 146, - 144, - 146, - 1, - 128, - 84, - 96, - 32, - 131, - 1, - 81, - 96, - 64, - 132, - 1, - 81, - 96, - 96, - 133, - 1, - 81, - 96, - 128, - 134, - 1, - 81, - 96, - 160, - 135, - 1, - 81, - 96, - 192, - 136, - 1, - 81, - 96, - 224, - 144, - 152, - 1, - 81, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 144, - 153, - 22, - 113, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 25, - 144, - 150, - 22, - 149, - 144, - 149, - 23, - 96, - 1, - 96, - 128, - 27, - 97, - 255, - 255, - 149, - 134, - 22, - 2, - 23, - 99, - 255, - 255, - 255, - 255, - 96, - 144, - 27, - 25, - 22, - 96, - 1, - 96, - 144, - 27, - 147, - 133, - 22, - 147, - 144, - 147, - 2, - 97, - 255, - 255, - 96, - 160, - 27, - 25, - 22, - 146, - 144, - 146, - 23, - 96, - 1, - 96, - 160, - 27, - 145, - 132, - 22, - 145, - 144, - 145, - 2, - 23, - 99, - 255, - 255, - 255, - 255, - 96, - 176, - 27, - 25, - 22, - 96, - 1, - 96, - 176, - 27, - 145, - 131, - 22, - 145, - 144, - 145, - 2, - 97, - 255, - 255, - 96, - 192, - 27, - 25, - 22, - 23, - 96, - 1, - 96, - 192, - 27, - 145, - 144, - 146, - 22, - 2, - 23, - 100, - 255, - 255, - 255, - 255, - 255, - 96, - 208, - 27, - 25, - 22, - 96, - 1, - 96, - 208, - 27, - 99, - 255, - 255, - 255, - 255, - 144, - 147, - 22, - 146, - 144, - 146, - 2, - 96, - 255, - 96, - 240, - 27, - 25, - 22, - 145, - 144, - 145, - 23, - 96, - 1, - 96, - 240, - 27, - 146, - 21, - 21, - 146, - 144, - 146, - 2, - 145, - 144, - 145, - 23, - 144, - 85, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 133, - 97, - 1, - 0, - 1, - 81, - 96, - 0, - 1, - 81, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 144, - 80, - 96, - 0, - 97, - 73, - 34, - 135, - 97, - 1, - 0, - 1, - 81, - 96, - 128, - 1, - 81, - 97, - 255, - 255, - 22, - 97, - 39, - 16, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 145, - 144, - 145, - 2, - 4, - 144, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 73, - 47, - 136, - 97, - 102, - 127, - 86, - 91, - 144, - 80, - 97, - 73, - 74, - 135, - 132, - 138, - 97, - 1, - 0, - 1, - 81, - 96, - 128, - 1, - 81, - 97, - 255, - 255, - 22, - 132, - 97, - 102, - 158, - 86, - 91, - 148, - 80, - 97, - 73, - 92, - 133, - 132, - 132, - 132, - 138, - 96, - 15, - 11, - 97, - 103, - 173, - 86, - 91, - 147, - 80, - 80, - 80, - 80, - 147, - 80, - 147, - 145, - 80, - 80, - 86, - 91, - 96, - 0, - 97, - 73, - 141, - 97, - 47, - 86, - 133, - 97, - 1, - 32, - 1, - 81, - 96, - 32, - 1, - 81, - 96, - 255, - 22, - 133, - 97, - 104, - 200, - 144, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 146, - 80, - 97, - 73, - 186, - 97, - 47, - 86, - 133, - 97, - 1, - 32, - 1, - 81, - 96, - 96, - 1, - 81, - 96, - 255, - 22, - 132, - 97, - 104, - 200, - 144, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 145, - 80, - 96, - 0, - 128, - 97, - 73, - 216, - 134, - 128, - 81, - 96, - 32, - 144, - 145, - 1, - 81, - 144, - 145, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 145, - 130, - 22, - 147, - 80, - 22, - 144, - 80, - 96, - 0, - 97, - 73, - 244, - 134, - 132, - 97, - 104, - 223, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 74, - 2, - 134, - 132, - 97, - 104, - 223, - 86, - 91, - 144, - 80, - 97, - 74, - 21, - 129, - 131, - 17, - 130, - 132, - 3, - 2, - 131, - 3, - 97, - 74, - 55, - 86, - 91, - 152, - 151, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 97, - 74, - 45, - 131, - 97, - 74, - 145, - 86, - 91, - 144, - 147, - 4, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 96, - 1, - 96, - 128, - 27, - 130, - 16, - 97, - 74, - 73, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 144, - 86, - 91, - 96, - 0, - 97, - 24, - 76, - 130, - 96, - 192, - 1, - 81, - 99, - 255, - 255, - 255, - 255, - 22, - 97, - 74, - 110, - 132, - 96, - 96, - 1, - 81, - 97, - 255, - 255, - 22, - 97, - 104, - 244, - 86, - 91, - 1, - 97, - 105, - 65, - 86, - 91, - 96, - 0, - 128, - 97, - 74, - 132, - 134, - 134, - 134, - 134, - 134, - 97, - 103, - 173, - 86, - 91, - 144, - 150, - 3, - 150, - 149, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 97, - 74, - 158, - 130, - 96, - 18, - 97, - 136, - 82, - 86, - 91, - 97, - 24, - 76, - 144, - 96, - 10, - 97, - 138, - 141, - 86, - 91, - 96, - 0, - 128, - 99, - 1, - 225, - 133, - 89, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 132, - 2, - 4, - 144, - 80, - 96, - 0, - 97, - 39, - 16, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 134, - 2, - 4, - 144, - 80, - 134, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 16, - 21, - 97, - 74, - 254, - 87, - 96, - 64, - 81, - 99, - 177, - 21, - 88, - 223, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 129, - 1, - 136, - 144, - 82, - 96, - 36, - 1, - 97, - 25, - 118, - 86, - 91, - 134, - 96, - 0, - 3, - 97, - 75, - 31, - 87, - 96, - 64, - 81, - 99, - 34, - 5, - 51, - 99, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 129, - 21, - 128, - 97, - 75, - 42, - 87, - 80, - 128, - 21, - 91, - 21, - 97, - 75, - 57, - 87, - 133, - 146, - 80, - 80, - 80, - 97, - 33, - 31, - 86, - 91, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 135, - 3, - 97, - 75, - 82, - 87, - 133, - 146, - 80, - 80, - 80, - 97, - 33, - 31, - 86, - 91, - 96, - 0, - 97, - 75, - 102, - 136, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 97, - 136, - 165, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 75, - 115, - 130, - 97, - 105, - 84, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 75, - 147, - 132, - 99, - 59, - 154, - 202, - 0, - 97, - 75, - 137, - 136, - 97, - 105, - 241, - 86, - 91, - 97, - 32, - 214, - 145, - 144, - 97, - 137, - 71, - 86, - 91, - 144, - 80, - 96, - 0, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 97, - 75, - 170, - 131, - 133, - 97, - 138, - 153, - 86, - 91, - 97, - 75, - 180, - 145, - 144, - 97, - 139, - 52, - 86, - 91, - 144, - 80, - 96, - 0, - 103, - 27, - 193, - 109, - 103, - 78, - 200, - 0, - 0, - 97, - 75, - 203, - 135, - 128, - 97, - 137, - 71, - 86, - 91, - 97, - 75, - 213, - 145, - 144, - 97, - 139, - 98, - 86, - 91, - 144, - 80, - 96, - 0, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 97, - 75, - 236, - 137, - 132, - 97, - 137, - 71, - 86, - 91, - 97, - 75, - 246, - 145, - 144, - 97, - 139, - 52, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 76, - 4, - 130, - 133, - 97, - 136, - 165, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 76, - 17, - 130, - 97, - 106, - 149, - 86, - 91, - 144, - 80, - 97, - 76, - 29, - 129, - 143, - 97, - 65, - 53, - 86, - 91, - 159, - 158, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 4, - 130, - 1, - 84, - 96, - 255, - 22, - 21, - 97, - 76, - 74, - 87, - 96, - 4, - 130, - 1, - 128, - 84, - 96, - 255, - 25, - 22, - 144, - 85, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 129, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 2, - 131, - 1, - 96, - 32, - 82, - 96, - 64, - 144, - 32, - 84, - 96, - 255, - 22, - 97, - 26, - 105, - 87, - 96, - 3, - 130, - 1, - 128, - 84, - 96, - 1, - 128, - 130, - 1, - 131, - 85, - 96, - 0, - 146, - 131, - 82, - 96, - 32, - 128, - 132, - 32, - 144, - 146, - 1, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 134, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 25, - 144, - 145, - 22, - 129, - 23, - 144, - 145, - 85, - 131, - 82, - 96, - 2, - 133, - 1, - 144, - 145, - 82, - 96, - 64, - 144, - 145, - 32, - 128, - 84, - 96, - 255, - 25, - 22, - 144, - 145, - 23, - 144, - 85, - 80, - 80, - 86, - 91, - 97, - 38, - 4, - 131, - 51, - 132, - 132, - 97, - 108, - 62, - 86, - 91, - 96, - 3, - 129, - 1, - 84, - 21, - 97, - 76, - 222, - 87, - 97, - 76, - 222, - 97, - 139, - 118, - 86, - 91, - 96, - 4, - 129, - 1, - 128, - 84, - 96, - 255, - 25, - 22, - 96, - 1, - 23, - 144, - 85, - 97, - 25, - 233, - 96, - 3, - 130, - 1, - 96, - 0, - 97, - 130, - 18, - 86, - 91, - 96, - 0, - 128, - 128, - 128, - 97, - 77, - 11, - 135, - 135, - 135, - 97, - 48, - 92, - 86, - 91, - 144, - 80, - 96, - 0, - 129, - 19, - 21, - 97, - 77, - 90, - 87, - 146, - 80, - 130, - 97, - 77, - 37, - 135, - 51, - 136, - 132, - 97, - 108, - 197, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 134, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 1, - 136, - 1, - 96, - 32, - 82, - 96, - 64, - 129, - 32, - 128, - 84, - 131, - 146, - 144, - 97, - 77, - 79, - 144, - 132, - 144, - 97, - 137, - 47, - 86, - 91, - 144, - 145, - 85, - 80, - 97, - 77, - 181, - 144, - 80, - 86, - 91, - 96, - 0, - 129, - 18, - 21, - 97, - 77, - 181, - 87, - 97, - 77, - 108, - 129, - 97, - 139, - 140, - 86, - 91, - 145, - 80, - 97, - 77, - 122, - 135, - 51, - 136, - 133, - 97, - 101, - 143, - 86, - 91, - 144, - 147, - 80, - 145, - 80, - 130, - 21, - 97, - 77, - 181, - 87, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 134, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 1, - 136, - 1, - 96, - 32, - 82, - 96, - 64, - 129, - 32, - 128, - 84, - 133, - 146, - 144, - 97, - 77, - 175, - 144, - 132, - 144, - 97, - 136, - 82, - 86, - 91, - 144, - 145, - 85, - 80, - 80, - 91, - 80, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 144, - 148, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 2, - 144, - 149, - 1, - 96, - 32, - 82, - 96, - 64, - 144, - 148, - 32, - 128, - 84, - 96, - 255, - 25, - 22, - 144, - 85, - 147, - 144, - 80, - 86, - 91, - 97, - 77, - 232, - 97, - 130, - 48, - 86, - 91, - 96, - 0, - 97, - 77, - 242, - 97, - 130, - 48, - 86, - 91, - 96, - 128, - 135, - 1, - 81, - 96, - 0, - 144, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 97, - 78, - 22, - 87, - 135, - 97, - 1, - 0, - 1, - 81, - 96, - 64, - 1, - 81, - 97, - 78, - 33, - 86, - 91, - 135, - 97, - 1, - 0, - 1, - 81, - 96, - 160, - 1, - 81, - 91, - 97, - 255, - 255, - 22, - 144, - 80, - 97, - 78, - 55, - 136, - 128, - 81, - 96, - 32, - 144, - 145, - 1, - 81, - 144, - 145, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 144, - 129, - 22, - 96, - 96, - 133, - 1, - 82, - 22, - 96, - 64, - 131, - 1, - 82, - 97, - 78, - 87, - 136, - 134, - 97, - 47, - 187, - 86, - 91, - 146, - 80, - 97, - 78, - 109, - 136, - 131, - 96, - 64, - 1, - 81, - 132, - 96, - 96, - 1, - 81, - 134, - 97, - 48, - 1, - 86, - 91, - 130, - 82, - 97, - 78, - 155, - 135, - 97, - 78, - 134, - 87, - 136, - 97, - 1, - 32, - 1, - 81, - 96, - 96, - 1, - 81, - 97, - 78, - 145, - 86, - 91, - 136, - 97, - 1, - 32, - 1, - 81, - 96, - 32, - 1, - 81, - 91, - 135, - 144, - 96, - 255, - 22, - 97, - 104, - 200, - 86, - 91, - 96, - 128, - 131, - 1, - 129, - 144, - 82, - 96, - 64, - 137, - 1, - 81, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 192, - 132, - 1, - 82, - 97, - 39, - 16, - 144, - 97, - 78, - 196, - 144, - 131, - 144, - 97, - 137, - 71, - 86, - 91, - 97, - 78, - 206, - 145, - 144, - 97, - 139, - 98, - 86, - 91, - 96, - 160, - 131, - 1, - 82, - 80, - 145, - 80, - 148, - 80, - 148, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 128, - 96, - 0, - 97, - 79, - 12, - 137, - 97, - 1, - 0, - 1, - 81, - 96, - 128, - 1, - 81, - 97, - 255, - 255, - 22, - 97, - 39, - 16, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 145, - 144, - 145, - 2, - 4, - 144, - 86, - 91, - 144, - 80, - 134, - 21, - 97, - 79, - 39, - 87, - 96, - 64, - 136, - 1, - 81, - 96, - 96, - 137, - 1, - 81, - 149, - 80, - 146, - 80, - 97, - 79, - 55, - 86, - 91, - 96, - 64, - 136, - 1, - 81, - 96, - 96, - 137, - 1, - 81, - 144, - 149, - 80, - 146, - 80, - 91, - 97, - 79, - 89, - 136, - 96, - 192, - 1, - 81, - 137, - 96, - 160, - 1, - 81, - 138, - 96, - 128, - 1, - 81, - 97, - 79, - 83, - 145, - 144, - 97, - 136, - 82, - 86, - 91, - 144, - 97, - 104, - 223, - 86, - 91, - 97, - 79, - 99, - 144, - 132, - 97, - 137, - 47, - 86, - 91, - 145, - 80, - 134, - 21, - 97, - 79, - 149, - 87, - 97, - 79, - 142, - 130, - 138, - 97, - 1, - 0, - 1, - 81, - 96, - 0, - 1, - 81, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 131, - 137, - 140, - 96, - 0, - 1, - 81, - 97, - 103, - 173, - 86, - 91, - 147, - 80, - 97, - 79, - 187, - 86, - 91, - 97, - 79, - 184, - 130, - 138, - 97, - 1, - 0, - 1, - 81, - 96, - 0, - 1, - 81, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 131, - 137, - 140, - 96, - 0, - 1, - 81, - 97, - 109, - 4, - 86, - 91, - 147, - 80, - 91, - 80, - 80, - 80, - 148, - 80, - 148, - 146, - 80, - 80, - 80, - 86, - 91, - 130, - 130, - 2, - 129, - 21, - 21, - 132, - 21, - 133, - 131, - 4, - 133, - 20, - 23, - 22, - 97, - 79, - 223, - 87, - 96, - 0, - 128, - 253, - 91, - 96, - 1, - 130, - 96, - 1, - 131, - 3, - 4, - 1, - 129, - 21, - 21, - 2, - 144, - 80, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 130, - 130, - 2, - 129, - 21, - 21, - 132, - 21, - 133, - 131, - 4, - 133, - 20, - 23, - 22, - 97, - 80, - 13, - 87, - 96, - 0, - 128, - 253, - 91, - 4, - 146, - 145, - 80, - 80, - 86, - 91, - 52, - 21, - 97, - 26, - 105, - 87, - 97, - 80, - 36, - 130, - 130, - 97, - 76, - 48, - 86, - 91, - 128, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 99, - 208, - 227, - 13, - 176, - 52, - 96, - 64, - 81, - 130, - 99, - 255, - 255, - 255, - 255, - 22, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 0, - 96, - 64, - 81, - 128, - 131, - 3, - 129, - 133, - 136, - 128, - 59, - 21, - 128, - 21, - 97, - 80, - 95, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 90, - 241, - 21, - 128, - 21, - 97, - 67, - 65, - 87, - 61, - 96, - 0, - 128, - 62, - 61, - 96, - 0, - 253, - 91, - 96, - 0, - 128, - 128, - 96, - 11, - 132, - 16, - 21, - 97, - 80, - 163, - 87, - 96, - 64, - 81, - 99, - 112, - 206, - 228, - 175, - 96, - 225, - 27, - 129, - 82, - 96, - 11, - 96, - 4, - 130, - 1, - 82, - 96, - 36, - 129, - 1, - 133, - 144, - 82, - 96, - 68, - 1, - 97, - 25, - 118, - 86, - 91, - 80, - 80, - 80, - 144, - 53, - 96, - 252, - 129, - 144, - 28, - 146, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 96, - 184, - 131, - 144, - 28, - 22, - 146, - 96, - 255, - 96, - 176, - 132, - 144, - 28, - 22, - 96, - 10, - 10, - 96, - 80, - 147, - 144, - 147, - 27, - 96, - 9, - 25, - 144, - 145, - 1, - 96, - 8, - 2, - 97, - 1, - 0, - 3, - 28, - 145, - 144, - 145, - 2, - 144, - 86, - 91, - 96, - 0, - 128, - 97, - 80, - 239, - 132, - 97, - 33, - 165, - 86, - 91, - 97, - 81, - 23, - 87, - 96, - 64, - 81, - 99, - 106, - 36, - 6, - 163, - 96, - 225, - 27, - 129, - 82, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 133, - 22, - 96, - 4, - 130, - 1, - 82, - 96, - 36, - 1, - 97, - 25, - 118, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 132, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 8, - 96, - 32, - 129, - 144, - 82, - 96, - 64, - 144, - 145, - 32, - 96, - 7, - 129, - 1, - 84, - 145, - 1, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 145, - 130, - 22, - 145, - 22, - 134, - 21, - 97, - 81, - 104, - 87, - 97, - 81, - 101, - 134, - 97, - 81, - 91, - 51, - 133, - 97, - 43, - 170, - 86, - 91, - 97, - 10, - 24, - 51, - 133, - 97, - 43, - 170, - 86, - 91, - 148, - 80, - 91, - 132, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 0, - 3, - 97, - 81, - 146, - 87, - 96, - 64, - 81, - 99, - 2, - 0, - 232, - 169, - 96, - 227, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 97, - 81, - 159, - 134, - 97, - 5, - 0, - 135, - 97, - 110, - 64, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 145, - 130, - 22, - 149, - 80, - 22, - 146, - 80, - 131, - 21, - 128, - 97, - 81, - 186, - 87, - 80, - 130, - 21, - 91, - 21, - 97, - 81, - 216, - 87, - 96, - 64, - 81, - 99, - 33, - 60, - 124, - 197, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 0, - 96, - 64, - 81, - 128, - 97, - 1, - 0, - 1, - 96, - 64, - 82, - 128, - 51, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 136, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 66, - 129, - 82, - 96, - 32, - 1, - 134, - 129, - 82, - 96, - 32, - 1, - 133, - 129, - 82, - 96, - 32, - 1, - 132, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 131, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 97, - 82, - 61, - 136, - 97, - 110, - 64, - 86, - 91, - 96, - 15, - 11, - 144, - 82, - 144, - 80, - 97, - 82, - 77, - 129, - 97, - 110, - 86, - 86, - 91, - 80, - 80, - 80, - 129, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 131, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 136, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 127, - 253, - 255, - 236, - 167, - 81, - 240, - 220, - 170, - 183, - 85, - 49, - 203, - 129, - 60, - 18, - 187, - 253, - 86, - 238, - 62, - 150, - 76, - 196, - 113, - 215, - 239, - 67, - 147, - 36, - 2, - 238, - 24, - 136, - 136, - 139, - 96, - 64, - 81, - 97, - 82, - 187, - 147, - 146, - 145, - 144, - 146, - 131, - 82, - 96, - 32, - 131, - 1, - 145, - 144, - 145, - 82, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 64, - 130, - 1, - 82, - 96, - 96, - 1, - 144, - 86, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 164, - 80, - 80, - 80, - 147, - 80, - 147, - 145, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 97, - 82, - 218, - 132, - 97, - 33, - 165, - 86, - 91, - 97, - 83, - 2, - 87, - 96, - 64, - 81, - 99, - 106, - 36, - 6, - 163, - 96, - 225, - 27, - 129, - 82, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 133, - 22, - 96, - 4, - 130, - 1, - 82, - 96, - 36, - 1, - 97, - 25, - 118, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 132, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 8, - 96, - 32, - 129, - 144, - 82, - 96, - 64, - 144, - 145, - 32, - 96, - 7, - 129, - 1, - 84, - 145, - 1, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 145, - 130, - 22, - 145, - 22, - 134, - 21, - 97, - 83, - 104, - 87, - 51, - 96, - 0, - 144, - 129, - 82, - 96, - 10, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 138, - 22, - 132, - 82, - 144, - 145, - 82, - 144, - 32, - 84, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 148, - 80, - 91, - 132, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 0, - 3, - 97, - 83, - 146, - 87, - 96, - 64, - 81, - 99, - 2, - 0, - 232, - 169, - 96, - 227, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 97, - 83, - 168, - 134, - 97, - 83, - 159, - 135, - 97, - 110, - 64, - 86, - 91, - 97, - 5, - 0, - 144, - 97, - 136, - 127, - 86, - 91, - 129, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 145, - 80, - 128, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 144, - 80, - 128, - 148, - 80, - 129, - 149, - 80, - 80, - 80, - 96, - 0, - 96, - 64, - 81, - 128, - 97, - 1, - 0, - 1, - 96, - 64, - 82, - 128, - 51, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 136, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 66, - 129, - 82, - 96, - 32, - 1, - 134, - 129, - 82, - 96, - 32, - 1, - 133, - 129, - 82, - 96, - 32, - 1, - 132, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 131, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 97, - 84, - 45, - 136, - 97, - 110, - 64, - 86, - 91, - 97, - 84, - 54, - 144, - 97, - 136, - 127, - 86, - 91, - 96, - 15, - 11, - 144, - 82, - 144, - 80, - 97, - 84, - 70, - 129, - 97, - 110, - 86, - 86, - 91, - 80, - 80, - 80, - 129, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 131, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 136, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 127, - 48, - 132, - 202, - 244, - 137, - 102, - 92, - 171, - 7, - 69, - 44, - 254, - 79, - 61, - 14, - 181, - 224, - 220, - 21, - 234, - 198, - 252, - 101, - 128, - 152, - 133, - 142, - 99, - 158, - 112, - 229, - 58, - 136, - 136, - 139, - 96, - 64, - 81, - 97, - 82, - 187, - 147, - 146, - 145, - 144, - 146, - 131, - 82, - 96, - 32, - 131, - 1, - 145, - 144, - 145, - 82, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 64, - 130, - 1, - 82, - 96, - 96, - 1, - 144, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 131, - 96, - 64, - 1, - 81, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 0, - 3, - 97, - 84, - 231, - 87, - 96, - 64, - 81, - 99, - 175, - 69, - 140, - 7, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 32, - 128, - 133, - 1, - 128, - 81, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 8, - 144, - 146, - 82, - 96, - 64, - 144, - 145, - 32, - 144, - 81, - 97, - 85, - 17, - 144, - 97, - 33, - 165, - 86, - 91, - 97, - 85, - 63, - 87, - 96, - 32, - 133, - 1, - 81, - 96, - 64, - 81, - 99, - 106, - 36, - 6, - 163, - 96, - 225, - 27, - 129, - 82, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 144, - 145, - 22, - 96, - 4, - 130, - 1, - 82, - 96, - 36, - 1, - 97, - 25, - 118, - 86, - 91, - 96, - 128, - 133, - 1, - 81, - 96, - 15, - 128, - 84, - 96, - 255, - 144, - 146, - 22, - 96, - 1, - 20, - 96, - 255, - 25, - 144, - 146, - 22, - 145, - 144, - 145, - 23, - 144, - 85, - 96, - 2, - 129, - 1, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 51, - 20, - 97, - 85, - 133, - 87, - 96, - 6, - 129, - 1, - 84, - 96, - 1, - 96, - 144, - 27, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 85, - 150, - 86, - 91, - 96, - 6, - 129, - 1, - 84, - 96, - 1, - 96, - 192, - 27, - 144, - 4, - 97, - 255, - 255, - 22, - 91, - 96, - 15, - 128, - 84, - 97, - 255, - 255, - 146, - 144, - 146, - 22, - 96, - 1, - 96, - 168, - 27, - 2, - 97, - 255, - 255, - 96, - 168, - 27, - 25, - 131, - 22, - 129, - 23, - 144, - 145, - 85, - 96, - 255, - 144, - 129, - 22, - 145, - 22, - 23, - 21, - 97, - 86, - 17, - 87, - 96, - 4, - 129, - 1, - 84, - 96, - 17, - 85, - 96, - 7, - 129, - 1, - 84, - 96, - 15, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 146, - 131, - 22, - 97, - 1, - 0, - 2, - 97, - 1, - 0, - 96, - 1, - 96, - 168, - 27, - 3, - 25, - 144, - 145, - 22, - 23, - 144, - 85, - 96, - 8, - 130, - 1, - 84, - 96, - 16, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 25, - 22, - 145, - 144, - 146, - 22, - 23, - 144, - 85, - 97, - 86, - 92, - 86, - 91, - 96, - 5, - 129, - 1, - 84, - 96, - 17, - 85, - 96, - 8, - 129, - 1, - 84, - 96, - 15, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 146, - 131, - 22, - 97, - 1, - 0, - 2, - 97, - 1, - 0, - 96, - 1, - 96, - 168, - 27, - 3, - 25, - 144, - 145, - 22, - 23, - 144, - 85, - 96, - 7, - 130, - 1, - 84, - 96, - 16, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 25, - 22, - 145, - 144, - 146, - 22, - 23, - 144, - 85, - 91, - 97, - 86, - 100, - 97, - 130, - 48, - 86, - 91, - 96, - 0, - 128, - 97, - 86, - 116, - 136, - 96, - 32, - 1, - 81, - 97, - 111, - 185, - 86, - 91, - 145, - 80, - 145, - 80, - 129, - 97, - 86, - 150, - 87, - 96, - 64, - 81, - 99, - 57, - 139, - 54, - 219, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 15, - 84, - 96, - 0, - 144, - 97, - 86, - 207, - 144, - 51, - 144, - 96, - 255, - 22, - 97, - 86, - 188, - 87, - 96, - 8, - 135, - 1, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 97, - 43, - 170, - 86, - 91, - 96, - 7, - 135, - 1, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 97, - 43, - 170, - 86, - 91, - 144, - 80, - 136, - 96, - 0, - 1, - 81, - 96, - 255, - 22, - 96, - 1, - 20, - 97, - 86, - 243, - 87, - 136, - 96, - 64, - 1, - 81, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 97, - 86, - 245, - 86, - 91, - 128, - 91, - 96, - 15, - 84, - 144, - 151, - 80, - 97, - 87, - 52, - 144, - 96, - 255, - 22, - 97, - 87, - 26, - 87, - 96, - 8, - 134, - 1, - 84, - 96, - 1, - 96, - 160, - 27, - 144, - 4, - 96, - 255, - 22, - 97, - 87, - 42, - 86, - 91, - 96, - 7, - 134, - 1, - 84, - 96, - 1, - 96, - 160, - 27, - 144, - 4, - 96, - 255, - 22, - 91, - 136, - 144, - 96, - 255, - 22, - 97, - 104, - 200, - 86, - 91, - 96, - 96, - 138, - 1, - 81, - 96, - 15, - 84, - 145, - 152, - 80, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 150, - 80, - 97, - 87, - 127, - 144, - 96, - 255, - 22, - 97, - 87, - 105, - 87, - 96, - 7, - 134, - 1, - 84, - 96, - 1, - 96, - 160, - 27, - 144, - 4, - 96, - 255, - 22, - 97, - 78, - 145, - 86, - 91, - 96, - 8, - 134, - 1, - 84, - 135, - 144, - 96, - 1, - 96, - 160, - 27, - 144, - 4, - 96, - 255, - 22, - 97, - 104, - 200, - 86, - 91, - 145, - 132, - 82, - 80, - 96, - 224, - 131, - 1, - 134, - 144, - 82, - 96, - 1, - 132, - 1, - 84, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 144, - 129, - 22, - 96, - 192, - 133, - 1, - 82, - 97, - 1, - 0, - 132, - 1, - 130, - 144, - 82, - 132, - 84, - 96, - 1, - 96, - 128, - 27, - 129, - 4, - 130, - 22, - 96, - 96, - 134, - 1, - 82, - 22, - 96, - 64, - 132, - 1, - 82, - 147, - 80, - 80, - 96, - 0, - 131, - 144, - 3, - 97, - 87, - 226, - 87, - 96, - 64, - 81, - 99, - 115, - 12, - 49, - 191, - 96, - 225, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 128, - 96, - 224, - 1, - 81, - 96, - 0, - 3, - 97, - 88, - 7, - 87, - 96, - 64, - 81, - 99, - 175, - 69, - 140, - 7, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 128, - 96, - 192, - 1, - 81, - 96, - 0, - 3, - 97, - 88, - 44, - 87, - 96, - 64, - 81, - 99, - 2, - 0, - 232, - 169, - 96, - 227, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 97, - 1, - 0, - 129, - 1, - 81, - 96, - 15, - 84, - 96, - 0, - 145, - 130, - 145, - 130, - 145, - 130, - 145, - 130, - 145, - 130, - 145, - 130, - 145, - 144, - 96, - 255, - 22, - 21, - 97, - 88, - 97, - 87, - 96, - 64, - 137, - 1, - 81, - 96, - 96, - 138, - 1, - 81, - 144, - 152, - 80, - 148, - 80, - 97, - 88, - 112, - 86, - 91, - 96, - 64, - 137, - 1, - 81, - 96, - 96, - 138, - 1, - 81, - 152, - 80, - 148, - 80, - 91, - 96, - 224, - 137, - 1, - 81, - 96, - 15, - 84, - 144, - 147, - 80, - 97, - 39, - 16, - 144, - 97, - 88, - 148, - 144, - 96, - 1, - 96, - 168, - 27, - 144, - 4, - 97, - 255, - 255, - 22, - 133, - 97, - 137, - 71, - 86, - 91, - 97, - 88, - 158, - 145, - 144, - 97, - 139, - 98, - 86, - 91, - 96, - 160, - 138, - 1, - 82, - 96, - 13, - 84, - 21, - 97, - 89, - 21, - 87, - 96, - 0, - 96, - 13, - 84, - 138, - 96, - 160, - 1, - 81, - 97, - 88, - 191, - 145, - 144, - 97, - 139, - 98, - 86, - 91, - 144, - 80, - 128, - 138, - 96, - 160, - 1, - 129, - 129, - 81, - 97, - 88, - 211, - 145, - 144, - 97, - 136, - 82, - 86, - 91, - 144, - 82, - 80, - 96, - 15, - 84, - 97, - 89, - 19, - 144, - 127, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 144, - 97, - 1, - 0, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 131, - 97, - 115, - 21, - 86, - 91, - 80, - 91, - 96, - 160, - 137, - 1, - 81, - 97, - 89, - 36, - 144, - 132, - 97, - 136, - 82, - 86, - 91, - 145, - 80, - 97, - 89, - 61, - 137, - 96, - 192, - 1, - 81, - 132, - 97, - 104, - 223, - 144, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 97, - 89, - 71, - 144, - 137, - 97, - 137, - 47, - 86, - 91, - 150, - 80, - 97, - 89, - 96, - 137, - 96, - 192, - 1, - 81, - 131, - 97, - 104, - 223, - 144, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 97, - 89, - 106, - 144, - 137, - 97, - 137, - 47, - 86, - 91, - 149, - 80, - 97, - 89, - 131, - 137, - 96, - 192, - 1, - 81, - 130, - 97, - 104, - 223, - 144, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 97, - 89, - 141, - 144, - 134, - 97, - 136, - 82, - 86, - 91, - 96, - 15, - 84, - 144, - 148, - 80, - 96, - 0, - 147, - 80, - 131, - 146, - 80, - 96, - 255, - 22, - 21, - 144, - 80, - 97, - 89, - 183, - 87, - 96, - 96, - 136, - 1, - 131, - 144, - 82, - 96, - 64, - 136, - 1, - 133, - 144, - 82, - 97, - 89, - 198, - 86, - 91, - 96, - 96, - 136, - 1, - 133, - 144, - 82, - 96, - 64, - 136, - 1, - 131, - 144, - 82, - 91, - 97, - 89, - 227, - 141, - 96, - 32, - 1, - 81, - 137, - 96, - 0, - 1, - 81, - 138, - 96, - 64, - 1, - 81, - 139, - 96, - 96, - 1, - 81, - 66, - 97, - 17, - 154, - 86, - 91, - 144, - 146, - 80, - 144, - 80, - 129, - 97, - 90, - 19, - 87, - 135, - 81, - 96, - 64, - 81, - 99, - 4, - 36, - 180, - 45, - 96, - 227, - 27, - 129, - 82, - 96, - 4, - 129, - 1, - 145, - 144, - 145, - 82, - 96, - 36, - 129, - 1, - 130, - 144, - 82, - 96, - 68, - 1, - 97, - 25, - 118, - 86, - 91, - 96, - 15, - 11, - 96, - 32, - 128, - 137, - 1, - 145, - 144, - 145, - 82, - 140, - 1, - 81, - 96, - 0, - 145, - 80, - 97, - 90, - 48, - 144, - 136, - 97, - 115, - 116, - 86, - 91, - 144, - 80, - 128, - 97, - 90, - 86, - 87, - 96, - 15, - 84, - 96, - 255, - 22, - 21, - 97, - 90, - 78, - 87, - 96, - 64, - 135, - 1, - 133, - 144, - 82, - 97, - 90, - 86, - 86, - 91, - 96, - 96, - 135, - 1, - 133, - 144, - 82, - 91, - 80, - 96, - 32, - 139, - 1, - 81, - 96, - 64, - 135, - 1, - 81, - 96, - 96, - 136, - 1, - 81, - 96, - 192, - 137, - 1, - 81, - 96, - 15, - 84, - 97, - 90, - 165, - 148, - 147, - 146, - 145, - 144, - 96, - 255, - 22, - 97, - 90, - 132, - 87, - 96, - 0, - 97, - 90, - 136, - 86, - 91, - 96, - 17, - 84, - 91, - 96, - 15, - 84, - 96, - 255, - 22, - 97, - 90, - 154, - 87, - 96, - 17, - 84, - 97, - 90, - 157, - 86, - 91, - 96, - 0, - 91, - 96, - 18, - 84, - 97, - 116, - 46, - 86, - 91, - 96, - 15, - 84, - 96, - 0, - 144, - 129, - 144, - 96, - 255, - 22, - 21, - 97, - 90, - 216, - 87, - 80, - 80, - 96, - 7, - 135, - 1, - 84, - 96, - 8, - 136, - 1, - 84, - 96, - 255, - 96, - 1, - 96, - 160, - 27, - 146, - 131, - 144, - 4, - 129, - 22, - 146, - 144, - 145, - 4, - 22, - 97, - 90, - 247, - 86, - 91, - 80, - 80, - 96, - 8, - 135, - 1, - 84, - 96, - 7, - 136, - 1, - 84, - 96, - 255, - 96, - 1, - 96, - 160, - 27, - 146, - 131, - 144, - 4, - 129, - 22, - 146, - 144, - 145, - 4, - 22, - 91, - 96, - 224, - 136, - 1, - 81, - 97, - 91, - 6, - 144, - 131, - 97, - 74, - 33, - 86, - 91, - 96, - 224, - 137, - 1, - 82, - 97, - 1, - 0, - 136, - 1, - 81, - 97, - 91, - 27, - 144, - 130, - 97, - 74, - 33, - 86, - 91, - 136, - 97, - 1, - 0, - 1, - 129, - 129, - 82, - 80, - 80, - 80, - 80, - 97, - 91, - 77, - 96, - 15, - 96, - 0, - 1, - 96, - 1, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 135, - 96, - 224, - 1, - 81, - 97, - 116, - 238, - 86, - 91, - 96, - 16, - 84, - 97, - 1, - 0, - 135, - 1, - 81, - 97, - 91, - 105, - 145, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 144, - 97, - 70, - 43, - 86, - 91, - 96, - 16, - 84, - 96, - 15, - 84, - 96, - 32, - 141, - 1, - 81, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 146, - 131, - 22, - 146, - 97, - 1, - 0, - 144, - 146, - 4, - 144, - 145, - 22, - 144, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 129, - 22, - 144, - 127, - 97, - 126, - 155, - 20, - 125, - 3, - 180, - 78, - 28, - 201, - 66, - 120, - 47, - 118, - 32, - 200, - 150, - 51, - 38, - 149, - 107, - 101, - 163, - 96, - 8, - 242, - 129, - 202, - 97, - 147, - 2, - 50, - 144, - 97, - 91, - 192, - 144, - 97, - 24, - 82, - 86, - 91, - 138, - 96, - 224, - 1, - 81, - 139, - 97, - 1, - 0, - 1, - 81, - 140, - 96, - 160, - 1, - 81, - 141, - 96, - 32, - 1, - 81, - 96, - 64, - 81, - 97, - 92, - 4, - 149, - 148, - 147, - 146, - 145, - 144, - 148, - 133, - 82, - 96, - 32, - 133, - 1, - 147, - 144, - 147, - 82, - 96, - 64, - 132, - 1, - 145, - 144, - 145, - 82, - 96, - 96, - 131, - 1, - 82, - 96, - 128, - 130, - 1, - 82, - 96, - 160, - 1, - 144, - 86, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 164, - 80, - 80, - 96, - 15, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 184, - 27, - 3, - 25, - 22, - 144, - 85, - 80, - 80, - 96, - 16, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 25, - 22, - 144, - 85, - 80, - 96, - 0, - 96, - 17, - 129, - 144, - 85, - 96, - 18, - 85, - 96, - 32, - 149, - 144, - 149, - 1, - 81, - 96, - 224, - 134, - 1, - 81, - 97, - 1, - 0, - 144, - 150, - 1, - 81, - 144, - 150, - 144, - 148, - 80, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 129, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 0, - 3, - 97, - 92, - 133, - 87, - 96, - 64, - 81, - 99, - 77, - 251, - 160, - 35, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 0, - 98, - 255, - 255, - 255, - 139, - 22, - 21, - 97, - 92, - 152, - 87, - 138, - 97, - 92, - 161, - 86, - 91, - 96, - 5, - 84, - 98, - 255, - 255, - 255, - 22, - 91, - 144, - 80, - 128, - 98, - 255, - 255, - 255, - 22, - 96, - 0, - 3, - 97, - 92, - 201, - 87, - 96, - 64, - 81, - 99, - 7, - 147, - 223, - 99, - 96, - 226, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 98, - 255, - 255, - 255, - 129, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 6, - 96, - 32, - 82, - 96, - 64, - 129, - 32, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 141, - 22, - 21, - 21, - 146, - 145, - 144, - 130, - 144, - 97, - 92, - 255, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 97, - 139, - 168, - 86, - 91, - 145, - 144, - 97, - 1, - 0, - 10, - 129, - 84, - 129, - 99, - 255, - 255, - 255, - 255, - 2, - 25, - 22, - 144, - 131, - 99, - 255, - 255, - 255, - 255, - 22, - 2, - 23, - 144, - 85, - 144, - 80, - 97, - 93, - 53, - 131, - 131, - 131, - 96, - 40, - 146, - 144, - 146, - 27, - 96, - 32, - 145, - 144, - 145, - 27, - 23, - 23, - 144, - 86, - 91, - 147, - 80, - 80, - 96, - 0, - 96, - 8, - 96, - 0, - 133, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 144, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 32, - 144, - 80, - 139, - 129, - 96, - 2, - 1, - 96, - 0, - 97, - 1, - 0, - 10, - 129, - 84, - 129, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 2, - 25, - 22, - 144, - 131, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 2, - 23, - 144, - 85, - 80, - 129, - 128, - 21, - 97, - 93, - 153, - 87, - 80, - 97, - 255, - 255, - 139, - 22, - 21, - 91, - 21, - 97, - 93, - 189, - 87, - 96, - 64, - 81, - 99, - 246, - 244, - 163, - 143, - 96, - 224, - 27, - 129, - 82, - 97, - 255, - 255, - 140, - 22, - 96, - 4, - 130, - 1, - 82, - 96, - 36, - 1, - 97, - 25, - 118, - 86, - 91, - 96, - 0, - 97, - 93, - 200, - 66, - 97, - 105, - 65, - 86, - 91, - 96, - 1, - 131, - 129, - 1, - 128, - 84, - 99, - 255, - 255, - 255, - 255, - 96, - 128, - 27, - 25, - 22, - 96, - 1, - 96, - 128, - 27, - 99, - 255, - 255, - 255, - 255, - 133, - 22, - 2, - 23, - 144, - 85, - 98, - 255, - 255, - 255, - 134, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 7, - 96, - 32, - 129, - 144, - 82, - 96, - 64, - 130, - 32, - 128, - 84, - 145, - 135, - 1, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 147, - 132, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 25, - 128, - 131, - 22, - 130, - 23, - 132, - 85, - 132, - 84, - 96, - 1, - 96, - 1, - 96, - 168, - 27, - 3, - 25, - 147, - 132, - 22, - 144, - 146, - 23, - 96, - 1, - 96, - 160, - 27, - 146, - 131, - 144, - 4, - 96, - 255, - 144, - 129, - 22, - 132, - 2, - 145, - 144, - 145, - 23, - 144, - 148, - 85, - 147, - 144, - 150, - 1, - 128, - 84, - 96, - 8, - 139, - 1, - 128, - 84, - 145, - 144, - 150, - 22, - 148, - 129, - 22, - 133, - 23, - 134, - 85, - 144, - 84, - 145, - 22, - 144, - 146, - 23, - 145, - 133, - 144, - 4, - 22, - 144, - 147, - 2, - 146, - 144, - 146, - 23, - 144, - 145, - 85, - 144, - 145, - 80, - 97, - 255, - 255, - 138, - 129, - 22, - 20, - 97, - 94, - 139, - 87, - 96, - 0, - 97, - 94, - 142, - 86, - 91, - 96, - 1, - 91, - 144, - 80, - 96, - 0, - 96, - 64, - 81, - 128, - 97, - 1, - 0, - 1, - 96, - 64, - 82, - 128, - 138, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 134, - 97, - 94, - 189, - 87, - 96, - 12, - 84, - 96, - 255, - 22, - 97, - 94, - 191, - 86, - 91, - 139, - 91, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 142, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 131, - 97, - 94, - 221, - 87, - 140, - 97, - 94, - 225, - 86, - 91, - 97, - 1, - 244, - 91, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 141, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 134, - 97, - 95, - 0, - 87, - 96, - 0, - 97, - 95, - 2, - 86, - 91, - 143, - 91, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 132, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 131, - 21, - 21, - 129, - 82, - 80, - 144, - 80, - 97, - 95, - 50, - 129, - 133, - 97, - 71, - 227, - 144, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 96, - 0, - 128, - 97, - 95, - 72, - 137, - 139, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 97, - 40, - 9, - 86, - 91, - 145, - 80, - 145, - 80, - 97, - 95, - 85, - 129, - 97, - 74, - 55, - 86, - 91, - 97, - 95, - 94, - 131, - 97, - 74, - 55, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 145, - 130, - 22, - 96, - 1, - 96, - 128, - 27, - 2, - 144, - 130, - 22, - 23, - 135, - 85, - 96, - 8, - 135, - 1, - 84, - 96, - 7, - 136, - 1, - 84, - 96, - 64, - 128, - 81, - 139, - 21, - 21, - 129, - 82, - 147, - 142, - 22, - 96, - 32, - 133, - 1, - 82, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 146, - 131, - 22, - 147, - 145, - 144, - 146, - 22, - 145, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 141, - 22, - 145, - 127, - 118, - 9, - 244, - 94, - 22, - 55, - 139, - 176, - 120, - 40, - 132, - 113, - 155, - 162, - 77, - 59, - 188, - 90, - 182, - 163, - 115, - 185, - 234, - 202, - 204, - 37, - 198, - 20, - 59, - 135, - 207, - 119, - 145, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 164, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 153, - 152, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 41, - 131, - 20, - 97, - 96, - 26, - 87, - 96, - 64, - 81, - 99, - 112, - 206, - 228, - 175, - 96, - 225, - 27, - 129, - 82, - 96, - 41, - 96, - 4, - 130, - 1, - 82, - 96, - 36, - 129, - 1, - 132, - 144, - 82, - 96, - 68, - 1, - 97, - 25, - 118, - 86, - 91, - 80, - 80, - 80, - 96, - 1, - 129, - 1, - 53, - 96, - 96, - 144, - 129, - 28, - 146, - 96, - 21, - 144, - 146, - 1, - 53, - 144, - 28, - 144, - 86, - 91, - 96, - 0, - 129, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 131, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 3, - 97, - 96, - 103, - 87, - 96, - 64, - 81, - 99, - 59, - 14, - 45, - 229, - 96, - 226, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 80, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 128, - 131, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 9, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 147, - 133, - 22, - 131, - 82, - 146, - 144, - 82, - 32, - 84, - 98, - 255, - 255, - 255, - 22, - 128, - 21, - 97, - 96, - 185, - 87, - 96, - 64, - 81, - 99, - 51, - 37, - 250, - 119, - 96, - 224, - 27, - 129, - 82, - 98, - 255, - 255, - 255, - 130, - 22, - 96, - 4, - 130, - 1, - 82, - 96, - 36, - 1, - 97, - 25, - 118, - 86, - 91, - 96, - 0, - 128, - 132, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 99, - 49, - 60, - 229, - 103, - 96, - 64, - 81, - 129, - 99, - 255, - 255, - 255, - 255, - 22, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 32, - 96, - 64, - 81, - 128, - 131, - 3, - 129, - 134, - 90, - 250, - 21, - 128, - 21, - 97, - 96, - 250, - 87, - 61, - 96, - 0, - 128, - 62, - 61, - 96, - 0, - 253, - 91, - 80, - 80, - 80, - 80, - 96, - 64, - 81, - 61, - 96, - 31, - 25, - 96, - 31, - 130, - 1, - 22, - 130, - 1, - 128, - 96, - 64, - 82, - 80, - 129, - 1, - 144, - 97, - 97, - 30, - 145, - 144, - 97, - 139, - 203, - 86, - 91, - 132, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 99, - 49, - 60, - 229, - 103, - 96, - 64, - 81, - 129, - 99, - 255, - 255, - 255, - 255, - 22, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 32, - 96, - 64, - 81, - 128, - 131, - 3, - 129, - 134, - 90, - 250, - 21, - 128, - 21, - 97, - 97, - 92, - 87, - 61, - 96, - 0, - 128, - 62, - 61, - 96, - 0, - 253, - 91, - 80, - 80, - 80, - 80, - 96, - 64, - 81, - 61, - 96, - 31, - 25, - 96, - 31, - 130, - 1, - 22, - 130, - 1, - 128, - 96, - 64, - 82, - 80, - 129, - 1, - 144, - 97, - 97, - 128, - 145, - 144, - 97, - 139, - 203, - 86, - 91, - 144, - 146, - 80, - 144, - 80, - 97, - 97, - 166, - 96, - 255, - 131, - 22, - 96, - 6, - 96, - 18, - 129, - 131, - 20, - 145, - 131, - 17, - 145, - 144, - 145, - 23, - 130, - 130, - 20, - 145, - 144, - 146, - 16, - 23, - 22, - 144, - 86, - 91, - 97, - 97, - 200, - 87, - 96, - 64, - 81, - 99, - 202, - 149, - 3, - 145, - 96, - 224, - 27, - 129, - 82, - 96, - 255, - 131, - 22, - 96, - 4, - 130, - 1, - 82, - 96, - 36, - 1, - 97, - 25, - 118, - 86, - 91, - 97, - 97, - 233, - 96, - 255, - 130, - 22, - 96, - 6, - 96, - 18, - 129, - 131, - 20, - 145, - 131, - 17, - 145, - 144, - 145, - 23, - 130, - 130, - 20, - 145, - 144, - 146, - 16, - 23, - 22, - 144, - 86, - 91, - 97, - 98, - 11, - 87, - 96, - 64, - 81, - 99, - 202, - 149, - 3, - 145, - 96, - 224, - 27, - 129, - 82, - 96, - 255, - 130, - 22, - 96, - 4, - 130, - 1, - 82, - 96, - 36, - 1, - 97, - 25, - 118, - 86, - 91, - 96, - 5, - 128, - 84, - 96, - 0, - 144, - 97, - 98, - 32, - 144, - 98, - 255, - 255, - 255, - 22, - 97, - 139, - 238, - 86, - 91, - 130, - 84, - 97, - 1, - 0, - 146, - 144, - 146, - 10, - 98, - 255, - 255, - 255, - 129, - 129, - 2, - 25, - 144, - 147, - 22, - 146, - 130, - 22, - 144, - 129, - 2, - 146, - 144, - 146, - 23, - 144, - 146, - 85, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 135, - 129, - 22, - 96, - 0, - 129, - 129, - 82, - 96, - 9, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 139, - 134, - 22, - 128, - 133, - 82, - 144, - 131, - 82, - 129, - 132, - 32, - 128, - 84, - 98, - 255, - 255, - 255, - 25, - 22, - 136, - 23, - 144, - 85, - 129, - 81, - 96, - 128, - 129, - 1, - 131, - 82, - 133, - 129, - 82, - 96, - 255, - 139, - 129, - 22, - 130, - 134, - 1, - 129, - 129, - 82, - 131, - 134, - 1, - 133, - 129, - 82, - 141, - 132, - 22, - 96, - 96, - 134, - 1, - 129, - 129, - 82, - 141, - 139, - 82, - 96, - 7, - 138, - 82, - 153, - 136, - 144, - 32, - 149, - 81, - 134, - 84, - 147, - 81, - 144, - 141, - 22, - 96, - 1, - 96, - 1, - 96, - 168, - 27, - 3, - 25, - 148, - 133, - 22, - 23, - 96, - 1, - 96, - 160, - 27, - 145, - 135, - 22, - 130, - 2, - 23, - 135, - 85, - 145, - 81, - 96, - 1, - 150, - 144, - 150, - 1, - 128, - 84, - 154, - 81, - 150, - 144, - 156, - 22, - 153, - 144, - 146, - 22, - 152, - 144, - 152, - 23, - 147, - 144, - 146, - 22, - 144, - 150, - 2, - 145, - 144, - 145, - 23, - 144, - 150, - 85, - 129, - 81, - 147, - 132, - 82, - 145, - 131, - 1, - 148, - 144, - 148, - 82, - 148, - 151, - 80, - 144, - 146, - 145, - 127, - 192, - 197, - 223, - 152, - 164, - 202, - 135, - 163, - 33, - 163, - 59, - 241, - 39, - 124, - 243, - 45, - 49, - 169, - 123, - 108, - 225, - 75, - 151, - 71, - 56, - 33, - 73, - 185, - 226, - 99, - 30, - 163, - 145, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 164, - 80, - 80, - 146, - 145, - 80, - 80, - 86, - 91, - 51, - 96, - 0, - 144, - 129, - 82, - 96, - 10, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 135, - 22, - 132, - 82, - 144, - 145, - 82, - 129, - 32, - 128, - 84, - 144, - 145, - 96, - 1, - 96, - 128, - 27, - 144, - 145, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 144, - 3, - 97, - 99, - 153, - 87, - 96, - 64, - 81, - 99, - 47, - 155, - 2, - 219, - 96, - 225, - 27, - 129, - 82, - 51, - 96, - 4, - 130, - 1, - 82, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 133, - 22, - 96, - 36, - 130, - 1, - 82, - 96, - 68, - 1, - 97, - 25, - 118, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 132, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 8, - 96, - 32, - 129, - 144, - 82, - 96, - 64, - 144, - 145, - 32, - 96, - 4, - 129, - 1, - 84, - 96, - 5, - 130, - 1, - 84, - 96, - 3, - 131, - 1, - 84, - 96, - 7, - 132, - 1, - 84, - 148, - 132, - 1, - 84, - 147, - 148, - 146, - 147, - 145, - 146, - 144, - 145, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 145, - 130, - 22, - 145, - 22, - 97, - 99, - 237, - 135, - 134, - 134, - 134, - 97, - 117, - 53, - 86, - 91, - 80, - 96, - 0, - 145, - 80, - 80, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 138, - 129, - 22, - 20, - 97, - 100, - 9, - 87, - 137, - 97, - 100, - 24, - 86, - 91, - 96, - 4, - 136, - 1, - 84, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 91, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 144, - 80, - 96, - 0, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 128, - 22, - 138, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 20, - 97, - 100, - 68, - 87, - 137, - 97, - 100, - 90, - 86, - 91, - 96, - 4, - 137, - 1, - 84, - 96, - 1, - 96, - 128, - 27, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 91, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 144, - 80, - 97, - 100, - 110, - 130, - 97, - 74, - 55, - 86, - 91, - 96, - 4, - 138, - 1, - 128, - 84, - 96, - 0, - 144, - 97, - 100, - 139, - 144, - 132, - 144, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 97, - 140, - 6, - 86, - 91, - 146, - 80, - 97, - 1, - 0, - 10, - 129, - 84, - 129, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 2, - 25, - 22, - 144, - 131, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 2, - 23, - 144, - 85, - 80, - 97, - 100, - 184, - 129, - 97, - 74, - 55, - 86, - 91, - 96, - 4, - 138, - 1, - 128, - 84, - 96, - 16, - 144, - 97, - 100, - 220, - 144, - 132, - 144, - 96, - 1, - 96, - 128, - 27, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 97, - 140, - 6, - 86, - 91, - 146, - 80, - 97, - 1, - 0, - 10, - 129, - 84, - 129, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 2, - 25, - 22, - 144, - 131, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 2, - 23, - 144, - 85, - 80, - 96, - 0, - 130, - 17, - 21, - 97, - 101, - 20, - 87, - 97, - 101, - 20, - 51, - 133, - 132, - 97, - 115, - 21, - 86, - 91, - 128, - 21, - 97, - 101, - 37, - 87, - 97, - 101, - 37, - 51, - 132, - 131, - 97, - 115, - 21, - 86, - 91, - 96, - 64, - 128, - 81, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 142, - 22, - 129, - 82, - 96, - 32, - 129, - 1, - 132, - 144, - 82, - 144, - 129, - 1, - 130, - 144, - 82, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 128, - 133, - 22, - 145, - 144, - 134, - 22, - 144, - 51, - 144, - 127, - 61, - 77, - 68, - 65, - 44, - 245, - 221, - 218, - 92, - 53, - 136, - 92, - 203, - 130, - 210, - 76, - 94, - 57, - 133, - 24, - 235, - 124, - 251, - 17, - 109, - 70, - 235, - 126, - 75, - 190, - 14, - 123, - 144, - 96, - 96, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 164, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 97, - 101, - 156, - 134, - 133, - 97, - 76, - 48, - 86, - 91, - 80, - 80, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 146, - 131, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 32, - 148, - 133, - 82, - 96, - 64, - 128, - 130, - 32, - 147, - 144, - 148, - 22, - 129, - 82, - 145, - 144, - 147, - 82, - 32, - 128, - 84, - 130, - 129, - 17, - 131, - 130, - 3, - 2, - 129, - 3, - 144, - 129, - 144, - 3, - 144, - 145, - 85, - 145, - 144, - 130, - 144, - 3, - 144, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 130, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 1, - 132, - 1, - 96, - 32, - 82, - 96, - 64, - 144, - 32, - 84, - 128, - 130, - 17, - 21, - 97, - 102, - 35, - 87, - 96, - 64, - 81, - 99, - 49, - 82, - 118, - 201, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 129, - 1, - 130, - 144, - 82, - 96, - 36, - 129, - 1, - 131, - 144, - 82, - 96, - 68, - 1, - 97, - 25, - 118, - 86, - 91, - 97, - 102, - 45, - 132, - 132, - 97, - 76, - 48, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 131, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 1, - 133, - 1, - 96, - 32, - 82, - 96, - 64, - 129, - 32, - 128, - 84, - 132, - 146, - 144, - 97, - 102, - 87, - 144, - 132, - 144, - 97, - 136, - 82, - 86, - 91, - 144, - 145, - 85, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 97, - 102, - 110, - 131, - 97, - 118, - 193, - 86, - 91, - 145, - 80, - 145, - 80, - 129, - 97, - 38, - 4, - 87, - 128, - 81, - 129, - 96, - 32, - 1, - 253, - 91, - 96, - 0, - 97, - 24, - 76, - 130, - 96, - 96, - 1, - 81, - 99, - 255, - 255, - 255, - 255, - 22, - 131, - 97, - 47, - 187, - 144, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 96, - 0, - 128, - 97, - 102, - 171, - 134, - 134, - 97, - 104, - 223, - 86, - 91, - 144, - 80, - 128, - 21, - 97, - 103, - 164, - 87, - 96, - 0, - 97, - 102, - 190, - 130, - 97, - 120, - 224, - 86, - 91, - 144, - 80, - 99, - 1, - 225, - 133, - 89, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 133, - 129, - 2, - 145, - 144, - 145, - 4, - 144, - 97, - 39, - 16, - 144, - 135, - 2, - 4, - 96, - 0, - 103, - 27, - 193, - 109, - 103, - 78, - 200, - 0, - 0, - 97, - 102, - 242, - 131, - 128, - 97, - 137, - 71, - 86, - 91, - 97, - 102, - 252, - 145, - 144, - 97, - 139, - 98, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 103, - 10, - 132, - 131, - 97, - 137, - 71, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 103, - 32, - 132, - 99, - 59, - 154, - 202, - 0, - 97, - 75, - 137, - 136, - 97, - 105, - 241, - 86, - 91, - 144, - 80, - 96, - 0, - 129, - 131, - 97, - 103, - 56, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 138, - 97, - 138, - 153, - 86, - 91, - 97, - 103, - 66, - 145, - 144, - 97, - 140, - 46, - 86, - 91, - 97, - 103, - 76, - 145, - 144, - 97, - 139, - 52, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 103, - 89, - 130, - 97, - 122, - 187, - 86, - 91, - 144, - 80, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 129, - 19, - 21, - 97, - 103, - 135, - 87, - 96, - 64, - 81, - 99, - 177, - 21, - 88, - 223, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 129, - 1, - 130, - 144, - 82, - 96, - 36, - 1, - 97, - 25, - 118, - 86, - 91, - 97, - 103, - 153, - 129, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 97, - 136, - 165, - 86, - 91, - 153, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 91, - 80, - 148, - 147, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 134, - 17, - 21, - 97, - 103, - 216, - 87, - 96, - 64, - 81, - 99, - 170, - 243, - 149, - 111, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 134, - 3, - 97, - 103, - 238, - 87, - 80, - 128, - 97, - 29, - 139, - 86, - 91, - 133, - 96, - 0, - 3, - 97, - 104, - 7, - 87, - 97, - 104, - 0, - 130, - 134, - 97, - 140, - 46, - 86, - 91, - 144, - 80, - 97, - 29, - 139, - 86, - 91, - 130, - 21, - 97, - 104, - 162, - 87, - 96, - 0, - 97, - 104, - 29, - 132, - 99, - 1, - 225, - 133, - 88, - 97, - 104, - 223, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 104, - 42, - 130, - 97, - 105, - 241, - 86, - 91, - 144, - 80, - 97, - 104, - 58, - 99, - 59, - 154, - 202, - 0, - 130, - 97, - 137, - 71, - 86, - 91, - 144, - 80, - 97, - 104, - 70, - 134, - 130, - 97, - 65, - 53, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 104, - 92, - 137, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 97, - 136, - 165, - 86, - 91, - 144, - 80, - 97, - 104, - 103, - 129, - 97, - 105, - 84, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 104, - 117, - 131, - 131, - 97, - 136, - 165, - 86, - 91, - 144, - 80, - 97, - 104, - 128, - 129, - 97, - 122, - 187, - 86, - 91, - 144, - 80, - 133, - 97, - 104, - 141, - 138, - 131, - 97, - 123, - 36, - 86, - 91, - 97, - 104, - 151, - 145, - 144, - 97, - 140, - 46, - 86, - 91, - 148, - 80, - 80, - 80, - 80, - 80, - 97, - 29, - 139, - 86, - 91, - 129, - 97, - 104, - 190, - 134, - 97, - 104, - 185, - 137, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 97, - 136, - 165, - 86, - 91, - 97, - 123, - 36, - 86, - 91, - 97, - 48, - 142, - 145, - 144, - 97, - 140, - 46, - 86, - 91, - 96, - 0, - 128, - 97, - 104, - 212, - 131, - 97, - 74, - 145, - 86, - 91, - 147, - 144, - 147, - 2, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 97, - 17, - 147, - 131, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 132, - 97, - 79, - 245, - 86, - 91, - 96, - 64, - 128, - 81, - 96, - 4, - 129, - 82, - 96, - 36, - 129, - 1, - 144, - 145, - 82, - 96, - 32, - 129, - 1, - 128, - 81, - 96, - 1, - 96, - 1, - 96, - 224, - 27, - 3, - 22, - 99, - 11, - 190, - 187, - 51, - 96, - 227, - 27, - 23, - 144, - 82, - 98, - 1, - 81, - 128, - 130, - 2, - 144, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 130, - 17, - 21, - 97, - 105, - 59, - 87, - 128, - 81, - 129, - 96, - 32, - 1, - 253, - 91, - 80, - 145, - 144, - 80, - 86, - 91, - 96, - 0, - 100, - 1, - 0, - 0, - 0, - 0, - 130, - 16, - 97, - 74, - 73, - 87, - 96, - 0, - 128, - 253, - 91, - 96, - 0, - 103, - 6, - 240, - 91, - 89, - 211, - 178, - 0, - 0, - 130, - 3, - 97, - 105, - 109, - 87, - 80, - 96, - 0, - 145, - 144, - 80, - 86, - 91, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 130, - 18, - 97, - 105, - 149, - 87, - 96, - 64, - 81, - 99, - 7, - 160, - 33, - 39, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 129, - 96, - 0, - 3, - 97, - 105, - 182, - 87, - 96, - 64, - 81, - 99, - 34, - 237, - 89, - 133, - 96, - 226, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 0, - 97, - 105, - 195, - 131, - 96, - 2, - 97, - 138, - 153, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 105, - 208, - 130, - 97, - 123, - 57, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 105, - 230, - 103, - 19, - 160, - 75, - 189, - 253, - 201, - 190, - 136, - 131, - 97, - 123, - 36, - 86, - 91, - 144, - 80, - 97, - 29, - 139, - 129, - 97, - 139, - 140, - 86, - 91, - 96, - 181, - 129, - 96, - 1, - 96, - 136, - 27, - 129, - 16, - 97, - 106, - 10, - 87, - 96, - 64, - 145, - 144, - 145, - 27, - 144, - 96, - 128, - 28, - 91, - 105, - 1, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 129, - 16, - 97, - 106, - 38, - 87, - 96, - 32, - 145, - 144, - 145, - 27, - 144, - 96, - 64, - 28, - 91, - 101, - 1, - 0, - 0, - 0, - 0, - 0, - 129, - 16, - 97, - 106, - 62, - 87, - 96, - 16, - 145, - 144, - 145, - 27, - 144, - 96, - 32, - 28, - 91, - 99, - 1, - 0, - 0, - 0, - 129, - 16, - 97, - 106, - 84, - 87, - 96, - 8, - 145, - 144, - 145, - 27, - 144, - 96, - 16, - 28, - 91, - 98, - 1, - 0, - 0, - 1, - 2, - 96, - 18, - 28, - 128, - 130, - 4, - 1, - 96, - 1, - 144, - 129, - 28, - 128, - 131, - 4, - 1, - 129, - 28, - 128, - 131, - 4, - 1, - 129, - 28, - 128, - 131, - 4, - 1, - 129, - 28, - 128, - 131, - 4, - 1, - 129, - 28, - 128, - 131, - 4, - 1, - 129, - 28, - 128, - 131, - 4, - 1, - 144, - 28, - 144, - 129, - 144, - 4, - 129, - 17, - 144, - 3, - 144, - 86, - 91, - 96, - 0, - 104, - 2, - 72, - 206, - 54, - 167, - 12, - 178, - 107, - 62, - 25, - 130, - 19, - 97, - 106, - 176, - 87, - 80, - 96, - 0, - 145, - 144, - 80, - 86, - 91, - 104, - 7, - 85, - 191, - 121, - 139, - 74, - 27, - 241, - 229, - 130, - 18, - 97, - 106, - 247, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 12, - 96, - 36, - 130, - 1, - 82, - 107, - 69, - 88, - 80, - 95, - 79, - 86, - 69, - 82, - 70, - 76, - 79, - 87, - 96, - 160, - 27, - 96, - 68, - 130, - 1, - 82, - 96, - 100, - 1, - 97, - 25, - 118, - 86, - 91, - 101, - 3, - 120, - 45, - 172, - 233, - 217, - 96, - 78, - 131, - 144, - 27, - 5, - 145, - 80, - 96, - 0, - 96, - 96, - 107, - 177, - 114, - 23, - 247, - 209, - 207, - 121, - 171, - 201, - 227, - 179, - 152, - 132, - 130, - 27, - 5, - 96, - 1, - 96, - 95, - 27, - 1, - 144, - 29, - 107, - 177, - 114, - 23, - 247, - 209, - 207, - 121, - 171, - 201, - 227, - 179, - 152, - 129, - 2, - 144, - 147, - 3, - 108, - 36, - 12, - 51, - 14, - 159, - 178, - 217, - 203, - 175, - 15, - 213, - 170, - 251, - 25, - 129, - 1, - 129, - 2, - 96, - 96, - 144, - 129, - 29, - 109, - 2, - 119, - 89, - 73, - 145, - 207, - 200, - 95, - 110, - 36, - 97, - 131, - 124, - 217, - 1, - 130, - 2, - 129, - 29, - 109, - 26, - 82, - 18, - 85, - 227, - 79, - 106, - 80, - 97, - 178, - 94, - 241, - 201, - 195, - 25, - 1, - 130, - 2, - 129, - 29, - 109, - 177, - 187, - 178, - 1, - 244, - 67, - 207, - 150, - 47, - 26, - 29, - 61, - 180, - 165, - 1, - 130, - 2, - 129, - 29, - 110, - 2, - 199, - 35, - 136, - 217, - 247, - 79, - 81, - 169, - 51, - 31, - 237, - 105, - 63, - 20, - 25, - 1, - 130, - 2, - 129, - 29, - 110, - 5, - 24, - 11, - 177, - 71, - 153, - 171, - 71, - 168, - 168, - 203, - 42, - 82, - 125, - 87, - 1, - 109, - 2, - 209, - 103, - 32, - 87, - 123, - 209, - 155, - 246, - 20, - 23, - 111, - 233, - 234, - 108, - 16, - 254, - 104, - 231, - 253, - 55, - 208, - 0, - 123, - 113, - 63, - 118, - 80, - 132, - 1, - 132, - 2, - 131, - 29, - 144, - 129, - 1, - 144, - 132, - 1, - 109, - 1, - 211, - 150, - 126, - 211, - 15, - 196, - 248, - 156, - 2, - 186, - 181, - 112, - 129, - 25, - 1, - 2, - 144, - 145, - 29, - 110, - 5, - 135, - 245, - 3, - 187, - 110, - 162, - 157, - 37, - 252, - 183, - 64, - 25, - 100, - 80, - 1, - 144, - 145, - 2, - 109, - 54, - 13, - 122, - 238, - 160, - 147, - 38, - 62, - 204, - 110, - 14, - 203, - 41, - 23, - 96, - 98, - 27, - 1, - 5, - 116, - 2, - 157, - 157, - 195, - 133, - 99, - 195, - 46, - 92, - 47, - 109, - 193, - 146, - 238, - 112, - 239, - 101, - 249, - 151, - 138, - 243, - 2, - 96, - 195, - 147, - 144, - 147, - 3, - 146, - 144, - 146, - 28, - 146, - 145, - 80, - 80, - 86, - 91, - 96, - 0, - 96, - 64, - 81, - 99, - 35, - 184, - 114, - 221, - 96, - 224, - 27, - 96, - 0, - 82, - 132, - 96, - 4, - 82, - 131, - 96, - 36, - 82, - 130, - 96, - 68, - 82, - 96, - 32, - 96, - 0, - 96, - 100, - 96, - 0, - 128, - 138, - 90, - 241, - 61, - 21, - 96, - 31, - 61, - 17, - 96, - 1, - 96, - 0, - 81, - 20, - 22, - 23, - 22, - 145, - 80, - 96, - 0, - 96, - 96, - 82, - 128, - 96, - 64, - 82, - 80, - 128, - 97, - 63, - 108, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 20, - 96, - 36, - 130, - 1, - 82, - 115, - 21, - 20, - 144, - 83, - 148, - 209, - 145, - 84, - 151, - 209, - 148, - 147, - 211, - 87, - 209, - 144, - 82, - 83, - 17, - 81, - 96, - 98, - 27, - 96, - 68, - 130, - 1, - 82, - 96, - 100, - 1, - 97, - 25, - 118, - 86, - 91, - 97, - 108, - 207, - 132, - 131, - 97, - 76, - 48, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 128, - 132, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 32, - 134, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 147, - 134, - 22, - 131, - 82, - 146, - 144, - 82, - 144, - 129, - 32, - 128, - 84, - 131, - 146, - 144, - 97, - 102, - 87, - 144, - 132, - 144, - 97, - 137, - 47, - 86, - 91, - 96, - 0, - 130, - 21, - 97, - 110, - 21, - 87, - 96, - 0, - 97, - 109, - 28, - 132, - 99, - 1, - 225, - 133, - 88, - 97, - 104, - 223, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 109, - 41, - 130, - 97, - 105, - 241, - 86, - 91, - 144, - 80, - 97, - 109, - 57, - 99, - 59, - 154, - 202, - 0, - 130, - 97, - 137, - 71, - 86, - 91, - 144, - 80, - 97, - 109, - 69, - 134, - 130, - 97, - 65, - 53, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 109, - 92, - 97, - 109, - 86, - 134, - 139, - 97, - 140, - 46, - 86, - 91, - 137, - 97, - 125, - 178, - 86, - 91, - 144, - 80, - 96, - 0, - 129, - 18, - 21, - 97, - 109, - 128, - 87, - 96, - 64, - 81, - 99, - 170, - 243, - 149, - 111, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 129, - 19, - 21, - 97, - 109, - 169, - 87, - 96, - 64, - 81, - 99, - 170, - 243, - 149, - 111, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 129, - 3, - 97, - 109, - 196, - 87, - 96, - 0, - 147, - 80, - 80, - 80, - 80, - 97, - 29, - 139, - 86, - 91, - 128, - 96, - 0, - 3, - 97, - 109, - 223, - 87, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 147, - 80, - 80, - 80, - 80, - 97, - 29, - 139, - 86, - 91, - 97, - 109, - 232, - 129, - 97, - 105, - 84, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 109, - 246, - 131, - 131, - 97, - 140, - 46, - 86, - 91, - 144, - 80, - 97, - 110, - 1, - 129, - 97, - 122, - 187, - 86, - 91, - 144, - 80, - 97, - 104, - 151, - 129, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 97, - 136, - 165, - 86, - 91, - 96, - 0, - 97, - 110, - 33, - 131, - 136, - 97, - 140, - 46, - 86, - 91, - 144, - 80, - 133, - 97, - 110, - 46, - 130, - 130, - 97, - 125, - 178, - 86, - 91, - 97, - 74, - 21, - 144, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 97, - 136, - 165, - 86, - 91, - 96, - 0, - 96, - 1, - 96, - 1, - 96, - 127, - 27, - 3, - 130, - 17, - 21, - 97, - 74, - 73, - 87, - 96, - 0, - 128, - 253, - 91, - 96, - 32, - 128, - 130, - 1, - 128, - 81, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 144, - 129, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 8, - 132, - 82, - 96, - 64, - 128, - 130, - 32, - 134, - 81, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 131, - 82, - 96, - 10, - 134, - 82, - 129, - 131, - 32, - 148, - 81, - 144, - 147, - 22, - 130, - 82, - 146, - 144, - 147, - 82, - 144, - 130, - 32, - 96, - 4, - 130, - 1, - 84, - 96, - 5, - 131, - 1, - 84, - 96, - 3, - 132, - 1, - 84, - 133, - 148, - 133, - 148, - 144, - 147, - 144, - 146, - 97, - 110, - 188, - 146, - 132, - 146, - 145, - 144, - 97, - 117, - 53, - 86, - 91, - 96, - 32, - 137, - 1, - 81, - 137, - 81, - 96, - 224, - 139, - 1, - 81, - 148, - 153, - 80, - 146, - 151, - 80, - 144, - 149, - 80, - 96, - 0, - 146, - 97, - 110, - 225, - 146, - 144, - 96, - 15, - 11, - 97, - 16, - 169, - 86, - 91, - 144, - 80, - 128, - 97, - 111, - 19, - 87, - 96, - 6, - 131, - 1, - 84, - 96, - 64, - 81, - 99, - 38, - 136, - 198, - 203, - 96, - 226, - 27, - 129, - 82, - 96, - 1, - 96, - 128, - 27, - 144, - 145, - 4, - 97, - 255, - 255, - 22, - 96, - 4, - 130, - 1, - 82, - 96, - 36, - 1, - 97, - 25, - 118, - 86, - 91, - 96, - 64, - 135, - 1, - 81, - 96, - 224, - 136, - 1, - 81, - 97, - 111, - 40, - 145, - 132, - 145, - 97, - 125, - 199, - 86, - 91, - 96, - 224, - 135, - 1, - 81, - 96, - 32, - 128, - 137, - 1, - 81, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 8, - 144, - 145, - 82, - 96, - 64, - 144, - 32, - 97, - 111, - 83, - 145, - 97, - 126, - 29, - 86, - 91, - 96, - 160, - 135, - 1, - 81, - 96, - 192, - 136, - 1, - 81, - 96, - 224, - 137, - 1, - 81, - 96, - 0, - 96, - 15, - 145, - 144, - 145, - 11, - 18, - 21, - 97, - 111, - 145, - 87, - 97, - 111, - 126, - 130, - 138, - 96, - 96, - 1, - 81, - 97, - 70, - 43, - 86, - 91, - 97, - 111, - 140, - 129, - 138, - 96, - 128, - 1, - 81, - 97, - 70, - 43, - 86, - 91, - 97, - 111, - 173, - 86, - 91, - 97, - 111, - 159, - 130, - 138, - 96, - 96, - 1, - 81, - 97, - 116, - 238, - 86, - 91, - 97, - 111, - 173, - 129, - 138, - 96, - 128, - 1, - 81, - 97, - 116, - 238, - 86, - 91, - 80, - 80, - 80, - 80, - 80, - 145, - 147, - 144, - 146, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 97, - 111, - 199, - 132, - 97, - 48, - 152, - 86, - 91, - 80, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 134, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 8, - 96, - 32, - 82, - 96, - 64, - 144, - 32, - 144, - 146, - 80, - 97, - 111, - 238, - 145, - 80, - 66, - 97, - 126, - 92, - 86, - 91, - 97, - 114, - 248, - 96, - 8, - 96, - 0, - 134, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 144, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 32, - 96, - 64, - 81, - 128, - 97, - 1, - 64, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 2, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 3, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 4, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 5, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 6, - 130, - 1, - 96, - 64, - 81, - 128, - 97, - 1, - 0, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 18, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 22, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 24, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 26, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 30, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 21, - 21, - 21, - 21, - 129, - 82, - 80, - 80, - 129, - 82, - 96, - 32, - 1, - 96, - 7, - 130, - 1, - 96, - 64, - 81, - 128, - 96, - 128, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 80, - 80, - 129, - 82, - 80, - 80, - 97, - 102, - 127, - 86, - 91, - 96, - 0, - 3, - 97, - 115, - 10, - 87, - 96, - 0, - 148, - 144, - 147, - 80, - 145, - 80, - 80, - 86, - 91, - 96, - 1, - 148, - 144, - 147, - 80, - 145, - 80, - 80, - 86, - 91, - 97, - 115, - 34, - 96, - 0, - 132, - 132, - 132, - 97, - 108, - 197, - 86, - 91, - 129, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 131, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 127, - 73, - 225, - 68, - 60, - 178, - 94, - 23, - 203, - 235, - 197, - 10, - 163, - 227, - 165, - 163, - 223, - 58, - 195, - 52, - 175, - 133, - 43, - 198, - 243, - 232, - 210, - 88, - 85, - 130, - 87, - 187, - 17, - 131, - 96, - 64, - 81, - 97, - 115, - 103, - 145, - 129, - 82, - 96, - 32, - 1, - 144, - 86, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 163, - 80, - 80, - 80, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 130, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 8, - 96, - 32, - 82, - 96, - 64, - 129, - 32, - 96, - 2, - 1, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 51, - 3, - 97, - 115, - 246, - 87, - 129, - 81, - 96, - 32, - 131, - 1, - 81, - 96, - 0, - 145, - 97, - 115, - 178, - 145, - 97, - 136, - 165, - 86, - 91, - 144, - 80, - 96, - 0, - 128, - 130, - 18, - 97, - 115, - 195, - 87, - 129, - 97, - 115, - 204, - 86, - 91, - 97, - 115, - 204, - 130, - 97, - 139, - 140, - 86, - 91, - 144, - 80, - 128, - 21, - 97, - 115, - 243, - 87, - 97, - 115, - 243, - 97, - 115, - 238, - 133, - 96, - 192, - 1, - 81, - 131, - 97, - 104, - 223, - 144, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 96, - 18, - 85, - 86, - 91, - 80, - 80, - 91, - 96, - 0, - 130, - 96, - 32, - 1, - 81, - 19, - 21, - 97, - 116, - 37, - 87, - 97, - 116, - 29, - 97, - 116, - 24, - 131, - 96, - 160, - 1, - 81, - 132, - 96, - 192, - 1, - 81, - 97, - 104, - 223, - 86, - 91, - 96, - 17, - 85, - 86, - 91, - 80, - 96, - 1, - 97, - 24, - 76, - 86, - 91, - 80, - 96, - 0, - 146, - 145, - 80, - 80, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 135, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 8, - 96, - 32, - 82, - 96, - 64, - 144, - 32, - 97, - 116, - 79, - 135, - 97, - 74, - 55, - 86, - 91, - 129, - 84, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 25, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 145, - 144, - 145, - 22, - 23, - 129, - 85, - 97, - 116, - 115, - 134, - 97, - 74, - 55, - 86, - 91, - 129, - 84, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 145, - 130, - 22, - 96, - 1, - 96, - 128, - 27, - 2, - 145, - 22, - 23, - 129, - 85, - 97, - 116, - 148, - 133, - 97, - 74, - 55, - 86, - 91, - 96, - 1, - 130, - 1, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 25, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 146, - 144, - 146, - 22, - 145, - 144, - 145, - 23, - 144, - 85, - 97, - 116, - 192, - 129, - 66, - 97, - 126, - 92, - 86, - 91, - 96, - 4, - 129, - 1, - 84, - 132, - 1, - 96, - 4, - 130, - 1, - 85, - 96, - 5, - 129, - 1, - 84, - 131, - 1, - 96, - 5, - 130, - 1, - 85, - 96, - 3, - 129, - 1, - 84, - 130, - 1, - 96, - 3, - 144, - 145, - 1, - 85, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 97, - 116, - 250, - 96, - 0, - 131, - 131, - 97, - 126, - 139, - 86, - 91, - 129, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 127, - 128, - 178, - 23, - 72, - 199, - 135, - 197, - 46, - 135, - 166, - 178, - 34, - 1, - 30, - 10, - 14, - 208, - 249, - 204, - 32, - 21, - 240, - 206, - 212, - 103, - 72, - 100, - 45, - 198, - 46, - 233, - 248, - 130, - 96, - 64, - 81, - 97, - 70, - 114, - 145, - 129, - 82, - 96, - 32, - 1, - 144, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 128, - 97, - 117, - 73, - 135, - 137, - 96, - 2, - 1, - 84, - 144, - 3, - 144, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 117, - 91, - 135, - 138, - 96, - 3, - 1, - 84, - 144, - 3, - 144, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 117, - 109, - 135, - 139, - 96, - 1, - 1, - 84, - 144, - 3, - 144, - 86, - 91, - 138, - 84, - 144, - 145, - 80, - 97, - 117, - 134, - 144, - 132, - 144, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 97, - 65, - 53, - 86, - 91, - 138, - 84, - 144, - 150, - 80, - 97, - 117, - 159, - 144, - 131, - 144, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 97, - 65, - 53, - 86, - 91, - 138, - 84, - 144, - 149, - 80, - 97, - 117, - 184, - 144, - 130, - 144, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 97, - 65, - 53, - 86, - 91, - 96, - 2, - 139, - 1, - 138, - 144, - 85, - 96, - 3, - 139, - 1, - 137, - 144, - 85, - 96, - 1, - 139, - 1, - 136, - 144, - 85, - 147, - 80, - 97, - 117, - 216, - 134, - 97, - 74, - 55, - 86, - 91, - 96, - 4, - 139, - 1, - 128, - 84, - 96, - 0, - 144, - 97, - 117, - 245, - 144, - 132, - 144, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 97, - 140, - 111, - 86, - 91, - 146, - 80, - 97, - 1, - 0, - 10, - 129, - 84, - 129, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 2, - 25, - 22, - 144, - 131, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 2, - 23, - 144, - 85, - 80, - 97, - 118, - 34, - 133, - 97, - 74, - 55, - 86, - 91, - 96, - 4, - 139, - 1, - 128, - 84, - 96, - 16, - 144, - 97, - 118, - 70, - 144, - 132, - 144, - 96, - 1, - 96, - 128, - 27, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 97, - 140, - 111, - 86, - 91, - 146, - 80, - 97, - 1, - 0, - 10, - 129, - 84, - 129, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 2, - 25, - 22, - 144, - 131, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 2, - 23, - 144, - 85, - 80, - 97, - 118, - 115, - 132, - 97, - 74, - 55, - 86, - 91, - 96, - 5, - 139, - 1, - 128, - 84, - 96, - 0, - 144, - 97, - 118, - 144, - 144, - 132, - 144, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 97, - 140, - 111, - 86, - 91, - 146, - 80, - 97, - 1, - 0, - 10, - 129, - 84, - 129, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 2, - 25, - 22, - 144, - 131, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 2, - 23, - 144, - 85, - 80, - 80, - 80, - 80, - 148, - 80, - 148, - 80, - 148, - 145, - 80, - 80, - 86, - 91, - 96, - 0, - 96, - 96, - 97, - 2, - 88, - 131, - 96, - 32, - 1, - 81, - 97, - 255, - 255, - 22, - 17, - 21, - 97, - 119, - 54, - 87, - 96, - 32, - 131, - 1, - 81, - 96, - 64, - 81, - 97, - 255, - 255, - 144, - 145, - 22, - 96, - 36, - 130, - 1, - 82, - 96, - 0, - 144, - 99, - 122, - 127, - 16, - 65, - 96, - 225, - 27, - 144, - 96, - 68, - 1, - 91, - 96, - 64, - 128, - 81, - 96, - 31, - 25, - 129, - 132, - 3, - 1, - 129, - 82, - 145, - 144, - 82, - 96, - 32, - 129, - 1, - 128, - 81, - 96, - 1, - 96, - 1, - 96, - 224, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 224, - 27, - 3, - 25, - 144, - 147, - 22, - 146, - 144, - 146, - 23, - 144, - 145, - 82, - 144, - 148, - 144, - 147, - 80, - 145, - 80, - 80, - 86, - 91, - 97, - 119, - 93, - 131, - 96, - 128, - 1, - 81, - 97, - 255, - 255, - 22, - 96, - 100, - 97, - 97, - 168, - 129, - 131, - 20, - 145, - 131, - 17, - 145, - 144, - 145, - 23, - 130, - 130, - 20, - 145, - 144, - 146, - 16, - 23, - 22, - 144, - 86, - 91, - 97, - 119, - 136, - 87, - 96, - 128, - 131, - 1, - 81, - 96, - 64, - 81, - 97, - 255, - 255, - 144, - 145, - 22, - 96, - 36, - 130, - 1, - 82, - 96, - 0, - 144, - 99, - 9, - 98, - 43, - 49, - 96, - 225, - 27, - 144, - 96, - 68, - 1, - 97, - 118, - 250, - 86, - 91, - 97, - 119, - 175, - 131, - 96, - 96, - 1, - 81, - 97, - 255, - 255, - 22, - 96, - 1, - 97, - 1, - 244, - 129, - 131, - 20, - 145, - 131, - 17, - 145, - 144, - 145, - 23, - 130, - 130, - 20, - 145, - 144, - 146, - 16, - 23, - 22, - 144, - 86, - 91, - 97, - 119, - 218, - 87, - 96, - 96, - 131, - 1, - 81, - 96, - 64, - 81, - 97, - 255, - 255, - 144, - 145, - 22, - 96, - 36, - 130, - 1, - 82, - 96, - 0, - 144, - 99, - 174, - 145, - 144, - 39, - 96, - 224, - 27, - 144, - 96, - 68, - 1, - 97, - 118, - 250, - 86, - 91, - 130, - 81, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 144, - 129, - 22, - 129, - 129, - 16, - 145, - 129, - 20, - 145, - 144, - 145, - 23, - 96, - 1, - 128, - 131, - 17, - 146, - 20, - 145, - 144, - 145, - 23, - 22, - 97, - 120, - 42, - 87, - 130, - 81, - 96, - 64, - 81, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 144, - 145, - 22, - 96, - 36, - 130, - 1, - 82, - 96, - 0, - 144, - 99, - 139, - 191, - 136, - 181, - 96, - 224, - 27, - 144, - 96, - 68, - 1, - 97, - 118, - 250, - 86, - 91, - 97, - 120, - 81, - 131, - 96, - 64, - 1, - 81, - 97, - 255, - 255, - 22, - 96, - 1, - 97, - 3, - 232, - 129, - 131, - 20, - 145, - 131, - 17, - 145, - 144, - 145, - 23, - 130, - 130, - 20, - 145, - 144, - 146, - 16, - 23, - 22, - 144, - 86, - 91, - 97, - 120, - 124, - 87, - 96, - 64, - 128, - 132, - 1, - 81, - 144, - 81, - 97, - 255, - 255, - 144, - 145, - 22, - 96, - 36, - 130, - 1, - 82, - 96, - 0, - 144, - 99, - 246, - 244, - 163, - 143, - 96, - 224, - 27, - 144, - 96, - 68, - 1, - 97, - 118, - 250, - 86, - 91, - 96, - 160, - 131, - 1, - 81, - 96, - 64, - 132, - 1, - 81, - 97, - 255, - 255, - 145, - 130, - 22, - 128, - 21, - 128, - 21, - 23, - 146, - 144, - 145, - 22, - 129, - 129, - 20, - 145, - 16, - 23, - 22, - 97, - 120, - 199, - 87, - 96, - 160, - 131, - 1, - 81, - 96, - 64, - 81, - 97, - 255, - 255, - 144, - 145, - 22, - 96, - 36, - 130, - 1, - 82, - 96, - 0, - 144, - 99, - 246, - 244, - 163, - 143, - 96, - 224, - 27, - 144, - 96, - 68, - 1, - 97, - 118, - 250, - 86, - 91, - 80, - 80, - 96, - 64, - 128, - 81, - 96, - 32, - 129, - 1, - 144, - 145, - 82, - 96, - 0, - 129, - 82, - 96, - 1, - 146, - 144, - 145, - 80, - 86, - 91, - 96, - 0, - 128, - 130, - 19, - 97, - 121, - 29, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 9, - 96, - 36, - 130, - 1, - 82, - 104, - 21, - 83, - 145, - 17, - 81, - 146, - 83, - 145, - 81, - 96, - 186, - 27, - 96, - 68, - 130, - 1, - 82, - 96, - 100, - 1, - 97, - 25, - 118, - 86, - 91, - 96, - 0, - 96, - 96, - 97, - 121, - 42, - 132, - 97, - 126, - 201, - 86, - 91, - 3, - 96, - 159, - 129, - 129, - 3, - 148, - 144, - 148, - 27, - 144, - 147, - 28, - 108, - 70, - 87, - 114, - 178, - 187, - 187, - 95, - 130, - 75, - 21, - 32, - 122, - 48, - 129, - 1, - 129, - 2, - 96, - 96, - 144, - 129, - 29, - 109, - 3, - 136, - 234, - 162, - 116, - 18, - 213, - 172, - 160, - 38, - 129, - 93, - 99, - 110, - 1, - 130, - 2, - 129, - 29, - 109, - 13, - 249, - 154, - 197, - 2, - 3, - 27, - 249, - 83, - 239, - 244, - 114, - 253, - 204, - 1, - 130, - 2, - 129, - 29, - 109, - 19, - 205, - 255, - 178, - 157, - 81, - 217, - 147, - 34, - 189, - 255, - 95, - 34, - 17, - 1, - 130, - 2, - 129, - 29, - 109, - 10, - 15, - 116, - 32, - 35, - 222, - 247, - 131, - 163, - 7, - 169, - 134, - 145, - 46, - 1, - 130, - 2, - 129, - 29, - 109, - 1, - 146, - 13, - 128, - 67, - 202, - 137, - 181, - 35, - 146, - 83, - 40, - 78, - 66, - 1, - 130, - 2, - 129, - 29, - 108, - 11, - 122, - 134, - 215, - 55, - 84, - 104, - 250, - 198, - 103, - 160, - 165, - 39, - 1, - 108, - 41, - 80, - 142, - 69, - 133, - 67, - 216, - 170, - 77, - 242, - 171, - 238, - 120, - 131, - 1, - 131, - 2, - 130, - 29, - 109, - 1, - 57, - 96, - 26, - 46, - 250, - 190, - 113, - 126, - 96, - 76, - 187, - 72, - 148, - 1, - 131, - 2, - 130, - 29, - 109, - 2, - 36, - 127, - 122, - 123, - 101, - 148, - 50, - 6, - 73, - 170, - 3, - 171, - 161, - 1, - 131, - 2, - 130, - 29, - 108, - 140, - 63, - 56, - 233, - 90, - 107, - 31, - 242, - 171, - 28, - 59, - 52, - 54, - 25, - 1, - 131, - 2, - 130, - 29, - 109, - 2, - 56, - 71, - 115, - 189, - 241, - 172, - 86, - 118, - 250, - 204, - 237, - 96, - 144, - 25, - 1, - 131, - 2, - 144, - 145, - 29, - 108, - 185, - 160, - 37, - 216, - 20, - 178, - 156, - 33, - 43, - 139, - 26, - 7, - 205, - 25, - 1, - 144, - 145, - 2, - 120, - 10, - 9, - 80, - 112, - 132, - 204, - 105, - 155, - 176, - 231, - 30, - 168, - 105, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 25, - 1, - 5, - 113, - 19, - 64, - 218, - 160, - 213, - 247, - 105, - 219, - 161, - 145, - 92, - 239, - 89, - 240, - 129, - 90, - 85, - 6, - 2, - 125, - 2, - 103, - 163, - 108, - 12, - 149, - 179, - 151, - 90, - 179, - 238, - 91, - 32, - 58, - 118, - 20, - 163, - 247, - 83, - 115, - 240, - 71, - 216, - 3, - 174, - 123, - 102, - 135, - 242, - 179, - 147, - 144, - 147, - 2, - 146, - 144, - 146, - 1, - 125, - 87, - 17, - 94, - 71, - 1, - 140, - 113, - 119, - 238, - 191, - 124, - 211, - 112, - 163, - 53, - 106, - 27, - 120, - 99, - 0, - 138, - 90, - 232, - 2, - 140, - 114, - 184, - 134, - 66, - 132, - 1, - 96, - 174, - 29, - 146, - 145, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 103, - 19, - 160, - 75, - 189, - 253, - 201, - 190, - 136, - 97, - 122, - 217, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 133, - 97, - 138, - 153, - 86, - 91, - 97, - 122, - 227, - 145, - 144, - 97, - 139, - 52, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 122, - 240, - 130, - 97, - 139, - 140, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 122, - 253, - 130, - 97, - 127, - 103, - 86, - 91, - 144, - 80, - 103, - 27, - 193, - 109, - 103, - 78, - 200, - 0, - 0, - 97, - 123, - 26, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 131, - 97, - 138, - 153, - 86, - 91, - 97, - 29, - 139, - 145, - 144, - 97, - 139, - 52, - 86, - 91, - 96, - 0, - 97, - 17, - 147, - 131, - 131, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 97, - 129, - 75, - 86, - 91, - 96, - 0, - 128, - 130, - 18, - 128, - 97, - 123, - 80, - 87, - 80, - 103, - 27, - 193, - 109, - 103, - 78, - 200, - 0, - 0, - 130, - 19, - 91, - 21, - 97, - 123, - 110, - 87, - 96, - 64, - 81, - 99, - 45, - 4, - 131, - 197, - 96, - 226, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 129, - 96, - 0, - 3, - 97, - 123, - 143, - 87, - 96, - 64, - 81, - 99, - 7, - 160, - 33, - 39, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 129, - 103, - 27, - 193, - 109, - 103, - 78, - 200, - 0, - 0, - 3, - 97, - 123, - 183, - 87, - 96, - 64, - 81, - 99, - 34, - 237, - 89, - 133, - 96, - 226, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 128, - 21, - 97, - 123, - 194, - 87, - 145, - 144, - 80, - 86, - 91, - 96, - 0, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 131, - 18, - 97, - 123, - 234, - 87, - 97, - 123, - 229, - 131, - 103, - 27, - 193, - 109, - 103, - 78, - 200, - 0, - 0, - 97, - 136, - 165, - 86, - 91, - 97, - 123, - 236, - 86, - 91, - 130, - 91, - 144, - 80, - 96, - 0, - 97, - 124, - 2, - 130, - 103, - 27, - 193, - 109, - 103, - 78, - 200, - 0, - 0, - 97, - 125, - 178, - 86, - 91, - 144, - 80, - 128, - 96, - 0, - 3, - 97, - 124, - 37, - 87, - 96, - 64, - 81, - 99, - 7, - 160, - 33, - 39, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 0, - 97, - 124, - 48, - 130, - 97, - 120, - 224, - 86, - 91, - 144, - 80, - 96, - 0, - 99, - 59, - 154, - 202, - 0, - 97, - 124, - 91, - 97, - 124, - 86, - 97, - 124, - 80, - 103, - 27, - 193, - 109, - 103, - 78, - 200, - 0, - 0, - 97, - 139, - 140, - 86, - 91, - 133, - 97, - 123, - 36, - 86, - 91, - 97, - 105, - 241, - 86, - 91, - 97, - 124, - 101, - 145, - 144, - 97, - 138, - 153, - 86, - 91, - 144, - 80, - 96, - 0, - 128, - 97, - 124, - 124, - 131, - 103, - 3, - 193, - 102, - 92, - 122, - 171, - 32, - 0, - 97, - 123, - 36, - 86, - 91, - 97, - 124, - 142, - 144, - 103, - 32, - 5, - 254, - 79, - 38, - 142, - 160, - 0, - 97, - 140, - 46, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 124, - 185, - 132, - 97, - 124, - 167, - 134, - 102, - 159, - 50, - 117, - 36, - 98, - 160, - 0, - 97, - 123, - 36, - 86, - 91, - 97, - 104, - 185, - 144, - 103, - 13, - 197, - 82, - 127, - 100, - 44, - 32, - 0, - 97, - 140, - 46, - 86, - 91, - 97, - 124, - 203, - 144, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 97, - 140, - 46, - 86, - 91, - 144, - 80, - 97, - 124, - 239, - 103, - 9, - 208, - 40, - 204, - 111, - 32, - 95, - 255, - 25, - 133, - 97, - 124, - 229, - 133, - 133, - 97, - 125, - 178, - 86, - 91, - 97, - 104, - 185, - 145, - 144, - 97, - 136, - 165, - 86, - 91, - 146, - 80, - 80, - 80, - 96, - 0, - 91, - 96, - 2, - 129, - 16, - 21, - 97, - 125, - 138, - 87, - 96, - 0, - 134, - 97, - 125, - 11, - 132, - 97, - 127, - 103, - 86, - 91, - 97, - 125, - 21, - 145, - 144, - 97, - 136, - 165, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 125, - 35, - 132, - 133, - 97, - 123, - 36, - 86, - 91, - 97, - 125, - 44, - 144, - 97, - 139, - 140, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 125, - 57, - 130, - 97, - 106, - 149, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 125, - 71, - 134, - 133, - 97, - 123, - 36, - 86, - 91, - 97, - 125, - 89, - 103, - 15, - 168, - 206, - 223, - 194, - 173, - 221, - 250, - 132, - 97, - 123, - 36, - 86, - 91, - 97, - 125, - 99, - 145, - 144, - 97, - 136, - 165, - 86, - 91, - 144, - 80, - 97, - 125, - 111, - 132, - 130, - 97, - 125, - 178, - 86, - 91, - 97, - 125, - 121, - 144, - 135, - 97, - 140, - 46, - 86, - 91, - 149, - 80, - 132, - 96, - 1, - 1, - 148, - 80, - 80, - 80, - 80, - 80, - 97, - 124, - 246, - 86, - 91, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 136, - 18, - 97, - 125, - 167, - 87, - 97, - 125, - 162, - 130, - 97, - 139, - 140, - 86, - 91, - 97, - 74, - 21, - 86, - 91, - 80, - 150, - 149, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 97, - 17, - 147, - 131, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 132, - 97, - 129, - 75, - 86, - 91, - 130, - 84, - 99, - 255, - 255, - 255, - 255, - 131, - 22, - 96, - 1, - 96, - 128, - 27, - 2, - 99, - 255, - 255, - 255, - 255, - 96, - 128, - 27, - 25, - 130, - 22, - 129, - 23, - 133, - 85, - 97, - 125, - 253, - 145, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 145, - 130, - 22, - 145, - 22, - 23, - 130, - 97, - 129, - 106, - 86, - 91, - 131, - 84, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 25, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 145, - 144, - 145, - 22, - 23, - 144, - 146, - 85, - 80, - 80, - 86, - 91, - 96, - 1, - 130, - 1, - 84, - 97, - 126, - 53, - 144, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 130, - 97, - 129, - 106, - 86, - 91, - 96, - 1, - 146, - 144, - 146, - 1, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 25, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 144, - 147, - 22, - 146, - 144, - 146, - 23, - 144, - 145, - 85, - 80, - 86, - 91, - 97, - 126, - 101, - 129, - 97, - 105, - 65, - 86, - 91, - 130, - 96, - 1, - 1, - 96, - 16, - 97, - 1, - 0, - 10, - 129, - 84, - 129, - 99, - 255, - 255, - 255, - 255, - 2, - 25, - 22, - 144, - 131, - 99, - 255, - 255, - 255, - 255, - 22, - 2, - 23, - 144, - 85, - 80, - 80, - 80, - 86, - 91, - 97, - 126, - 149, - 131, - 131, - 97, - 76, - 48, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 130, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 1, - 132, - 1, - 96, - 32, - 82, - 96, - 64, - 129, - 32, - 128, - 84, - 131, - 146, - 144, - 97, - 126, - 191, - 144, - 132, - 144, - 97, - 137, - 47, - 86, - 91, - 144, - 145, - 85, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 130, - 17, - 97, - 127, - 6, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 9, - 96, - 36, - 130, - 1, - 82, - 104, - 21, - 83, - 145, - 17, - 81, - 146, - 83, - 145, - 81, - 96, - 186, - 27, - 96, - 68, - 130, - 1, - 82, - 96, - 100, - 1, - 97, - 25, - 118, - 86, - 91, - 80, - 96, - 1, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 130, - 17, - 96, - 7, - 27, - 130, - 129, - 28, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 16, - 96, - 6, - 27, - 23, - 130, - 129, - 28, - 99, - 255, - 255, - 255, - 255, - 16, - 96, - 5, - 27, - 23, - 130, - 129, - 28, - 97, - 255, - 255, - 16, - 96, - 4, - 27, - 23, - 130, - 129, - 28, - 96, - 255, - 16, - 96, - 3, - 144, - 129, - 27, - 144, - 145, - 23, - 131, - 129, - 28, - 96, - 15, - 16, - 96, - 2, - 27, - 23, - 131, - 129, - 28, - 144, - 145, - 16, - 130, - 27, - 23, - 145, - 130, - 28, - 17, - 23, - 144, - 86, - 91, - 96, - 0, - 129, - 96, - 0, - 3, - 97, - 127, - 128, - 87, - 80, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 145, - 144, - 80, - 86, - 91, - 103, - 86, - 152, - 238, - 240, - 102, - 112, - 0, - 0, - 130, - 18, - 97, - 127, - 151, - 87, - 80, - 96, - 0, - 145, - 144, - 80, - 86, - 91, - 97, - 127, - 168, - 103, - 86, - 152, - 238, - 240, - 102, - 112, - 0, - 0, - 97, - 139, - 140, - 86, - 91, - 130, - 19, - 97, - 127, - 189, - 87, - 80, - 103, - 27, - 193, - 109, - 103, - 78, - 200, - 0, - 0, - 145, - 144, - 80, - 86, - 91, - 96, - 0, - 97, - 127, - 200, - 131, - 97, - 129, - 181, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 128, - 1, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 97, - 127, - 234, - 132, - 103, - 27, - 193, - 109, - 103, - 78, - 200, - 0, - 0, - 97, - 104, - 223, - 86, - 91, - 97, - 127, - 252, - 144, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 97, - 140, - 46, - 86, - 91, - 97, - 125, - 178, - 86, - 91, - 144, - 80, - 96, - 0, - 128, - 130, - 97, - 128, - 93, - 129, - 97, - 128, - 74, - 129, - 97, - 128, - 56, - 129, - 97, - 128, - 37, - 129, - 103, - 2, - 95, - 15, - 225, - 5, - 163, - 20, - 0, - 97, - 123, - 36, - 86, - 91, - 97, - 104, - 185, - 144, - 103, - 11, - 104, - 223, - 24, - 228, - 113, - 251, - 255, - 25, - 97, - 140, - 46, - 86, - 91, - 97, - 104, - 185, - 144, - 103, - 20, - 168, - 69, - 76, - 25, - 225, - 172, - 0, - 97, - 140, - 46, - 86, - 91, - 97, - 104, - 185, - 144, - 103, - 15, - 193, - 14, - 1, - 87, - 130, - 119, - 255, - 25, - 97, - 140, - 46, - 86, - 91, - 97, - 128, - 111, - 144, - 103, - 3, - 222, - 189, - 8, - 59, - 140, - 124, - 0, - 97, - 140, - 46, - 86, - 91, - 145, - 80, - 131, - 144, - 80, - 97, - 128, - 215, - 129, - 97, - 128, - 197, - 129, - 97, - 128, - 179, - 129, - 97, - 128, - 161, - 129, - 97, - 128, - 142, - 129, - 139, - 97, - 123, - 36, - 86, - 91, - 97, - 104, - 185, - 144, - 103, - 2, - 149, - 212, - 0, - 234, - 50, - 87, - 255, - 25, - 97, - 140, - 46, - 86, - 91, - 97, - 104, - 185, - 144, - 103, - 1, - 87, - 216, - 178, - 236, - 199, - 8, - 0, - 97, - 140, - 46, - 86, - 91, - 97, - 104, - 185, - 144, - 103, - 5, - 49, - 10, - 167, - 213, - 33, - 48, - 0, - 97, - 140, - 46, - 86, - 91, - 97, - 104, - 185, - 144, - 103, - 13, - 224, - 204, - 61, - 21, - 97, - 0, - 0, - 97, - 140, - 46, - 86, - 91, - 145, - 80, - 129, - 103, - 17, - 144, - 0, - 171, - 16, - 15, - 252, - 0, - 97, - 128, - 237, - 135, - 136, - 97, - 123, - 36, - 86, - 91, - 97, - 128, - 249, - 144, - 96, - 0, - 25, - 97, - 138, - 153, - 86, - 91, - 97, - 129, - 3, - 145, - 144, - 97, - 136, - 165, - 86, - 91, - 97, - 129, - 13, - 145, - 144, - 97, - 140, - 46, - 86, - 91, - 146, - 80, - 80, - 96, - 0, - 97, - 129, - 27, - 131, - 97, - 106, - 149, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 129, - 41, - 133, - 131, - 97, - 123, - 36, - 86, - 91, - 144, - 80, - 96, - 0, - 136, - 18, - 97, - 129, - 57, - 87, - 128, - 97, - 74, - 21, - 86, - 91, - 97, - 74, - 21, - 129, - 103, - 27, - 193, - 109, - 103, - 78, - 200, - 0, - 0, - 97, - 136, - 165, - 86, - 91, - 130, - 130, - 2, - 129, - 21, - 21, - 132, - 21, - 133, - 131, - 5, - 133, - 20, - 23, - 22, - 97, - 129, - 99, - 87, - 96, - 0, - 128, - 253, - 91, - 5, - 146, - 145, - 80, - 80, - 86, - 91, - 96, - 64, - 128, - 81, - 96, - 4, - 129, - 82, - 96, - 36, - 129, - 1, - 144, - 145, - 82, - 96, - 32, - 129, - 1, - 128, - 81, - 96, - 1, - 96, - 1, - 96, - 224, - 27, - 3, - 22, - 99, - 31, - 255, - 150, - 129, - 96, - 224, - 27, - 23, - 144, - 82, - 130, - 130, - 1, - 144, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 130, - 17, - 21, - 97, - 129, - 174, - 87, - 128, - 81, - 129, - 96, - 32, - 1, - 253, - 91, - 80, - 146, - 145, - 80, - 80, - 86, - 91, - 96, - 0, - 96, - 1, - 96, - 255, - 27, - 130, - 3, - 97, - 129, - 219, - 87, - 96, - 64, - 81, - 99, - 77, - 45, - 117, - 177, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 0, - 130, - 18, - 21, - 97, - 74, - 73, - 87, - 80, - 25, - 96, - 1, - 1, - 144, - 86, - 91, - 145, - 144, - 80, - 86, - 91, - 80, - 128, - 84, - 96, - 0, - 130, - 85, - 96, - 3, - 2, - 144, - 96, - 0, - 82, - 96, - 32, - 96, - 0, - 32, - 144, - 129, - 1, - 144, - 97, - 25, - 233, - 145, - 144, - 97, - 130, - 124, - 86, - 91, - 80, - 128, - 84, - 96, - 0, - 130, - 85, - 144, - 96, - 0, - 82, - 96, - 32, - 96, - 0, - 32, - 144, - 129, - 1, - 144, - 97, - 25, - 233, - 145, - 144, - 97, - 130, - 169, - 86, - 91, - 96, - 64, - 81, - 128, - 97, - 1, - 32, - 1, - 96, - 64, - 82, - 128, - 96, - 0, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 129, - 82, - 80, - 144, - 86, - 91, - 91, - 128, - 130, - 17, - 21, - 97, - 74, - 73, - 87, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 25, - 22, - 129, - 85, - 96, - 0, - 96, - 1, - 130, - 1, - 129, - 144, - 85, - 96, - 2, - 130, - 1, - 85, - 96, - 3, - 1, - 97, - 130, - 125, - 86, - 91, - 91, - 128, - 130, - 17, - 21, - 97, - 74, - 73, - 87, - 96, - 0, - 129, - 85, - 96, - 1, - 1, - 97, - 130, - 170, - 86, - 91, - 128, - 53, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 129, - 22, - 129, - 20, - 97, - 129, - 236, - 87, - 96, - 0, - 128, - 253, - 91, - 96, - 0, - 96, - 32, - 130, - 132, - 3, - 18, - 21, - 97, - 130, - 231, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 17, - 147, - 130, - 97, - 130, - 190, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 129, - 22, - 129, - 20, - 97, - 25, - 233, - 87, - 96, - 0, - 128, - 253, - 91, - 96, - 0, - 128, - 96, - 0, - 96, - 96, - 132, - 134, - 3, - 18, - 21, - 97, - 131, - 26, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 131, - 35, - 132, - 97, - 130, - 190, - 86, - 91, - 146, - 80, - 96, - 32, - 132, - 1, - 53, - 97, - 131, - 51, - 129, - 97, - 130, - 240, - 86, - 91, - 146, - 149, - 146, - 148, - 80, - 80, - 80, - 96, - 64, - 145, - 144, - 145, - 1, - 53, - 144, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 128, - 96, - 0, - 96, - 160, - 134, - 136, - 3, - 18, - 21, - 97, - 131, - 92, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 131, - 101, - 134, - 97, - 130, - 190, - 86, - 91, - 151, - 96, - 32, - 135, - 1, - 53, - 151, - 80, - 96, - 64, - 135, - 1, - 53, - 150, - 96, - 96, - 129, - 1, - 53, - 150, - 80, - 96, - 128, - 1, - 53, - 148, - 80, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 64, - 131, - 133, - 3, - 18, - 21, - 97, - 131, - 153, - 87, - 96, - 0, - 128, - 253, - 91, - 130, - 53, - 97, - 131, - 164, - 129, - 97, - 130, - 240, - 86, - 91, - 145, - 80, - 96, - 32, - 131, - 1, - 53, - 97, - 131, - 180, - 129, - 97, - 130, - 240, - 86, - 91, - 128, - 145, - 80, - 80, - 146, - 80, - 146, - 144, - 80, - 86, - 91, - 96, - 0, - 96, - 32, - 130, - 132, - 3, - 18, - 21, - 97, - 131, - 209, - 87, - 96, - 0, - 128, - 253, - 91, - 129, - 53, - 97, - 17, - 147, - 129, - 97, - 130, - 240, - 86, - 91, - 96, - 0, - 96, - 32, - 130, - 132, - 3, - 18, - 21, - 97, - 131, - 238, - 87, - 96, - 0, - 128, - 253, - 91, - 129, - 53, - 98, - 255, - 255, - 255, - 129, - 22, - 129, - 20, - 97, - 17, - 147, - 87, - 96, - 0, - 128, - 253, - 91, - 96, - 0, - 96, - 32, - 130, - 132, - 3, - 18, - 21, - 97, - 132, - 19, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 53, - 145, - 144, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 64, - 131, - 133, - 3, - 18, - 21, - 97, - 132, - 45, - 87, - 96, - 0, - 128, - 253, - 91, - 130, - 53, - 97, - 132, - 56, - 129, - 97, - 130, - 240, - 86, - 91, - 148, - 96, - 32, - 147, - 144, - 147, - 1, - 53, - 147, - 80, - 80, - 80, - 86, - 91, - 128, - 53, - 128, - 21, - 21, - 129, - 20, - 97, - 129, - 236, - 87, - 96, - 0, - 128, - 253, - 91, - 96, - 0, - 128, - 96, - 0, - 96, - 96, - 132, - 134, - 3, - 18, - 21, - 97, - 132, - 107, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 132, - 116, - 132, - 97, - 130, - 190, - 86, - 91, - 146, - 80, - 97, - 132, - 130, - 96, - 32, - 133, - 1, - 97, - 132, - 70, - 86, - 91, - 145, - 80, - 96, - 64, - 132, - 1, - 53, - 144, - 80, - 146, - 80, - 146, - 80, - 146, - 86, - 91, - 96, - 0, - 128, - 96, - 64, - 131, - 133, - 3, - 18, - 21, - 97, - 132, - 165, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 132, - 174, - 131, - 97, - 130, - 190, - 86, - 91, - 145, - 80, - 96, - 32, - 131, - 1, - 53, - 128, - 96, - 15, - 11, - 129, - 20, - 97, - 131, - 180, - 87, - 96, - 0, - 128, - 253, - 91, - 96, - 0, - 97, - 2, - 128, - 130, - 1, - 144, - 80, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 128, - 141, - 22, - 131, - 82, - 128, - 140, - 22, - 96, - 32, - 132, - 1, - 82, - 128, - 139, - 22, - 96, - 64, - 132, - 1, - 82, - 99, - 255, - 255, - 255, - 255, - 138, - 22, - 96, - 96, - 132, - 1, - 82, - 96, - 1, - 128, - 96, - 160, - 27, - 3, - 137, - 22, - 96, - 128, - 132, - 1, - 82, - 135, - 96, - 160, - 132, - 1, - 82, - 134, - 96, - 192, - 132, - 1, - 82, - 133, - 96, - 224, - 132, - 1, - 82, - 128, - 133, - 81, - 22, - 97, - 1, - 0, - 132, - 1, - 82, - 80, - 96, - 32, - 132, - 1, - 81, - 97, - 255, - 255, - 128, - 130, - 22, - 97, - 1, - 32, - 133, - 1, - 82, - 128, - 96, - 64, - 135, - 1, - 81, - 22, - 97, - 1, - 64, - 133, - 1, - 82, - 80, - 80, - 96, - 96, - 132, - 1, - 81, - 97, - 133, - 87, - 97, - 1, - 96, - 132, - 1, - 130, - 97, - 255, - 255, - 22, - 144, - 82, - 86, - 91, - 80, - 96, - 128, - 132, - 1, - 81, - 97, - 255, - 255, - 144, - 129, - 22, - 97, - 1, - 128, - 132, - 1, - 82, - 96, - 160, - 133, - 1, - 81, - 22, - 97, - 1, - 160, - 131, - 1, - 82, - 96, - 192, - 132, - 1, - 81, - 99, - 255, - 255, - 255, - 255, - 22, - 97, - 1, - 192, - 131, - 1, - 82, - 96, - 224, - 144, - 147, - 1, - 81, - 21, - 21, - 97, - 1, - 224, - 130, - 1, - 82, - 129, - 81, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 144, - 129, - 22, - 97, - 2, - 0, - 131, - 1, - 82, - 96, - 32, - 131, - 1, - 81, - 96, - 255, - 144, - 129, - 22, - 97, - 2, - 32, - 132, - 1, - 82, - 96, - 64, - 132, - 1, - 81, - 144, - 145, - 22, - 97, - 2, - 64, - 131, - 1, - 82, - 96, - 96, - 144, - 146, - 1, - 81, - 144, - 145, - 22, - 97, - 2, - 96, - 144, - 145, - 1, - 82, - 152, - 151, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 128, - 96, - 128, - 133, - 135, - 3, - 18, - 21, - 97, - 133, - 247, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 134, - 0, - 133, - 97, - 130, - 190, - 86, - 91, - 147, - 80, - 97, - 134, - 14, - 96, - 32, - 134, - 1, - 97, - 132, - 70, - 86, - 91, - 147, - 150, - 147, - 149, - 80, - 80, - 80, - 80, - 96, - 64, - 130, - 1, - 53, - 145, - 96, - 96, - 1, - 53, - 144, - 86, - 91, - 96, - 0, - 128, - 96, - 32, - 131, - 133, - 3, - 18, - 21, - 97, - 134, - 54, - 87, - 96, - 0, - 128, - 253, - 91, - 130, - 53, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 128, - 130, - 17, - 21, - 97, - 134, - 77, - 87, - 96, - 0, - 128, - 253, - 91, - 129, - 133, - 1, - 145, - 80, - 133, - 96, - 31, - 131, - 1, - 18, - 97, - 134, - 97, - 87, - 96, - 0, - 128, - 253, - 91, - 129, - 53, - 129, - 129, - 17, - 21, - 97, - 134, - 112, - 87, - 96, - 0, - 128, - 253, - 91, - 134, - 96, - 32, - 130, - 133, - 1, - 1, - 17, - 21, - 97, - 134, - 130, - 87, - 96, - 0, - 128, - 253, - 91, - 96, - 32, - 146, - 144, - 146, - 1, - 150, - 145, - 149, - 80, - 144, - 147, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 96, - 96, - 132, - 134, - 3, - 18, - 21, - 97, - 134, - 169, - 87, - 96, - 0, - 128, - 253, - 91, - 131, - 53, - 97, - 134, - 180, - 129, - 97, - 130, - 240, - 86, - 91, - 146, - 80, - 96, - 32, - 132, - 1, - 53, - 145, - 80, - 96, - 64, - 132, - 1, - 53, - 97, - 134, - 203, - 129, - 97, - 130, - 240, - 86, - 91, - 128, - 145, - 80, - 80, - 146, - 80, - 146, - 80, - 146, - 86, - 91, - 128, - 53, - 97, - 255, - 255, - 129, - 22, - 129, - 20, - 97, - 129, - 236, - 87, - 96, - 0, - 128, - 253, - 91, - 96, - 0, - 128, - 96, - 0, - 128, - 96, - 128, - 133, - 135, - 3, - 18, - 21, - 97, - 134, - 254, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 135, - 7, - 133, - 97, - 130, - 190, - 86, - 91, - 147, - 80, - 97, - 135, - 21, - 96, - 32, - 134, - 1, - 97, - 134, - 214, - 86, - 91, - 146, - 80, - 97, - 135, - 35, - 96, - 64, - 134, - 1, - 97, - 134, - 214, - 86, - 91, - 145, - 80, - 97, - 135, - 49, - 96, - 96, - 134, - 1, - 97, - 134, - 214, - 86, - 91, - 144, - 80, - 146, - 149, - 145, - 148, - 80, - 146, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 64, - 131, - 133, - 3, - 18, - 21, - 97, - 135, - 79, - 87, - 96, - 0, - 128, - 253, - 91, - 130, - 53, - 97, - 135, - 90, - 129, - 97, - 130, - 240, - 86, - 91, - 145, - 80, - 97, - 135, - 104, - 96, - 32, - 132, - 1, - 97, - 130, - 190, - 86, - 91, - 144, - 80, - 146, - 80, - 146, - 144, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 64, - 131, - 133, - 3, - 18, - 21, - 97, - 135, - 132, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 132, - 56, - 131, - 97, - 130, - 190, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 96, - 96, - 132, - 134, - 3, - 18, - 21, - 97, - 135, - 162, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 135, - 171, - 132, - 97, - 130, - 190, - 86, - 91, - 149, - 96, - 32, - 133, - 1, - 53, - 149, - 80, - 96, - 64, - 144, - 148, - 1, - 53, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 91, - 131, - 129, - 16, - 21, - 97, - 135, - 219, - 87, - 129, - 129, - 1, - 81, - 131, - 130, - 1, - 82, - 96, - 32, - 1, - 97, - 135, - 195, - 86, - 91, - 131, - 129, - 17, - 21, - 97, - 40, - 3, - 87, - 80, - 80, - 96, - 0, - 145, - 1, - 82, - 86, - 91, - 96, - 32, - 129, - 82, - 96, - 0, - 130, - 81, - 128, - 96, - 32, - 132, - 1, - 82, - 97, - 136, - 11, - 129, - 96, - 64, - 133, - 1, - 96, - 32, - 135, - 1, - 97, - 135, - 192, - 86, - 91, - 96, - 31, - 1, - 96, - 31, - 25, - 22, - 145, - 144, - 145, - 1, - 96, - 64, - 1, - 146, - 145, - 80, - 80, - 86, - 91, - 96, - 0, - 96, - 32, - 130, - 132, - 3, - 18, - 21, - 97, - 136, - 49, - 87, - 96, - 0, - 128, - 253, - 91, - 129, - 81, - 97, - 17, - 147, - 129, - 97, - 130, - 240, - 86, - 91, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 17, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 96, - 0, - 130, - 130, - 16, - 21, - 97, - 136, - 100, - 87, - 97, - 136, - 100, - 97, - 136, - 60, - 86, - 91, - 80, - 3, - 144, - 86, - 91, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 50, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 96, - 0, - 129, - 96, - 15, - 11, - 96, - 1, - 96, - 1, - 96, - 127, - 27, - 3, - 25, - 129, - 3, - 97, - 136, - 156, - 87, - 97, - 136, - 156, - 97, - 136, - 60, - 86, - 91, - 96, - 0, - 3, - 146, - 145, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 131, - 18, - 128, - 21, - 96, - 1, - 96, - 255, - 27, - 133, - 1, - 132, - 18, - 22, - 21, - 97, - 136, - 195, - 87, - 97, - 136, - 195, - 97, - 136, - 60, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 255, - 27, - 3, - 132, - 1, - 131, - 19, - 129, - 22, - 21, - 97, - 136, - 222, - 87, - 97, - 136, - 222, - 97, - 136, - 60, - 86, - 91, - 80, - 80, - 3, - 144, - 86, - 91, - 96, - 0, - 130, - 81, - 97, - 136, - 246, - 129, - 132, - 96, - 32, - 135, - 1, - 97, - 135, - 192, - 86, - 91, - 145, - 144, - 145, - 1, - 146, - 145, - 80, - 80, - 86, - 91, - 96, - 0, - 96, - 32, - 130, - 132, - 3, - 18, - 21, - 97, - 137, - 18, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 81, - 145, - 144, - 80, - 86, - 91, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 49, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 96, - 0, - 130, - 25, - 130, - 17, - 21, - 97, - 137, - 66, - 87, - 97, - 137, - 66, - 97, - 136, - 60, - 86, - 91, - 80, - 1, - 144, - 86, - 91, - 96, - 0, - 129, - 96, - 0, - 25, - 4, - 131, - 17, - 130, - 21, - 21, - 22, - 21, - 97, - 137, - 97, - 87, - 97, - 137, - 97, - 97, - 136, - 60, - 86, - 91, - 80, - 2, - 144, - 86, - 91, - 96, - 0, - 128, - 133, - 133, - 17, - 21, - 97, - 137, - 118, - 87, - 96, - 0, - 128, - 253, - 91, - 131, - 134, - 17, - 21, - 97, - 137, - 131, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 80, - 130, - 1, - 147, - 145, - 144, - 146, - 3, - 145, - 80, - 86, - 91, - 96, - 0, - 96, - 1, - 130, - 1, - 97, - 137, - 162, - 87, - 97, - 137, - 162, - 97, - 136, - 60, - 86, - 91, - 80, - 96, - 1, - 1, - 144, - 86, - 91, - 96, - 1, - 129, - 129, - 91, - 128, - 133, - 17, - 21, - 97, - 137, - 228, - 87, - 129, - 96, - 0, - 25, - 4, - 130, - 17, - 21, - 97, - 137, - 202, - 87, - 97, - 137, - 202, - 97, - 136, - 60, - 86, - 91, - 128, - 133, - 22, - 21, - 97, - 137, - 215, - 87, - 145, - 129, - 2, - 145, - 91, - 147, - 132, - 28, - 147, - 144, - 128, - 2, - 144, - 97, - 137, - 174, - 86, - 91, - 80, - 146, - 80, - 146, - 144, - 80, - 86, - 91, - 96, - 0, - 130, - 97, - 137, - 251, - 87, - 80, - 96, - 1, - 97, - 24, - 76, - 86, - 91, - 129, - 97, - 138, - 8, - 87, - 80, - 96, - 0, - 97, - 24, - 76, - 86, - 91, - 129, - 96, - 1, - 129, - 20, - 97, - 138, - 30, - 87, - 96, - 2, - 129, - 20, - 97, - 138, - 40, - 87, - 97, - 138, - 68, - 86, - 91, - 96, - 1, - 145, - 80, - 80, - 97, - 24, - 76, - 86, - 91, - 96, - 255, - 132, - 17, - 21, - 97, - 138, - 57, - 87, - 97, - 138, - 57, - 97, - 136, - 60, - 86, - 91, - 80, - 80, - 96, - 1, - 130, - 27, - 97, - 24, - 76, - 86, - 91, - 80, - 96, - 32, - 131, - 16, - 97, - 1, - 51, - 131, - 16, - 22, - 96, - 78, - 132, - 16, - 96, - 11, - 132, - 16, - 22, - 23, - 21, - 97, - 138, - 103, - 87, - 80, - 129, - 129, - 10, - 97, - 24, - 76, - 86, - 91, - 97, - 138, - 113, - 131, - 131, - 97, - 137, - 169, - 86, - 91, - 128, - 96, - 0, - 25, - 4, - 130, - 17, - 21, - 97, - 138, - 133, - 87, - 97, - 138, - 133, - 97, - 136, - 60, - 86, - 91, - 2, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 97, - 17, - 147, - 131, - 131, - 97, - 137, - 236, - 86, - 91, - 96, - 0, - 96, - 1, - 96, - 1, - 96, - 255, - 27, - 3, - 129, - 132, - 19, - 130, - 132, - 19, - 128, - 130, - 22, - 134, - 132, - 4, - 134, - 17, - 22, - 21, - 97, - 138, - 191, - 87, - 97, - 138, - 191, - 97, - 136, - 60, - 86, - 91, - 96, - 1, - 96, - 255, - 27, - 96, - 0, - 135, - 18, - 130, - 129, - 22, - 135, - 131, - 5, - 137, - 18, - 22, - 21, - 97, - 138, - 222, - 87, - 97, - 138, - 222, - 97, - 136, - 60, - 86, - 91, - 96, - 0, - 135, - 18, - 146, - 80, - 135, - 130, - 5, - 135, - 18, - 132, - 132, - 22, - 22, - 21, - 97, - 138, - 250, - 87, - 97, - 138, - 250, - 97, - 136, - 60, - 86, - 91, - 135, - 133, - 5, - 135, - 18, - 129, - 132, - 22, - 22, - 21, - 97, - 139, - 16, - 87, - 97, - 139, - 16, - 97, - 136, - 60, - 86, - 91, - 80, - 80, - 80, - 146, - 144, - 147, - 2, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 18, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 96, - 0, - 130, - 97, - 139, - 67, - 87, - 97, - 139, - 67, - 97, - 139, - 30, - 86, - 91, - 96, - 1, - 96, - 255, - 27, - 130, - 20, - 96, - 0, - 25, - 132, - 20, - 22, - 21, - 97, - 139, - 93, - 87, - 97, - 139, - 93, - 97, - 136, - 60, - 86, - 91, - 80, - 5, - 144, - 86, - 91, - 96, - 0, - 130, - 97, - 139, - 113, - 87, - 97, - 139, - 113, - 97, - 139, - 30, - 86, - 91, - 80, - 4, - 144, - 86, - 91, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 1, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 96, - 0, - 96, - 1, - 96, - 255, - 27, - 130, - 1, - 97, - 139, - 161, - 87, - 97, - 139, - 161, - 97, - 136, - 60, - 86, - 91, - 80, - 96, - 0, - 3, - 144, - 86, - 91, - 96, - 0, - 99, - 255, - 255, - 255, - 255, - 128, - 131, - 22, - 129, - 129, - 3, - 97, - 139, - 193, - 87, - 97, - 139, - 193, - 97, - 136, - 60, - 86, - 91, - 96, - 1, - 1, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 96, - 32, - 130, - 132, - 3, - 18, - 21, - 97, - 139, - 221, - 87, - 96, - 0, - 128, - 253, - 91, - 129, - 81, - 96, - 255, - 129, - 22, - 129, - 20, - 97, - 17, - 147, - 87, - 96, - 0, - 128, - 253, - 91, - 96, - 0, - 98, - 255, - 255, - 255, - 128, - 131, - 22, - 129, - 129, - 3, - 97, - 139, - 193, - 87, - 97, - 139, - 193, - 97, - 136, - 60, - 86, - 91, - 96, - 0, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 131, - 129, - 22, - 144, - 131, - 22, - 129, - 129, - 16, - 21, - 97, - 140, - 38, - 87, - 97, - 140, - 38, - 97, - 136, - 60, - 86, - 91, - 3, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 130, - 18, - 128, - 21, - 96, - 1, - 96, - 1, - 96, - 255, - 27, - 3, - 132, - 144, - 3, - 133, - 19, - 22, - 21, - 97, - 140, - 80, - 87, - 97, - 140, - 80, - 97, - 136, - 60, - 86, - 91, - 96, - 1, - 96, - 255, - 27, - 131, - 144, - 3, - 132, - 18, - 129, - 22, - 21, - 97, - 140, - 105, - 87, - 97, - 140, - 105, - 97, - 136, - 60, - 86, - 91, - 80, - 80, - 1, - 144, - 86, - 91, - 96, - 0, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 128, - 131, - 22, - 129, - 133, - 22, - 128, - 131, - 3, - 130, - 17, - 21, - 97, - 140, - 145, - 87, - 97, - 140, - 145, - 97, - 136, - 60, - 86, - 91, - 1, - 148, - 147, - 80, - 80, - 80, - 80, - 86, - 254, - 162, - 100, - 105, - 112, - 102, - 115, - 88, - 34, - 18, - 32, - 55, - 246, - 181, - 87, - 228, - 8, - 186, - 50, - 254, - 35, - 142, - 129, - 142, - 206, - 229, - 25, - 107, - 37, - 36, - 90, - 94, - 79, - 57, - 21, - 155, - 133, - 164, - 58, - 236, - 205, - 96, - 168, - 100, - 115, - 111, - 108, - 99, - 67, - 0, - 8, - 13, - 0, - 51, - ]; - ///The deployed bytecode of the contract. - pub static RMM01PORTFOLIO_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = - ::ethers::core::types::Bytes::from_static(__DEPLOYED_BYTECODE); - pub struct RMM01Portfolio(::ethers::contract::Contract); - impl ::core::clone::Clone for RMM01Portfolio { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for RMM01Portfolio { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for RMM01Portfolio { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for RMM01Portfolio { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(stringify!(RMM01Portfolio)) - .field(&self.address()) - .finish() - } - } - impl RMM01Portfolio { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self(::ethers::contract::Contract::new( - address.into(), - RMM01PORTFOLIO_ABI.clone(), - client, - )) - } - /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. - /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction - /// - /// Notes: - /// - If there are no constructor arguments, you should pass `()` as the argument. - /// - The default poll duration is 7 seconds. - /// - The default number of confirmations is 1 block. - /// - /// - /// # Example - /// - /// Generate contract bindings with `abigen!` and deploy a new contract instance. - /// - /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. - /// - /// ```ignore - /// # async fn deploy(client: ::std::sync::Arc) { - /// abigen!(Greeter, "../greeter.json"); - /// - /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); - /// let msg = greeter_contract.greet().call().await.unwrap(); - /// # } - /// ``` - pub fn deploy( - client: ::std::sync::Arc, - constructor_args: T, - ) -> ::core::result::Result< - ::ethers::contract::builders::ContractDeployer, - ::ethers::contract::ContractError, - > { - let factory = ::ethers::contract::ContractFactory::new( - RMM01PORTFOLIO_ABI.clone(), - RMM01PORTFOLIO_BYTECODE.clone().into(), - client, - ); - let deployer = factory.deploy(constructor_args)?; - let deployer = ::ethers::contract::ContractDeployer::new(deployer); - Ok(deployer) - } - ///Calls the contract's `REGISTRY` (0x06433b1b) function - pub fn registry( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([6, 67, 59, 27], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `VERSION` (0xffa1ad74) function - pub fn version( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([255, 161, 173, 116], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `WETH` (0xad5c4648) function - pub fn weth( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([173, 92, 70, 72], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `__account__` (0xda31ee54) function - pub fn account(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([218, 49, 238, 84], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `changeParameters` (0xaf777855) function - pub fn change_parameters( - &self, - pool_id: u64, - priority_fee: u16, - fee: u16, - jit: u16, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([175, 119, 120, 85], (pool_id, priority_fee, fee, jit)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `checkInvariant` (0x2f337da5) function - pub fn check_invariant( - &self, - pool_id: u64, - invariant: ::ethers::core::types::I256, - reserve_x: ::ethers::core::types::U256, - reserve_y: ::ethers::core::types::U256, - timestamp: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall - { - self.0 - .method_hash( - [47, 51, 125, 165], - (pool_id, invariant, reserve_x, reserve_y, timestamp), - ) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `checkPool` (0xa68aaa41) function - pub fn check_pool( - &self, - pool_id: u64, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([166, 138, 170, 65], pool_id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `checkPosition` (0x2cc6641e) function - pub fn check_position( - &self, - pool_id: u64, - owner: ::ethers::core::types::Address, - delta: ::ethers::core::types::I256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([44, 198, 100, 30], (pool_id, owner, delta)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `computeMaxInput` (0x989bafba) function - pub fn compute_max_input( - &self, - pool_id: u64, - sell_asset: bool, - reserve_in: ::ethers::core::types::U256, - liquidity: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash( - [152, 155, 175, 186], - (pool_id, sell_asset, reserve_in, liquidity), - ) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `computeReservesFromPrice` (0xc48d887a) function - pub fn compute_reserves_from_price( - &self, - pool_id: u64, - price: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall< - M, - (::ethers::core::types::U256, ::ethers::core::types::U256), - > { - self.0 - .method_hash([196, 141, 136, 122], (pool_id, price)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `deposit` (0xd0e30db0) function - pub fn deposit(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([208, 227, 13, 176], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `draw` (0xad24d6a0) function - pub fn draw( - &self, - token: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - to: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([173, 36, 214, 160], (token, amount, to)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `fund` (0x7b1837de) function - pub fn fund( - &self, - token: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([123, 24, 55, 222], (token, amount)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getAmountOut` (0x7dae4890) function - pub fn get_amount_out( - &self, - pool_id: u64, - sell_asset: bool, - amount_in: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([125, 174, 72, 144], (pool_id, sell_asset, amount_in)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getBalance` (0xd4fac45d) function - pub fn get_balance( - &self, - owner: ::ethers::core::types::Address, - token: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([212, 250, 196, 93], (owner, token)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getLiquidityDeltas` (0x8992f20a) function - pub fn get_liquidity_deltas( - &self, - pool_id: u64, - delta_liquidity: i128, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([137, 146, 242, 10], (pool_id, delta_liquidity)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getMaxLiquidity` (0xd6b7dec5) function - pub fn get_max_liquidity( - &self, - pool_id: u64, - amount_0: ::ethers::core::types::U256, - amount_1: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([214, 183, 222, 197], (pool_id, amount_0, amount_1)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getNetBalance` (0x4dc68a90) function - pub fn get_net_balance( - &self, - token: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([77, 198, 138, 144], token) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getPairId` (0x3f92a339) function - pub fn get_pair_id( - &self, - p0: ::ethers::core::types::Address, - p1: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([63, 146, 163, 57], (p0, p1)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getPairNonce` (0x078888d6) function - pub fn get_pair_nonce(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([7, 136, 136, 214], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getPoolNonce` (0xa5cd8a49) function - pub fn get_pool_nonce( - &self, - p0: u32, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([165, 205, 138, 73], p0) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getPoolReserves` (0x2afb9df8) function - pub fn get_pool_reserves( - &self, - pool_id: u64, - ) -> ::ethers::contract::builders::ContractCall< - M, - (::ethers::core::types::U256, ::ethers::core::types::U256), - > { - self.0 - .method_hash([42, 251, 157, 248], pool_id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getReserve` (0xc9a396e9) function - pub fn get_reserve( - &self, - token: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([201, 163, 150, 233], token) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getVirtualPrice` (0x61b7ea6a) function - pub fn get_virtual_price( - &self, - pool_id: u64, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([97, 183, 234, 106], pool_id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getVirtualReservesPerLiquidity` (0x1a4b905b) function - pub fn get_virtual_reserves_per_liquidity( - &self, - pool_id: u64, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([26, 75, 144, 91], pool_id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `multiprocess` (0xa0fdf413) function - pub fn multiprocess( - &self, - data: ::ethers::core::types::Bytes, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([160, 253, 244, 19], data) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `pairs` (0x5e47663c) function - pub fn pairs( - &self, - p0: u32, - ) -> ::ethers::contract::builders::ContractCall< - M, - ( - ::ethers::core::types::Address, - u8, - ::ethers::core::types::Address, - u8, - ), - > { - self.0 - .method_hash([94, 71, 102, 60], p0) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `pools` (0x89a5f084) function - pub fn pools( - &self, - p0: u64, - ) -> ::ethers::contract::builders::ContractCall< - M, - ( - u128, - u128, - u128, - u32, - ::ethers::core::types::Address, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - PortfolioCurve, - PortfolioPair, - ), - > { - self.0 - .method_hash([137, 165, 240, 132], p0) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `positions` (0xb68513ea) function - pub fn positions( - &self, - p0: ::ethers::core::types::Address, - p1: u64, - ) -> ::ethers::contract::builders::ContractCall< - M, - ( - u128, - u32, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - u128, - u128, - u128, - ), - > { - self.0 - .method_hash([182, 133, 19, 234], (p0, p1)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `setProtocolFee` (0x787dce3d) function - pub fn set_protocol_fee( - &self, - fee: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([120, 125, 206, 61], fee) - .expect("method not found (this should never happen)") - } - ///Gets the contract's `Allocate` event - pub fn allocate_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, AllocateFilter> { - self.0.event() - } - ///Gets the contract's `ChangeParameters` event - pub fn change_parameters_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, ChangeParametersFilter> - { - self.0.event() - } - ///Gets the contract's `Collect` event - pub fn collect_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, CollectFilter> { - self.0.event() - } - ///Gets the contract's `CreatePair` event - pub fn create_pair_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, CreatePairFilter> { - self.0.event() - } - ///Gets the contract's `CreatePool` event - pub fn create_pool_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, CreatePoolFilter> { - self.0.event() - } - ///Gets the contract's `Deallocate` event - pub fn deallocate_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, DeallocateFilter> { - self.0.event() - } - ///Gets the contract's `DecreaseReserveBalance` event - pub fn decrease_reserve_balance_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, DecreaseReserveBalanceFilter> - { - self.0.event() - } - ///Gets the contract's `DecreaseUserBalance` event - pub fn decrease_user_balance_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, DecreaseUserBalanceFilter> - { - self.0.event() - } - ///Gets the contract's `Deposit` event - pub fn deposit_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, DepositFilter> { - self.0.event() - } - ///Gets the contract's `IncreaseReserveBalance` event - pub fn increase_reserve_balance_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, IncreaseReserveBalanceFilter> - { - self.0.event() - } - ///Gets the contract's `IncreaseUserBalance` event - pub fn increase_user_balance_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, IncreaseUserBalanceFilter> - { - self.0.event() - } - ///Gets the contract's `Swap` event - pub fn swap_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, SwapFilter> { - self.0.event() - } - ///Gets the contract's `UpdateProtocolFee` event - pub fn update_protocol_fee_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, UpdateProtocolFeeFilter> - { - self.0.event() - } - /// Returns an `Event` builder for all the events of this contract. - pub fn events( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, RMM01PortfolioEvents> - { - self.0 - .event_with_filter(::core::default::Default::default()) - } - } - impl From<::ethers::contract::Contract> - for RMM01Portfolio - { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - ///Custom Error type `DrawBalance` with signature `DrawBalance()` and selector `0xc9f2f26c` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "DrawBalance", abi = "DrawBalance()")] - pub struct DrawBalance; - ///Custom Error type `EtherTransferFail` with signature `EtherTransferFail()` and selector `0x75f42683` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "EtherTransferFail", abi = "EtherTransferFail()")] - pub struct EtherTransferFail; - ///Custom Error type `Infinity` with signature `Infinity()` and selector `0x07a02127` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "Infinity", abi = "Infinity()")] - pub struct Infinity; - ///Custom Error type `InsufficientReserve` with signature `InsufficientReserve(uint256,uint256)` and selector `0x315276c9` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror( - name = "InsufficientReserve", - abi = "InsufficientReserve(uint256,uint256)" - )] - pub struct InsufficientReserve { - pub amount: ::ethers::core::types::U256, - pub delta: ::ethers::core::types::U256, - } - ///Custom Error type `InvalidBalance` with signature `InvalidBalance()` and selector `0xc52e3eff` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "InvalidBalance", abi = "InvalidBalance()")] - pub struct InvalidBalance; - ///Custom Error type `InvalidBytesLength` with signature `InvalidBytesLength(uint256,uint256)` and selector `0xe19dc95e` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror( - name = "InvalidBytesLength", - abi = "InvalidBytesLength(uint256,uint256)" - )] - pub struct InvalidBytesLength { - pub expected: ::ethers::core::types::U256, - pub length: ::ethers::core::types::U256, - } - ///Custom Error type `InvalidDecimals` with signature `InvalidDecimals(uint8)` and selector `0xca950391` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "InvalidDecimals", abi = "InvalidDecimals(uint8)")] - pub struct InvalidDecimals { - pub decimals: u8, - } - ///Custom Error type `InvalidFee` with signature `InvalidFee(uint16)` and selector `0xf6f4a38f` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "InvalidFee", abi = "InvalidFee(uint16)")] - pub struct InvalidFee { - pub fee: u16, - } - ///Custom Error type `InvalidInstruction` with signature `InvalidInstruction()` and selector `0xd8c48f68` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "InvalidInstruction", abi = "InvalidInstruction()")] - pub struct InvalidInstruction; - ///Custom Error type `InvalidInvariant` with signature `InvalidInvariant(int256,int256)` and selector `0x2125a168` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "InvalidInvariant", abi = "InvalidInvariant(int256,int256)")] - pub struct InvalidInvariant { - pub prev: ::ethers::core::types::I256, - pub next: ::ethers::core::types::I256, - } - ///Custom Error type `InvalidJump` with signature `InvalidJump(uint256)` and selector `0x80f63bd1` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "InvalidJump", abi = "InvalidJump(uint256)")] - pub struct InvalidJump { - pub pointer: ::ethers::core::types::U256, - } - ///Custom Error type `InvalidPair` with signature `InvalidPair()` and selector `0x1e4f7d8c` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "InvalidPair", abi = "InvalidPair()")] - pub struct InvalidPair; - ///Custom Error type `InvalidReentrancy` with signature `InvalidReentrancy()` and selector `0xffc72209` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "InvalidReentrancy", abi = "InvalidReentrancy()")] - pub struct InvalidReentrancy; - ///Custom Error type `InvalidSettlement` with signature `InvalidSettlement()` and selector `0x115931c4` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "InvalidSettlement", abi = "InvalidSettlement()")] - pub struct InvalidSettlement; - ///Custom Error type `InvalidTransfer` with signature `InvalidTransfer()` and selector `0x2f352531` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "InvalidTransfer", abi = "InvalidTransfer()")] - pub struct InvalidTransfer; - ///Custom Error type `JitLiquidity` with signature `JitLiquidity(uint256)` and selector `0x9a231b2c` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "JitLiquidity", abi = "JitLiquidity(uint256)")] - pub struct JitLiquidity { - pub distance: ::ethers::core::types::U256, - } - ///Custom Error type `Min` with signature `Min()` and selector `0x4d2d75b1` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "Min", abi = "Min()")] - pub struct Min; - ///Custom Error type `NegativeBalance` with signature `NegativeBalance(address,int256)` and selector `0xfe239baa` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "NegativeBalance", abi = "NegativeBalance(address,int256)")] - pub struct NegativeBalance { - pub token: ::ethers::core::types::Address, - pub net: ::ethers::core::types::I256, - } - ///Custom Error type `NegativeInfinity` with signature `NegativeInfinity()` and selector `0x8bb56614` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "NegativeInfinity", abi = "NegativeInfinity()")] - pub struct NegativeInfinity; - ///Custom Error type `NonExistentPool` with signature `NonExistentPool(uint64)` and selector `0xd4480d46` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "NonExistentPool", abi = "NonExistentPool(uint64)")] - pub struct NonExistentPool { - pub pool_id: u64, - } - ///Custom Error type `NonExistentPosition` with signature `NonExistentPosition(address,uint64)` and selector `0x5f3605b6` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror( - name = "NonExistentPosition", - abi = "NonExistentPosition(address,uint64)" - )] - pub struct NonExistentPosition { - pub owner: ::ethers::core::types::Address, - pub pool_id: u64, - } - ///Custom Error type `NotController` with signature `NotController()` and selector `0x23019e67` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "NotController", abi = "NotController()")] - pub struct NotController; - ///Custom Error type `OOB` with signature `OOB()` and selector `0xaaf3956f` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "OOB", abi = "OOB()")] - pub struct OOB; - ///Custom Error type `OutOfBounds` with signature `OutOfBounds()` and selector `0xb4120f14` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "OutOfBounds", abi = "OutOfBounds()")] - pub struct OutOfBounds; - ///Custom Error type `OverflowWad` with signature `OverflowWad(int256)` and selector `0xb11558df` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "OverflowWad", abi = "OverflowWad(int256)")] - pub struct OverflowWad { - pub wad: ::ethers::core::types::I256, - } - ///Custom Error type `PairExists` with signature `PairExists(uint24)` and selector `0x3325fa77` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "PairExists", abi = "PairExists(uint24)")] - pub struct PairExists { - pub pair_id: u32, - } - ///Custom Error type `PoolExpired` with signature `PoolExpired()` and selector `0x398b36db` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "PoolExpired", abi = "PoolExpired()")] - pub struct PoolExpired; - ///Custom Error type `SameTokenError` with signature `SameTokenError()` and selector `0xec38b794` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "SameTokenError", abi = "SameTokenError()")] - pub struct SameTokenError; - ///Custom Error type `SwapInputTooSmall` with signature `SwapInputTooSmall()` and selector `0x2000e4e0` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "SwapInputTooSmall", abi = "SwapInputTooSmall()")] - pub struct SwapInputTooSmall; - ///Custom Error type `UndefinedPrice` with signature `UndefinedPrice()` and selector `0x22053363` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "UndefinedPrice", abi = "UndefinedPrice()")] - pub struct UndefinedPrice; - ///Custom Error type `ZeroAmounts` with signature `ZeroAmounts()` and selector `0x213c7cc5` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "ZeroAmounts", abi = "ZeroAmounts()")] - pub struct ZeroAmounts; - ///Custom Error type `ZeroInput` with signature `ZeroInput()` and selector `0xaf458c07` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "ZeroInput", abi = "ZeroInput()")] - pub struct ZeroInput; - ///Custom Error type `ZeroLiquidity` with signature `ZeroLiquidity()` and selector `0x10074548` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "ZeroLiquidity", abi = "ZeroLiquidity()")] - pub struct ZeroLiquidity; - ///Custom Error type `ZeroOutput` with signature `ZeroOutput()` and selector `0xe618637e` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "ZeroOutput", abi = "ZeroOutput()")] - pub struct ZeroOutput; - ///Custom Error type `ZeroPrice` with signature `ZeroPrice()` and selector `0x4dfba023` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "ZeroPrice", abi = "ZeroPrice()")] - pub struct ZeroPrice; - ///Custom Error type `ZeroValue` with signature `ZeroValue()` and selector `0x7c946ed7` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "ZeroValue", abi = "ZeroValue()")] - pub struct ZeroValue; - ///Container type for all of the contract's custom errors - #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] - pub enum RMM01PortfolioErrors { - DrawBalance(DrawBalance), - EtherTransferFail(EtherTransferFail), - Infinity(Infinity), - InsufficientReserve(InsufficientReserve), - InvalidBalance(InvalidBalance), - InvalidBytesLength(InvalidBytesLength), - InvalidDecimals(InvalidDecimals), - InvalidFee(InvalidFee), - InvalidInstruction(InvalidInstruction), - InvalidInvariant(InvalidInvariant), - InvalidJump(InvalidJump), - InvalidPair(InvalidPair), - InvalidReentrancy(InvalidReentrancy), - InvalidSettlement(InvalidSettlement), - InvalidTransfer(InvalidTransfer), - JitLiquidity(JitLiquidity), - Min(Min), - NegativeBalance(NegativeBalance), - NegativeInfinity(NegativeInfinity), - NonExistentPool(NonExistentPool), - NonExistentPosition(NonExistentPosition), - NotController(NotController), - OOB(OOB), - OutOfBounds(OutOfBounds), - OverflowWad(OverflowWad), - PairExists(PairExists), - PoolExpired(PoolExpired), - SameTokenError(SameTokenError), - SwapInputTooSmall(SwapInputTooSmall), - UndefinedPrice(UndefinedPrice), - ZeroAmounts(ZeroAmounts), - ZeroInput(ZeroInput), - ZeroLiquidity(ZeroLiquidity), - ZeroOutput(ZeroOutput), - ZeroPrice(ZeroPrice), - ZeroValue(ZeroValue), - } - impl ::ethers::core::abi::AbiDecode for RMM01PortfolioErrors { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) = ::decode(data) { - return Ok(Self::DrawBalance(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::EtherTransferFail(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Infinity(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::InsufficientReserve(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::InvalidBalance(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::InvalidBytesLength(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::InvalidDecimals(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::InvalidFee(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::InvalidInstruction(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::InvalidInvariant(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::InvalidJump(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::InvalidPair(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::InvalidReentrancy(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::InvalidSettlement(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::InvalidTransfer(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::JitLiquidity(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Min(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::NegativeBalance(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::NegativeInfinity(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::NonExistentPool(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::NonExistentPosition(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::NotController(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::OOB(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::OutOfBounds(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::OverflowWad(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::PairExists(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::PoolExpired(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::SameTokenError(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::SwapInputTooSmall(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::UndefinedPrice(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::ZeroAmounts(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::ZeroInput(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::ZeroLiquidity(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::ZeroOutput(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::ZeroPrice(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::ZeroValue(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for RMM01PortfolioErrors { - fn encode(self) -> ::std::vec::Vec { - match self { - Self::DrawBalance(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::EtherTransferFail(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Infinity(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::InsufficientReserve(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::InvalidBalance(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::InvalidBytesLength(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::InvalidDecimals(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::InvalidFee(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::InvalidInstruction(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::InvalidInvariant(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::InvalidJump(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::InvalidPair(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::InvalidReentrancy(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::InvalidSettlement(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::InvalidTransfer(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::JitLiquidity(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Min(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::NegativeBalance(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::NegativeInfinity(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::NonExistentPool(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::NonExistentPosition(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::NotController(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::OOB(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::OutOfBounds(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::OverflowWad(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::PairExists(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::PoolExpired(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::SameTokenError(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::SwapInputTooSmall(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::UndefinedPrice(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::ZeroAmounts(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::ZeroInput(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::ZeroLiquidity(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::ZeroOutput(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::ZeroPrice(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::ZeroValue(element) => ::ethers::core::abi::AbiEncode::encode(element), - } - } - } - impl ::core::fmt::Display for RMM01PortfolioErrors { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::DrawBalance(element) => ::core::fmt::Display::fmt(element, f), - Self::EtherTransferFail(element) => ::core::fmt::Display::fmt(element, f), - Self::Infinity(element) => ::core::fmt::Display::fmt(element, f), - Self::InsufficientReserve(element) => ::core::fmt::Display::fmt(element, f), - Self::InvalidBalance(element) => ::core::fmt::Display::fmt(element, f), - Self::InvalidBytesLength(element) => ::core::fmt::Display::fmt(element, f), - Self::InvalidDecimals(element) => ::core::fmt::Display::fmt(element, f), - Self::InvalidFee(element) => ::core::fmt::Display::fmt(element, f), - Self::InvalidInstruction(element) => ::core::fmt::Display::fmt(element, f), - Self::InvalidInvariant(element) => ::core::fmt::Display::fmt(element, f), - Self::InvalidJump(element) => ::core::fmt::Display::fmt(element, f), - Self::InvalidPair(element) => ::core::fmt::Display::fmt(element, f), - Self::InvalidReentrancy(element) => ::core::fmt::Display::fmt(element, f), - Self::InvalidSettlement(element) => ::core::fmt::Display::fmt(element, f), - Self::InvalidTransfer(element) => ::core::fmt::Display::fmt(element, f), - Self::JitLiquidity(element) => ::core::fmt::Display::fmt(element, f), - Self::Min(element) => ::core::fmt::Display::fmt(element, f), - Self::NegativeBalance(element) => ::core::fmt::Display::fmt(element, f), - Self::NegativeInfinity(element) => ::core::fmt::Display::fmt(element, f), - Self::NonExistentPool(element) => ::core::fmt::Display::fmt(element, f), - Self::NonExistentPosition(element) => ::core::fmt::Display::fmt(element, f), - Self::NotController(element) => ::core::fmt::Display::fmt(element, f), - Self::OOB(element) => ::core::fmt::Display::fmt(element, f), - Self::OutOfBounds(element) => ::core::fmt::Display::fmt(element, f), - Self::OverflowWad(element) => ::core::fmt::Display::fmt(element, f), - Self::PairExists(element) => ::core::fmt::Display::fmt(element, f), - Self::PoolExpired(element) => ::core::fmt::Display::fmt(element, f), - Self::SameTokenError(element) => ::core::fmt::Display::fmt(element, f), - Self::SwapInputTooSmall(element) => ::core::fmt::Display::fmt(element, f), - Self::UndefinedPrice(element) => ::core::fmt::Display::fmt(element, f), - Self::ZeroAmounts(element) => ::core::fmt::Display::fmt(element, f), - Self::ZeroInput(element) => ::core::fmt::Display::fmt(element, f), - Self::ZeroLiquidity(element) => ::core::fmt::Display::fmt(element, f), - Self::ZeroOutput(element) => ::core::fmt::Display::fmt(element, f), - Self::ZeroPrice(element) => ::core::fmt::Display::fmt(element, f), - Self::ZeroValue(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: DrawBalance) -> Self { - Self::DrawBalance(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: EtherTransferFail) -> Self { - Self::EtherTransferFail(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: Infinity) -> Self { - Self::Infinity(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: InsufficientReserve) -> Self { - Self::InsufficientReserve(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: InvalidBalance) -> Self { - Self::InvalidBalance(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: InvalidBytesLength) -> Self { - Self::InvalidBytesLength(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: InvalidDecimals) -> Self { - Self::InvalidDecimals(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: InvalidFee) -> Self { - Self::InvalidFee(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: InvalidInstruction) -> Self { - Self::InvalidInstruction(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: InvalidInvariant) -> Self { - Self::InvalidInvariant(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: InvalidJump) -> Self { - Self::InvalidJump(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: InvalidPair) -> Self { - Self::InvalidPair(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: InvalidReentrancy) -> Self { - Self::InvalidReentrancy(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: InvalidSettlement) -> Self { - Self::InvalidSettlement(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: InvalidTransfer) -> Self { - Self::InvalidTransfer(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: JitLiquidity) -> Self { - Self::JitLiquidity(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: Min) -> Self { - Self::Min(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: NegativeBalance) -> Self { - Self::NegativeBalance(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: NegativeInfinity) -> Self { - Self::NegativeInfinity(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: NonExistentPool) -> Self { - Self::NonExistentPool(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: NonExistentPosition) -> Self { - Self::NonExistentPosition(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: NotController) -> Self { - Self::NotController(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: OOB) -> Self { - Self::OOB(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: OutOfBounds) -> Self { - Self::OutOfBounds(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: OverflowWad) -> Self { - Self::OverflowWad(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: PairExists) -> Self { - Self::PairExists(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: PoolExpired) -> Self { - Self::PoolExpired(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: SameTokenError) -> Self { - Self::SameTokenError(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: SwapInputTooSmall) -> Self { - Self::SwapInputTooSmall(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: UndefinedPrice) -> Self { - Self::UndefinedPrice(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: ZeroAmounts) -> Self { - Self::ZeroAmounts(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: ZeroInput) -> Self { - Self::ZeroInput(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: ZeroLiquidity) -> Self { - Self::ZeroLiquidity(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: ZeroOutput) -> Self { - Self::ZeroOutput(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: ZeroPrice) -> Self { - Self::ZeroPrice(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: ZeroValue) -> Self { - Self::ZeroValue(value) - } - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "Allocate", - abi = "Allocate(uint64,address,address,uint256,uint256,uint256)" - )] - pub struct AllocateFilter { - #[ethevent(indexed)] - pub pool_id: u64, - #[ethevent(indexed)] - pub asset: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub quote: ::ethers::core::types::Address, - pub delta_asset: ::ethers::core::types::U256, - pub delta_quote: ::ethers::core::types::U256, - pub delta_liquidity: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "ChangeParameters", - abi = "ChangeParameters(uint64,uint16,uint16,uint16)" - )] - pub struct ChangeParametersFilter { - #[ethevent(indexed)] - pub pool_id: u64, - #[ethevent(indexed)] - pub priority_fee: u16, - #[ethevent(indexed)] - pub fee: u16, - pub jit: u16, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "Collect", - abi = "Collect(uint64,address,uint256,address,uint256,address)" - )] - pub struct CollectFilter { - pub pool_id: u64, - #[ethevent(indexed)] - pub account: ::ethers::core::types::Address, - pub fee_asset_dec: ::ethers::core::types::U256, - #[ethevent(indexed)] - pub asset: ::ethers::core::types::Address, - pub fee_quote_dec: ::ethers::core::types::U256, - #[ethevent(indexed)] - pub quote: ::ethers::core::types::Address, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "CreatePair", - abi = "CreatePair(uint24,address,address,uint8,uint8)" - )] - pub struct CreatePairFilter { - #[ethevent(indexed)] - pub pair_id: u32, - #[ethevent(indexed)] - pub asset: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub quote: ::ethers::core::types::Address, - pub decimals_asset: u8, - pub decimals_quote: u8, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "CreatePool", - abi = "CreatePool(uint64,bool,address,address,uint256)" - )] - pub struct CreatePoolFilter { - #[ethevent(indexed)] - pub pool_id: u64, - pub is_mutable: bool, - #[ethevent(indexed)] - pub asset: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub quote: ::ethers::core::types::Address, - pub price: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "Deallocate", - abi = "Deallocate(uint64,address,address,uint256,uint256,uint256)" - )] - pub struct DeallocateFilter { - #[ethevent(indexed)] - pub pool_id: u64, - #[ethevent(indexed)] - pub asset: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub quote: ::ethers::core::types::Address, - pub delta_asset: ::ethers::core::types::U256, - pub delta_quote: ::ethers::core::types::U256, - pub delta_liquidity: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "DecreaseReserveBalance", - abi = "DecreaseReserveBalance(address,uint256)" - )] - pub struct DecreaseReserveBalanceFilter { - #[ethevent(indexed)] - pub token: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "DecreaseUserBalance", - abi = "DecreaseUserBalance(address,address,uint256)" - )] - pub struct DecreaseUserBalanceFilter { - #[ethevent(indexed)] - pub account: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub token: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent(name = "Deposit", abi = "Deposit(address,uint256)")] - pub struct DepositFilter { - #[ethevent(indexed)] - pub account: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "IncreaseReserveBalance", - abi = "IncreaseReserveBalance(address,uint256)" - )] - pub struct IncreaseReserveBalanceFilter { - #[ethevent(indexed)] - pub token: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "IncreaseUserBalance", - abi = "IncreaseUserBalance(address,address,uint256)" - )] - pub struct IncreaseUserBalanceFilter { - #[ethevent(indexed)] - pub account: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub token: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "Swap", - abi = "Swap(uint64,uint256,address,uint256,address,uint256,uint256,int256)" - )] - pub struct SwapFilter { - #[ethevent(indexed)] - pub pool_id: u64, - pub price: ::ethers::core::types::U256, - #[ethevent(indexed)] - pub sell_asset: ::ethers::core::types::Address, - pub input: ::ethers::core::types::U256, - #[ethevent(indexed)] - pub token_out: ::ethers::core::types::Address, - pub output: ::ethers::core::types::U256, - pub fee_amount_dec: ::ethers::core::types::U256, - pub invariant_wad: ::ethers::core::types::I256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent(name = "UpdateProtocolFee", abi = "UpdateProtocolFee(uint256,uint256)")] - pub struct UpdateProtocolFeeFilter { - pub prev_fee: ::ethers::core::types::U256, - pub next_fee: ::ethers::core::types::U256, - } - ///Container type for all of the contract's events - #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] - pub enum RMM01PortfolioEvents { - AllocateFilter(AllocateFilter), - ChangeParametersFilter(ChangeParametersFilter), - CollectFilter(CollectFilter), - CreatePairFilter(CreatePairFilter), - CreatePoolFilter(CreatePoolFilter), - DeallocateFilter(DeallocateFilter), - DecreaseReserveBalanceFilter(DecreaseReserveBalanceFilter), - DecreaseUserBalanceFilter(DecreaseUserBalanceFilter), - DepositFilter(DepositFilter), - IncreaseReserveBalanceFilter(IncreaseReserveBalanceFilter), - IncreaseUserBalanceFilter(IncreaseUserBalanceFilter), - SwapFilter(SwapFilter), - UpdateProtocolFeeFilter(UpdateProtocolFeeFilter), - } - impl ::ethers::contract::EthLogDecode for RMM01PortfolioEvents { - fn decode_log( - log: &::ethers::core::abi::RawLog, - ) -> ::core::result::Result { - if let Ok(decoded) = AllocateFilter::decode_log(log) { - return Ok(RMM01PortfolioEvents::AllocateFilter(decoded)); - } - if let Ok(decoded) = ChangeParametersFilter::decode_log(log) { - return Ok(RMM01PortfolioEvents::ChangeParametersFilter(decoded)); - } - if let Ok(decoded) = CollectFilter::decode_log(log) { - return Ok(RMM01PortfolioEvents::CollectFilter(decoded)); - } - if let Ok(decoded) = CreatePairFilter::decode_log(log) { - return Ok(RMM01PortfolioEvents::CreatePairFilter(decoded)); - } - if let Ok(decoded) = CreatePoolFilter::decode_log(log) { - return Ok(RMM01PortfolioEvents::CreatePoolFilter(decoded)); - } - if let Ok(decoded) = DeallocateFilter::decode_log(log) { - return Ok(RMM01PortfolioEvents::DeallocateFilter(decoded)); - } - if let Ok(decoded) = DecreaseReserveBalanceFilter::decode_log(log) { - return Ok(RMM01PortfolioEvents::DecreaseReserveBalanceFilter(decoded)); - } - if let Ok(decoded) = DecreaseUserBalanceFilter::decode_log(log) { - return Ok(RMM01PortfolioEvents::DecreaseUserBalanceFilter(decoded)); - } - if let Ok(decoded) = DepositFilter::decode_log(log) { - return Ok(RMM01PortfolioEvents::DepositFilter(decoded)); - } - if let Ok(decoded) = IncreaseReserveBalanceFilter::decode_log(log) { - return Ok(RMM01PortfolioEvents::IncreaseReserveBalanceFilter(decoded)); - } - if let Ok(decoded) = IncreaseUserBalanceFilter::decode_log(log) { - return Ok(RMM01PortfolioEvents::IncreaseUserBalanceFilter(decoded)); - } - if let Ok(decoded) = SwapFilter::decode_log(log) { - return Ok(RMM01PortfolioEvents::SwapFilter(decoded)); - } - if let Ok(decoded) = UpdateProtocolFeeFilter::decode_log(log) { - return Ok(RMM01PortfolioEvents::UpdateProtocolFeeFilter(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData) - } - } - impl ::core::fmt::Display for RMM01PortfolioEvents { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::AllocateFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::ChangeParametersFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::CollectFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::CreatePairFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::CreatePoolFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::DeallocateFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::DecreaseReserveBalanceFilter(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::DecreaseUserBalanceFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::DepositFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::IncreaseReserveBalanceFilter(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::IncreaseUserBalanceFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::SwapFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::UpdateProtocolFeeFilter(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for RMM01PortfolioEvents { - fn from(value: AllocateFilter) -> Self { - Self::AllocateFilter(value) - } - } - impl ::core::convert::From for RMM01PortfolioEvents { - fn from(value: ChangeParametersFilter) -> Self { - Self::ChangeParametersFilter(value) - } - } - impl ::core::convert::From for RMM01PortfolioEvents { - fn from(value: CollectFilter) -> Self { - Self::CollectFilter(value) - } - } - impl ::core::convert::From for RMM01PortfolioEvents { - fn from(value: CreatePairFilter) -> Self { - Self::CreatePairFilter(value) - } - } - impl ::core::convert::From for RMM01PortfolioEvents { - fn from(value: CreatePoolFilter) -> Self { - Self::CreatePoolFilter(value) - } - } - impl ::core::convert::From for RMM01PortfolioEvents { - fn from(value: DeallocateFilter) -> Self { - Self::DeallocateFilter(value) - } - } - impl ::core::convert::From for RMM01PortfolioEvents { - fn from(value: DecreaseReserveBalanceFilter) -> Self { - Self::DecreaseReserveBalanceFilter(value) - } - } - impl ::core::convert::From for RMM01PortfolioEvents { - fn from(value: DecreaseUserBalanceFilter) -> Self { - Self::DecreaseUserBalanceFilter(value) - } - } - impl ::core::convert::From for RMM01PortfolioEvents { - fn from(value: DepositFilter) -> Self { - Self::DepositFilter(value) - } - } - impl ::core::convert::From for RMM01PortfolioEvents { - fn from(value: IncreaseReserveBalanceFilter) -> Self { - Self::IncreaseReserveBalanceFilter(value) - } - } - impl ::core::convert::From for RMM01PortfolioEvents { - fn from(value: IncreaseUserBalanceFilter) -> Self { - Self::IncreaseUserBalanceFilter(value) - } - } - impl ::core::convert::From for RMM01PortfolioEvents { - fn from(value: SwapFilter) -> Self { - Self::SwapFilter(value) - } - } - impl ::core::convert::From for RMM01PortfolioEvents { - fn from(value: UpdateProtocolFeeFilter) -> Self { - Self::UpdateProtocolFeeFilter(value) - } - } - ///Container type for all input parameters for the `REGISTRY` function with signature `REGISTRY()` and selector `0x06433b1b` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "REGISTRY", abi = "REGISTRY()")] - pub struct RegistryCall; - ///Container type for all input parameters for the `VERSION` function with signature `VERSION()` and selector `0xffa1ad74` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "VERSION", abi = "VERSION()")] - pub struct VersionCall; - ///Container type for all input parameters for the `WETH` function with signature `WETH()` and selector `0xad5c4648` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "WETH", abi = "WETH()")] - pub struct WethCall; - ///Container type for all input parameters for the `__account__` function with signature `__account__()` and selector `0xda31ee54` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "__account__", abi = "__account__()")] - pub struct AccountCall; - ///Container type for all input parameters for the `changeParameters` function with signature `changeParameters(uint64,uint16,uint16,uint16)` and selector `0xaf777855` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall( - name = "changeParameters", - abi = "changeParameters(uint64,uint16,uint16,uint16)" - )] - pub struct ChangeParametersCall { - pub pool_id: u64, - pub priority_fee: u16, - pub fee: u16, - pub jit: u16, - } - ///Container type for all input parameters for the `checkInvariant` function with signature `checkInvariant(uint64,int256,uint256,uint256,uint256)` and selector `0x2f337da5` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall( - name = "checkInvariant", - abi = "checkInvariant(uint64,int256,uint256,uint256,uint256)" - )] - pub struct CheckInvariantCall { - pub pool_id: u64, - pub invariant: ::ethers::core::types::I256, - pub reserve_x: ::ethers::core::types::U256, - pub reserve_y: ::ethers::core::types::U256, - pub timestamp: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `checkPool` function with signature `checkPool(uint64)` and selector `0xa68aaa41` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "checkPool", abi = "checkPool(uint64)")] - pub struct CheckPoolCall { - pub pool_id: u64, - } - ///Container type for all input parameters for the `checkPosition` function with signature `checkPosition(uint64,address,int256)` and selector `0x2cc6641e` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "checkPosition", abi = "checkPosition(uint64,address,int256)")] - pub struct CheckPositionCall { - pub pool_id: u64, - pub owner: ::ethers::core::types::Address, - pub delta: ::ethers::core::types::I256, - } - ///Container type for all input parameters for the `computeMaxInput` function with signature `computeMaxInput(uint64,bool,uint256,uint256)` and selector `0x989bafba` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall( - name = "computeMaxInput", - abi = "computeMaxInput(uint64,bool,uint256,uint256)" - )] - pub struct ComputeMaxInputCall { - pub pool_id: u64, - pub sell_asset: bool, - pub reserve_in: ::ethers::core::types::U256, - pub liquidity: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `computeReservesFromPrice` function with signature `computeReservesFromPrice(uint64,uint256)` and selector `0xc48d887a` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall( - name = "computeReservesFromPrice", - abi = "computeReservesFromPrice(uint64,uint256)" - )] - pub struct ComputeReservesFromPriceCall { - pub pool_id: u64, - pub price: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `deposit` function with signature `deposit()` and selector `0xd0e30db0` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "deposit", abi = "deposit()")] - pub struct DepositCall; - ///Container type for all input parameters for the `draw` function with signature `draw(address,uint256,address)` and selector `0xad24d6a0` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "draw", abi = "draw(address,uint256,address)")] - pub struct DrawCall { - pub token: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - pub to: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `fund` function with signature `fund(address,uint256)` and selector `0x7b1837de` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "fund", abi = "fund(address,uint256)")] - pub struct FundCall { - pub token: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `getAmountOut` function with signature `getAmountOut(uint64,bool,uint256)` and selector `0x7dae4890` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getAmountOut", abi = "getAmountOut(uint64,bool,uint256)")] - pub struct GetAmountOutCall { - pub pool_id: u64, - pub sell_asset: bool, - pub amount_in: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `getBalance` function with signature `getBalance(address,address)` and selector `0xd4fac45d` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getBalance", abi = "getBalance(address,address)")] - pub struct GetBalanceCall { - pub owner: ::ethers::core::types::Address, - pub token: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `getLiquidityDeltas` function with signature `getLiquidityDeltas(uint64,int128)` and selector `0x8992f20a` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getLiquidityDeltas", abi = "getLiquidityDeltas(uint64,int128)")] - pub struct GetLiquidityDeltasCall { - pub pool_id: u64, - pub delta_liquidity: i128, - } - ///Container type for all input parameters for the `getMaxLiquidity` function with signature `getMaxLiquidity(uint64,uint256,uint256)` and selector `0xd6b7dec5` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall( - name = "getMaxLiquidity", - abi = "getMaxLiquidity(uint64,uint256,uint256)" - )] - pub struct GetMaxLiquidityCall { - pub pool_id: u64, - pub amount_0: ::ethers::core::types::U256, - pub amount_1: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `getNetBalance` function with signature `getNetBalance(address)` and selector `0x4dc68a90` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getNetBalance", abi = "getNetBalance(address)")] - pub struct GetNetBalanceCall { - pub token: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `getPairId` function with signature `getPairId(address,address)` and selector `0x3f92a339` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getPairId", abi = "getPairId(address,address)")] - pub struct GetPairIdCall( - pub ::ethers::core::types::Address, - pub ::ethers::core::types::Address, - ); - ///Container type for all input parameters for the `getPairNonce` function with signature `getPairNonce()` and selector `0x078888d6` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getPairNonce", abi = "getPairNonce()")] - pub struct GetPairNonceCall; - ///Container type for all input parameters for the `getPoolNonce` function with signature `getPoolNonce(uint24)` and selector `0xa5cd8a49` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getPoolNonce", abi = "getPoolNonce(uint24)")] - pub struct GetPoolNonceCall(pub u32); - ///Container type for all input parameters for the `getPoolReserves` function with signature `getPoolReserves(uint64)` and selector `0x2afb9df8` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getPoolReserves", abi = "getPoolReserves(uint64)")] - pub struct GetPoolReservesCall { - pub pool_id: u64, - } - ///Container type for all input parameters for the `getReserve` function with signature `getReserve(address)` and selector `0xc9a396e9` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getReserve", abi = "getReserve(address)")] - pub struct GetReserveCall { - pub token: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `getVirtualPrice` function with signature `getVirtualPrice(uint64)` and selector `0x61b7ea6a` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getVirtualPrice", abi = "getVirtualPrice(uint64)")] - pub struct GetVirtualPriceCall { - pub pool_id: u64, - } - ///Container type for all input parameters for the `getVirtualReservesPerLiquidity` function with signature `getVirtualReservesPerLiquidity(uint64)` and selector `0x1a4b905b` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall( - name = "getVirtualReservesPerLiquidity", - abi = "getVirtualReservesPerLiquidity(uint64)" - )] - pub struct GetVirtualReservesPerLiquidityCall { - pub pool_id: u64, - } - ///Container type for all input parameters for the `multiprocess` function with signature `multiprocess(bytes)` and selector `0xa0fdf413` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "multiprocess", abi = "multiprocess(bytes)")] - pub struct MultiprocessCall { - pub data: ::ethers::core::types::Bytes, - } - ///Container type for all input parameters for the `pairs` function with signature `pairs(uint24)` and selector `0x5e47663c` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "pairs", abi = "pairs(uint24)")] - pub struct PairsCall(pub u32); - ///Container type for all input parameters for the `pools` function with signature `pools(uint64)` and selector `0x89a5f084` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "pools", abi = "pools(uint64)")] - pub struct PoolsCall(pub u64); - ///Container type for all input parameters for the `positions` function with signature `positions(address,uint64)` and selector `0xb68513ea` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "positions", abi = "positions(address,uint64)")] - pub struct PositionsCall(pub ::ethers::core::types::Address, pub u64); - ///Container type for all input parameters for the `setProtocolFee` function with signature `setProtocolFee(uint256)` and selector `0x787dce3d` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "setProtocolFee", abi = "setProtocolFee(uint256)")] - pub struct SetProtocolFeeCall { - pub fee: ::ethers::core::types::U256, - } - ///Container type for all of the contract's call - #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] - pub enum RMM01PortfolioCalls { - Registry(RegistryCall), - Version(VersionCall), - Weth(WethCall), - Account(AccountCall), - ChangeParameters(ChangeParametersCall), - CheckInvariant(CheckInvariantCall), - CheckPool(CheckPoolCall), - CheckPosition(CheckPositionCall), - ComputeMaxInput(ComputeMaxInputCall), - ComputeReservesFromPrice(ComputeReservesFromPriceCall), - Deposit(DepositCall), - Draw(DrawCall), - Fund(FundCall), - GetAmountOut(GetAmountOutCall), - GetBalance(GetBalanceCall), - GetLiquidityDeltas(GetLiquidityDeltasCall), - GetMaxLiquidity(GetMaxLiquidityCall), - GetNetBalance(GetNetBalanceCall), - GetPairId(GetPairIdCall), - GetPairNonce(GetPairNonceCall), - GetPoolNonce(GetPoolNonceCall), - GetPoolReserves(GetPoolReservesCall), - GetReserve(GetReserveCall), - GetVirtualPrice(GetVirtualPriceCall), - GetVirtualReservesPerLiquidity(GetVirtualReservesPerLiquidityCall), - Multiprocess(MultiprocessCall), - Pairs(PairsCall), - Pools(PoolsCall), - Positions(PositionsCall), - SetProtocolFee(SetProtocolFeeCall), - } - impl ::ethers::core::abi::AbiDecode for RMM01PortfolioCalls { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Registry(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Version(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Weth(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Account(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::ChangeParameters(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::CheckInvariant(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::CheckPool(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::CheckPosition(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::ComputeMaxInput(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::ComputeReservesFromPrice(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Deposit(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Draw(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Fund(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::GetAmountOut(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::GetBalance(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::GetLiquidityDeltas(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::GetMaxLiquidity(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::GetNetBalance(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::GetPairId(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::GetPairNonce(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::GetPoolNonce(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::GetPoolReserves(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::GetReserve(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::GetVirtualPrice(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::GetVirtualReservesPerLiquidity(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::Multiprocess(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Pairs(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Pools(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Positions(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::SetProtocolFee(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for RMM01PortfolioCalls { - fn encode(self) -> Vec { - match self { - Self::Registry(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Version(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Weth(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Account(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::ChangeParameters(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::CheckInvariant(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::CheckPool(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::CheckPosition(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::ComputeMaxInput(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::ComputeReservesFromPrice(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Deposit(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Draw(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Fund(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetAmountOut(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetBalance(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetLiquidityDeltas(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::GetMaxLiquidity(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetNetBalance(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetPairId(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetPairNonce(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetPoolNonce(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetPoolReserves(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetReserve(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetVirtualPrice(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetVirtualReservesPerLiquidity(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Multiprocess(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Pairs(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Pools(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Positions(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::SetProtocolFee(element) => ::ethers::core::abi::AbiEncode::encode(element), - } - } - } - impl ::core::fmt::Display for RMM01PortfolioCalls { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::Registry(element) => ::core::fmt::Display::fmt(element, f), - Self::Version(element) => ::core::fmt::Display::fmt(element, f), - Self::Weth(element) => ::core::fmt::Display::fmt(element, f), - Self::Account(element) => ::core::fmt::Display::fmt(element, f), - Self::ChangeParameters(element) => ::core::fmt::Display::fmt(element, f), - Self::CheckInvariant(element) => ::core::fmt::Display::fmt(element, f), - Self::CheckPool(element) => ::core::fmt::Display::fmt(element, f), - Self::CheckPosition(element) => ::core::fmt::Display::fmt(element, f), - Self::ComputeMaxInput(element) => ::core::fmt::Display::fmt(element, f), - Self::ComputeReservesFromPrice(element) => ::core::fmt::Display::fmt(element, f), - Self::Deposit(element) => ::core::fmt::Display::fmt(element, f), - Self::Draw(element) => ::core::fmt::Display::fmt(element, f), - Self::Fund(element) => ::core::fmt::Display::fmt(element, f), - Self::GetAmountOut(element) => ::core::fmt::Display::fmt(element, f), - Self::GetBalance(element) => ::core::fmt::Display::fmt(element, f), - Self::GetLiquidityDeltas(element) => ::core::fmt::Display::fmt(element, f), - Self::GetMaxLiquidity(element) => ::core::fmt::Display::fmt(element, f), - Self::GetNetBalance(element) => ::core::fmt::Display::fmt(element, f), - Self::GetPairId(element) => ::core::fmt::Display::fmt(element, f), - Self::GetPairNonce(element) => ::core::fmt::Display::fmt(element, f), - Self::GetPoolNonce(element) => ::core::fmt::Display::fmt(element, f), - Self::GetPoolReserves(element) => ::core::fmt::Display::fmt(element, f), - Self::GetReserve(element) => ::core::fmt::Display::fmt(element, f), - Self::GetVirtualPrice(element) => ::core::fmt::Display::fmt(element, f), - Self::GetVirtualReservesPerLiquidity(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::Multiprocess(element) => ::core::fmt::Display::fmt(element, f), - Self::Pairs(element) => ::core::fmt::Display::fmt(element, f), - Self::Pools(element) => ::core::fmt::Display::fmt(element, f), - Self::Positions(element) => ::core::fmt::Display::fmt(element, f), - Self::SetProtocolFee(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for RMM01PortfolioCalls { - fn from(value: RegistryCall) -> Self { - Self::Registry(value) - } - } - impl ::core::convert::From for RMM01PortfolioCalls { - fn from(value: VersionCall) -> Self { - Self::Version(value) - } - } - impl ::core::convert::From for RMM01PortfolioCalls { - fn from(value: WethCall) -> Self { - Self::Weth(value) - } - } - impl ::core::convert::From for RMM01PortfolioCalls { - fn from(value: AccountCall) -> Self { - Self::Account(value) - } - } - impl ::core::convert::From for RMM01PortfolioCalls { - fn from(value: ChangeParametersCall) -> Self { - Self::ChangeParameters(value) - } - } - impl ::core::convert::From for RMM01PortfolioCalls { - fn from(value: CheckInvariantCall) -> Self { - Self::CheckInvariant(value) - } - } - impl ::core::convert::From for RMM01PortfolioCalls { - fn from(value: CheckPoolCall) -> Self { - Self::CheckPool(value) - } - } - impl ::core::convert::From for RMM01PortfolioCalls { - fn from(value: CheckPositionCall) -> Self { - Self::CheckPosition(value) - } - } - impl ::core::convert::From for RMM01PortfolioCalls { - fn from(value: ComputeMaxInputCall) -> Self { - Self::ComputeMaxInput(value) - } - } - impl ::core::convert::From for RMM01PortfolioCalls { - fn from(value: ComputeReservesFromPriceCall) -> Self { - Self::ComputeReservesFromPrice(value) - } - } - impl ::core::convert::From for RMM01PortfolioCalls { - fn from(value: DepositCall) -> Self { - Self::Deposit(value) - } - } - impl ::core::convert::From for RMM01PortfolioCalls { - fn from(value: DrawCall) -> Self { - Self::Draw(value) - } - } - impl ::core::convert::From for RMM01PortfolioCalls { - fn from(value: FundCall) -> Self { - Self::Fund(value) - } - } - impl ::core::convert::From for RMM01PortfolioCalls { - fn from(value: GetAmountOutCall) -> Self { - Self::GetAmountOut(value) - } - } - impl ::core::convert::From for RMM01PortfolioCalls { - fn from(value: GetBalanceCall) -> Self { - Self::GetBalance(value) - } - } - impl ::core::convert::From for RMM01PortfolioCalls { - fn from(value: GetLiquidityDeltasCall) -> Self { - Self::GetLiquidityDeltas(value) - } - } - impl ::core::convert::From for RMM01PortfolioCalls { - fn from(value: GetMaxLiquidityCall) -> Self { - Self::GetMaxLiquidity(value) - } - } - impl ::core::convert::From for RMM01PortfolioCalls { - fn from(value: GetNetBalanceCall) -> Self { - Self::GetNetBalance(value) - } - } - impl ::core::convert::From for RMM01PortfolioCalls { - fn from(value: GetPairIdCall) -> Self { - Self::GetPairId(value) - } - } - impl ::core::convert::From for RMM01PortfolioCalls { - fn from(value: GetPairNonceCall) -> Self { - Self::GetPairNonce(value) - } - } - impl ::core::convert::From for RMM01PortfolioCalls { - fn from(value: GetPoolNonceCall) -> Self { - Self::GetPoolNonce(value) - } - } - impl ::core::convert::From for RMM01PortfolioCalls { - fn from(value: GetPoolReservesCall) -> Self { - Self::GetPoolReserves(value) - } - } - impl ::core::convert::From for RMM01PortfolioCalls { - fn from(value: GetReserveCall) -> Self { - Self::GetReserve(value) - } - } - impl ::core::convert::From for RMM01PortfolioCalls { - fn from(value: GetVirtualPriceCall) -> Self { - Self::GetVirtualPrice(value) - } - } - impl ::core::convert::From for RMM01PortfolioCalls { - fn from(value: GetVirtualReservesPerLiquidityCall) -> Self { - Self::GetVirtualReservesPerLiquidity(value) - } - } - impl ::core::convert::From for RMM01PortfolioCalls { - fn from(value: MultiprocessCall) -> Self { - Self::Multiprocess(value) - } - } - impl ::core::convert::From for RMM01PortfolioCalls { - fn from(value: PairsCall) -> Self { - Self::Pairs(value) - } - } - impl ::core::convert::From for RMM01PortfolioCalls { - fn from(value: PoolsCall) -> Self { - Self::Pools(value) - } - } - impl ::core::convert::From for RMM01PortfolioCalls { - fn from(value: PositionsCall) -> Self { - Self::Positions(value) - } - } - impl ::core::convert::From for RMM01PortfolioCalls { - fn from(value: SetProtocolFeeCall) -> Self { - Self::SetProtocolFee(value) - } - } - ///Container type for all return fields from the `REGISTRY` function with signature `REGISTRY()` and selector `0x06433b1b` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct RegistryReturn(pub ::ethers::core::types::Address); - ///Container type for all return fields from the `VERSION` function with signature `VERSION()` and selector `0xffa1ad74` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct VersionReturn(pub ::std::string::String); - ///Container type for all return fields from the `WETH` function with signature `WETH()` and selector `0xad5c4648` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct WethReturn(pub ::ethers::core::types::Address); - ///Container type for all return fields from the `__account__` function with signature `__account__()` and selector `0xda31ee54` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct AccountReturn { - pub settled: bool, - } - ///Container type for all return fields from the `checkInvariant` function with signature `checkInvariant(uint64,int256,uint256,uint256,uint256)` and selector `0x2f337da5` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct CheckInvariantReturn { - pub p0: bool, - pub next_invariant: ::ethers::core::types::I256, - } - ///Container type for all return fields from the `checkPool` function with signature `checkPool(uint64)` and selector `0xa68aaa41` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct CheckPoolReturn(pub bool); - ///Container type for all return fields from the `checkPosition` function with signature `checkPosition(uint64,address,int256)` and selector `0x2cc6641e` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct CheckPositionReturn(pub bool); - ///Container type for all return fields from the `computeMaxInput` function with signature `computeMaxInput(uint64,bool,uint256,uint256)` and selector `0x989bafba` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct ComputeMaxInputReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `computeReservesFromPrice` function with signature `computeReservesFromPrice(uint64,uint256)` and selector `0xc48d887a` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct ComputeReservesFromPriceReturn { - pub reserve_x: ::ethers::core::types::U256, - pub reserve_y: ::ethers::core::types::U256, - } - ///Container type for all return fields from the `getAmountOut` function with signature `getAmountOut(uint64,bool,uint256)` and selector `0x7dae4890` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetAmountOutReturn { - pub output: ::ethers::core::types::U256, - } - ///Container type for all return fields from the `getBalance` function with signature `getBalance(address,address)` and selector `0xd4fac45d` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetBalanceReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `getLiquidityDeltas` function with signature `getLiquidityDeltas(uint64,int128)` and selector `0x8992f20a` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetLiquidityDeltasReturn { - pub delta_asset: u128, - pub delta_quote: u128, - } - ///Container type for all return fields from the `getMaxLiquidity` function with signature `getMaxLiquidity(uint64,uint256,uint256)` and selector `0xd6b7dec5` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetMaxLiquidityReturn { - pub delta_liquidity: u128, - } - ///Container type for all return fields from the `getNetBalance` function with signature `getNetBalance(address)` and selector `0x4dc68a90` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetNetBalanceReturn(pub ::ethers::core::types::I256); - ///Container type for all return fields from the `getPairId` function with signature `getPairId(address,address)` and selector `0x3f92a339` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetPairIdReturn(pub u32); - ///Container type for all return fields from the `getPairNonce` function with signature `getPairNonce()` and selector `0x078888d6` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetPairNonceReturn(pub u32); - ///Container type for all return fields from the `getPoolNonce` function with signature `getPoolNonce(uint24)` and selector `0xa5cd8a49` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetPoolNonceReturn(pub u32); - ///Container type for all return fields from the `getPoolReserves` function with signature `getPoolReserves(uint64)` and selector `0x2afb9df8` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetPoolReservesReturn { - pub delta_asset: ::ethers::core::types::U256, - pub delta_quote: ::ethers::core::types::U256, - } - ///Container type for all return fields from the `getReserve` function with signature `getReserve(address)` and selector `0xc9a396e9` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetReserveReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `getVirtualPrice` function with signature `getVirtualPrice(uint64)` and selector `0x61b7ea6a` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetVirtualPriceReturn { - pub price: ::ethers::core::types::U256, - } - ///Container type for all return fields from the `getVirtualReservesPerLiquidity` function with signature `getVirtualReservesPerLiquidity(uint64)` and selector `0x1a4b905b` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetVirtualReservesPerLiquidityReturn { - pub delta_asset: u128, - pub delta_quote: u128, - } - ///Container type for all return fields from the `pairs` function with signature `pairs(uint24)` and selector `0x5e47663c` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct PairsReturn { - pub token_asset: ::ethers::core::types::Address, - pub decimals_asset: u8, - pub token_quote: ::ethers::core::types::Address, - pub decimals_quote: u8, - } - ///Container type for all return fields from the `pools` function with signature `pools(uint64)` and selector `0x89a5f084` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct PoolsReturn { - pub virtual_x: u128, - pub virtual_y: u128, - pub liquidity: u128, - pub last_timestamp: u32, - pub controller: ::ethers::core::types::Address, - pub invariant_growth_global: ::ethers::core::types::U256, - pub fee_growth_global_asset: ::ethers::core::types::U256, - pub fee_growth_global_quote: ::ethers::core::types::U256, - pub params: PortfolioCurve, - pub pair: PortfolioPair, - } - ///Container type for all return fields from the `positions` function with signature `positions(address,uint64)` and selector `0xb68513ea` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct PositionsReturn { - pub free_liquidity: u128, - pub last_timestamp: u32, - pub invariant_growth_last: ::ethers::core::types::U256, - pub fee_growth_asset_last: ::ethers::core::types::U256, - pub fee_growth_quote_last: ::ethers::core::types::U256, - pub tokens_owed_asset: u128, - pub tokens_owed_quote: u128, - pub invariant_owed: u128, - } -} diff --git a/crates/bindings/src/shared_types.rs b/crates/bindings/src/shared_types.rs deleted file mode 100644 index f339f313..00000000 --- a/crates/bindings/src/shared_types.rs +++ /dev/null @@ -1,38 +0,0 @@ -///`PortfolioCurve(uint128,uint16,uint16,uint16,uint16,uint16,uint32,bool)` -#[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, -)] -pub struct PortfolioCurve { - pub max_price: u128, - pub jit: u16, - pub fee: u16, - pub duration: u16, - pub volatility: u16, - pub priority_fee: u16, - pub created_at: u32, - pub perpetual: bool, -} -///`PortfolioPair(address,uint8,address,uint8)` -#[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash, -)] -pub struct PortfolioPair { - pub token_asset: ::ethers::core::types::Address, - pub decimals_asset: u8, - pub token_quote: ::ethers::core::types::Address, - pub decimals_quote: u8, -} diff --git a/crates/bindings/src/std_invariant.rs b/crates/bindings/src/std_invariant.rs new file mode 100644 index 00000000..cec96dfe --- /dev/null +++ b/crates/bindings/src/std_invariant.rs @@ -0,0 +1,4686 @@ +pub use std_invariant::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod std_invariant { + #[rustfmt::skip] + const __ABI: &str = "[{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"excludeArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"excludedArtifacts_\",\"type\":\"string[]\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"excludeContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedContracts_\",\"type\":\"address[]\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"excludeSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedSenders_\",\"type\":\"address[]\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"targetArtifactSelectors\",\"outputs\":[{\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedArtifactSelectors_\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\",\"components\":[]}]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"targetArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"targetedArtifacts_\",\"type\":\"string[]\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"targetContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedContracts_\",\"type\":\"address[]\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"targetSelectors\",\"outputs\":[{\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedSelectors_\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\",\"components\":[]}]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"targetSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedSenders_\",\"type\":\"address[]\",\"components\":[]}]}]"; + ///The parsed JSON ABI of the contract. + pub static STDINVARIANT_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| + ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); + #[rustfmt::skip] + const __BYTECODE: &[u8] = &[ + 96, + 128, + 96, + 64, + 82, + 52, + 128, + 21, + 97, + 0, + 16, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 7, + 246, + 128, + 97, + 0, + 32, + 96, + 0, + 57, + 96, + 0, + 243, + 254, + 96, + 128, + 96, + 64, + 82, + 52, + 128, + 21, + 97, + 0, + 16, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 96, + 4, + 54, + 16, + 97, + 0, + 136, + 87, + 96, + 0, + 53, + 96, + 224, + 28, + 128, + 99, + 133, + 34, + 108, + 129, + 17, + 97, + 0, + 91, + 87, + 128, + 99, + 133, + 34, + 108, + 129, + 20, + 97, + 0, + 208, + 87, + 128, + 99, + 145, + 106, + 23, + 198, + 20, + 97, + 0, + 229, + 87, + 128, + 99, + 181, + 80, + 138, + 169, + 20, + 97, + 0, + 237, + 87, + 128, + 99, + 226, + 12, + 159, + 113, + 20, + 97, + 0, + 245, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 30, + 215, + 131, + 28, + 20, + 97, + 0, + 141, + 87, + 128, + 99, + 62, + 94, + 60, + 35, + 20, + 97, + 0, + 171, + 87, + 128, + 99, + 63, + 114, + 134, + 244, + 20, + 97, + 0, + 179, + 87, + 128, + 99, + 102, + 217, + 169, + 160, + 20, + 97, + 0, + 187, + 87, + 91, + 96, + 0, + 128, + 253, + 91, + 97, + 0, + 149, + 97, + 0, + 253, + 86, + 91, + 96, + 64, + 81, + 97, + 0, + 162, + 145, + 144, + 97, + 5, + 244, + 86, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 243, + 91, + 97, + 0, + 149, + 97, + 1, + 95, + 86, + 91, + 97, + 0, + 149, + 97, + 1, + 191, + 86, + 91, + 97, + 0, + 195, + 97, + 2, + 31, + 86, + 91, + 96, + 64, + 81, + 97, + 0, + 162, + 145, + 144, + 97, + 6, + 65, + 86, + 91, + 97, + 0, + 216, + 97, + 3, + 14, + 86, + 91, + 96, + 64, + 81, + 97, + 0, + 162, + 145, + 144, + 97, + 6, + 244, + 86, + 91, + 97, + 0, + 195, + 97, + 3, + 222, + 86, + 91, + 97, + 0, + 216, + 97, + 4, + 196, + 86, + 91, + 97, + 0, + 149, + 97, + 5, + 148, + 86, + 91, + 96, + 96, + 96, + 1, + 128, + 84, + 128, + 96, + 32, + 2, + 96, + 32, + 1, + 96, + 64, + 81, + 144, + 129, + 1, + 96, + 64, + 82, + 128, + 146, + 145, + 144, + 129, + 129, + 82, + 96, + 32, + 1, + 130, + 128, + 84, + 128, + 21, + 97, + 1, + 85, + 87, + 96, + 32, + 2, + 130, + 1, + 145, + 144, + 96, + 0, + 82, + 96, + 32, + 96, + 0, + 32, + 144, + 91, + 129, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 1, + 144, + 145, + 1, + 144, + 96, + 32, + 1, + 128, + 131, + 17, + 97, + 1, + 55, + 87, + 91, + 80, + 80, + 80, + 80, + 80, + 144, + 80, + 144, + 86, + 91, + 96, + 96, + 96, + 3, + 128, + 84, + 128, + 96, + 32, + 2, + 96, + 32, + 1, + 96, + 64, + 81, + 144, + 129, + 1, + 96, + 64, + 82, + 128, + 146, + 145, + 144, + 129, + 129, + 82, + 96, + 32, + 1, + 130, + 128, + 84, + 128, + 21, + 97, + 1, + 85, + 87, + 96, + 32, + 2, + 130, + 1, + 145, + 144, + 96, + 0, + 82, + 96, + 32, + 96, + 0, + 32, + 144, + 129, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 1, + 144, + 145, + 1, + 144, + 96, + 32, + 1, + 128, + 131, + 17, + 97, + 1, + 55, + 87, + 80, + 80, + 80, + 80, + 80, + 144, + 80, + 144, + 86, + 91, + 96, + 96, + 96, + 2, + 128, + 84, + 128, + 96, + 32, + 2, + 96, + 32, + 1, + 96, + 64, + 81, + 144, + 129, + 1, + 96, + 64, + 82, + 128, + 146, + 145, + 144, + 129, + 129, + 82, + 96, + 32, + 1, + 130, + 128, + 84, + 128, + 21, + 97, + 1, + 85, + 87, + 96, + 32, + 2, + 130, + 1, + 145, + 144, + 96, + 0, + 82, + 96, + 32, + 96, + 0, + 32, + 144, + 129, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 1, + 144, + 145, + 1, + 144, + 96, + 32, + 1, + 128, + 131, + 17, + 97, + 1, + 55, + 87, + 80, + 80, + 80, + 80, + 80, + 144, + 80, + 144, + 86, + 91, + 96, + 96, + 96, + 6, + 128, + 84, + 128, + 96, + 32, + 2, + 96, + 32, + 1, + 96, + 64, + 81, + 144, + 129, + 1, + 96, + 64, + 82, + 128, + 146, + 145, + 144, + 129, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 144, + 91, + 130, + 130, + 16, + 21, + 97, + 3, + 5, + 87, + 96, + 0, + 132, + 129, + 82, + 96, + 32, + 144, + 129, + 144, + 32, + 96, + 64, + 128, + 81, + 128, + 130, + 1, + 130, + 82, + 96, + 2, + 134, + 2, + 144, + 146, + 1, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 131, + 82, + 96, + 1, + 129, + 1, + 128, + 84, + 131, + 81, + 129, + 135, + 2, + 129, + 1, + 135, + 1, + 144, + 148, + 82, + 128, + 132, + 82, + 147, + 148, + 145, + 147, + 133, + 131, + 1, + 147, + 146, + 131, + 1, + 130, + 130, + 128, + 21, + 97, + 2, + 237, + 87, + 96, + 32, + 2, + 130, + 1, + 145, + 144, + 96, + 0, + 82, + 96, + 32, + 96, + 0, + 32, + 144, + 96, + 0, + 144, + 91, + 130, + 130, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 224, + 27, + 96, + 1, + 96, + 1, + 96, + 224, + 27, + 3, + 25, + 22, + 129, + 82, + 96, + 32, + 1, + 144, + 96, + 4, + 1, + 144, + 96, + 32, + 130, + 96, + 3, + 1, + 4, + 146, + 131, + 1, + 146, + 96, + 1, + 3, + 130, + 2, + 145, + 80, + 128, + 132, + 17, + 97, + 2, + 175, + 87, + 144, + 80, + 91, + 80, + 80, + 80, + 80, + 80, + 129, + 82, + 80, + 80, + 129, + 82, + 96, + 32, + 1, + 144, + 96, + 1, + 1, + 144, + 97, + 2, + 67, + 86, + 91, + 80, + 80, + 80, + 80, + 144, + 80, + 144, + 86, + 91, + 96, + 96, + 96, + 5, + 128, + 84, + 128, + 96, + 32, + 2, + 96, + 32, + 1, + 96, + 64, + 81, + 144, + 129, + 1, + 96, + 64, + 82, + 128, + 146, + 145, + 144, + 129, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 144, + 91, + 130, + 130, + 16, + 21, + 97, + 3, + 5, + 87, + 131, + 130, + 144, + 96, + 0, + 82, + 96, + 32, + 96, + 0, + 32, + 1, + 128, + 84, + 97, + 3, + 81, + 144, + 97, + 7, + 134, + 86, + 91, + 128, + 96, + 31, + 1, + 96, + 32, + 128, + 145, + 4, + 2, + 96, + 32, + 1, + 96, + 64, + 81, + 144, + 129, + 1, + 96, + 64, + 82, + 128, + 146, + 145, + 144, + 129, + 129, + 82, + 96, + 32, + 1, + 130, + 128, + 84, + 97, + 3, + 125, + 144, + 97, + 7, + 134, + 86, + 91, + 128, + 21, + 97, + 3, + 202, + 87, + 128, + 96, + 31, + 16, + 97, + 3, + 159, + 87, + 97, + 1, + 0, + 128, + 131, + 84, + 4, + 2, + 131, + 82, + 145, + 96, + 32, + 1, + 145, + 97, + 3, + 202, + 86, + 91, + 130, + 1, + 145, + 144, + 96, + 0, + 82, + 96, + 32, + 96, + 0, + 32, + 144, + 91, + 129, + 84, + 129, + 82, + 144, + 96, + 1, + 1, + 144, + 96, + 32, + 1, + 128, + 131, + 17, + 97, + 3, + 173, + 87, + 130, + 144, + 3, + 96, + 31, + 22, + 130, + 1, + 145, + 91, + 80, + 80, + 80, + 80, + 80, + 129, + 82, + 96, + 32, + 1, + 144, + 96, + 1, + 1, + 144, + 97, + 3, + 50, + 86, + 91, + 96, + 96, + 96, + 7, + 128, + 84, + 128, + 96, + 32, + 2, + 96, + 32, + 1, + 96, + 64, + 81, + 144, + 129, + 1, + 96, + 64, + 82, + 128, + 146, + 145, + 144, + 129, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 144, + 91, + 130, + 130, + 16, + 21, + 97, + 3, + 5, + 87, + 96, + 0, + 132, + 129, + 82, + 96, + 32, + 144, + 129, + 144, + 32, + 96, + 64, + 128, + 81, + 128, + 130, + 1, + 130, + 82, + 96, + 2, + 134, + 2, + 144, + 146, + 1, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 131, + 82, + 96, + 1, + 129, + 1, + 128, + 84, + 131, + 81, + 129, + 135, + 2, + 129, + 1, + 135, + 1, + 144, + 148, + 82, + 128, + 132, + 82, + 147, + 148, + 145, + 147, + 133, + 131, + 1, + 147, + 146, + 131, + 1, + 130, + 130, + 128, + 21, + 97, + 4, + 172, + 87, + 96, + 32, + 2, + 130, + 1, + 145, + 144, + 96, + 0, + 82, + 96, + 32, + 96, + 0, + 32, + 144, + 96, + 0, + 144, + 91, + 130, + 130, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 224, + 27, + 96, + 1, + 96, + 1, + 96, + 224, + 27, + 3, + 25, + 22, + 129, + 82, + 96, + 32, + 1, + 144, + 96, + 4, + 1, + 144, + 96, + 32, + 130, + 96, + 3, + 1, + 4, + 146, + 131, + 1, + 146, + 96, + 1, + 3, + 130, + 2, + 145, + 80, + 128, + 132, + 17, + 97, + 4, + 110, + 87, + 144, + 80, + 91, + 80, + 80, + 80, + 80, + 80, + 129, + 82, + 80, + 80, + 129, + 82, + 96, + 32, + 1, + 144, + 96, + 1, + 1, + 144, + 97, + 4, + 2, + 86, + 91, + 96, + 96, + 96, + 4, + 128, + 84, + 128, + 96, + 32, + 2, + 96, + 32, + 1, + 96, + 64, + 81, + 144, + 129, + 1, + 96, + 64, + 82, + 128, + 146, + 145, + 144, + 129, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 144, + 91, + 130, + 130, + 16, + 21, + 97, + 3, + 5, + 87, + 131, + 130, + 144, + 96, + 0, + 82, + 96, + 32, + 96, + 0, + 32, + 1, + 128, + 84, + 97, + 5, + 7, + 144, + 97, + 7, + 134, + 86, + 91, + 128, + 96, + 31, + 1, + 96, + 32, + 128, + 145, + 4, + 2, + 96, + 32, + 1, + 96, + 64, + 81, + 144, + 129, + 1, + 96, + 64, + 82, + 128, + 146, + 145, + 144, + 129, + 129, + 82, + 96, + 32, + 1, + 130, + 128, + 84, + 97, + 5, + 51, + 144, + 97, + 7, + 134, + 86, + 91, + 128, + 21, + 97, + 5, + 128, + 87, + 128, + 96, + 31, + 16, + 97, + 5, + 85, + 87, + 97, + 1, + 0, + 128, + 131, + 84, + 4, + 2, + 131, + 82, + 145, + 96, + 32, + 1, + 145, + 97, + 5, + 128, + 86, + 91, + 130, + 1, + 145, + 144, + 96, + 0, + 82, + 96, + 32, + 96, + 0, + 32, + 144, + 91, + 129, + 84, + 129, + 82, + 144, + 96, + 1, + 1, + 144, + 96, + 32, + 1, + 128, + 131, + 17, + 97, + 5, + 99, + 87, + 130, + 144, + 3, + 96, + 31, + 22, + 130, + 1, + 145, + 91, + 80, + 80, + 80, + 80, + 80, + 129, + 82, + 96, + 32, + 1, + 144, + 96, + 1, + 1, + 144, + 97, + 4, + 232, + 86, + 91, + 96, + 96, + 96, + 0, + 128, + 84, + 128, + 96, + 32, + 2, + 96, + 32, + 1, + 96, + 64, + 81, + 144, + 129, + 1, + 96, + 64, + 82, + 128, + 146, + 145, + 144, + 129, + 129, + 82, + 96, + 32, + 1, + 130, + 128, + 84, + 128, + 21, + 97, + 1, + 85, + 87, + 96, + 32, + 2, + 130, + 1, + 145, + 144, + 96, + 0, + 82, + 96, + 32, + 96, + 0, + 32, + 144, + 129, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 1, + 144, + 145, + 1, + 144, + 96, + 32, + 1, + 128, + 131, + 17, + 97, + 1, + 55, + 87, + 80, + 80, + 80, + 80, + 80, + 144, + 80, + 144, + 86, + 91, + 96, + 32, + 128, + 130, + 82, + 130, + 81, + 130, + 130, + 1, + 129, + 144, + 82, + 96, + 0, + 145, + 144, + 132, + 130, + 1, + 144, + 96, + 64, + 133, + 1, + 144, + 132, + 91, + 129, + 129, + 16, + 21, + 97, + 6, + 53, + 87, + 131, + 81, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 131, + 82, + 146, + 132, + 1, + 146, + 145, + 132, + 1, + 145, + 96, + 1, + 1, + 97, + 6, + 16, + 86, + 91, + 80, + 144, + 150, + 149, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 96, + 32, + 128, + 131, + 1, + 129, + 132, + 82, + 128, + 133, + 81, + 128, + 131, + 82, + 96, + 64, + 146, + 80, + 130, + 134, + 1, + 145, + 80, + 130, + 129, + 96, + 5, + 27, + 135, + 1, + 1, + 132, + 136, + 1, + 96, + 0, + 128, + 91, + 132, + 129, + 16, + 21, + 97, + 6, + 229, + 87, + 137, + 132, + 3, + 96, + 63, + 25, + 1, + 134, + 82, + 130, + 81, + 128, + 81, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 133, + 82, + 136, + 1, + 81, + 136, + 133, + 1, + 136, + 144, + 82, + 128, + 81, + 136, + 134, + 1, + 129, + 144, + 82, + 144, + 137, + 1, + 144, + 131, + 144, + 96, + 96, + 135, + 1, + 144, + 91, + 128, + 131, + 16, + 21, + 97, + 6, + 208, + 87, + 131, + 81, + 96, + 1, + 96, + 1, + 96, + 224, + 27, + 3, + 25, + 22, + 130, + 82, + 146, + 139, + 1, + 146, + 96, + 1, + 146, + 144, + 146, + 1, + 145, + 144, + 139, + 1, + 144, + 97, + 6, + 166, + 86, + 91, + 80, + 151, + 138, + 1, + 151, + 149, + 80, + 80, + 80, + 145, + 135, + 1, + 145, + 96, + 1, + 1, + 97, + 6, + 105, + 86, + 91, + 80, + 145, + 153, + 152, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 96, + 32, + 128, + 131, + 1, + 129, + 132, + 82, + 128, + 133, + 81, + 128, + 131, + 82, + 96, + 64, + 134, + 1, + 145, + 80, + 96, + 64, + 129, + 96, + 5, + 27, + 135, + 1, + 1, + 146, + 80, + 131, + 135, + 1, + 96, + 0, + 128, + 91, + 131, + 129, + 16, + 21, + 97, + 7, + 120, + 87, + 136, + 134, + 3, + 96, + 63, + 25, + 1, + 133, + 82, + 130, + 81, + 128, + 81, + 128, + 136, + 82, + 131, + 91, + 129, + 129, + 16, + 21, + 97, + 7, + 81, + 87, + 130, + 129, + 1, + 138, + 1, + 81, + 137, + 130, + 1, + 139, + 1, + 82, + 137, + 1, + 97, + 7, + 54, + 86, + 91, + 80, + 135, + 129, + 1, + 137, + 1, + 132, + 144, + 82, + 96, + 31, + 1, + 96, + 31, + 25, + 22, + 144, + 150, + 1, + 135, + 1, + 149, + 80, + 147, + 134, + 1, + 147, + 145, + 134, + 1, + 145, + 96, + 1, + 1, + 97, + 7, + 28, + 86, + 91, + 80, + 147, + 152, + 151, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 1, + 129, + 129, + 28, + 144, + 130, + 22, + 128, + 97, + 7, + 154, + 87, + 96, + 127, + 130, + 22, + 145, + 80, + 91, + 96, + 32, + 130, + 16, + 129, + 3, + 97, + 7, + 186, + 87, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 34, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 80, + 145, + 144, + 80, + 86, + 254, + 162, + 100, + 105, + 112, + 102, + 115, + 88, + 34, + 18, + 32, + 149, + 33, + 172, + 137, + 33, + 31, + 220, + 17, + 217, + 126, + 230, + 71, + 244, + 207, + 56, + 101, + 84, + 113, + 115, + 53, + 155, + 58, + 17, + 111, + 51, + 61, + 27, + 206, + 140, + 51, + 1, + 213, + 100, + 115, + 111, + 108, + 99, + 67, + 0, + 8, + 19, + 0, + 51, + ]; + ///The bytecode of the contract. + pub static STDINVARIANT_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __BYTECODE, + ); + #[rustfmt::skip] + const __DEPLOYED_BYTECODE: &[u8] = &[ + 96, + 128, + 96, + 64, + 82, + 52, + 128, + 21, + 97, + 0, + 16, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 96, + 4, + 54, + 16, + 97, + 0, + 136, + 87, + 96, + 0, + 53, + 96, + 224, + 28, + 128, + 99, + 133, + 34, + 108, + 129, + 17, + 97, + 0, + 91, + 87, + 128, + 99, + 133, + 34, + 108, + 129, + 20, + 97, + 0, + 208, + 87, + 128, + 99, + 145, + 106, + 23, + 198, + 20, + 97, + 0, + 229, + 87, + 128, + 99, + 181, + 80, + 138, + 169, + 20, + 97, + 0, + 237, + 87, + 128, + 99, + 226, + 12, + 159, + 113, + 20, + 97, + 0, + 245, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 30, + 215, + 131, + 28, + 20, + 97, + 0, + 141, + 87, + 128, + 99, + 62, + 94, + 60, + 35, + 20, + 97, + 0, + 171, + 87, + 128, + 99, + 63, + 114, + 134, + 244, + 20, + 97, + 0, + 179, + 87, + 128, + 99, + 102, + 217, + 169, + 160, + 20, + 97, + 0, + 187, + 87, + 91, + 96, + 0, + 128, + 253, + 91, + 97, + 0, + 149, + 97, + 0, + 253, + 86, + 91, + 96, + 64, + 81, + 97, + 0, + 162, + 145, + 144, + 97, + 5, + 244, + 86, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 243, + 91, + 97, + 0, + 149, + 97, + 1, + 95, + 86, + 91, + 97, + 0, + 149, + 97, + 1, + 191, + 86, + 91, + 97, + 0, + 195, + 97, + 2, + 31, + 86, + 91, + 96, + 64, + 81, + 97, + 0, + 162, + 145, + 144, + 97, + 6, + 65, + 86, + 91, + 97, + 0, + 216, + 97, + 3, + 14, + 86, + 91, + 96, + 64, + 81, + 97, + 0, + 162, + 145, + 144, + 97, + 6, + 244, + 86, + 91, + 97, + 0, + 195, + 97, + 3, + 222, + 86, + 91, + 97, + 0, + 216, + 97, + 4, + 196, + 86, + 91, + 97, + 0, + 149, + 97, + 5, + 148, + 86, + 91, + 96, + 96, + 96, + 1, + 128, + 84, + 128, + 96, + 32, + 2, + 96, + 32, + 1, + 96, + 64, + 81, + 144, + 129, + 1, + 96, + 64, + 82, + 128, + 146, + 145, + 144, + 129, + 129, + 82, + 96, + 32, + 1, + 130, + 128, + 84, + 128, + 21, + 97, + 1, + 85, + 87, + 96, + 32, + 2, + 130, + 1, + 145, + 144, + 96, + 0, + 82, + 96, + 32, + 96, + 0, + 32, + 144, + 91, + 129, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 1, + 144, + 145, + 1, + 144, + 96, + 32, + 1, + 128, + 131, + 17, + 97, + 1, + 55, + 87, + 91, + 80, + 80, + 80, + 80, + 80, + 144, + 80, + 144, + 86, + 91, + 96, + 96, + 96, + 3, + 128, + 84, + 128, + 96, + 32, + 2, + 96, + 32, + 1, + 96, + 64, + 81, + 144, + 129, + 1, + 96, + 64, + 82, + 128, + 146, + 145, + 144, + 129, + 129, + 82, + 96, + 32, + 1, + 130, + 128, + 84, + 128, + 21, + 97, + 1, + 85, + 87, + 96, + 32, + 2, + 130, + 1, + 145, + 144, + 96, + 0, + 82, + 96, + 32, + 96, + 0, + 32, + 144, + 129, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 1, + 144, + 145, + 1, + 144, + 96, + 32, + 1, + 128, + 131, + 17, + 97, + 1, + 55, + 87, + 80, + 80, + 80, + 80, + 80, + 144, + 80, + 144, + 86, + 91, + 96, + 96, + 96, + 2, + 128, + 84, + 128, + 96, + 32, + 2, + 96, + 32, + 1, + 96, + 64, + 81, + 144, + 129, + 1, + 96, + 64, + 82, + 128, + 146, + 145, + 144, + 129, + 129, + 82, + 96, + 32, + 1, + 130, + 128, + 84, + 128, + 21, + 97, + 1, + 85, + 87, + 96, + 32, + 2, + 130, + 1, + 145, + 144, + 96, + 0, + 82, + 96, + 32, + 96, + 0, + 32, + 144, + 129, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 1, + 144, + 145, + 1, + 144, + 96, + 32, + 1, + 128, + 131, + 17, + 97, + 1, + 55, + 87, + 80, + 80, + 80, + 80, + 80, + 144, + 80, + 144, + 86, + 91, + 96, + 96, + 96, + 6, + 128, + 84, + 128, + 96, + 32, + 2, + 96, + 32, + 1, + 96, + 64, + 81, + 144, + 129, + 1, + 96, + 64, + 82, + 128, + 146, + 145, + 144, + 129, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 144, + 91, + 130, + 130, + 16, + 21, + 97, + 3, + 5, + 87, + 96, + 0, + 132, + 129, + 82, + 96, + 32, + 144, + 129, + 144, + 32, + 96, + 64, + 128, + 81, + 128, + 130, + 1, + 130, + 82, + 96, + 2, + 134, + 2, + 144, + 146, + 1, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 131, + 82, + 96, + 1, + 129, + 1, + 128, + 84, + 131, + 81, + 129, + 135, + 2, + 129, + 1, + 135, + 1, + 144, + 148, + 82, + 128, + 132, + 82, + 147, + 148, + 145, + 147, + 133, + 131, + 1, + 147, + 146, + 131, + 1, + 130, + 130, + 128, + 21, + 97, + 2, + 237, + 87, + 96, + 32, + 2, + 130, + 1, + 145, + 144, + 96, + 0, + 82, + 96, + 32, + 96, + 0, + 32, + 144, + 96, + 0, + 144, + 91, + 130, + 130, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 224, + 27, + 96, + 1, + 96, + 1, + 96, + 224, + 27, + 3, + 25, + 22, + 129, + 82, + 96, + 32, + 1, + 144, + 96, + 4, + 1, + 144, + 96, + 32, + 130, + 96, + 3, + 1, + 4, + 146, + 131, + 1, + 146, + 96, + 1, + 3, + 130, + 2, + 145, + 80, + 128, + 132, + 17, + 97, + 2, + 175, + 87, + 144, + 80, + 91, + 80, + 80, + 80, + 80, + 80, + 129, + 82, + 80, + 80, + 129, + 82, + 96, + 32, + 1, + 144, + 96, + 1, + 1, + 144, + 97, + 2, + 67, + 86, + 91, + 80, + 80, + 80, + 80, + 144, + 80, + 144, + 86, + 91, + 96, + 96, + 96, + 5, + 128, + 84, + 128, + 96, + 32, + 2, + 96, + 32, + 1, + 96, + 64, + 81, + 144, + 129, + 1, + 96, + 64, + 82, + 128, + 146, + 145, + 144, + 129, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 144, + 91, + 130, + 130, + 16, + 21, + 97, + 3, + 5, + 87, + 131, + 130, + 144, + 96, + 0, + 82, + 96, + 32, + 96, + 0, + 32, + 1, + 128, + 84, + 97, + 3, + 81, + 144, + 97, + 7, + 134, + 86, + 91, + 128, + 96, + 31, + 1, + 96, + 32, + 128, + 145, + 4, + 2, + 96, + 32, + 1, + 96, + 64, + 81, + 144, + 129, + 1, + 96, + 64, + 82, + 128, + 146, + 145, + 144, + 129, + 129, + 82, + 96, + 32, + 1, + 130, + 128, + 84, + 97, + 3, + 125, + 144, + 97, + 7, + 134, + 86, + 91, + 128, + 21, + 97, + 3, + 202, + 87, + 128, + 96, + 31, + 16, + 97, + 3, + 159, + 87, + 97, + 1, + 0, + 128, + 131, + 84, + 4, + 2, + 131, + 82, + 145, + 96, + 32, + 1, + 145, + 97, + 3, + 202, + 86, + 91, + 130, + 1, + 145, + 144, + 96, + 0, + 82, + 96, + 32, + 96, + 0, + 32, + 144, + 91, + 129, + 84, + 129, + 82, + 144, + 96, + 1, + 1, + 144, + 96, + 32, + 1, + 128, + 131, + 17, + 97, + 3, + 173, + 87, + 130, + 144, + 3, + 96, + 31, + 22, + 130, + 1, + 145, + 91, + 80, + 80, + 80, + 80, + 80, + 129, + 82, + 96, + 32, + 1, + 144, + 96, + 1, + 1, + 144, + 97, + 3, + 50, + 86, + 91, + 96, + 96, + 96, + 7, + 128, + 84, + 128, + 96, + 32, + 2, + 96, + 32, + 1, + 96, + 64, + 81, + 144, + 129, + 1, + 96, + 64, + 82, + 128, + 146, + 145, + 144, + 129, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 144, + 91, + 130, + 130, + 16, + 21, + 97, + 3, + 5, + 87, + 96, + 0, + 132, + 129, + 82, + 96, + 32, + 144, + 129, + 144, + 32, + 96, + 64, + 128, + 81, + 128, + 130, + 1, + 130, + 82, + 96, + 2, + 134, + 2, + 144, + 146, + 1, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 131, + 82, + 96, + 1, + 129, + 1, + 128, + 84, + 131, + 81, + 129, + 135, + 2, + 129, + 1, + 135, + 1, + 144, + 148, + 82, + 128, + 132, + 82, + 147, + 148, + 145, + 147, + 133, + 131, + 1, + 147, + 146, + 131, + 1, + 130, + 130, + 128, + 21, + 97, + 4, + 172, + 87, + 96, + 32, + 2, + 130, + 1, + 145, + 144, + 96, + 0, + 82, + 96, + 32, + 96, + 0, + 32, + 144, + 96, + 0, + 144, + 91, + 130, + 130, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 224, + 27, + 96, + 1, + 96, + 1, + 96, + 224, + 27, + 3, + 25, + 22, + 129, + 82, + 96, + 32, + 1, + 144, + 96, + 4, + 1, + 144, + 96, + 32, + 130, + 96, + 3, + 1, + 4, + 146, + 131, + 1, + 146, + 96, + 1, + 3, + 130, + 2, + 145, + 80, + 128, + 132, + 17, + 97, + 4, + 110, + 87, + 144, + 80, + 91, + 80, + 80, + 80, + 80, + 80, + 129, + 82, + 80, + 80, + 129, + 82, + 96, + 32, + 1, + 144, + 96, + 1, + 1, + 144, + 97, + 4, + 2, + 86, + 91, + 96, + 96, + 96, + 4, + 128, + 84, + 128, + 96, + 32, + 2, + 96, + 32, + 1, + 96, + 64, + 81, + 144, + 129, + 1, + 96, + 64, + 82, + 128, + 146, + 145, + 144, + 129, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 144, + 91, + 130, + 130, + 16, + 21, + 97, + 3, + 5, + 87, + 131, + 130, + 144, + 96, + 0, + 82, + 96, + 32, + 96, + 0, + 32, + 1, + 128, + 84, + 97, + 5, + 7, + 144, + 97, + 7, + 134, + 86, + 91, + 128, + 96, + 31, + 1, + 96, + 32, + 128, + 145, + 4, + 2, + 96, + 32, + 1, + 96, + 64, + 81, + 144, + 129, + 1, + 96, + 64, + 82, + 128, + 146, + 145, + 144, + 129, + 129, + 82, + 96, + 32, + 1, + 130, + 128, + 84, + 97, + 5, + 51, + 144, + 97, + 7, + 134, + 86, + 91, + 128, + 21, + 97, + 5, + 128, + 87, + 128, + 96, + 31, + 16, + 97, + 5, + 85, + 87, + 97, + 1, + 0, + 128, + 131, + 84, + 4, + 2, + 131, + 82, + 145, + 96, + 32, + 1, + 145, + 97, + 5, + 128, + 86, + 91, + 130, + 1, + 145, + 144, + 96, + 0, + 82, + 96, + 32, + 96, + 0, + 32, + 144, + 91, + 129, + 84, + 129, + 82, + 144, + 96, + 1, + 1, + 144, + 96, + 32, + 1, + 128, + 131, + 17, + 97, + 5, + 99, + 87, + 130, + 144, + 3, + 96, + 31, + 22, + 130, + 1, + 145, + 91, + 80, + 80, + 80, + 80, + 80, + 129, + 82, + 96, + 32, + 1, + 144, + 96, + 1, + 1, + 144, + 97, + 4, + 232, + 86, + 91, + 96, + 96, + 96, + 0, + 128, + 84, + 128, + 96, + 32, + 2, + 96, + 32, + 1, + 96, + 64, + 81, + 144, + 129, + 1, + 96, + 64, + 82, + 128, + 146, + 145, + 144, + 129, + 129, + 82, + 96, + 32, + 1, + 130, + 128, + 84, + 128, + 21, + 97, + 1, + 85, + 87, + 96, + 32, + 2, + 130, + 1, + 145, + 144, + 96, + 0, + 82, + 96, + 32, + 96, + 0, + 32, + 144, + 129, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 1, + 144, + 145, + 1, + 144, + 96, + 32, + 1, + 128, + 131, + 17, + 97, + 1, + 55, + 87, + 80, + 80, + 80, + 80, + 80, + 144, + 80, + 144, + 86, + 91, + 96, + 32, + 128, + 130, + 82, + 130, + 81, + 130, + 130, + 1, + 129, + 144, + 82, + 96, + 0, + 145, + 144, + 132, + 130, + 1, + 144, + 96, + 64, + 133, + 1, + 144, + 132, + 91, + 129, + 129, + 16, + 21, + 97, + 6, + 53, + 87, + 131, + 81, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 131, + 82, + 146, + 132, + 1, + 146, + 145, + 132, + 1, + 145, + 96, + 1, + 1, + 97, + 6, + 16, + 86, + 91, + 80, + 144, + 150, + 149, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 96, + 32, + 128, + 131, + 1, + 129, + 132, + 82, + 128, + 133, + 81, + 128, + 131, + 82, + 96, + 64, + 146, + 80, + 130, + 134, + 1, + 145, + 80, + 130, + 129, + 96, + 5, + 27, + 135, + 1, + 1, + 132, + 136, + 1, + 96, + 0, + 128, + 91, + 132, + 129, + 16, + 21, + 97, + 6, + 229, + 87, + 137, + 132, + 3, + 96, + 63, + 25, + 1, + 134, + 82, + 130, + 81, + 128, + 81, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 133, + 82, + 136, + 1, + 81, + 136, + 133, + 1, + 136, + 144, + 82, + 128, + 81, + 136, + 134, + 1, + 129, + 144, + 82, + 144, + 137, + 1, + 144, + 131, + 144, + 96, + 96, + 135, + 1, + 144, + 91, + 128, + 131, + 16, + 21, + 97, + 6, + 208, + 87, + 131, + 81, + 96, + 1, + 96, + 1, + 96, + 224, + 27, + 3, + 25, + 22, + 130, + 82, + 146, + 139, + 1, + 146, + 96, + 1, + 146, + 144, + 146, + 1, + 145, + 144, + 139, + 1, + 144, + 97, + 6, + 166, + 86, + 91, + 80, + 151, + 138, + 1, + 151, + 149, + 80, + 80, + 80, + 145, + 135, + 1, + 145, + 96, + 1, + 1, + 97, + 6, + 105, + 86, + 91, + 80, + 145, + 153, + 152, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 96, + 32, + 128, + 131, + 1, + 129, + 132, + 82, + 128, + 133, + 81, + 128, + 131, + 82, + 96, + 64, + 134, + 1, + 145, + 80, + 96, + 64, + 129, + 96, + 5, + 27, + 135, + 1, + 1, + 146, + 80, + 131, + 135, + 1, + 96, + 0, + 128, + 91, + 131, + 129, + 16, + 21, + 97, + 7, + 120, + 87, + 136, + 134, + 3, + 96, + 63, + 25, + 1, + 133, + 82, + 130, + 81, + 128, + 81, + 128, + 136, + 82, + 131, + 91, + 129, + 129, + 16, + 21, + 97, + 7, + 81, + 87, + 130, + 129, + 1, + 138, + 1, + 81, + 137, + 130, + 1, + 139, + 1, + 82, + 137, + 1, + 97, + 7, + 54, + 86, + 91, + 80, + 135, + 129, + 1, + 137, + 1, + 132, + 144, + 82, + 96, + 31, + 1, + 96, + 31, + 25, + 22, + 144, + 150, + 1, + 135, + 1, + 149, + 80, + 147, + 134, + 1, + 147, + 145, + 134, + 1, + 145, + 96, + 1, + 1, + 97, + 7, + 28, + 86, + 91, + 80, + 147, + 152, + 151, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 1, + 129, + 129, + 28, + 144, + 130, + 22, + 128, + 97, + 7, + 154, + 87, + 96, + 127, + 130, + 22, + 145, + 80, + 91, + 96, + 32, + 130, + 16, + 129, + 3, + 97, + 7, + 186, + 87, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 34, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 80, + 145, + 144, + 80, + 86, + 254, + 162, + 100, + 105, + 112, + 102, + 115, + 88, + 34, + 18, + 32, + 149, + 33, + 172, + 137, + 33, + 31, + 220, + 17, + 217, + 126, + 230, + 71, + 244, + 207, + 56, + 101, + 84, + 113, + 115, + 53, + 155, + 58, + 17, + 111, + 51, + 61, + 27, + 206, + 140, + 51, + 1, + 213, + 100, + 115, + 111, + 108, + 99, + 67, + 0, + 8, + 19, + 0, + 51, + ]; + ///The deployed bytecode of the contract. + pub static STDINVARIANT_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __DEPLOYED_BYTECODE, + ); + pub struct StdInvariant(::ethers::contract::Contract); + impl ::core::clone::Clone for StdInvariant { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for StdInvariant { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for StdInvariant { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for StdInvariant { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(stringify!(StdInvariant)).field(&self.address()).finish() + } + } + impl StdInvariant { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + STDINVARIANT_ABI.clone(), + client, + ), + ) + } + /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. + /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction + /// + /// Notes: + /// - If there are no constructor arguments, you should pass `()` as the argument. + /// - The default poll duration is 7 seconds. + /// - The default number of confirmations is 1 block. + /// + /// + /// # Example + /// + /// Generate contract bindings with `abigen!` and deploy a new contract instance. + /// + /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. + /// + /// ```ignore + /// # async fn deploy(client: ::std::sync::Arc) { + /// abigen!(Greeter, "../greeter.json"); + /// + /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); + /// let msg = greeter_contract.greet().call().await.unwrap(); + /// # } + /// ``` + pub fn deploy( + client: ::std::sync::Arc, + constructor_args: T, + ) -> ::core::result::Result< + ::ethers::contract::builders::ContractDeployer, + ::ethers::contract::ContractError, + > { + let factory = ::ethers::contract::ContractFactory::new( + STDINVARIANT_ABI.clone(), + STDINVARIANT_BYTECODE.clone().into(), + client, + ); + let deployer = factory.deploy(constructor_args)?; + let deployer = ::ethers::contract::ContractDeployer::new(deployer); + Ok(deployer) + } + ///Calls the contract's `excludeArtifacts` (0xb5508aa9) function + pub fn exclude_artifacts( + &self, + ) -> ::ethers::contract::builders::ContractCall< + M, + ::std::vec::Vec<::std::string::String>, + > { + self.0 + .method_hash([181, 80, 138, 169], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `excludeContracts` (0xe20c9f71) function + pub fn exclude_contracts( + &self, + ) -> ::ethers::contract::builders::ContractCall< + M, + ::std::vec::Vec<::ethers::core::types::Address>, + > { + self.0 + .method_hash([226, 12, 159, 113], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `excludeSenders` (0x1ed7831c) function + pub fn exclude_senders( + &self, + ) -> ::ethers::contract::builders::ContractCall< + M, + ::std::vec::Vec<::ethers::core::types::Address>, + > { + self.0 + .method_hash([30, 215, 131, 28], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `targetArtifactSelectors` (0x66d9a9a0) function + pub fn target_artifact_selectors( + &self, + ) -> ::ethers::contract::builders::ContractCall< + M, + ::std::vec::Vec, + > { + self.0 + .method_hash([102, 217, 169, 160], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `targetArtifacts` (0x85226c81) function + pub fn target_artifacts( + &self, + ) -> ::ethers::contract::builders::ContractCall< + M, + ::std::vec::Vec<::std::string::String>, + > { + self.0 + .method_hash([133, 34, 108, 129], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `targetContracts` (0x3f7286f4) function + pub fn target_contracts( + &self, + ) -> ::ethers::contract::builders::ContractCall< + M, + ::std::vec::Vec<::ethers::core::types::Address>, + > { + self.0 + .method_hash([63, 114, 134, 244], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `targetSelectors` (0x916a17c6) function + pub fn target_selectors( + &self, + ) -> ::ethers::contract::builders::ContractCall< + M, + ::std::vec::Vec, + > { + self.0 + .method_hash([145, 106, 23, 198], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `targetSenders` (0x3e5e3c23) function + pub fn target_senders( + &self, + ) -> ::ethers::contract::builders::ContractCall< + M, + ::std::vec::Vec<::ethers::core::types::Address>, + > { + self.0 + .method_hash([62, 94, 60, 35], ()) + .expect("method not found (this should never happen)") + } + } + impl From<::ethers::contract::Contract> + for StdInvariant { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } + ///Container type for all input parameters for the `excludeArtifacts` function with signature `excludeArtifacts()` and selector `0xb5508aa9` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "excludeArtifacts", abi = "excludeArtifacts()")] + pub struct ExcludeArtifactsCall; + ///Container type for all input parameters for the `excludeContracts` function with signature `excludeContracts()` and selector `0xe20c9f71` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "excludeContracts", abi = "excludeContracts()")] + pub struct ExcludeContractsCall; + ///Container type for all input parameters for the `excludeSenders` function with signature `excludeSenders()` and selector `0x1ed7831c` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "excludeSenders", abi = "excludeSenders()")] + pub struct ExcludeSendersCall; + ///Container type for all input parameters for the `targetArtifactSelectors` function with signature `targetArtifactSelectors()` and selector `0x66d9a9a0` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "targetArtifactSelectors", abi = "targetArtifactSelectors()")] + pub struct TargetArtifactSelectorsCall; + ///Container type for all input parameters for the `targetArtifacts` function with signature `targetArtifacts()` and selector `0x85226c81` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "targetArtifacts", abi = "targetArtifacts()")] + pub struct TargetArtifactsCall; + ///Container type for all input parameters for the `targetContracts` function with signature `targetContracts()` and selector `0x3f7286f4` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "targetContracts", abi = "targetContracts()")] + pub struct TargetContractsCall; + ///Container type for all input parameters for the `targetSelectors` function with signature `targetSelectors()` and selector `0x916a17c6` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "targetSelectors", abi = "targetSelectors()")] + pub struct TargetSelectorsCall; + ///Container type for all input parameters for the `targetSenders` function with signature `targetSenders()` and selector `0x3e5e3c23` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "targetSenders", abi = "targetSenders()")] + pub struct TargetSendersCall; + ///Container type for all of the contract's call + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum StdInvariantCalls { + ExcludeArtifacts(ExcludeArtifactsCall), + ExcludeContracts(ExcludeContractsCall), + ExcludeSenders(ExcludeSendersCall), + TargetArtifactSelectors(TargetArtifactSelectorsCall), + TargetArtifacts(TargetArtifactsCall), + TargetContracts(TargetContractsCall), + TargetSelectors(TargetSelectorsCall), + TargetSenders(TargetSendersCall), + } + impl ::ethers::core::abi::AbiDecode for StdInvariantCalls { + fn decode( + data: impl AsRef<[u8]>, + ) -> ::core::result::Result { + let data = data.as_ref(); + if let Ok(decoded) + = ::decode( + data, + ) { + return Ok(Self::ExcludeArtifacts(decoded)); + } + if let Ok(decoded) + = ::decode( + data, + ) { + return Ok(Self::ExcludeContracts(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::ExcludeSenders(decoded)); + } + if let Ok(decoded) + = ::decode( + data, + ) { + return Ok(Self::TargetArtifactSelectors(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::TargetArtifacts(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::TargetContracts(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::TargetSelectors(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::TargetSenders(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData.into()) + } + } + impl ::ethers::core::abi::AbiEncode for StdInvariantCalls { + fn encode(self) -> Vec { + match self { + Self::ExcludeArtifacts(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::ExcludeContracts(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::ExcludeSenders(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::TargetArtifactSelectors(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::TargetArtifacts(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::TargetContracts(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::TargetSelectors(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::TargetSenders(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + } + } + } + impl ::core::fmt::Display for StdInvariantCalls { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::ExcludeArtifacts(element) => ::core::fmt::Display::fmt(element, f), + Self::ExcludeContracts(element) => ::core::fmt::Display::fmt(element, f), + Self::ExcludeSenders(element) => ::core::fmt::Display::fmt(element, f), + Self::TargetArtifactSelectors(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::TargetArtifacts(element) => ::core::fmt::Display::fmt(element, f), + Self::TargetContracts(element) => ::core::fmt::Display::fmt(element, f), + Self::TargetSelectors(element) => ::core::fmt::Display::fmt(element, f), + Self::TargetSenders(element) => ::core::fmt::Display::fmt(element, f), + } + } + } + impl ::core::convert::From for StdInvariantCalls { + fn from(value: ExcludeArtifactsCall) -> Self { + Self::ExcludeArtifacts(value) + } + } + impl ::core::convert::From for StdInvariantCalls { + fn from(value: ExcludeContractsCall) -> Self { + Self::ExcludeContracts(value) + } + } + impl ::core::convert::From for StdInvariantCalls { + fn from(value: ExcludeSendersCall) -> Self { + Self::ExcludeSenders(value) + } + } + impl ::core::convert::From for StdInvariantCalls { + fn from(value: TargetArtifactSelectorsCall) -> Self { + Self::TargetArtifactSelectors(value) + } + } + impl ::core::convert::From for StdInvariantCalls { + fn from(value: TargetArtifactsCall) -> Self { + Self::TargetArtifacts(value) + } + } + impl ::core::convert::From for StdInvariantCalls { + fn from(value: TargetContractsCall) -> Self { + Self::TargetContracts(value) + } + } + impl ::core::convert::From for StdInvariantCalls { + fn from(value: TargetSelectorsCall) -> Self { + Self::TargetSelectors(value) + } + } + impl ::core::convert::From for StdInvariantCalls { + fn from(value: TargetSendersCall) -> Self { + Self::TargetSenders(value) + } + } + ///Container type for all return fields from the `excludeArtifacts` function with signature `excludeArtifacts()` and selector `0xb5508aa9` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct ExcludeArtifactsReturn { + pub excluded_artifacts: ::std::vec::Vec<::std::string::String>, + } + ///Container type for all return fields from the `excludeContracts` function with signature `excludeContracts()` and selector `0xe20c9f71` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct ExcludeContractsReturn { + pub excluded_contracts: ::std::vec::Vec<::ethers::core::types::Address>, + } + ///Container type for all return fields from the `excludeSenders` function with signature `excludeSenders()` and selector `0x1ed7831c` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct ExcludeSendersReturn { + pub excluded_senders: ::std::vec::Vec<::ethers::core::types::Address>, + } + ///Container type for all return fields from the `targetArtifactSelectors` function with signature `targetArtifactSelectors()` and selector `0x66d9a9a0` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct TargetArtifactSelectorsReturn { + pub targeted_artifact_selectors: ::std::vec::Vec, + } + ///Container type for all return fields from the `targetArtifacts` function with signature `targetArtifacts()` and selector `0x85226c81` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct TargetArtifactsReturn { + pub targeted_artifacts: ::std::vec::Vec<::std::string::String>, + } + ///Container type for all return fields from the `targetContracts` function with signature `targetContracts()` and selector `0x3f7286f4` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct TargetContractsReturn { + pub targeted_contracts: ::std::vec::Vec<::ethers::core::types::Address>, + } + ///Container type for all return fields from the `targetSelectors` function with signature `targetSelectors()` and selector `0x916a17c6` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct TargetSelectorsReturn { + pub targeted_selectors: ::std::vec::Vec, + } + ///Container type for all return fields from the `targetSenders` function with signature `targetSenders()` and selector `0x3e5e3c23` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct TargetSendersReturn { + pub targeted_senders: ::std::vec::Vec<::ethers::core::types::Address>, + } + ///`FuzzSelector(address,bytes4[])` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct FuzzSelector { + pub addr: ::ethers::core::types::Address, + pub selectors: ::std::vec::Vec<[u8; 4]>, + } +} diff --git a/crates/bindings/src/safe_transfer_lib.rs b/crates/bindings/src/std_style.rs similarity index 72% rename from crates/bindings/src/safe_transfer_lib.rs rename to crates/bindings/src/std_style.rs index f020e6f9..f4245a82 100644 --- a/crates/bindings/src/safe_transfer_lib.rs +++ b/crates/bindings/src/std_style.rs @@ -1,4 +1,4 @@ -pub use safe_transfer_lib::*; +pub use std_style::*; /// This module was auto-generated with ethers-rs Abigen. /// More information at: #[allow( @@ -7,16 +7,14 @@ pub use safe_transfer_lib::*; clippy::upper_case_acronyms, clippy::type_complexity, dead_code, - non_camel_case_types + non_camel_case_types, )] -pub mod safe_transfer_lib { +pub mod std_style { #[rustfmt::skip] const __ABI: &str = "[]"; ///The parsed JSON ABI of the contract. - pub static SAFETRANSFERLIB_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = - ::ethers::contract::Lazy::new(|| { - ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid") - }); + pub static STDSTYLE_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| + ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); #[rustfmt::skip] const __BYTECODE: &[u8] = &[ 96, @@ -117,38 +115,38 @@ pub mod safe_transfer_lib { 34, 18, 32, - 117, - 216, - 35, - 6, - 119, - 157, - 134, - 188, - 56, - 217, - 205, - 78, - 145, - 168, - 229, - 21, - 93, - 59, - 44, - 253, - 62, - 167, - 115, - 8, - 75, + 13, + 55, + 40, + 122, + 235, + 181, + 91, + 222, + 160, + 49, 200, - 129, - 62, - 130, - 44, + 233, + 75, + 99, + 175, + 190, + 54, + 165, + 213, + 114, + 96, + 46, + 148, + 142, 123, - 19, + 207, + 196, + 126, + 14, + 205, + 118, + 6, 100, 115, 111, @@ -157,13 +155,14 @@ pub mod safe_transfer_lib { 67, 0, 8, - 13, + 19, 0, 51, ]; ///The bytecode of the contract. - pub static SAFETRANSFERLIB_BYTECODE: ::ethers::core::types::Bytes = - ::ethers::core::types::Bytes::from_static(__BYTECODE); + pub static STDSTYLE_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __BYTECODE, + ); #[rustfmt::skip] const __DEPLOYED_BYTECODE: &[u8] = &[ 115, @@ -209,38 +208,38 @@ pub mod safe_transfer_lib { 34, 18, 32, - 117, - 216, - 35, - 6, - 119, - 157, - 134, - 188, - 56, - 217, - 205, - 78, - 145, - 168, - 229, - 21, - 93, - 59, - 44, - 253, - 62, - 167, - 115, - 8, - 75, + 13, + 55, + 40, + 122, + 235, + 181, + 91, + 222, + 160, + 49, 200, - 129, - 62, - 130, - 44, + 233, + 75, + 99, + 175, + 190, + 54, + 165, + 213, + 114, + 96, + 46, + 148, + 142, 123, - 19, + 207, + 196, + 126, + 14, + 205, + 118, + 6, 100, 115, 111, @@ -249,49 +248,50 @@ pub mod safe_transfer_lib { 67, 0, 8, - 13, + 19, 0, 51, ]; ///The deployed bytecode of the contract. - pub static SAFETRANSFERLIB_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = - ::ethers::core::types::Bytes::from_static(__DEPLOYED_BYTECODE); - pub struct SafeTransferLib(::ethers::contract::Contract); - impl ::core::clone::Clone for SafeTransferLib { + pub static STDSTYLE_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __DEPLOYED_BYTECODE, + ); + pub struct StdStyle(::ethers::contract::Contract); + impl ::core::clone::Clone for StdStyle { fn clone(&self) -> Self { Self(::core::clone::Clone::clone(&self.0)) } } - impl ::core::ops::Deref for SafeTransferLib { + impl ::core::ops::Deref for StdStyle { type Target = ::ethers::contract::Contract; fn deref(&self) -> &Self::Target { &self.0 } } - impl ::core::ops::DerefMut for SafeTransferLib { + impl ::core::ops::DerefMut for StdStyle { fn deref_mut(&mut self) -> &mut Self::Target { &mut self.0 } } - impl ::core::fmt::Debug for SafeTransferLib { + impl ::core::fmt::Debug for StdStyle { fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(stringify!(SafeTransferLib)) - .field(&self.address()) - .finish() + f.debug_tuple(stringify!(StdStyle)).field(&self.address()).finish() } } - impl SafeTransferLib { + impl StdStyle { /// Creates a new contract instance with the specified `ethers` client at /// `address`. The contract derefs to a `ethers::Contract` object. pub fn new>( address: T, client: ::std::sync::Arc, ) -> Self { - Self(::ethers::contract::Contract::new( - address.into(), - SAFETRANSFERLIB_ABI.clone(), - client, - )) + Self( + ::ethers::contract::Contract::new( + address.into(), + STDSTYLE_ABI.clone(), + client, + ), + ) } /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction @@ -324,8 +324,8 @@ pub mod safe_transfer_lib { ::ethers::contract::ContractError, > { let factory = ::ethers::contract::ContractFactory::new( - SAFETRANSFERLIB_ABI.clone(), - SAFETRANSFERLIB_BYTECODE.clone().into(), + STDSTYLE_ABI.clone(), + STDSTYLE_BYTECODE.clone().into(), client, ); let deployer = factory.deploy(constructor_args)?; @@ -334,8 +334,7 @@ pub mod safe_transfer_lib { } } impl From<::ethers::contract::Contract> - for SafeTransferLib - { + for StdStyle { fn from(contract: ::ethers::contract::Contract) -> Self { Self::new(contract.address(), contract.client()) } diff --git a/crates/bindings/src/units.rs b/crates/bindings/src/units.rs deleted file mode 100644 index ae27b06a..00000000 --- a/crates/bindings/src/units.rs +++ /dev/null @@ -1,63 +0,0 @@ -pub use units::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types -)] -pub mod units { - #[rustfmt::skip] - const __ABI: &str = "[]"; - ///The parsed JSON ABI of the contract. - pub static UNITS_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = - ::ethers::contract::Lazy::new(|| { - ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid") - }); - pub struct Units(::ethers::contract::Contract); - impl ::core::clone::Clone for Units { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for Units { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for Units { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for Units { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(stringify!(Units)) - .field(&self.address()) - .finish() - } - } - impl Units { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self(::ethers::contract::Contract::new( - address.into(), - UNITS_ABI.clone(), - client, - )) - } - } - impl From<::ethers::contract::Contract> for Units { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } -} diff --git a/crates/bindings/src/weth9.rs b/crates/bindings/src/weth9.rs index a81fc4dc..52e6d0db 100644 --- a/crates/bindings/src/weth9.rs +++ b/crates/bindings/src/weth9.rs @@ -7,21 +7,4384 @@ pub use weth9::*; clippy::upper_case_acronyms, clippy::type_complexity, dead_code, - non_camel_case_types + non_camel_case_types, )] pub mod weth9 { #[rustfmt::skip] const __ABI: &str = "[{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"name\",\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[{\"name\":\"guy\",\"type\":\"address\",\"components\":[]},{\"name\":\"wad\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"approve\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"totalSupply\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"name\":\"src\",\"type\":\"address\",\"components\":[]},{\"name\":\"dst\",\"type\":\"address\",\"components\":[]},{\"name\":\"wad\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transferFrom\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"name\":\"wad\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"withdraw\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"decimals\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"components\":[]}]},{\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"symbol\",\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[{\"name\":\"dst\",\"type\":\"address\",\"components\":[]},{\"name\":\"wad\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transfer\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"deposit\",\"outputs\":[]},{\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"components\":[]},{\"name\":\"\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"allowance\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"payable\",\"type\":\"fallback\",\"outputs\":[]},{\"inputs\":[{\"name\":\"src\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"name\":\"guy\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"name\":\"wad\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Approval\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"name\":\"src\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"name\":\"dst\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"name\":\"wad\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Transfer\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"name\":\"dst\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"name\":\"wad\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Deposit\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"name\":\"src\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"name\":\"wad\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Withdrawal\",\"outputs\":[],\"anonymous\":false}]"; ///The parsed JSON ABI of the contract. - pub static WETH9_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = - ::ethers::contract::Lazy::new(|| { - ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid") - }); + pub static WETH9_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| + ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); #[rustfmt::skip] - pub static WRITER_BYTECODE: ::ethers::contract::Lazy<::ethers::core::types::Bytes> = - ::ethers::contract::Lazy::new(|| { - "0x60c0604052600d60808190527f577261707065642045746865720000000000000000000000000000000000000060a090815261003e91600091906100a3565b506040805180820190915260048082527f57455448000000000000000000000000000000000000000000000000000000006020909201918252610083916001916100a3565b506002805460ff1916601217905534801561009d57600080fd5b5061013e565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106100e457805160ff1916838001178555610111565b82800160010185558215610111579182015b828111156101115782518255916020019190600101906100f6565b5061011d929150610121565b5090565b61013b91905b8082111561011d5760008155600101610127565b90565b6106568061014d6000396000f3006080604052600436106100925760003560e01c63ffffffff16806306fdde031461009c578063095ea7b31461012657806318160ddd1461015e57806323b872dd146101855780632e1a7d4d146101af578063313ce567146101c757806370a08231146101f257806395d89b4114610213578063a9059cbb14610228578063d0e30db014610092578063dd62ed3e1461024c575b61009a610273565b005b3480156100a857600080fd5b506100b16102c2565b6040805160208082528351818301528351919283929083019185019080838360005b838110156100eb5781810151838201526020016100d3565b50505050905090810190601f1680156101185780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561013257600080fd5b5061014a600160a060020a0360043516602435610350565b604080519115158252519081900360200190f35b34801561016a57600080fd5b506101736103b6565b60408051918252519081900360200190f35b34801561019157600080fd5b5061014a600160a060020a03600435811690602435166044356103bb565b3480156101bb57600080fd5b5061009a6004356104ef565b3480156101d357600080fd5b506101dc610584565b6040805160ff9092168252519081900360200190f35b3480156101fe57600080fd5b50610173600160a060020a036004351661058d565b34801561021f57600080fd5b506100b161059f565b34801561023457600080fd5b5061014a600160a060020a03600435166024356105f9565b34801561025857600080fd5b50610173600160a060020a036004358116906024351661060d565b33600081815260036020908152604091829020805434908101909155825190815291517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c9281900390910190a2565b6000805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156103485780601f1061031d57610100808354040283529160200191610348565b820191906000526020600020905b81548152906001019060200180831161032b57829003601f168201915b505050505081565b336000818152600460209081526040808320600160a060020a038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b303190565b600160a060020a0383166000908152600360205260408120548211156103e057600080fd5b600160a060020a038416331480159061041e5750600160a060020a038416600090815260046020908152604080832033845290915290205460001914155b1561047e57600160a060020a038416600090815260046020908152604080832033845290915290205482111561045357600080fd5b600160a060020a03841660009081526004602090815260408083203384529091529020805483900390555b600160a060020a03808516600081815260036020908152604080832080548890039055938716808352918490208054870190558351868152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35060019392505050565b3360009081526003602052604090205481111561050b57600080fd5b33600081815260036020526040808220805485900390555183156108fc0291849190818181858888f1935050505015801561054a573d6000803e3d6000fd5b5060408051828152905133917f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65919081900360200190a250565b60025460ff1681565b60036020526000908152604090205481565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156103485780601f1061031d57610100808354040283529160200191610348565b60006106063384846103bb565b9392505050565b6004602090815260009283526040808420909152908252902054815600a165627a7a72305820b38b6422067b6cd29b17bad296203c258ff3cf36fe979a2bb8b7400fa77efd7d0029" - .parse() - .expect("invalid bytecode") - }); + const __BYTECODE: &[u8] = &[ + 96, + 192, + 96, + 64, + 82, + 96, + 13, + 96, + 128, + 129, + 144, + 82, + 127, + 87, + 114, + 97, + 112, + 112, + 101, + 100, + 32, + 69, + 116, + 104, + 101, + 114, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 96, + 160, + 144, + 129, + 82, + 97, + 0, + 62, + 145, + 96, + 0, + 145, + 144, + 97, + 0, + 163, + 86, + 91, + 80, + 96, + 64, + 128, + 81, + 128, + 130, + 1, + 144, + 145, + 82, + 96, + 4, + 128, + 130, + 82, + 127, + 87, + 69, + 84, + 72, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 96, + 32, + 144, + 146, + 1, + 145, + 130, + 82, + 97, + 0, + 131, + 145, + 96, + 1, + 145, + 97, + 0, + 163, + 86, + 91, + 80, + 96, + 2, + 128, + 84, + 96, + 255, + 25, + 22, + 96, + 18, + 23, + 144, + 85, + 52, + 128, + 21, + 97, + 0, + 157, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 1, + 62, + 86, + 91, + 130, + 128, + 84, + 96, + 1, + 129, + 96, + 1, + 22, + 21, + 97, + 1, + 0, + 2, + 3, + 22, + 96, + 2, + 144, + 4, + 144, + 96, + 0, + 82, + 96, + 32, + 96, + 0, + 32, + 144, + 96, + 31, + 1, + 96, + 32, + 144, + 4, + 129, + 1, + 146, + 130, + 96, + 31, + 16, + 97, + 0, + 228, + 87, + 128, + 81, + 96, + 255, + 25, + 22, + 131, + 128, + 1, + 23, + 133, + 85, + 97, + 1, + 17, + 86, + 91, + 130, + 128, + 1, + 96, + 1, + 1, + 133, + 85, + 130, + 21, + 97, + 1, + 17, + 87, + 145, + 130, + 1, + 91, + 130, + 129, + 17, + 21, + 97, + 1, + 17, + 87, + 130, + 81, + 130, + 85, + 145, + 96, + 32, + 1, + 145, + 144, + 96, + 1, + 1, + 144, + 97, + 0, + 246, + 86, + 91, + 80, + 97, + 1, + 29, + 146, + 145, + 80, + 97, + 1, + 33, + 86, + 91, + 80, + 144, + 86, + 91, + 97, + 1, + 59, + 145, + 144, + 91, + 128, + 130, + 17, + 21, + 97, + 1, + 29, + 87, + 96, + 0, + 129, + 85, + 96, + 1, + 1, + 97, + 1, + 39, + 86, + 91, + 144, + 86, + 91, + 97, + 6, + 86, + 128, + 97, + 1, + 77, + 96, + 0, + 57, + 96, + 0, + 243, + 0, + 96, + 128, + 96, + 64, + 82, + 96, + 4, + 54, + 16, + 97, + 0, + 146, + 87, + 96, + 0, + 53, + 96, + 224, + 28, + 99, + 255, + 255, + 255, + 255, + 22, + 128, + 99, + 6, + 253, + 222, + 3, + 20, + 97, + 0, + 156, + 87, + 128, + 99, + 9, + 94, + 167, + 179, + 20, + 97, + 1, + 38, + 87, + 128, + 99, + 24, + 22, + 13, + 221, + 20, + 97, + 1, + 94, + 87, + 128, + 99, + 35, + 184, + 114, + 221, + 20, + 97, + 1, + 133, + 87, + 128, + 99, + 46, + 26, + 125, + 77, + 20, + 97, + 1, + 175, + 87, + 128, + 99, + 49, + 60, + 229, + 103, + 20, + 97, + 1, + 199, + 87, + 128, + 99, + 112, + 160, + 130, + 49, + 20, + 97, + 1, + 242, + 87, + 128, + 99, + 149, + 216, + 155, + 65, + 20, + 97, + 2, + 19, + 87, + 128, + 99, + 169, + 5, + 156, + 187, + 20, + 97, + 2, + 40, + 87, + 128, + 99, + 208, + 227, + 13, + 176, + 20, + 97, + 0, + 146, + 87, + 128, + 99, + 221, + 98, + 237, + 62, + 20, + 97, + 2, + 76, + 87, + 91, + 97, + 0, + 154, + 97, + 2, + 115, + 86, + 91, + 0, + 91, + 52, + 128, + 21, + 97, + 0, + 168, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 0, + 177, + 97, + 2, + 194, + 86, + 91, + 96, + 64, + 128, + 81, + 96, + 32, + 128, + 130, + 82, + 131, + 81, + 129, + 131, + 1, + 82, + 131, + 81, + 145, + 146, + 131, + 146, + 144, + 131, + 1, + 145, + 133, + 1, + 144, + 128, + 131, + 131, + 96, + 0, + 91, + 131, + 129, + 16, + 21, + 97, + 0, + 235, + 87, + 129, + 129, + 1, + 81, + 131, + 130, + 1, + 82, + 96, + 32, + 1, + 97, + 0, + 211, + 86, + 91, + 80, + 80, + 80, + 80, + 144, + 80, + 144, + 129, + 1, + 144, + 96, + 31, + 22, + 128, + 21, + 97, + 1, + 24, + 87, + 128, + 130, + 3, + 128, + 81, + 96, + 1, + 131, + 96, + 32, + 3, + 97, + 1, + 0, + 10, + 3, + 25, + 22, + 129, + 82, + 96, + 32, + 1, + 145, + 80, + 91, + 80, + 146, + 80, + 80, + 80, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 243, + 91, + 52, + 128, + 21, + 97, + 1, + 50, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 1, + 74, + 96, + 1, + 96, + 160, + 96, + 2, + 10, + 3, + 96, + 4, + 53, + 22, + 96, + 36, + 53, + 97, + 3, + 80, + 86, + 91, + 96, + 64, + 128, + 81, + 145, + 21, + 21, + 130, + 82, + 81, + 144, + 129, + 144, + 3, + 96, + 32, + 1, + 144, + 243, + 91, + 52, + 128, + 21, + 97, + 1, + 106, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 1, + 115, + 97, + 3, + 182, + 86, + 91, + 96, + 64, + 128, + 81, + 145, + 130, + 82, + 81, + 144, + 129, + 144, + 3, + 96, + 32, + 1, + 144, + 243, + 91, + 52, + 128, + 21, + 97, + 1, + 145, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 1, + 74, + 96, + 1, + 96, + 160, + 96, + 2, + 10, + 3, + 96, + 4, + 53, + 129, + 22, + 144, + 96, + 36, + 53, + 22, + 96, + 68, + 53, + 97, + 3, + 187, + 86, + 91, + 52, + 128, + 21, + 97, + 1, + 187, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 0, + 154, + 96, + 4, + 53, + 97, + 4, + 239, + 86, + 91, + 52, + 128, + 21, + 97, + 1, + 211, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 1, + 220, + 97, + 5, + 132, + 86, + 91, + 96, + 64, + 128, + 81, + 96, + 255, + 144, + 146, + 22, + 130, + 82, + 81, + 144, + 129, + 144, + 3, + 96, + 32, + 1, + 144, + 243, + 91, + 52, + 128, + 21, + 97, + 1, + 254, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 1, + 115, + 96, + 1, + 96, + 160, + 96, + 2, + 10, + 3, + 96, + 4, + 53, + 22, + 97, + 5, + 141, + 86, + 91, + 52, + 128, + 21, + 97, + 2, + 31, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 0, + 177, + 97, + 5, + 159, + 86, + 91, + 52, + 128, + 21, + 97, + 2, + 52, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 1, + 74, + 96, + 1, + 96, + 160, + 96, + 2, + 10, + 3, + 96, + 4, + 53, + 22, + 96, + 36, + 53, + 97, + 5, + 249, + 86, + 91, + 52, + 128, + 21, + 97, + 2, + 88, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 1, + 115, + 96, + 1, + 96, + 160, + 96, + 2, + 10, + 3, + 96, + 4, + 53, + 129, + 22, + 144, + 96, + 36, + 53, + 22, + 97, + 6, + 13, + 86, + 91, + 51, + 96, + 0, + 129, + 129, + 82, + 96, + 3, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 145, + 130, + 144, + 32, + 128, + 84, + 52, + 144, + 129, + 1, + 144, + 145, + 85, + 130, + 81, + 144, + 129, + 82, + 145, + 81, + 127, + 225, + 255, + 252, + 196, + 146, + 61, + 4, + 181, + 89, + 244, + 210, + 154, + 139, + 252, + 108, + 218, + 4, + 235, + 91, + 13, + 60, + 70, + 7, + 81, + 194, + 64, + 44, + 92, + 92, + 201, + 16, + 156, + 146, + 129, + 144, + 3, + 144, + 145, + 1, + 144, + 162, + 86, + 91, + 96, + 0, + 128, + 84, + 96, + 64, + 128, + 81, + 96, + 32, + 96, + 2, + 96, + 1, + 133, + 22, + 21, + 97, + 1, + 0, + 2, + 96, + 0, + 25, + 1, + 144, + 148, + 22, + 147, + 144, + 147, + 4, + 96, + 31, + 129, + 1, + 132, + 144, + 4, + 132, + 2, + 130, + 1, + 132, + 1, + 144, + 146, + 82, + 129, + 129, + 82, + 146, + 145, + 131, + 1, + 130, + 130, + 128, + 21, + 97, + 3, + 72, + 87, + 128, + 96, + 31, + 16, + 97, + 3, + 29, + 87, + 97, + 1, + 0, + 128, + 131, + 84, + 4, + 2, + 131, + 82, + 145, + 96, + 32, + 1, + 145, + 97, + 3, + 72, + 86, + 91, + 130, + 1, + 145, + 144, + 96, + 0, + 82, + 96, + 32, + 96, + 0, + 32, + 144, + 91, + 129, + 84, + 129, + 82, + 144, + 96, + 1, + 1, + 144, + 96, + 32, + 1, + 128, + 131, + 17, + 97, + 3, + 43, + 87, + 130, + 144, + 3, + 96, + 31, + 22, + 130, + 1, + 145, + 91, + 80, + 80, + 80, + 80, + 80, + 129, + 86, + 91, + 51, + 96, + 0, + 129, + 129, + 82, + 96, + 4, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 96, + 1, + 96, + 160, + 96, + 2, + 10, + 3, + 135, + 22, + 128, + 133, + 82, + 144, + 131, + 82, + 129, + 132, + 32, + 134, + 144, + 85, + 129, + 81, + 134, + 129, + 82, + 145, + 81, + 147, + 148, + 144, + 147, + 144, + 146, + 127, + 140, + 91, + 225, + 229, + 235, + 236, + 125, + 91, + 209, + 79, + 113, + 66, + 125, + 30, + 132, + 243, + 221, + 3, + 20, + 192, + 247, + 178, + 41, + 30, + 91, + 32, + 10, + 200, + 199, + 195, + 185, + 37, + 146, + 130, + 144, + 3, + 1, + 144, + 163, + 80, + 96, + 1, + 146, + 145, + 80, + 80, + 86, + 91, + 48, + 49, + 144, + 86, + 91, + 96, + 1, + 96, + 160, + 96, + 2, + 10, + 3, + 131, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 3, + 96, + 32, + 82, + 96, + 64, + 129, + 32, + 84, + 130, + 17, + 21, + 97, + 3, + 224, + 87, + 96, + 0, + 128, + 253, + 91, + 96, + 1, + 96, + 160, + 96, + 2, + 10, + 3, + 132, + 22, + 51, + 20, + 128, + 21, + 144, + 97, + 4, + 30, + 87, + 80, + 96, + 1, + 96, + 160, + 96, + 2, + 10, + 3, + 132, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 4, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 51, + 132, + 82, + 144, + 145, + 82, + 144, + 32, + 84, + 96, + 0, + 25, + 20, + 21, + 91, + 21, + 97, + 4, + 126, + 87, + 96, + 1, + 96, + 160, + 96, + 2, + 10, + 3, + 132, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 4, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 51, + 132, + 82, + 144, + 145, + 82, + 144, + 32, + 84, + 130, + 17, + 21, + 97, + 4, + 83, + 87, + 96, + 0, + 128, + 253, + 91, + 96, + 1, + 96, + 160, + 96, + 2, + 10, + 3, + 132, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 4, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 51, + 132, + 82, + 144, + 145, + 82, + 144, + 32, + 128, + 84, + 131, + 144, + 3, + 144, + 85, + 91, + 96, + 1, + 96, + 160, + 96, + 2, + 10, + 3, + 128, + 133, + 22, + 96, + 0, + 129, + 129, + 82, + 96, + 3, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 128, + 84, + 136, + 144, + 3, + 144, + 85, + 147, + 135, + 22, + 128, + 131, + 82, + 145, + 132, + 144, + 32, + 128, + 84, + 135, + 1, + 144, + 85, + 131, + 81, + 134, + 129, + 82, + 147, + 81, + 145, + 147, + 127, + 221, + 242, + 82, + 173, + 27, + 226, + 200, + 155, + 105, + 194, + 176, + 104, + 252, + 55, + 141, + 170, + 149, + 43, + 167, + 241, + 99, + 196, + 161, + 22, + 40, + 245, + 90, + 77, + 245, + 35, + 179, + 239, + 146, + 144, + 129, + 144, + 3, + 144, + 145, + 1, + 144, + 163, + 80, + 96, + 1, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 51, + 96, + 0, + 144, + 129, + 82, + 96, + 3, + 96, + 32, + 82, + 96, + 64, + 144, + 32, + 84, + 129, + 17, + 21, + 97, + 5, + 11, + 87, + 96, + 0, + 128, + 253, + 91, + 51, + 96, + 0, + 129, + 129, + 82, + 96, + 3, + 96, + 32, + 82, + 96, + 64, + 128, + 130, + 32, + 128, + 84, + 133, + 144, + 3, + 144, + 85, + 81, + 131, + 21, + 97, + 8, + 252, + 2, + 145, + 132, + 145, + 144, + 129, + 129, + 129, + 133, + 136, + 136, + 241, + 147, + 80, + 80, + 80, + 80, + 21, + 128, + 21, + 97, + 5, + 74, + 87, + 61, + 96, + 0, + 128, + 62, + 61, + 96, + 0, + 253, + 91, + 80, + 96, + 64, + 128, + 81, + 130, + 129, + 82, + 144, + 81, + 51, + 145, + 127, + 127, + 207, + 83, + 44, + 21, + 240, + 166, + 219, + 11, + 214, + 208, + 224, + 56, + 190, + 167, + 29, + 48, + 216, + 8, + 199, + 217, + 140, + 179, + 191, + 114, + 104, + 169, + 91, + 245, + 8, + 27, + 101, + 145, + 144, + 129, + 144, + 3, + 96, + 32, + 1, + 144, + 162, + 80, + 86, + 91, + 96, + 2, + 84, + 96, + 255, + 22, + 129, + 86, + 91, + 96, + 3, + 96, + 32, + 82, + 96, + 0, + 144, + 129, + 82, + 96, + 64, + 144, + 32, + 84, + 129, + 86, + 91, + 96, + 1, + 128, + 84, + 96, + 64, + 128, + 81, + 96, + 32, + 96, + 2, + 132, + 134, + 22, + 21, + 97, + 1, + 0, + 2, + 96, + 0, + 25, + 1, + 144, + 148, + 22, + 147, + 144, + 147, + 4, + 96, + 31, + 129, + 1, + 132, + 144, + 4, + 132, + 2, + 130, + 1, + 132, + 1, + 144, + 146, + 82, + 129, + 129, + 82, + 146, + 145, + 131, + 1, + 130, + 130, + 128, + 21, + 97, + 3, + 72, + 87, + 128, + 96, + 31, + 16, + 97, + 3, + 29, + 87, + 97, + 1, + 0, + 128, + 131, + 84, + 4, + 2, + 131, + 82, + 145, + 96, + 32, + 1, + 145, + 97, + 3, + 72, + 86, + 91, + 96, + 0, + 97, + 6, + 6, + 51, + 132, + 132, + 97, + 3, + 187, + 86, + 91, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 4, + 96, + 32, + 144, + 129, + 82, + 96, + 0, + 146, + 131, + 82, + 96, + 64, + 128, + 132, + 32, + 144, + 145, + 82, + 144, + 130, + 82, + 144, + 32, + 84, + 129, + 86, + 0, + 161, + 101, + 98, + 122, + 122, + 114, + 48, + 88, + 32, + 103, + 156, + 203, + 9, + 67, + 114, + 223, + 129, + 118, + 17, + 56, + 175, + 29, + 58, + 184, + 194, + 18, + 181, + 211, + 228, + 82, + 174, + 197, + 116, + 156, + 211, + 244, + 240, + 70, + 189, + 244, + 75, + 0, + 41, + ]; + ///The bytecode of the contract. + pub static WETH9_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __BYTECODE, + ); + #[rustfmt::skip] + const __DEPLOYED_BYTECODE: &[u8] = &[ + 96, + 128, + 96, + 64, + 82, + 96, + 4, + 54, + 16, + 97, + 0, + 146, + 87, + 96, + 0, + 53, + 96, + 224, + 28, + 99, + 255, + 255, + 255, + 255, + 22, + 128, + 99, + 6, + 253, + 222, + 3, + 20, + 97, + 0, + 156, + 87, + 128, + 99, + 9, + 94, + 167, + 179, + 20, + 97, + 1, + 38, + 87, + 128, + 99, + 24, + 22, + 13, + 221, + 20, + 97, + 1, + 94, + 87, + 128, + 99, + 35, + 184, + 114, + 221, + 20, + 97, + 1, + 133, + 87, + 128, + 99, + 46, + 26, + 125, + 77, + 20, + 97, + 1, + 175, + 87, + 128, + 99, + 49, + 60, + 229, + 103, + 20, + 97, + 1, + 199, + 87, + 128, + 99, + 112, + 160, + 130, + 49, + 20, + 97, + 1, + 242, + 87, + 128, + 99, + 149, + 216, + 155, + 65, + 20, + 97, + 2, + 19, + 87, + 128, + 99, + 169, + 5, + 156, + 187, + 20, + 97, + 2, + 40, + 87, + 128, + 99, + 208, + 227, + 13, + 176, + 20, + 97, + 0, + 146, + 87, + 128, + 99, + 221, + 98, + 237, + 62, + 20, + 97, + 2, + 76, + 87, + 91, + 97, + 0, + 154, + 97, + 2, + 115, + 86, + 91, + 0, + 91, + 52, + 128, + 21, + 97, + 0, + 168, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 0, + 177, + 97, + 2, + 194, + 86, + 91, + 96, + 64, + 128, + 81, + 96, + 32, + 128, + 130, + 82, + 131, + 81, + 129, + 131, + 1, + 82, + 131, + 81, + 145, + 146, + 131, + 146, + 144, + 131, + 1, + 145, + 133, + 1, + 144, + 128, + 131, + 131, + 96, + 0, + 91, + 131, + 129, + 16, + 21, + 97, + 0, + 235, + 87, + 129, + 129, + 1, + 81, + 131, + 130, + 1, + 82, + 96, + 32, + 1, + 97, + 0, + 211, + 86, + 91, + 80, + 80, + 80, + 80, + 144, + 80, + 144, + 129, + 1, + 144, + 96, + 31, + 22, + 128, + 21, + 97, + 1, + 24, + 87, + 128, + 130, + 3, + 128, + 81, + 96, + 1, + 131, + 96, + 32, + 3, + 97, + 1, + 0, + 10, + 3, + 25, + 22, + 129, + 82, + 96, + 32, + 1, + 145, + 80, + 91, + 80, + 146, + 80, + 80, + 80, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 243, + 91, + 52, + 128, + 21, + 97, + 1, + 50, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 1, + 74, + 96, + 1, + 96, + 160, + 96, + 2, + 10, + 3, + 96, + 4, + 53, + 22, + 96, + 36, + 53, + 97, + 3, + 80, + 86, + 91, + 96, + 64, + 128, + 81, + 145, + 21, + 21, + 130, + 82, + 81, + 144, + 129, + 144, + 3, + 96, + 32, + 1, + 144, + 243, + 91, + 52, + 128, + 21, + 97, + 1, + 106, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 1, + 115, + 97, + 3, + 182, + 86, + 91, + 96, + 64, + 128, + 81, + 145, + 130, + 82, + 81, + 144, + 129, + 144, + 3, + 96, + 32, + 1, + 144, + 243, + 91, + 52, + 128, + 21, + 97, + 1, + 145, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 1, + 74, + 96, + 1, + 96, + 160, + 96, + 2, + 10, + 3, + 96, + 4, + 53, + 129, + 22, + 144, + 96, + 36, + 53, + 22, + 96, + 68, + 53, + 97, + 3, + 187, + 86, + 91, + 52, + 128, + 21, + 97, + 1, + 187, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 0, + 154, + 96, + 4, + 53, + 97, + 4, + 239, + 86, + 91, + 52, + 128, + 21, + 97, + 1, + 211, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 1, + 220, + 97, + 5, + 132, + 86, + 91, + 96, + 64, + 128, + 81, + 96, + 255, + 144, + 146, + 22, + 130, + 82, + 81, + 144, + 129, + 144, + 3, + 96, + 32, + 1, + 144, + 243, + 91, + 52, + 128, + 21, + 97, + 1, + 254, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 1, + 115, + 96, + 1, + 96, + 160, + 96, + 2, + 10, + 3, + 96, + 4, + 53, + 22, + 97, + 5, + 141, + 86, + 91, + 52, + 128, + 21, + 97, + 2, + 31, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 0, + 177, + 97, + 5, + 159, + 86, + 91, + 52, + 128, + 21, + 97, + 2, + 52, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 1, + 74, + 96, + 1, + 96, + 160, + 96, + 2, + 10, + 3, + 96, + 4, + 53, + 22, + 96, + 36, + 53, + 97, + 5, + 249, + 86, + 91, + 52, + 128, + 21, + 97, + 2, + 88, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 1, + 115, + 96, + 1, + 96, + 160, + 96, + 2, + 10, + 3, + 96, + 4, + 53, + 129, + 22, + 144, + 96, + 36, + 53, + 22, + 97, + 6, + 13, + 86, + 91, + 51, + 96, + 0, + 129, + 129, + 82, + 96, + 3, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 145, + 130, + 144, + 32, + 128, + 84, + 52, + 144, + 129, + 1, + 144, + 145, + 85, + 130, + 81, + 144, + 129, + 82, + 145, + 81, + 127, + 225, + 255, + 252, + 196, + 146, + 61, + 4, + 181, + 89, + 244, + 210, + 154, + 139, + 252, + 108, + 218, + 4, + 235, + 91, + 13, + 60, + 70, + 7, + 81, + 194, + 64, + 44, + 92, + 92, + 201, + 16, + 156, + 146, + 129, + 144, + 3, + 144, + 145, + 1, + 144, + 162, + 86, + 91, + 96, + 0, + 128, + 84, + 96, + 64, + 128, + 81, + 96, + 32, + 96, + 2, + 96, + 1, + 133, + 22, + 21, + 97, + 1, + 0, + 2, + 96, + 0, + 25, + 1, + 144, + 148, + 22, + 147, + 144, + 147, + 4, + 96, + 31, + 129, + 1, + 132, + 144, + 4, + 132, + 2, + 130, + 1, + 132, + 1, + 144, + 146, + 82, + 129, + 129, + 82, + 146, + 145, + 131, + 1, + 130, + 130, + 128, + 21, + 97, + 3, + 72, + 87, + 128, + 96, + 31, + 16, + 97, + 3, + 29, + 87, + 97, + 1, + 0, + 128, + 131, + 84, + 4, + 2, + 131, + 82, + 145, + 96, + 32, + 1, + 145, + 97, + 3, + 72, + 86, + 91, + 130, + 1, + 145, + 144, + 96, + 0, + 82, + 96, + 32, + 96, + 0, + 32, + 144, + 91, + 129, + 84, + 129, + 82, + 144, + 96, + 1, + 1, + 144, + 96, + 32, + 1, + 128, + 131, + 17, + 97, + 3, + 43, + 87, + 130, + 144, + 3, + 96, + 31, + 22, + 130, + 1, + 145, + 91, + 80, + 80, + 80, + 80, + 80, + 129, + 86, + 91, + 51, + 96, + 0, + 129, + 129, + 82, + 96, + 4, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 96, + 1, + 96, + 160, + 96, + 2, + 10, + 3, + 135, + 22, + 128, + 133, + 82, + 144, + 131, + 82, + 129, + 132, + 32, + 134, + 144, + 85, + 129, + 81, + 134, + 129, + 82, + 145, + 81, + 147, + 148, + 144, + 147, + 144, + 146, + 127, + 140, + 91, + 225, + 229, + 235, + 236, + 125, + 91, + 209, + 79, + 113, + 66, + 125, + 30, + 132, + 243, + 221, + 3, + 20, + 192, + 247, + 178, + 41, + 30, + 91, + 32, + 10, + 200, + 199, + 195, + 185, + 37, + 146, + 130, + 144, + 3, + 1, + 144, + 163, + 80, + 96, + 1, + 146, + 145, + 80, + 80, + 86, + 91, + 48, + 49, + 144, + 86, + 91, + 96, + 1, + 96, + 160, + 96, + 2, + 10, + 3, + 131, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 3, + 96, + 32, + 82, + 96, + 64, + 129, + 32, + 84, + 130, + 17, + 21, + 97, + 3, + 224, + 87, + 96, + 0, + 128, + 253, + 91, + 96, + 1, + 96, + 160, + 96, + 2, + 10, + 3, + 132, + 22, + 51, + 20, + 128, + 21, + 144, + 97, + 4, + 30, + 87, + 80, + 96, + 1, + 96, + 160, + 96, + 2, + 10, + 3, + 132, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 4, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 51, + 132, + 82, + 144, + 145, + 82, + 144, + 32, + 84, + 96, + 0, + 25, + 20, + 21, + 91, + 21, + 97, + 4, + 126, + 87, + 96, + 1, + 96, + 160, + 96, + 2, + 10, + 3, + 132, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 4, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 51, + 132, + 82, + 144, + 145, + 82, + 144, + 32, + 84, + 130, + 17, + 21, + 97, + 4, + 83, + 87, + 96, + 0, + 128, + 253, + 91, + 96, + 1, + 96, + 160, + 96, + 2, + 10, + 3, + 132, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 4, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 51, + 132, + 82, + 144, + 145, + 82, + 144, + 32, + 128, + 84, + 131, + 144, + 3, + 144, + 85, + 91, + 96, + 1, + 96, + 160, + 96, + 2, + 10, + 3, + 128, + 133, + 22, + 96, + 0, + 129, + 129, + 82, + 96, + 3, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 128, + 84, + 136, + 144, + 3, + 144, + 85, + 147, + 135, + 22, + 128, + 131, + 82, + 145, + 132, + 144, + 32, + 128, + 84, + 135, + 1, + 144, + 85, + 131, + 81, + 134, + 129, + 82, + 147, + 81, + 145, + 147, + 127, + 221, + 242, + 82, + 173, + 27, + 226, + 200, + 155, + 105, + 194, + 176, + 104, + 252, + 55, + 141, + 170, + 149, + 43, + 167, + 241, + 99, + 196, + 161, + 22, + 40, + 245, + 90, + 77, + 245, + 35, + 179, + 239, + 146, + 144, + 129, + 144, + 3, + 144, + 145, + 1, + 144, + 163, + 80, + 96, + 1, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 51, + 96, + 0, + 144, + 129, + 82, + 96, + 3, + 96, + 32, + 82, + 96, + 64, + 144, + 32, + 84, + 129, + 17, + 21, + 97, + 5, + 11, + 87, + 96, + 0, + 128, + 253, + 91, + 51, + 96, + 0, + 129, + 129, + 82, + 96, + 3, + 96, + 32, + 82, + 96, + 64, + 128, + 130, + 32, + 128, + 84, + 133, + 144, + 3, + 144, + 85, + 81, + 131, + 21, + 97, + 8, + 252, + 2, + 145, + 132, + 145, + 144, + 129, + 129, + 129, + 133, + 136, + 136, + 241, + 147, + 80, + 80, + 80, + 80, + 21, + 128, + 21, + 97, + 5, + 74, + 87, + 61, + 96, + 0, + 128, + 62, + 61, + 96, + 0, + 253, + 91, + 80, + 96, + 64, + 128, + 81, + 130, + 129, + 82, + 144, + 81, + 51, + 145, + 127, + 127, + 207, + 83, + 44, + 21, + 240, + 166, + 219, + 11, + 214, + 208, + 224, + 56, + 190, + 167, + 29, + 48, + 216, + 8, + 199, + 217, + 140, + 179, + 191, + 114, + 104, + 169, + 91, + 245, + 8, + 27, + 101, + 145, + 144, + 129, + 144, + 3, + 96, + 32, + 1, + 144, + 162, + 80, + 86, + 91, + 96, + 2, + 84, + 96, + 255, + 22, + 129, + 86, + 91, + 96, + 3, + 96, + 32, + 82, + 96, + 0, + 144, + 129, + 82, + 96, + 64, + 144, + 32, + 84, + 129, + 86, + 91, + 96, + 1, + 128, + 84, + 96, + 64, + 128, + 81, + 96, + 32, + 96, + 2, + 132, + 134, + 22, + 21, + 97, + 1, + 0, + 2, + 96, + 0, + 25, + 1, + 144, + 148, + 22, + 147, + 144, + 147, + 4, + 96, + 31, + 129, + 1, + 132, + 144, + 4, + 132, + 2, + 130, + 1, + 132, + 1, + 144, + 146, + 82, + 129, + 129, + 82, + 146, + 145, + 131, + 1, + 130, + 130, + 128, + 21, + 97, + 3, + 72, + 87, + 128, + 96, + 31, + 16, + 97, + 3, + 29, + 87, + 97, + 1, + 0, + 128, + 131, + 84, + 4, + 2, + 131, + 82, + 145, + 96, + 32, + 1, + 145, + 97, + 3, + 72, + 86, + 91, + 96, + 0, + 97, + 6, + 6, + 51, + 132, + 132, + 97, + 3, + 187, + 86, + 91, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 4, + 96, + 32, + 144, + 129, + 82, + 96, + 0, + 146, + 131, + 82, + 96, + 64, + 128, + 132, + 32, + 144, + 145, + 82, + 144, + 130, + 82, + 144, + 32, + 84, + 129, + 86, + 0, + 161, + 101, + 98, + 122, + 122, + 114, + 48, + 88, + 32, + 103, + 156, + 203, + 9, + 67, + 114, + 223, + 129, + 118, + 17, + 56, + 175, + 29, + 58, + 184, + 194, + 18, + 181, + 211, + 228, + 82, + 174, + 197, + 116, + 156, + 211, + 244, + 240, + 70, + 189, + 244, + 75, + 0, + 41, + ]; + ///The deployed bytecode of the contract. + pub static WETH9_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __DEPLOYED_BYTECODE, + ); + pub struct WETH9(::ethers::contract::Contract); + impl ::core::clone::Clone for WETH9 { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for WETH9 { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for WETH9 { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for WETH9 { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(stringify!(WETH9)).field(&self.address()).finish() + } + } + impl WETH9 { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + WETH9_ABI.clone(), + client, + ), + ) + } + /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. + /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction + /// + /// Notes: + /// - If there are no constructor arguments, you should pass `()` as the argument. + /// - The default poll duration is 7 seconds. + /// - The default number of confirmations is 1 block. + /// + /// + /// # Example + /// + /// Generate contract bindings with `abigen!` and deploy a new contract instance. + /// + /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. + /// + /// ```ignore + /// # async fn deploy(client: ::std::sync::Arc) { + /// abigen!(Greeter, "../greeter.json"); + /// + /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); + /// let msg = greeter_contract.greet().call().await.unwrap(); + /// # } + /// ``` + pub fn deploy( + client: ::std::sync::Arc, + constructor_args: T, + ) -> ::core::result::Result< + ::ethers::contract::builders::ContractDeployer, + ::ethers::contract::ContractError, + > { + let factory = ::ethers::contract::ContractFactory::new( + WETH9_ABI.clone(), + WETH9_BYTECODE.clone().into(), + client, + ); + let deployer = factory.deploy(constructor_args)?; + let deployer = ::ethers::contract::ContractDeployer::new(deployer); + Ok(deployer) + } + ///Calls the contract's `allowance` (0xdd62ed3e) function + pub fn allowance( + &self, + p0: ::ethers::core::types::Address, + p1: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([221, 98, 237, 62], (p0, p1)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `approve` (0x095ea7b3) function + pub fn approve( + &self, + guy: ::ethers::core::types::Address, + wad: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([9, 94, 167, 179], (guy, wad)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `balanceOf` (0x70a08231) function + pub fn balance_of( + &self, + p0: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([112, 160, 130, 49], p0) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `decimals` (0x313ce567) function + pub fn decimals(&self) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([49, 60, 229, 103], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `deposit` (0xd0e30db0) function + pub fn deposit(&self) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([208, 227, 13, 176], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `name` (0x06fdde03) function + pub fn name( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([6, 253, 222, 3], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `symbol` (0x95d89b41) function + pub fn symbol( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([149, 216, 155, 65], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `totalSupply` (0x18160ddd) function + pub fn total_supply( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([24, 22, 13, 221], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `transfer` (0xa9059cbb) function + pub fn transfer( + &self, + dst: ::ethers::core::types::Address, + wad: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([169, 5, 156, 187], (dst, wad)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `transferFrom` (0x23b872dd) function + pub fn transfer_from( + &self, + src: ::ethers::core::types::Address, + dst: ::ethers::core::types::Address, + wad: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([35, 184, 114, 221], (src, dst, wad)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `withdraw` (0x2e1a7d4d) function + pub fn withdraw( + &self, + wad: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([46, 26, 125, 77], wad) + .expect("method not found (this should never happen)") + } + ///Gets the contract's `Approval` event + pub fn approval_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + ApprovalFilter, + > { + self.0.event() + } + ///Gets the contract's `Deposit` event + pub fn deposit_filter( + &self, + ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, DepositFilter> { + self.0.event() + } + ///Gets the contract's `Transfer` event + pub fn transfer_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + TransferFilter, + > { + self.0.event() + } + ///Gets the contract's `Withdrawal` event + pub fn withdrawal_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + WithdrawalFilter, + > { + self.0.event() + } + /// Returns an `Event` builder for all the events of this contract. + pub fn events( + &self, + ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, WETH9Events> { + self.0.event_with_filter(::core::default::Default::default()) + } + } + impl From<::ethers::contract::Contract> + for WETH9 { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "Approval", abi = "Approval(address,address,uint256)")] + pub struct ApprovalFilter { + #[ethevent(indexed)] + pub src: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub guy: ::ethers::core::types::Address, + pub wad: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "Deposit", abi = "Deposit(address,uint256)")] + pub struct DepositFilter { + #[ethevent(indexed)] + pub dst: ::ethers::core::types::Address, + pub wad: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "Transfer", abi = "Transfer(address,address,uint256)")] + pub struct TransferFilter { + #[ethevent(indexed)] + pub src: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub dst: ::ethers::core::types::Address, + pub wad: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "Withdrawal", abi = "Withdrawal(address,uint256)")] + pub struct WithdrawalFilter { + #[ethevent(indexed)] + pub src: ::ethers::core::types::Address, + pub wad: ::ethers::core::types::U256, + } + ///Container type for all of the contract's events + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum WETH9Events { + ApprovalFilter(ApprovalFilter), + DepositFilter(DepositFilter), + TransferFilter(TransferFilter), + WithdrawalFilter(WithdrawalFilter), + } + impl ::ethers::contract::EthLogDecode for WETH9Events { + fn decode_log( + log: &::ethers::core::abi::RawLog, + ) -> ::core::result::Result { + if let Ok(decoded) = ApprovalFilter::decode_log(log) { + return Ok(WETH9Events::ApprovalFilter(decoded)); + } + if let Ok(decoded) = DepositFilter::decode_log(log) { + return Ok(WETH9Events::DepositFilter(decoded)); + } + if let Ok(decoded) = TransferFilter::decode_log(log) { + return Ok(WETH9Events::TransferFilter(decoded)); + } + if let Ok(decoded) = WithdrawalFilter::decode_log(log) { + return Ok(WETH9Events::WithdrawalFilter(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData) + } + } + impl ::core::fmt::Display for WETH9Events { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::ApprovalFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::DepositFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::TransferFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::WithdrawalFilter(element) => ::core::fmt::Display::fmt(element, f), + } + } + } + impl ::core::convert::From for WETH9Events { + fn from(value: ApprovalFilter) -> Self { + Self::ApprovalFilter(value) + } + } + impl ::core::convert::From for WETH9Events { + fn from(value: DepositFilter) -> Self { + Self::DepositFilter(value) + } + } + impl ::core::convert::From for WETH9Events { + fn from(value: TransferFilter) -> Self { + Self::TransferFilter(value) + } + } + impl ::core::convert::From for WETH9Events { + fn from(value: WithdrawalFilter) -> Self { + Self::WithdrawalFilter(value) + } + } + ///Container type for all input parameters for the `allowance` function with signature `allowance(address,address)` and selector `0xdd62ed3e` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "allowance", abi = "allowance(address,address)")] + pub struct AllowanceCall( + pub ::ethers::core::types::Address, + pub ::ethers::core::types::Address, + ); + ///Container type for all input parameters for the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "approve", abi = "approve(address,uint256)")] + pub struct ApproveCall { + pub guy: ::ethers::core::types::Address, + pub wad: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "balanceOf", abi = "balanceOf(address)")] + pub struct BalanceOfCall(pub ::ethers::core::types::Address); + ///Container type for all input parameters for the `decimals` function with signature `decimals()` and selector `0x313ce567` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "decimals", abi = "decimals()")] + pub struct DecimalsCall; + ///Container type for all input parameters for the `deposit` function with signature `deposit()` and selector `0xd0e30db0` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "deposit", abi = "deposit()")] + pub struct DepositCall; + ///Container type for all input parameters for the `name` function with signature `name()` and selector `0x06fdde03` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "name", abi = "name()")] + pub struct NameCall; + ///Container type for all input parameters for the `symbol` function with signature `symbol()` and selector `0x95d89b41` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "symbol", abi = "symbol()")] + pub struct SymbolCall; + ///Container type for all input parameters for the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "totalSupply", abi = "totalSupply()")] + pub struct TotalSupplyCall; + ///Container type for all input parameters for the `transfer` function with signature `transfer(address,uint256)` and selector `0xa9059cbb` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "transfer", abi = "transfer(address,uint256)")] + pub struct TransferCall { + pub dst: ::ethers::core::types::Address, + pub wad: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "transferFrom", abi = "transferFrom(address,address,uint256)")] + pub struct TransferFromCall { + pub src: ::ethers::core::types::Address, + pub dst: ::ethers::core::types::Address, + pub wad: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `withdraw` function with signature `withdraw(uint256)` and selector `0x2e1a7d4d` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "withdraw", abi = "withdraw(uint256)")] + pub struct WithdrawCall { + pub wad: ::ethers::core::types::U256, + } + ///Container type for all of the contract's call + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum WETH9Calls { + Allowance(AllowanceCall), + Approve(ApproveCall), + BalanceOf(BalanceOfCall), + Decimals(DecimalsCall), + Deposit(DepositCall), + Name(NameCall), + Symbol(SymbolCall), + TotalSupply(TotalSupplyCall), + Transfer(TransferCall), + TransferFrom(TransferFromCall), + Withdraw(WithdrawCall), + } + impl ::ethers::core::abi::AbiDecode for WETH9Calls { + fn decode( + data: impl AsRef<[u8]>, + ) -> ::core::result::Result { + let data = data.as_ref(); + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Allowance(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Approve(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::BalanceOf(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Decimals(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Deposit(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Name(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Symbol(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::TotalSupply(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Transfer(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::TransferFrom(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Withdraw(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData.into()) + } + } + impl ::ethers::core::abi::AbiEncode for WETH9Calls { + fn encode(self) -> Vec { + match self { + Self::Allowance(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Approve(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::BalanceOf(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Decimals(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Deposit(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Name(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Symbol(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::TotalSupply(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Transfer(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::TransferFrom(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Withdraw(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + } + } + } + impl ::core::fmt::Display for WETH9Calls { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::Allowance(element) => ::core::fmt::Display::fmt(element, f), + Self::Approve(element) => ::core::fmt::Display::fmt(element, f), + Self::BalanceOf(element) => ::core::fmt::Display::fmt(element, f), + Self::Decimals(element) => ::core::fmt::Display::fmt(element, f), + Self::Deposit(element) => ::core::fmt::Display::fmt(element, f), + Self::Name(element) => ::core::fmt::Display::fmt(element, f), + Self::Symbol(element) => ::core::fmt::Display::fmt(element, f), + Self::TotalSupply(element) => ::core::fmt::Display::fmt(element, f), + Self::Transfer(element) => ::core::fmt::Display::fmt(element, f), + Self::TransferFrom(element) => ::core::fmt::Display::fmt(element, f), + Self::Withdraw(element) => ::core::fmt::Display::fmt(element, f), + } + } + } + impl ::core::convert::From for WETH9Calls { + fn from(value: AllowanceCall) -> Self { + Self::Allowance(value) + } + } + impl ::core::convert::From for WETH9Calls { + fn from(value: ApproveCall) -> Self { + Self::Approve(value) + } + } + impl ::core::convert::From for WETH9Calls { + fn from(value: BalanceOfCall) -> Self { + Self::BalanceOf(value) + } + } + impl ::core::convert::From for WETH9Calls { + fn from(value: DecimalsCall) -> Self { + Self::Decimals(value) + } + } + impl ::core::convert::From for WETH9Calls { + fn from(value: DepositCall) -> Self { + Self::Deposit(value) + } + } + impl ::core::convert::From for WETH9Calls { + fn from(value: NameCall) -> Self { + Self::Name(value) + } + } + impl ::core::convert::From for WETH9Calls { + fn from(value: SymbolCall) -> Self { + Self::Symbol(value) + } + } + impl ::core::convert::From for WETH9Calls { + fn from(value: TotalSupplyCall) -> Self { + Self::TotalSupply(value) + } + } + impl ::core::convert::From for WETH9Calls { + fn from(value: TransferCall) -> Self { + Self::Transfer(value) + } + } + impl ::core::convert::From for WETH9Calls { + fn from(value: TransferFromCall) -> Self { + Self::TransferFrom(value) + } + } + impl ::core::convert::From for WETH9Calls { + fn from(value: WithdrawCall) -> Self { + Self::Withdraw(value) + } + } + ///Container type for all return fields from the `allowance` function with signature `allowance(address,address)` and selector `0xdd62ed3e` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct AllowanceReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct ApproveReturn(pub bool); + ///Container type for all return fields from the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct BalanceOfReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `decimals` function with signature `decimals()` and selector `0x313ce567` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct DecimalsReturn(pub u8); + ///Container type for all return fields from the `name` function with signature `name()` and selector `0x06fdde03` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct NameReturn(pub ::std::string::String); + ///Container type for all return fields from the `symbol` function with signature `symbol()` and selector `0x95d89b41` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct SymbolReturn(pub ::std::string::String); + ///Container type for all return fields from the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct TotalSupplyReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `transfer` function with signature `transfer(address,uint256)` and selector `0xa9059cbb` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct TransferReturn(pub bool); + ///Container type for all return fields from the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct TransferFromReturn(pub bool); } diff --git a/crates/bindings/src/writer.rs b/crates/bindings/src/writer.rs index 0f6bfd3a..e9e056b6 100644 --- a/crates/bindings/src/writer.rs +++ b/crates/bindings/src/writer.rs @@ -7,16 +7,14 @@ pub use writer::*; clippy::upper_case_acronyms, clippy::type_complexity, dead_code, - non_camel_case_types + non_camel_case_types, )] pub mod writer { #[rustfmt::skip] const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"test_string\",\"type\":\"string\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"WasWritten\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"test_string\",\"type\":\"string\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"echoString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]}]"; ///The parsed JSON ABI of the contract. - pub static WRITER_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = - ::ethers::contract::Lazy::new(|| { - ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid") - }); + pub static WRITER_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| + ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); #[rustfmt::skip] const __BYTECODE: &[u8] = &[ 96, @@ -973,38 +971,38 @@ pub mod writer { 34, 18, 32, - 137, - 112, - 208, - 72, - 246, - 111, - 254, - 245, - 44, - 1, - 86, - 134, - 70, - 158, - 106, - 161, - 112, - 122, - 0, - 22, - 170, - 166, - 245, - 66, - 194, - 196, - 208, - 40, - 178, - 225, + 222, 145, - 167, + 151, + 114, + 147, + 231, + 144, + 239, + 38, + 45, + 143, + 188, + 131, + 127, + 139, + 24, + 126, + 144, + 110, + 69, + 40, + 149, + 58, + 187, + 36, + 105, + 160, + 248, + 118, + 100, + 124, + 142, 100, 115, 111, @@ -1018,8 +1016,9 @@ pub mod writer { 51, ]; ///The bytecode of the contract. - pub static WRITER_BYTECODE: ::ethers::core::types::Bytes = - ::ethers::core::types::Bytes::from_static(__BYTECODE); + pub static WRITER_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __BYTECODE, + ); #[rustfmt::skip] const __DEPLOYED_BYTECODE: &[u8] = &[ 96, @@ -1944,38 +1943,38 @@ pub mod writer { 34, 18, 32, - 137, - 112, - 208, - 72, - 246, - 111, - 254, - 245, - 44, - 1, - 86, - 134, - 70, - 158, - 106, - 161, - 112, - 122, - 0, - 22, - 170, - 166, - 245, - 66, - 194, - 196, - 208, - 40, - 178, - 225, + 222, 145, - 167, + 151, + 114, + 147, + 231, + 144, + 239, + 38, + 45, + 143, + 188, + 131, + 127, + 139, + 24, + 126, + 144, + 110, + 69, + 40, + 149, + 58, + 187, + 36, + 105, + 160, + 248, + 118, + 100, + 124, + 142, 100, 115, 111, @@ -1989,8 +1988,9 @@ pub mod writer { 51, ]; ///The deployed bytecode of the contract. - pub static WRITER_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = - ::ethers::core::types::Bytes::from_static(__DEPLOYED_BYTECODE); + pub static WRITER_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __DEPLOYED_BYTECODE, + ); pub struct Writer(::ethers::contract::Contract); impl ::core::clone::Clone for Writer { fn clone(&self) -> Self { @@ -2010,9 +2010,7 @@ pub mod writer { } impl ::core::fmt::Debug for Writer { fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(stringify!(Writer)) - .field(&self.address()) - .finish() + f.debug_tuple(stringify!(Writer)).field(&self.address()).finish() } } impl Writer { @@ -2022,11 +2020,13 @@ pub mod writer { address: T, client: ::std::sync::Arc, ) -> Self { - Self(::ethers::contract::Contract::new( - address.into(), - WRITER_ABI.clone(), - client, - )) + Self( + ::ethers::contract::Contract::new( + address.into(), + WRITER_ABI.clone(), + client, + ), + ) } /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction @@ -2079,18 +2079,26 @@ pub mod writer { ///Gets the contract's `WasWritten` event pub fn was_written_filter( &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, WasWrittenFilter> { + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + WasWrittenFilter, + > { self.0.event() } /// Returns an `Event` builder for all the events of this contract. pub fn events( &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, WasWrittenFilter> { - self.0 - .event_with_filter(::core::default::Default::default()) + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + WasWrittenFilter, + > { + self.0.event_with_filter(::core::default::Default::default()) } } - impl From<::ethers::contract::Contract> for Writer { + impl From<::ethers::contract::Contract> + for Writer { fn from(contract: ::ethers::contract::Contract) -> Self { Self::new(contract.address(), contract.client()) } @@ -2103,7 +2111,7 @@ pub mod writer { Debug, PartialEq, Eq, - Hash, + Hash )] #[ethevent(name = "WasWritten", abi = "WasWritten(string)")] pub struct WasWrittenFilter { @@ -2118,7 +2126,7 @@ pub mod writer { Debug, PartialEq, Eq, - Hash, + Hash )] #[ethcall(name = "echoString", abi = "echoString(string)")] pub struct EchoStringCall { @@ -2133,7 +2141,7 @@ pub mod writer { Debug, PartialEq, Eq, - Hash, + Hash )] pub struct EchoStringReturn(pub ::std::string::String); } diff --git a/crates/bindings_old/Cargo.toml b/crates/bindings_old/Cargo.toml deleted file mode 100644 index 5785036c..00000000 --- a/crates/bindings_old/Cargo.toml +++ /dev/null @@ -1,10 +0,0 @@ -[package] -name = "bindings_old" -version = "0.1.0" -edition = "2021" - -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html - -[dependencies] -ethers = "=1.0.2" -serde_json = "1.0.79" \ No newline at end of file diff --git a/crates/bindings_old/LICENSE b/crates/bindings_old/LICENSE deleted file mode 100644 index 261eeb9e..00000000 --- a/crates/bindings_old/LICENSE +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/crates/bindings_old/src/i_uniswap_v3_pool.rs b/crates/bindings_old/src/i_uniswap_v3_pool.rs deleted file mode 100644 index fc51590c..00000000 --- a/crates/bindings_old/src/i_uniswap_v3_pool.rs +++ /dev/null @@ -1,1710 +0,0 @@ -pub use i_uniswap_v3_pool::*; -#[allow(clippy::too_many_arguments, non_camel_case_types)] -pub mod i_uniswap_v3_pool { - #![allow(clippy::enum_variant_names)] - #![allow(dead_code)] - #![allow(clippy::type_complexity)] - #![allow(unused_imports)] - ///IUniswapV3Pool was auto-generated with ethers-rs Abigen. More information at: https://github.com/gakonst/ethers-rs - use std::sync::Arc; - - use ::ethers::{ - contract::{ - builders::{ContractCall, Event}, - Contract, Lazy, - }, - core::{ - abi::{Abi, Detokenize, InvalidOutputType, Token, Tokenizable}, - types::*, - }, - providers::Middleware, - }; - #[rustfmt::skip] - const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"int24\",\"name\":\"tickLower\",\"type\":\"int24\",\"components\":[],\"indexed\":true},{\"internalType\":\"int24\",\"name\":\"tickUpper\",\"type\":\"int24\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint128\",\"name\":\"amount\",\"type\":\"uint128\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Burn\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\",\"components\":[],\"indexed\":false},{\"internalType\":\"int24\",\"name\":\"tickLower\",\"type\":\"int24\",\"components\":[],\"indexed\":true},{\"internalType\":\"int24\",\"name\":\"tickUpper\",\"type\":\"int24\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint128\",\"name\":\"amount0\",\"type\":\"uint128\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint128\",\"name\":\"amount1\",\"type\":\"uint128\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Collect\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint128\",\"name\":\"amount0\",\"type\":\"uint128\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint128\",\"name\":\"amount1\",\"type\":\"uint128\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"CollectProtocol\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"paid0\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"paid1\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Flash\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"observationCardinalityNextOld\",\"type\":\"uint16\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint16\",\"name\":\"observationCardinalityNextNew\",\"type\":\"uint16\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"IncreaseObservationCardinalityNext\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint160\",\"name\":\"sqrtPriceX96\",\"type\":\"uint160\",\"components\":[],\"indexed\":false},{\"internalType\":\"int24\",\"name\":\"tick\",\"type\":\"int24\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Initialize\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"int24\",\"name\":\"tickLower\",\"type\":\"int24\",\"components\":[],\"indexed\":true},{\"internalType\":\"int24\",\"name\":\"tickUpper\",\"type\":\"int24\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint128\",\"name\":\"amount\",\"type\":\"uint128\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Mint\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"feeProtocol0Old\",\"type\":\"uint8\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint8\",\"name\":\"feeProtocol1Old\",\"type\":\"uint8\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint8\",\"name\":\"feeProtocol0New\",\"type\":\"uint8\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint8\",\"name\":\"feeProtocol1New\",\"type\":\"uint8\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"SetFeeProtocol\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"int256\",\"name\":\"amount0\",\"type\":\"int256\",\"components\":[],\"indexed\":false},{\"internalType\":\"int256\",\"name\":\"amount1\",\"type\":\"int256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint160\",\"name\":\"sqrtPriceX96\",\"type\":\"uint160\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint128\",\"name\":\"liquidity\",\"type\":\"uint128\",\"components\":[],\"indexed\":false},{\"internalType\":\"int24\",\"name\":\"tick\",\"type\":\"int24\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Swap\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"int24\",\"name\":\"tickLower\",\"type\":\"int24\",\"components\":[]},{\"internalType\":\"int24\",\"name\":\"tickUpper\",\"type\":\"int24\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"amount\",\"type\":\"uint128\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"burn\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"int24\",\"name\":\"tickLower\",\"type\":\"int24\",\"components\":[]},{\"internalType\":\"int24\",\"name\":\"tickUpper\",\"type\":\"int24\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"amount0Requested\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"amount1Requested\",\"type\":\"uint128\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"collect\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"amount0\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"amount1\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"amount0Requested\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"amount1Requested\",\"type\":\"uint128\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"collectProtocol\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"amount0\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"amount1\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"factory\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"fee\",\"outputs\":[{\"internalType\":\"uint24\",\"name\":\"\",\"type\":\"uint24\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"feeGrowthGlobal0X128\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"feeGrowthGlobal1X128\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"flash\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"observationCardinalityNext\",\"type\":\"uint16\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"increaseObservationCardinalityNext\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint160\",\"name\":\"sqrtPriceX96\",\"type\":\"uint160\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"initialize\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"liquidity\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"maxLiquidityPerTick\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"int24\",\"name\":\"tickLower\",\"type\":\"int24\",\"components\":[]},{\"internalType\":\"int24\",\"name\":\"tickUpper\",\"type\":\"int24\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"amount\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"mint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"observations\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"blockTimestamp\",\"type\":\"uint32\",\"components\":[]},{\"internalType\":\"int56\",\"name\":\"tickCumulative\",\"type\":\"int56\",\"components\":[]},{\"internalType\":\"uint160\",\"name\":\"secondsPerLiquidityCumulativeX128\",\"type\":\"uint160\",\"components\":[]},{\"internalType\":\"bool\",\"name\":\"initialized\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint32[]\",\"name\":\"secondsAgos\",\"type\":\"uint32[]\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"observe\",\"outputs\":[{\"internalType\":\"int56[]\",\"name\":\"tickCumulatives\",\"type\":\"int56[]\",\"components\":[]},{\"internalType\":\"uint160[]\",\"name\":\"secondsPerLiquidityCumulativeX128s\",\"type\":\"uint160[]\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"positions\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"_liquidity\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthInside0LastX128\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthInside1LastX128\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"tokensOwed0\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"tokensOwed1\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"protocolFees\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"token0\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"token1\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"feeProtocol0\",\"type\":\"uint8\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"feeProtocol1\",\"type\":\"uint8\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"setFeeProtocol\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"slot0\",\"outputs\":[{\"internalType\":\"uint160\",\"name\":\"sqrtPriceX96\",\"type\":\"uint160\",\"components\":[]},{\"internalType\":\"int24\",\"name\":\"tick\",\"type\":\"int24\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"observationIndex\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"observationCardinality\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"observationCardinalityNext\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"feeProtocol\",\"type\":\"uint8\",\"components\":[]},{\"internalType\":\"bool\",\"name\":\"unlocked\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"int24\",\"name\":\"tickLower\",\"type\":\"int24\",\"components\":[]},{\"internalType\":\"int24\",\"name\":\"tickUpper\",\"type\":\"int24\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"snapshotCumulativesInside\",\"outputs\":[{\"internalType\":\"int56\",\"name\":\"tickCumulativeInside\",\"type\":\"int56\",\"components\":[]},{\"internalType\":\"uint160\",\"name\":\"secondsPerLiquidityInsideX128\",\"type\":\"uint160\",\"components\":[]},{\"internalType\":\"uint32\",\"name\":\"secondsInside\",\"type\":\"uint32\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"bool\",\"name\":\"zeroForOne\",\"type\":\"bool\",\"components\":[]},{\"internalType\":\"int256\",\"name\":\"amountSpecified\",\"type\":\"int256\",\"components\":[]},{\"internalType\":\"uint160\",\"name\":\"sqrtPriceLimitX96\",\"type\":\"uint160\",\"components\":[]},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"swap\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"amount0\",\"type\":\"int256\",\"components\":[]},{\"internalType\":\"int256\",\"name\":\"amount1\",\"type\":\"int256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"int16\",\"name\":\"wordPosition\",\"type\":\"int16\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"tickBitmap\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"tickSpacing\",\"outputs\":[{\"internalType\":\"int24\",\"name\":\"\",\"type\":\"int24\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"int24\",\"name\":\"tick\",\"type\":\"int24\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"ticks\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"liquidityGross\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"int128\",\"name\":\"liquidityNet\",\"type\":\"int128\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthOutside0X128\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthOutside1X128\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"int56\",\"name\":\"tickCumulativeOutside\",\"type\":\"int56\",\"components\":[]},{\"internalType\":\"uint160\",\"name\":\"secondsPerLiquidityOutsideX128\",\"type\":\"uint160\",\"components\":[]},{\"internalType\":\"uint32\",\"name\":\"secondsOutside\",\"type\":\"uint32\",\"components\":[]},{\"internalType\":\"bool\",\"name\":\"initialized\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"token0\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"token1\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]}]"; - /// The parsed JSON-ABI of the contract. - pub static IUNISWAPV3POOL_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = - ::ethers::contract::Lazy::new(|| { - ::ethers::core::utils::__serde_json::from_str(__ABI).expect("invalid abi") - }); - pub struct IUniswapV3Pool(::ethers::contract::Contract); - impl Clone for IUniswapV3Pool { - fn clone(&self) -> Self { - IUniswapV3Pool(self.0.clone()) - } - } - impl std::ops::Deref for IUniswapV3Pool { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl std::fmt::Debug for IUniswapV3Pool { - fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result { - f.debug_tuple(stringify!(IUniswapV3Pool)) - .field(&self.address()) - .finish() - } - } - impl IUniswapV3Pool { - /// Creates a new contract instance with the specified `ethers` - /// client at the given `Address`. The contract derefs to a `ethers::Contract` - /// object - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self(::ethers::contract::Contract::new( - address.into(), - IUNISWAPV3POOL_ABI.clone(), - client, - )) - } - ///Calls the contract's `burn` (0xa34123a7) function - pub fn burn( - &self, - tick_lower: i32, - tick_upper: i32, - amount: u128, - ) -> ::ethers::contract::builders::ContractCall< - M, - (::ethers::core::types::U256, ::ethers::core::types::U256), - > { - self.0 - .method_hash([163, 65, 35, 167], (tick_lower, tick_upper, amount)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `collect` (0x4f1eb3d8) function - pub fn collect( - &self, - recipient: ::ethers::core::types::Address, - tick_lower: i32, - tick_upper: i32, - amount_0_requested: u128, - amount_1_requested: u128, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash( - [79, 30, 179, 216], - ( - recipient, - tick_lower, - tick_upper, - amount_0_requested, - amount_1_requested, - ), - ) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `collectProtocol` (0x85b66729) function - pub fn collect_protocol( - &self, - recipient: ::ethers::core::types::Address, - amount_0_requested: u128, - amount_1_requested: u128, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash( - [133, 182, 103, 41], - (recipient, amount_0_requested, amount_1_requested), - ) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `factory` (0xc45a0155) function - pub fn factory( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([196, 90, 1, 85], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `fee` (0xddca3f43) function - pub fn fee(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([221, 202, 63, 67], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `feeGrowthGlobal0X128` (0xf3058399) function - pub fn fee_growth_global_0x128( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([243, 5, 131, 153], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `feeGrowthGlobal1X128` (0x46141319) function - pub fn fee_growth_global_1x128( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([70, 20, 19, 25], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `flash` (0x490e6cbc) function - pub fn flash( - &self, - recipient: ::ethers::core::types::Address, - amount_0: ::ethers::core::types::U256, - amount_1: ::ethers::core::types::U256, - data: ::ethers::core::types::Bytes, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([73, 14, 108, 188], (recipient, amount_0, amount_1, data)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `increaseObservationCardinalityNext` (0x32148f67) function - pub fn increase_observation_cardinality_next( - &self, - observation_cardinality_next: u16, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([50, 20, 143, 103], observation_cardinality_next) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `initialize` (0xf637731d) function - pub fn initialize( - &self, - sqrt_price_x96: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([246, 55, 115, 29], sqrt_price_x96) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `liquidity` (0x1a686502) function - pub fn liquidity(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([26, 104, 101, 2], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `maxLiquidityPerTick` (0x70cf754a) function - pub fn max_liquidity_per_tick( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([112, 207, 117, 74], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `mint` (0x3c8a7d8d) function - pub fn mint( - &self, - recipient: ::ethers::core::types::Address, - tick_lower: i32, - tick_upper: i32, - amount: u128, - data: ::ethers::core::types::Bytes, - ) -> ::ethers::contract::builders::ContractCall< - M, - (::ethers::core::types::U256, ::ethers::core::types::U256), - > { - self.0 - .method_hash( - [60, 138, 125, 141], - (recipient, tick_lower, tick_upper, amount, data), - ) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `observations` (0x252c09d7) function - pub fn observations( - &self, - index: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall< - M, - (u32, i64, ::ethers::core::types::U256, bool), - > { - self.0 - .method_hash([37, 44, 9, 215], index) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `observe` (0x883bdbfd) function - pub fn observe( - &self, - seconds_agos: ::std::vec::Vec, - ) -> ::ethers::contract::builders::ContractCall< - M, - ( - ::std::vec::Vec, - ::std::vec::Vec<::ethers::core::types::U256>, - ), - > { - self.0 - .method_hash([136, 59, 219, 253], seconds_agos) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `positions` (0x514ea4bf) function - pub fn positions( - &self, - key: [u8; 32], - ) -> ::ethers::contract::builders::ContractCall< - M, - ( - u128, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - u128, - u128, - ), - > { - self.0 - .method_hash([81, 78, 164, 191], key) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `protocolFees` (0x1ad8b03b) function - pub fn protocol_fees(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([26, 216, 176, 59], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `setFeeProtocol` (0x8206a4d1) function - pub fn set_fee_protocol( - &self, - fee_protocol_0: u8, - fee_protocol_1: u8, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([130, 6, 164, 209], (fee_protocol_0, fee_protocol_1)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `slot0` (0x3850c7bd) function - pub fn slot_0( - &self, - ) -> ::ethers::contract::builders::ContractCall< - M, - (::ethers::core::types::U256, i32, u16, u16, u16, u8, bool), - > { - self.0 - .method_hash([56, 80, 199, 189], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `snapshotCumulativesInside` (0xa38807f2) function - pub fn snapshot_cumulatives_inside( - &self, - tick_lower: i32, - tick_upper: i32, - ) -> ::ethers::contract::builders::ContractCall - { - self.0 - .method_hash([163, 136, 7, 242], (tick_lower, tick_upper)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `swap` (0x128acb08) function - pub fn swap( - &self, - recipient: ::ethers::core::types::Address, - zero_for_one: bool, - amount_specified: ::ethers::core::types::I256, - sqrt_price_limit_x96: ::ethers::core::types::U256, - data: ::ethers::core::types::Bytes, - ) -> ::ethers::contract::builders::ContractCall< - M, - (::ethers::core::types::I256, ::ethers::core::types::I256), - > { - self.0 - .method_hash( - [18, 138, 203, 8], - ( - recipient, - zero_for_one, - amount_specified, - sqrt_price_limit_x96, - data, - ), - ) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `tickBitmap` (0x5339c296) function - pub fn tick_bitmap( - &self, - word_position: i16, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([83, 57, 194, 150], word_position) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `tickSpacing` (0xd0c93a7c) function - pub fn tick_spacing(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([208, 201, 58, 124], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `ticks` (0xf30dba93) function - pub fn ticks( - &self, - tick: i32, - ) -> ::ethers::contract::builders::ContractCall< - M, - ( - u128, - i128, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - i64, - ::ethers::core::types::U256, - u32, - bool, - ), - > { - self.0 - .method_hash([243, 13, 186, 147], tick) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `token0` (0x0dfe1681) function - pub fn token_0( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([13, 254, 22, 129], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `token1` (0xd21220a7) function - pub fn token_1( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([210, 18, 32, 167], ()) - .expect("method not found (this should never happen)") - } - ///Gets the contract's `Burn` event - pub fn burn_filter(&self) -> ::ethers::contract::builders::Event { - self.0.event() - } - ///Gets the contract's `Collect` event - pub fn collect_filter(&self) -> ::ethers::contract::builders::Event { - self.0.event() - } - ///Gets the contract's `CollectProtocol` event - pub fn collect_protocol_filter( - &self, - ) -> ::ethers::contract::builders::Event { - self.0.event() - } - ///Gets the contract's `Flash` event - pub fn flash_filter(&self) -> ::ethers::contract::builders::Event { - self.0.event() - } - ///Gets the contract's `IncreaseObservationCardinalityNext` event - pub fn increase_observation_cardinality_next_filter( - &self, - ) -> ::ethers::contract::builders::Event - { - self.0.event() - } - ///Gets the contract's `Initialize` event - pub fn initialize_filter( - &self, - ) -> ::ethers::contract::builders::Event { - self.0.event() - } - ///Gets the contract's `Mint` event - pub fn mint_filter(&self) -> ::ethers::contract::builders::Event { - self.0.event() - } - ///Gets the contract's `SetFeeProtocol` event - pub fn set_fee_protocol_filter( - &self, - ) -> ::ethers::contract::builders::Event { - self.0.event() - } - ///Gets the contract's `Swap` event - pub fn swap_filter(&self) -> ::ethers::contract::builders::Event { - self.0.event() - } - /// Returns an [`Event`](#ethers_contract::builders::Event) builder for all events of this contract - pub fn events(&self) -> ::ethers::contract::builders::Event { - self.0.event_with_filter(Default::default()) - } - } - impl From<::ethers::contract::Contract> - for IUniswapV3Pool - { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - )] - #[ethevent( - name = "Burn", - abi = "Burn(address,int24,int24,uint128,uint256,uint256)" - )] - pub struct BurnFilter { - #[ethevent(indexed)] - pub owner: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub tick_lower: i32, - #[ethevent(indexed)] - pub tick_upper: i32, - pub amount: u128, - pub amount_0: ::ethers::core::types::U256, - pub amount_1: ::ethers::core::types::U256, - } - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - )] - #[ethevent( - name = "Collect", - abi = "Collect(address,address,int24,int24,uint128,uint128)" - )] - pub struct CollectFilter { - #[ethevent(indexed)] - pub owner: ::ethers::core::types::Address, - pub recipient: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub tick_lower: i32, - #[ethevent(indexed)] - pub tick_upper: i32, - pub amount_0: u128, - pub amount_1: u128, - } - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - )] - #[ethevent( - name = "CollectProtocol", - abi = "CollectProtocol(address,address,uint128,uint128)" - )] - pub struct CollectProtocolFilter { - #[ethevent(indexed)] - pub sender: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub recipient: ::ethers::core::types::Address, - pub amount_0: u128, - pub amount_1: u128, - } - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - )] - #[ethevent( - name = "Flash", - abi = "Flash(address,address,uint256,uint256,uint256,uint256)" - )] - pub struct FlashFilter { - #[ethevent(indexed)] - pub sender: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub recipient: ::ethers::core::types::Address, - pub amount_0: ::ethers::core::types::U256, - pub amount_1: ::ethers::core::types::U256, - pub paid_0: ::ethers::core::types::U256, - pub paid_1: ::ethers::core::types::U256, - } - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - )] - #[ethevent( - name = "IncreaseObservationCardinalityNext", - abi = "IncreaseObservationCardinalityNext(uint16,uint16)" - )] - pub struct IncreaseObservationCardinalityNextFilter { - pub observation_cardinality_next_old: u16, - pub observation_cardinality_next_new: u16, - } - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - )] - #[ethevent(name = "Initialize", abi = "Initialize(uint160,int24)")] - pub struct InitializeFilter { - pub sqrt_price_x96: ::ethers::core::types::U256, - pub tick: i32, - } - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - )] - #[ethevent( - name = "Mint", - abi = "Mint(address,address,int24,int24,uint128,uint256,uint256)" - )] - pub struct MintFilter { - pub sender: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub owner: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub tick_lower: i32, - #[ethevent(indexed)] - pub tick_upper: i32, - pub amount: u128, - pub amount_0: ::ethers::core::types::U256, - pub amount_1: ::ethers::core::types::U256, - } - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - )] - #[ethevent( - name = "SetFeeProtocol", - abi = "SetFeeProtocol(uint8,uint8,uint8,uint8)" - )] - pub struct SetFeeProtocolFilter { - pub fee_protocol_0_old: u8, - pub fee_protocol_1_old: u8, - pub fee_protocol_0_new: u8, - pub fee_protocol_1_new: u8, - } - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - )] - #[ethevent( - name = "Swap", - abi = "Swap(address,address,int256,int256,uint160,uint128,int24)" - )] - pub struct SwapFilter { - #[ethevent(indexed)] - pub sender: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub recipient: ::ethers::core::types::Address, - pub amount_0: ::ethers::core::types::I256, - pub amount_1: ::ethers::core::types::I256, - pub sqrt_price_x96: ::ethers::core::types::U256, - pub liquidity: u128, - pub tick: i32, - } - #[derive(Debug, Clone, PartialEq, Eq, ::ethers::contract::EthAbiType)] - pub enum IUniswapV3PoolEvents { - BurnFilter(BurnFilter), - CollectFilter(CollectFilter), - CollectProtocolFilter(CollectProtocolFilter), - FlashFilter(FlashFilter), - IncreaseObservationCardinalityNextFilter(IncreaseObservationCardinalityNextFilter), - InitializeFilter(InitializeFilter), - MintFilter(MintFilter), - SetFeeProtocolFilter(SetFeeProtocolFilter), - SwapFilter(SwapFilter), - } - impl ::ethers::contract::EthLogDecode for IUniswapV3PoolEvents { - fn decode_log( - log: &::ethers::core::abi::RawLog, - ) -> ::std::result::Result - where - Self: Sized, - { - if let Ok(decoded) = BurnFilter::decode_log(log) { - return Ok(IUniswapV3PoolEvents::BurnFilter(decoded)); - } - if let Ok(decoded) = CollectFilter::decode_log(log) { - return Ok(IUniswapV3PoolEvents::CollectFilter(decoded)); - } - if let Ok(decoded) = CollectProtocolFilter::decode_log(log) { - return Ok(IUniswapV3PoolEvents::CollectProtocolFilter(decoded)); - } - if let Ok(decoded) = FlashFilter::decode_log(log) { - return Ok(IUniswapV3PoolEvents::FlashFilter(decoded)); - } - if let Ok(decoded) = IncreaseObservationCardinalityNextFilter::decode_log(log) { - return Ok(IUniswapV3PoolEvents::IncreaseObservationCardinalityNextFilter(decoded)); - } - if let Ok(decoded) = InitializeFilter::decode_log(log) { - return Ok(IUniswapV3PoolEvents::InitializeFilter(decoded)); - } - if let Ok(decoded) = MintFilter::decode_log(log) { - return Ok(IUniswapV3PoolEvents::MintFilter(decoded)); - } - if let Ok(decoded) = SetFeeProtocolFilter::decode_log(log) { - return Ok(IUniswapV3PoolEvents::SetFeeProtocolFilter(decoded)); - } - if let Ok(decoded) = SwapFilter::decode_log(log) { - return Ok(IUniswapV3PoolEvents::SwapFilter(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData) - } - } - impl ::std::fmt::Display for IUniswapV3PoolEvents { - fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result { - match self { - IUniswapV3PoolEvents::BurnFilter(element) => element.fmt(f), - IUniswapV3PoolEvents::CollectFilter(element) => element.fmt(f), - IUniswapV3PoolEvents::CollectProtocolFilter(element) => element.fmt(f), - IUniswapV3PoolEvents::FlashFilter(element) => element.fmt(f), - IUniswapV3PoolEvents::IncreaseObservationCardinalityNextFilter(element) => { - element.fmt(f) - } - IUniswapV3PoolEvents::InitializeFilter(element) => element.fmt(f), - IUniswapV3PoolEvents::MintFilter(element) => element.fmt(f), - IUniswapV3PoolEvents::SetFeeProtocolFilter(element) => element.fmt(f), - IUniswapV3PoolEvents::SwapFilter(element) => element.fmt(f), - } - } - } - ///Container type for all input parameters for the `burn` function with signature `burn(int24,int24,uint128)` and selector `0xa34123a7` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - )] - #[ethcall(name = "burn", abi = "burn(int24,int24,uint128)")] - pub struct BurnCall { - pub tick_lower: i32, - pub tick_upper: i32, - pub amount: u128, - } - ///Container type for all input parameters for the `collect` function with signature `collect(address,int24,int24,uint128,uint128)` and selector `0x4f1eb3d8` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - )] - #[ethcall(name = "collect", abi = "collect(address,int24,int24,uint128,uint128)")] - pub struct CollectCall { - pub recipient: ::ethers::core::types::Address, - pub tick_lower: i32, - pub tick_upper: i32, - pub amount_0_requested: u128, - pub amount_1_requested: u128, - } - ///Container type for all input parameters for the `collectProtocol` function with signature `collectProtocol(address,uint128,uint128)` and selector `0x85b66729` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - )] - #[ethcall( - name = "collectProtocol", - abi = "collectProtocol(address,uint128,uint128)" - )] - pub struct CollectProtocolCall { - pub recipient: ::ethers::core::types::Address, - pub amount_0_requested: u128, - pub amount_1_requested: u128, - } - ///Container type for all input parameters for the `factory` function with signature `factory()` and selector `0xc45a0155` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - )] - #[ethcall(name = "factory", abi = "factory()")] - pub struct FactoryCall; - ///Container type for all input parameters for the `fee` function with signature `fee()` and selector `0xddca3f43` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - )] - #[ethcall(name = "fee", abi = "fee()")] - pub struct FeeCall; - ///Container type for all input parameters for the `feeGrowthGlobal0X128` function with signature `feeGrowthGlobal0X128()` and selector `0xf3058399` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - )] - #[ethcall(name = "feeGrowthGlobal0X128", abi = "feeGrowthGlobal0X128()")] - pub struct FeeGrowthGlobal0X128Call; - ///Container type for all input parameters for the `feeGrowthGlobal1X128` function with signature `feeGrowthGlobal1X128()` and selector `0x46141319` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - )] - #[ethcall(name = "feeGrowthGlobal1X128", abi = "feeGrowthGlobal1X128()")] - pub struct FeeGrowthGlobal1X128Call; - ///Container type for all input parameters for the `flash` function with signature `flash(address,uint256,uint256,bytes)` and selector `0x490e6cbc` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - )] - #[ethcall(name = "flash", abi = "flash(address,uint256,uint256,bytes)")] - pub struct FlashCall { - pub recipient: ::ethers::core::types::Address, - pub amount_0: ::ethers::core::types::U256, - pub amount_1: ::ethers::core::types::U256, - pub data: ::ethers::core::types::Bytes, - } - ///Container type for all input parameters for the `increaseObservationCardinalityNext` function with signature `increaseObservationCardinalityNext(uint16)` and selector `0x32148f67` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - )] - #[ethcall( - name = "increaseObservationCardinalityNext", - abi = "increaseObservationCardinalityNext(uint16)" - )] - pub struct IncreaseObservationCardinalityNextCall { - pub observation_cardinality_next: u16, - } - ///Container type for all input parameters for the `initialize` function with signature `initialize(uint160)` and selector `0xf637731d` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - )] - #[ethcall(name = "initialize", abi = "initialize(uint160)")] - pub struct InitializeCall { - pub sqrt_price_x96: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `liquidity` function with signature `liquidity()` and selector `0x1a686502` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - )] - #[ethcall(name = "liquidity", abi = "liquidity()")] - pub struct LiquidityCall; - ///Container type for all input parameters for the `maxLiquidityPerTick` function with signature `maxLiquidityPerTick()` and selector `0x70cf754a` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - )] - #[ethcall(name = "maxLiquidityPerTick", abi = "maxLiquidityPerTick()")] - pub struct MaxLiquidityPerTickCall; - ///Container type for all input parameters for the `mint` function with signature `mint(address,int24,int24,uint128,bytes)` and selector `0x3c8a7d8d` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - )] - #[ethcall(name = "mint", abi = "mint(address,int24,int24,uint128,bytes)")] - pub struct MintCall { - pub recipient: ::ethers::core::types::Address, - pub tick_lower: i32, - pub tick_upper: i32, - pub amount: u128, - pub data: ::ethers::core::types::Bytes, - } - ///Container type for all input parameters for the `observations` function with signature `observations(uint256)` and selector `0x252c09d7` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - )] - #[ethcall(name = "observations", abi = "observations(uint256)")] - pub struct ObservationsCall { - pub index: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `observe` function with signature `observe(uint32[])` and selector `0x883bdbfd` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - )] - #[ethcall(name = "observe", abi = "observe(uint32[])")] - pub struct ObserveCall { - pub seconds_agos: ::std::vec::Vec, - } - ///Container type for all input parameters for the `positions` function with signature `positions(bytes32)` and selector `0x514ea4bf` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - )] - #[ethcall(name = "positions", abi = "positions(bytes32)")] - pub struct PositionsCall { - pub key: [u8; 32], - } - ///Container type for all input parameters for the `protocolFees` function with signature `protocolFees()` and selector `0x1ad8b03b` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - )] - #[ethcall(name = "protocolFees", abi = "protocolFees()")] - pub struct ProtocolFeesCall; - ///Container type for all input parameters for the `setFeeProtocol` function with signature `setFeeProtocol(uint8,uint8)` and selector `0x8206a4d1` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - )] - #[ethcall(name = "setFeeProtocol", abi = "setFeeProtocol(uint8,uint8)")] - pub struct SetFeeProtocolCall { - pub fee_protocol_0: u8, - pub fee_protocol_1: u8, - } - ///Container type for all input parameters for the `slot0` function with signature `slot0()` and selector `0x3850c7bd` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - )] - #[ethcall(name = "slot0", abi = "slot0()")] - pub struct Slot0Call; - ///Container type for all input parameters for the `snapshotCumulativesInside` function with signature `snapshotCumulativesInside(int24,int24)` and selector `0xa38807f2` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - )] - #[ethcall( - name = "snapshotCumulativesInside", - abi = "snapshotCumulativesInside(int24,int24)" - )] - pub struct SnapshotCumulativesInsideCall { - pub tick_lower: i32, - pub tick_upper: i32, - } - ///Container type for all input parameters for the `swap` function with signature `swap(address,bool,int256,uint160,bytes)` and selector `0x128acb08` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - )] - #[ethcall(name = "swap", abi = "swap(address,bool,int256,uint160,bytes)")] - pub struct SwapCall { - pub recipient: ::ethers::core::types::Address, - pub zero_for_one: bool, - pub amount_specified: ::ethers::core::types::I256, - pub sqrt_price_limit_x96: ::ethers::core::types::U256, - pub data: ::ethers::core::types::Bytes, - } - ///Container type for all input parameters for the `tickBitmap` function with signature `tickBitmap(int16)` and selector `0x5339c296` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - )] - #[ethcall(name = "tickBitmap", abi = "tickBitmap(int16)")] - pub struct TickBitmapCall { - pub word_position: i16, - } - ///Container type for all input parameters for the `tickSpacing` function with signature `tickSpacing()` and selector `0xd0c93a7c` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - )] - #[ethcall(name = "tickSpacing", abi = "tickSpacing()")] - pub struct TickSpacingCall; - ///Container type for all input parameters for the `ticks` function with signature `ticks(int24)` and selector `0xf30dba93` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - )] - #[ethcall(name = "ticks", abi = "ticks(int24)")] - pub struct TicksCall { - pub tick: i32, - } - ///Container type for all input parameters for the `token0` function with signature `token0()` and selector `0x0dfe1681` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - )] - #[ethcall(name = "token0", abi = "token0()")] - pub struct Token0Call; - ///Container type for all input parameters for the `token1` function with signature `token1()` and selector `0xd21220a7` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - )] - #[ethcall(name = "token1", abi = "token1()")] - pub struct Token1Call; - #[derive(Debug, Clone, PartialEq, Eq, ::ethers::contract::EthAbiType)] - pub enum IUniswapV3PoolCalls { - Burn(BurnCall), - Collect(CollectCall), - CollectProtocol(CollectProtocolCall), - Factory(FactoryCall), - Fee(FeeCall), - FeeGrowthGlobal0X128(FeeGrowthGlobal0X128Call), - FeeGrowthGlobal1X128(FeeGrowthGlobal1X128Call), - Flash(FlashCall), - IncreaseObservationCardinalityNext(IncreaseObservationCardinalityNextCall), - Initialize(InitializeCall), - Liquidity(LiquidityCall), - MaxLiquidityPerTick(MaxLiquidityPerTickCall), - Mint(MintCall), - Observations(ObservationsCall), - Observe(ObserveCall), - Positions(PositionsCall), - ProtocolFees(ProtocolFeesCall), - SetFeeProtocol(SetFeeProtocolCall), - Slot0(Slot0Call), - SnapshotCumulativesInside(SnapshotCumulativesInsideCall), - Swap(SwapCall), - TickBitmap(TickBitmapCall), - TickSpacing(TickSpacingCall), - Ticks(TicksCall), - Token0(Token0Call), - Token1(Token1Call), - } - impl ::ethers::core::abi::AbiDecode for IUniswapV3PoolCalls { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::std::result::Result { - if let Ok(decoded) = ::decode(data.as_ref()) - { - return Ok(IUniswapV3PoolCalls::Burn(decoded)); - } - if let Ok(decoded) = - ::decode(data.as_ref()) - { - return Ok(IUniswapV3PoolCalls::Collect(decoded)); - } - if let Ok(decoded) = - ::decode(data.as_ref()) - { - return Ok(IUniswapV3PoolCalls::CollectProtocol(decoded)); - } - if let Ok(decoded) = - ::decode(data.as_ref()) - { - return Ok(IUniswapV3PoolCalls::Factory(decoded)); - } - if let Ok(decoded) = ::decode(data.as_ref()) - { - return Ok(IUniswapV3PoolCalls::Fee(decoded)); - } - if let Ok(decoded) = - ::decode(data.as_ref()) - { - return Ok(IUniswapV3PoolCalls::FeeGrowthGlobal0X128(decoded)); - } - if let Ok(decoded) = - ::decode(data.as_ref()) - { - return Ok(IUniswapV3PoolCalls::FeeGrowthGlobal1X128(decoded)); - } - if let Ok(decoded) = - ::decode(data.as_ref()) - { - return Ok(IUniswapV3PoolCalls::Flash(decoded)); - } - if let Ok(decoded) = - ::decode( - data.as_ref(), - ) - { - return Ok(IUniswapV3PoolCalls::IncreaseObservationCardinalityNext( - decoded, - )); - } - if let Ok(decoded) = - ::decode(data.as_ref()) - { - return Ok(IUniswapV3PoolCalls::Initialize(decoded)); - } - if let Ok(decoded) = - ::decode(data.as_ref()) - { - return Ok(IUniswapV3PoolCalls::Liquidity(decoded)); - } - if let Ok(decoded) = - ::decode(data.as_ref()) - { - return Ok(IUniswapV3PoolCalls::MaxLiquidityPerTick(decoded)); - } - if let Ok(decoded) = ::decode(data.as_ref()) - { - return Ok(IUniswapV3PoolCalls::Mint(decoded)); - } - if let Ok(decoded) = - ::decode(data.as_ref()) - { - return Ok(IUniswapV3PoolCalls::Observations(decoded)); - } - if let Ok(decoded) = - ::decode(data.as_ref()) - { - return Ok(IUniswapV3PoolCalls::Observe(decoded)); - } - if let Ok(decoded) = - ::decode(data.as_ref()) - { - return Ok(IUniswapV3PoolCalls::Positions(decoded)); - } - if let Ok(decoded) = - ::decode(data.as_ref()) - { - return Ok(IUniswapV3PoolCalls::ProtocolFees(decoded)); - } - if let Ok(decoded) = - ::decode(data.as_ref()) - { - return Ok(IUniswapV3PoolCalls::SetFeeProtocol(decoded)); - } - if let Ok(decoded) = - ::decode(data.as_ref()) - { - return Ok(IUniswapV3PoolCalls::Slot0(decoded)); - } - if let Ok(decoded) = - ::decode( - data.as_ref(), - ) - { - return Ok(IUniswapV3PoolCalls::SnapshotCumulativesInside(decoded)); - } - if let Ok(decoded) = ::decode(data.as_ref()) - { - return Ok(IUniswapV3PoolCalls::Swap(decoded)); - } - if let Ok(decoded) = - ::decode(data.as_ref()) - { - return Ok(IUniswapV3PoolCalls::TickBitmap(decoded)); - } - if let Ok(decoded) = - ::decode(data.as_ref()) - { - return Ok(IUniswapV3PoolCalls::TickSpacing(decoded)); - } - if let Ok(decoded) = - ::decode(data.as_ref()) - { - return Ok(IUniswapV3PoolCalls::Ticks(decoded)); - } - if let Ok(decoded) = - ::decode(data.as_ref()) - { - return Ok(IUniswapV3PoolCalls::Token0(decoded)); - } - if let Ok(decoded) = - ::decode(data.as_ref()) - { - return Ok(IUniswapV3PoolCalls::Token1(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for IUniswapV3PoolCalls { - fn encode(self) -> Vec { - match self { - IUniswapV3PoolCalls::Burn(element) => element.encode(), - IUniswapV3PoolCalls::Collect(element) => element.encode(), - IUniswapV3PoolCalls::CollectProtocol(element) => element.encode(), - IUniswapV3PoolCalls::Factory(element) => element.encode(), - IUniswapV3PoolCalls::Fee(element) => element.encode(), - IUniswapV3PoolCalls::FeeGrowthGlobal0X128(element) => element.encode(), - IUniswapV3PoolCalls::FeeGrowthGlobal1X128(element) => element.encode(), - IUniswapV3PoolCalls::Flash(element) => element.encode(), - IUniswapV3PoolCalls::IncreaseObservationCardinalityNext(element) => { - element.encode() - } - IUniswapV3PoolCalls::Initialize(element) => element.encode(), - IUniswapV3PoolCalls::Liquidity(element) => element.encode(), - IUniswapV3PoolCalls::MaxLiquidityPerTick(element) => element.encode(), - IUniswapV3PoolCalls::Mint(element) => element.encode(), - IUniswapV3PoolCalls::Observations(element) => element.encode(), - IUniswapV3PoolCalls::Observe(element) => element.encode(), - IUniswapV3PoolCalls::Positions(element) => element.encode(), - IUniswapV3PoolCalls::ProtocolFees(element) => element.encode(), - IUniswapV3PoolCalls::SetFeeProtocol(element) => element.encode(), - IUniswapV3PoolCalls::Slot0(element) => element.encode(), - IUniswapV3PoolCalls::SnapshotCumulativesInside(element) => element.encode(), - IUniswapV3PoolCalls::Swap(element) => element.encode(), - IUniswapV3PoolCalls::TickBitmap(element) => element.encode(), - IUniswapV3PoolCalls::TickSpacing(element) => element.encode(), - IUniswapV3PoolCalls::Ticks(element) => element.encode(), - IUniswapV3PoolCalls::Token0(element) => element.encode(), - IUniswapV3PoolCalls::Token1(element) => element.encode(), - } - } - } - impl ::std::fmt::Display for IUniswapV3PoolCalls { - fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result { - match self { - IUniswapV3PoolCalls::Burn(element) => element.fmt(f), - IUniswapV3PoolCalls::Collect(element) => element.fmt(f), - IUniswapV3PoolCalls::CollectProtocol(element) => element.fmt(f), - IUniswapV3PoolCalls::Factory(element) => element.fmt(f), - IUniswapV3PoolCalls::Fee(element) => element.fmt(f), - IUniswapV3PoolCalls::FeeGrowthGlobal0X128(element) => element.fmt(f), - IUniswapV3PoolCalls::FeeGrowthGlobal1X128(element) => element.fmt(f), - IUniswapV3PoolCalls::Flash(element) => element.fmt(f), - IUniswapV3PoolCalls::IncreaseObservationCardinalityNext(element) => element.fmt(f), - IUniswapV3PoolCalls::Initialize(element) => element.fmt(f), - IUniswapV3PoolCalls::Liquidity(element) => element.fmt(f), - IUniswapV3PoolCalls::MaxLiquidityPerTick(element) => element.fmt(f), - IUniswapV3PoolCalls::Mint(element) => element.fmt(f), - IUniswapV3PoolCalls::Observations(element) => element.fmt(f), - IUniswapV3PoolCalls::Observe(element) => element.fmt(f), - IUniswapV3PoolCalls::Positions(element) => element.fmt(f), - IUniswapV3PoolCalls::ProtocolFees(element) => element.fmt(f), - IUniswapV3PoolCalls::SetFeeProtocol(element) => element.fmt(f), - IUniswapV3PoolCalls::Slot0(element) => element.fmt(f), - IUniswapV3PoolCalls::SnapshotCumulativesInside(element) => element.fmt(f), - IUniswapV3PoolCalls::Swap(element) => element.fmt(f), - IUniswapV3PoolCalls::TickBitmap(element) => element.fmt(f), - IUniswapV3PoolCalls::TickSpacing(element) => element.fmt(f), - IUniswapV3PoolCalls::Ticks(element) => element.fmt(f), - IUniswapV3PoolCalls::Token0(element) => element.fmt(f), - IUniswapV3PoolCalls::Token1(element) => element.fmt(f), - } - } - } - impl ::std::convert::From for IUniswapV3PoolCalls { - fn from(var: BurnCall) -> Self { - IUniswapV3PoolCalls::Burn(var) - } - } - impl ::std::convert::From for IUniswapV3PoolCalls { - fn from(var: CollectCall) -> Self { - IUniswapV3PoolCalls::Collect(var) - } - } - impl ::std::convert::From for IUniswapV3PoolCalls { - fn from(var: CollectProtocolCall) -> Self { - IUniswapV3PoolCalls::CollectProtocol(var) - } - } - impl ::std::convert::From for IUniswapV3PoolCalls { - fn from(var: FactoryCall) -> Self { - IUniswapV3PoolCalls::Factory(var) - } - } - impl ::std::convert::From for IUniswapV3PoolCalls { - fn from(var: FeeCall) -> Self { - IUniswapV3PoolCalls::Fee(var) - } - } - impl ::std::convert::From for IUniswapV3PoolCalls { - fn from(var: FeeGrowthGlobal0X128Call) -> Self { - IUniswapV3PoolCalls::FeeGrowthGlobal0X128(var) - } - } - impl ::std::convert::From for IUniswapV3PoolCalls { - fn from(var: FeeGrowthGlobal1X128Call) -> Self { - IUniswapV3PoolCalls::FeeGrowthGlobal1X128(var) - } - } - impl ::std::convert::From for IUniswapV3PoolCalls { - fn from(var: FlashCall) -> Self { - IUniswapV3PoolCalls::Flash(var) - } - } - impl ::std::convert::From for IUniswapV3PoolCalls { - fn from(var: IncreaseObservationCardinalityNextCall) -> Self { - IUniswapV3PoolCalls::IncreaseObservationCardinalityNext(var) - } - } - impl ::std::convert::From for IUniswapV3PoolCalls { - fn from(var: InitializeCall) -> Self { - IUniswapV3PoolCalls::Initialize(var) - } - } - impl ::std::convert::From for IUniswapV3PoolCalls { - fn from(var: LiquidityCall) -> Self { - IUniswapV3PoolCalls::Liquidity(var) - } - } - impl ::std::convert::From for IUniswapV3PoolCalls { - fn from(var: MaxLiquidityPerTickCall) -> Self { - IUniswapV3PoolCalls::MaxLiquidityPerTick(var) - } - } - impl ::std::convert::From for IUniswapV3PoolCalls { - fn from(var: MintCall) -> Self { - IUniswapV3PoolCalls::Mint(var) - } - } - impl ::std::convert::From for IUniswapV3PoolCalls { - fn from(var: ObservationsCall) -> Self { - IUniswapV3PoolCalls::Observations(var) - } - } - impl ::std::convert::From for IUniswapV3PoolCalls { - fn from(var: ObserveCall) -> Self { - IUniswapV3PoolCalls::Observe(var) - } - } - impl ::std::convert::From for IUniswapV3PoolCalls { - fn from(var: PositionsCall) -> Self { - IUniswapV3PoolCalls::Positions(var) - } - } - impl ::std::convert::From for IUniswapV3PoolCalls { - fn from(var: ProtocolFeesCall) -> Self { - IUniswapV3PoolCalls::ProtocolFees(var) - } - } - impl ::std::convert::From for IUniswapV3PoolCalls { - fn from(var: SetFeeProtocolCall) -> Self { - IUniswapV3PoolCalls::SetFeeProtocol(var) - } - } - impl ::std::convert::From for IUniswapV3PoolCalls { - fn from(var: Slot0Call) -> Self { - IUniswapV3PoolCalls::Slot0(var) - } - } - impl ::std::convert::From for IUniswapV3PoolCalls { - fn from(var: SnapshotCumulativesInsideCall) -> Self { - IUniswapV3PoolCalls::SnapshotCumulativesInside(var) - } - } - impl ::std::convert::From for IUniswapV3PoolCalls { - fn from(var: SwapCall) -> Self { - IUniswapV3PoolCalls::Swap(var) - } - } - impl ::std::convert::From for IUniswapV3PoolCalls { - fn from(var: TickBitmapCall) -> Self { - IUniswapV3PoolCalls::TickBitmap(var) - } - } - impl ::std::convert::From for IUniswapV3PoolCalls { - fn from(var: TickSpacingCall) -> Self { - IUniswapV3PoolCalls::TickSpacing(var) - } - } - impl ::std::convert::From for IUniswapV3PoolCalls { - fn from(var: TicksCall) -> Self { - IUniswapV3PoolCalls::Ticks(var) - } - } - impl ::std::convert::From for IUniswapV3PoolCalls { - fn from(var: Token0Call) -> Self { - IUniswapV3PoolCalls::Token0(var) - } - } - impl ::std::convert::From for IUniswapV3PoolCalls { - fn from(var: Token1Call) -> Self { - IUniswapV3PoolCalls::Token1(var) - } - } - ///Container type for all return fields from the `burn` function with signature `burn(int24,int24,uint128)` and selector `0xa34123a7` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - )] - pub struct BurnReturn { - pub amount_0: ::ethers::core::types::U256, - pub amount_1: ::ethers::core::types::U256, - } - ///Container type for all return fields from the `collect` function with signature `collect(address,int24,int24,uint128,uint128)` and selector `0x4f1eb3d8` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - )] - pub struct CollectReturn { - pub amount_0: u128, - pub amount_1: u128, - } - ///Container type for all return fields from the `collectProtocol` function with signature `collectProtocol(address,uint128,uint128)` and selector `0x85b66729` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - )] - pub struct CollectProtocolReturn { - pub amount_0: u128, - pub amount_1: u128, - } - ///Container type for all return fields from the `factory` function with signature `factory()` and selector `0xc45a0155` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - )] - pub struct FactoryReturn(pub ::ethers::core::types::Address); - ///Container type for all return fields from the `fee` function with signature `fee()` and selector `0xddca3f43` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - )] - pub struct FeeReturn(pub u32); - ///Container type for all return fields from the `feeGrowthGlobal0X128` function with signature `feeGrowthGlobal0X128()` and selector `0xf3058399` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - )] - pub struct FeeGrowthGlobal0X128Return(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `feeGrowthGlobal1X128` function with signature `feeGrowthGlobal1X128()` and selector `0x46141319` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - )] - pub struct FeeGrowthGlobal1X128Return(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `liquidity` function with signature `liquidity()` and selector `0x1a686502` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - )] - pub struct LiquidityReturn(pub u128); - ///Container type for all return fields from the `maxLiquidityPerTick` function with signature `maxLiquidityPerTick()` and selector `0x70cf754a` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - )] - pub struct MaxLiquidityPerTickReturn(pub u128); - ///Container type for all return fields from the `mint` function with signature `mint(address,int24,int24,uint128,bytes)` and selector `0x3c8a7d8d` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - )] - pub struct MintReturn { - pub amount_0: ::ethers::core::types::U256, - pub amount_1: ::ethers::core::types::U256, - } - ///Container type for all return fields from the `observations` function with signature `observations(uint256)` and selector `0x252c09d7` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - )] - pub struct ObservationsReturn { - pub block_timestamp: u32, - pub tick_cumulative: i64, - pub seconds_per_liquidity_cumulative_x128: ::ethers::core::types::U256, - pub initialized: bool, - } - ///Container type for all return fields from the `observe` function with signature `observe(uint32[])` and selector `0x883bdbfd` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - )] - pub struct ObserveReturn { - pub tick_cumulatives: ::std::vec::Vec, - pub seconds_per_liquidity_cumulative_x12_8s: ::std::vec::Vec<::ethers::core::types::U256>, - } - ///Container type for all return fields from the `positions` function with signature `positions(bytes32)` and selector `0x514ea4bf` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - )] - pub struct PositionsReturn { - pub liquidity: u128, - pub fee_growth_inside_0_last_x128: ::ethers::core::types::U256, - pub fee_growth_inside_1_last_x128: ::ethers::core::types::U256, - pub tokens_owed_0: u128, - pub tokens_owed_1: u128, - } - ///Container type for all return fields from the `protocolFees` function with signature `protocolFees()` and selector `0x1ad8b03b` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - )] - pub struct ProtocolFeesReturn { - pub token_0: u128, - pub token_1: u128, - } - ///Container type for all return fields from the `slot0` function with signature `slot0()` and selector `0x3850c7bd` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - )] - pub struct Slot0Return { - pub sqrt_price_x96: ::ethers::core::types::U256, - pub tick: i32, - pub observation_index: u16, - pub observation_cardinality: u16, - pub observation_cardinality_next: u16, - pub fee_protocol: u8, - pub unlocked: bool, - } - ///Container type for all return fields from the `snapshotCumulativesInside` function with signature `snapshotCumulativesInside(int24,int24)` and selector `0xa38807f2` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - )] - pub struct SnapshotCumulativesInsideReturn { - pub tick_cumulative_inside: i64, - pub seconds_per_liquidity_inside_x128: ::ethers::core::types::U256, - pub seconds_inside: u32, - } - ///Container type for all return fields from the `swap` function with signature `swap(address,bool,int256,uint160,bytes)` and selector `0x128acb08` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - )] - pub struct SwapReturn { - pub amount_0: ::ethers::core::types::I256, - pub amount_1: ::ethers::core::types::I256, - } - ///Container type for all return fields from the `tickBitmap` function with signature `tickBitmap(int16)` and selector `0x5339c296` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - )] - pub struct TickBitmapReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `tickSpacing` function with signature `tickSpacing()` and selector `0xd0c93a7c` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - )] - pub struct TickSpacingReturn(pub i32); - ///Container type for all return fields from the `ticks` function with signature `ticks(int24)` and selector `0xf30dba93` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - )] - pub struct TicksReturn { - pub liquidity_gross: u128, - pub liquidity_net: i128, - pub fee_growth_outside_0x128: ::ethers::core::types::U256, - pub fee_growth_outside_1x128: ::ethers::core::types::U256, - pub tick_cumulative_outside: i64, - pub seconds_per_liquidity_outside_x128: ::ethers::core::types::U256, - pub seconds_outside: u32, - pub initialized: bool, - } - ///Container type for all return fields from the `token0` function with signature `token0()` and selector `0x0dfe1681` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - )] - pub struct Token0Return(pub ::ethers::core::types::Address); - ///Container type for all return fields from the `token1` function with signature `token1()` and selector `0xd21220a7` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - )] - pub struct Token1Return(pub ::ethers::core::types::Address); -} diff --git a/crates/bindings_old/src/lib.rs b/crates/bindings_old/src/lib.rs deleted file mode 100644 index d1b4f1ba..00000000 --- a/crates/bindings_old/src/lib.rs +++ /dev/null @@ -1,7 +0,0 @@ -#![allow(clippy::all)] -//! This lib contains abigen! generated bindings for solidity contracts. -//! This is autogenerated code. -//! Do not manually edit these files. -//! These files may be overwritten by the codegen system at any time. -pub mod i_uniswap_v3_pool; -pub mod uniswap_v3_factory; diff --git a/crates/bindings_old/src/uniswap_v3_factory.rs b/crates/bindings_old/src/uniswap_v3_factory.rs deleted file mode 100644 index 472d03bd..00000000 --- a/crates/bindings_old/src/uniswap_v3_factory.rs +++ /dev/null @@ -1,529 +0,0 @@ -pub use uniswap_v3_factory::*; -#[allow(clippy::too_many_arguments, non_camel_case_types)] -pub mod uniswap_v3_factory { - #![allow(clippy::enum_variant_names)] - #![allow(dead_code)] - #![allow(clippy::type_complexity)] - #![allow(unused_imports)] - ///UniswapV3Factory was auto-generated with ethers-rs Abigen. More information at: https://github.com/gakonst/ethers-rs - use std::sync::Arc; - - use ::ethers::{ - contract::{ - builders::{ContractCall, Event}, - Contract, Lazy, - }, - core::{ - abi::{Abi, Detokenize, InvalidOutputType, Token, Tokenizable}, - types::*, - }, - providers::Middleware, - }; - #[rustfmt::skip] - const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\",\"components\":[],\"indexed\":true},{\"internalType\":\"int24\",\"name\":\"tickSpacing\",\"type\":\"int24\",\"components\":[],\"indexed\":true}],\"type\":\"event\",\"name\":\"FeeAmountEnabled\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"oldOwner\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\",\"components\":[],\"indexed\":true}],\"type\":\"event\",\"name\":\"OwnerChanged\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token0\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"token1\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\",\"components\":[],\"indexed\":true},{\"internalType\":\"int24\",\"name\":\"tickSpacing\",\"type\":\"int24\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"pool\",\"type\":\"address\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"PoolCreated\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"createPool\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"pool\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\",\"components\":[]},{\"internalType\":\"int24\",\"name\":\"tickSpacing\",\"type\":\"int24\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"enableFeeAmount\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"\",\"type\":\"uint24\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"feeAmountTickSpacing\",\"outputs\":[{\"internalType\":\"int24\",\"name\":\"\",\"type\":\"int24\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint24\",\"name\":\"\",\"type\":\"uint24\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPool\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"parameters\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"factory\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"token0\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"token1\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\",\"components\":[]},{\"internalType\":\"int24\",\"name\":\"tickSpacing\",\"type\":\"int24\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"setOwner\",\"outputs\":[]}]"; - /// The parsed JSON-ABI of the contract. - pub static UNISWAPV3FACTORY_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = - ::ethers::contract::Lazy::new(|| { - ::ethers::core::utils::__serde_json::from_str(__ABI).expect("invalid abi") - }); - pub struct UniswapV3Factory(::ethers::contract::Contract); - impl Clone for UniswapV3Factory { - fn clone(&self) -> Self { - UniswapV3Factory(self.0.clone()) - } - } - impl std::ops::Deref for UniswapV3Factory { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl std::fmt::Debug for UniswapV3Factory { - fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result { - f.debug_tuple(stringify!(UniswapV3Factory)) - .field(&self.address()) - .finish() - } - } - impl UniswapV3Factory { - /// Creates a new contract instance with the specified `ethers` - /// client at the given `Address`. The contract derefs to a `ethers::Contract` - /// object - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self(::ethers::contract::Contract::new( - address.into(), - UNISWAPV3FACTORY_ABI.clone(), - client, - )) - } - ///Calls the contract's `createPool` (0xa1671295) function - pub fn create_pool( - &self, - token_a: ::ethers::core::types::Address, - token_b: ::ethers::core::types::Address, - fee: u32, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([161, 103, 18, 149], (token_a, token_b, fee)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `enableFeeAmount` (0x8a7c195f) function - pub fn enable_fee_amount( - &self, - fee: u32, - tick_spacing: i32, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([138, 124, 25, 95], (fee, tick_spacing)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `feeAmountTickSpacing` (0x22afcccb) function - pub fn fee_amount_tick_spacing( - &self, - p0: u32, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([34, 175, 204, 203], p0) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getPool` (0x1698ee82) function - pub fn get_pool( - &self, - p0: ::ethers::core::types::Address, - p1: ::ethers::core::types::Address, - p2: u32, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([22, 152, 238, 130], (p0, p1, p2)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `owner` (0x8da5cb5b) function - pub fn owner( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([141, 165, 203, 91], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `parameters` (0x89035730) function - pub fn parameters( - &self, - ) -> ::ethers::contract::builders::ContractCall< - M, - ( - ::ethers::core::types::Address, - ::ethers::core::types::Address, - ::ethers::core::types::Address, - u32, - i32, - ), - > { - self.0 - .method_hash([137, 3, 87, 48], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `setOwner` (0x13af4035) function - pub fn set_owner( - &self, - owner: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([19, 175, 64, 53], owner) - .expect("method not found (this should never happen)") - } - ///Gets the contract's `FeeAmountEnabled` event - pub fn fee_amount_enabled_filter( - &self, - ) -> ::ethers::contract::builders::Event { - self.0.event() - } - ///Gets the contract's `OwnerChanged` event - pub fn owner_changed_filter( - &self, - ) -> ::ethers::contract::builders::Event { - self.0.event() - } - ///Gets the contract's `PoolCreated` event - pub fn pool_created_filter( - &self, - ) -> ::ethers::contract::builders::Event { - self.0.event() - } - /// Returns an [`Event`](#ethers_contract::builders::Event) builder for all events of this contract - pub fn events(&self) -> ::ethers::contract::builders::Event { - self.0.event_with_filter(Default::default()) - } - } - impl From<::ethers::contract::Contract> - for UniswapV3Factory - { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - )] - #[ethevent(name = "FeeAmountEnabled", abi = "FeeAmountEnabled(uint24,int24)")] - pub struct FeeAmountEnabledFilter { - #[ethevent(indexed)] - pub fee: u32, - #[ethevent(indexed)] - pub tick_spacing: i32, - } - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - )] - #[ethevent(name = "OwnerChanged", abi = "OwnerChanged(address,address)")] - pub struct OwnerChangedFilter { - #[ethevent(indexed)] - pub old_owner: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub new_owner: ::ethers::core::types::Address, - } - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - )] - #[ethevent( - name = "PoolCreated", - abi = "PoolCreated(address,address,uint24,int24,address)" - )] - pub struct PoolCreatedFilter { - #[ethevent(indexed)] - pub token_0: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub token_1: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub fee: u32, - pub tick_spacing: i32, - pub pool: ::ethers::core::types::Address, - } - #[derive(Debug, Clone, PartialEq, Eq, ::ethers::contract::EthAbiType)] - pub enum UniswapV3FactoryEvents { - FeeAmountEnabledFilter(FeeAmountEnabledFilter), - OwnerChangedFilter(OwnerChangedFilter), - PoolCreatedFilter(PoolCreatedFilter), - } - impl ::ethers::contract::EthLogDecode for UniswapV3FactoryEvents { - fn decode_log( - log: &::ethers::core::abi::RawLog, - ) -> ::std::result::Result - where - Self: Sized, - { - if let Ok(decoded) = FeeAmountEnabledFilter::decode_log(log) { - return Ok(UniswapV3FactoryEvents::FeeAmountEnabledFilter(decoded)); - } - if let Ok(decoded) = OwnerChangedFilter::decode_log(log) { - return Ok(UniswapV3FactoryEvents::OwnerChangedFilter(decoded)); - } - if let Ok(decoded) = PoolCreatedFilter::decode_log(log) { - return Ok(UniswapV3FactoryEvents::PoolCreatedFilter(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData) - } - } - impl ::std::fmt::Display for UniswapV3FactoryEvents { - fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result { - match self { - UniswapV3FactoryEvents::FeeAmountEnabledFilter(element) => element.fmt(f), - UniswapV3FactoryEvents::OwnerChangedFilter(element) => element.fmt(f), - UniswapV3FactoryEvents::PoolCreatedFilter(element) => element.fmt(f), - } - } - } - ///Container type for all input parameters for the `createPool` function with signature `createPool(address,address,uint24)` and selector `0xa1671295` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - )] - #[ethcall(name = "createPool", abi = "createPool(address,address,uint24)")] - pub struct CreatePoolCall { - pub token_a: ::ethers::core::types::Address, - pub token_b: ::ethers::core::types::Address, - pub fee: u32, - } - ///Container type for all input parameters for the `enableFeeAmount` function with signature `enableFeeAmount(uint24,int24)` and selector `0x8a7c195f` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - )] - #[ethcall(name = "enableFeeAmount", abi = "enableFeeAmount(uint24,int24)")] - pub struct EnableFeeAmountCall { - pub fee: u32, - pub tick_spacing: i32, - } - ///Container type for all input parameters for the `feeAmountTickSpacing` function with signature `feeAmountTickSpacing(uint24)` and selector `0x22afcccb` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - )] - #[ethcall(name = "feeAmountTickSpacing", abi = "feeAmountTickSpacing(uint24)")] - pub struct FeeAmountTickSpacingCall(pub u32); - ///Container type for all input parameters for the `getPool` function with signature `getPool(address,address,uint24)` and selector `0x1698ee82` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - )] - #[ethcall(name = "getPool", abi = "getPool(address,address,uint24)")] - pub struct GetPoolCall( - pub ::ethers::core::types::Address, - pub ::ethers::core::types::Address, - pub u32, - ); - ///Container type for all input parameters for the `owner` function with signature `owner()` and selector `0x8da5cb5b` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - )] - #[ethcall(name = "owner", abi = "owner()")] - pub struct OwnerCall; - ///Container type for all input parameters for the `parameters` function with signature `parameters()` and selector `0x89035730` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - )] - #[ethcall(name = "parameters", abi = "parameters()")] - pub struct ParametersCall; - ///Container type for all input parameters for the `setOwner` function with signature `setOwner(address)` and selector `0x13af4035` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - )] - #[ethcall(name = "setOwner", abi = "setOwner(address)")] - pub struct SetOwnerCall { - pub owner: ::ethers::core::types::Address, - } - #[derive(Debug, Clone, PartialEq, Eq, ::ethers::contract::EthAbiType)] - pub enum UniswapV3FactoryCalls { - CreatePool(CreatePoolCall), - EnableFeeAmount(EnableFeeAmountCall), - FeeAmountTickSpacing(FeeAmountTickSpacingCall), - GetPool(GetPoolCall), - Owner(OwnerCall), - Parameters(ParametersCall), - SetOwner(SetOwnerCall), - } - impl ::ethers::core::abi::AbiDecode for UniswapV3FactoryCalls { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::std::result::Result { - if let Ok(decoded) = - ::decode(data.as_ref()) - { - return Ok(UniswapV3FactoryCalls::CreatePool(decoded)); - } - if let Ok(decoded) = - ::decode(data.as_ref()) - { - return Ok(UniswapV3FactoryCalls::EnableFeeAmount(decoded)); - } - if let Ok(decoded) = - ::decode(data.as_ref()) - { - return Ok(UniswapV3FactoryCalls::FeeAmountTickSpacing(decoded)); - } - if let Ok(decoded) = - ::decode(data.as_ref()) - { - return Ok(UniswapV3FactoryCalls::GetPool(decoded)); - } - if let Ok(decoded) = - ::decode(data.as_ref()) - { - return Ok(UniswapV3FactoryCalls::Owner(decoded)); - } - if let Ok(decoded) = - ::decode(data.as_ref()) - { - return Ok(UniswapV3FactoryCalls::Parameters(decoded)); - } - if let Ok(decoded) = - ::decode(data.as_ref()) - { - return Ok(UniswapV3FactoryCalls::SetOwner(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for UniswapV3FactoryCalls { - fn encode(self) -> Vec { - match self { - UniswapV3FactoryCalls::CreatePool(element) => element.encode(), - UniswapV3FactoryCalls::EnableFeeAmount(element) => element.encode(), - UniswapV3FactoryCalls::FeeAmountTickSpacing(element) => element.encode(), - UniswapV3FactoryCalls::GetPool(element) => element.encode(), - UniswapV3FactoryCalls::Owner(element) => element.encode(), - UniswapV3FactoryCalls::Parameters(element) => element.encode(), - UniswapV3FactoryCalls::SetOwner(element) => element.encode(), - } - } - } - impl ::std::fmt::Display for UniswapV3FactoryCalls { - fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result { - match self { - UniswapV3FactoryCalls::CreatePool(element) => element.fmt(f), - UniswapV3FactoryCalls::EnableFeeAmount(element) => element.fmt(f), - UniswapV3FactoryCalls::FeeAmountTickSpacing(element) => element.fmt(f), - UniswapV3FactoryCalls::GetPool(element) => element.fmt(f), - UniswapV3FactoryCalls::Owner(element) => element.fmt(f), - UniswapV3FactoryCalls::Parameters(element) => element.fmt(f), - UniswapV3FactoryCalls::SetOwner(element) => element.fmt(f), - } - } - } - impl ::std::convert::From for UniswapV3FactoryCalls { - fn from(var: CreatePoolCall) -> Self { - UniswapV3FactoryCalls::CreatePool(var) - } - } - impl ::std::convert::From for UniswapV3FactoryCalls { - fn from(var: EnableFeeAmountCall) -> Self { - UniswapV3FactoryCalls::EnableFeeAmount(var) - } - } - impl ::std::convert::From for UniswapV3FactoryCalls { - fn from(var: FeeAmountTickSpacingCall) -> Self { - UniswapV3FactoryCalls::FeeAmountTickSpacing(var) - } - } - impl ::std::convert::From for UniswapV3FactoryCalls { - fn from(var: GetPoolCall) -> Self { - UniswapV3FactoryCalls::GetPool(var) - } - } - impl ::std::convert::From for UniswapV3FactoryCalls { - fn from(var: OwnerCall) -> Self { - UniswapV3FactoryCalls::Owner(var) - } - } - impl ::std::convert::From for UniswapV3FactoryCalls { - fn from(var: ParametersCall) -> Self { - UniswapV3FactoryCalls::Parameters(var) - } - } - impl ::std::convert::From for UniswapV3FactoryCalls { - fn from(var: SetOwnerCall) -> Self { - UniswapV3FactoryCalls::SetOwner(var) - } - } - ///Container type for all return fields from the `createPool` function with signature `createPool(address,address,uint24)` and selector `0xa1671295` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - )] - pub struct CreatePoolReturn { - pub pool: ::ethers::core::types::Address, - } - ///Container type for all return fields from the `feeAmountTickSpacing` function with signature `feeAmountTickSpacing(uint24)` and selector `0x22afcccb` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - )] - pub struct FeeAmountTickSpacingReturn(pub i32); - ///Container type for all return fields from the `getPool` function with signature `getPool(address,address,uint24)` and selector `0x1698ee82` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - )] - pub struct GetPoolReturn(pub ::ethers::core::types::Address); - ///Container type for all return fields from the `owner` function with signature `owner()` and selector `0x8da5cb5b` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - )] - pub struct OwnerReturn(pub ::ethers::core::types::Address); - ///Container type for all return fields from the `parameters` function with signature `parameters()` and selector `0x89035730` - #[derive( - Clone, - Debug, - Eq, - PartialEq, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - )] - pub struct ParametersReturn { - pub factory: ::ethers::core::types::Address, - pub token_0: ::ethers::core::types::Address, - pub token_1: ::ethers::core::types::Address, - pub fee: u32, - pub tick_spacing: i32, - } -} diff --git a/crates/cli/src/main.rs b/crates/cli/src/main.rs index 398facb1..5b68733a 100644 --- a/crates/cli/src/main.rs +++ b/crates/cli/src/main.rs @@ -8,6 +8,7 @@ use simulate::{ environment::{recast_address, SimulationContract, SimulationManager}, price_simulation::PriceSimulation, }; +use bindings::{weth9}; mod config; #[derive(Parser)] @@ -49,8 +50,8 @@ async fn main() -> Result<()> { // Deploy the WETH contract. let weth = SimulationContract::new( - BaseContract::from(bindings::weth9::WETH9_ABI.clone()), - bindings::weth9::WRITER_BYTECODE + BaseContract::from(weth9::WETH9_ABI.clone()), + weth9::WETH9_BYTECODE .clone() .into_iter() .collect(), diff --git a/foundry.toml b/foundry.toml index 57d49368..38b81a6b 100644 --- a/foundry.toml +++ b/foundry.toml @@ -1,12 +1,11 @@ [profile.default] # all profiles inherit from this -# solc = '0.8.19' -src = 'lib/portfolio/contracts' +src = 'lib/' out = 'out/' # default test = 'test' # default libs = ['lib'] cache = false # !important! breaks echidna if cache = true. remappings = [ - 'forge-std/=lib/forge-std/src/', - 'solmate/=lib/solmate/src/', - 'solstat/=lib/solstat/src/', + '@forge-std/=lib/forge-std/src/', + '@solmate/=lib/solmate/src/', + '@solstat/=lib/solstat/src/', ] \ No newline at end of file From 4ef3bc6c9e0fa0cb9b567926ae9e6f2f59f71936 Mon Sep 17 00:00:00 2001 From: Colin Roberts Date: Thu, 23 Mar 2023 16:13:38 -0600 Subject: [PATCH 2/8] regenerated bindings, small edits to readme and main --- README.md | 5 +- crates/bindings/src/account_lib.rs | 62 + crates/bindings/src/arbiter_token.rs | 116 +- .../src/{std_style.rs => assembly_lib.rs} | 152 +- crates/bindings/src/bar_erc1155.rs | 918 - crates/bindings/src/bar_erc721.rs | 1049 - crates/bindings/src/echidna_erc20.rs | 7961 ++ crates/bindings/src/erc20.rs | 5282 +- crates/bindings/src/fee_on_transfer_token.rs | 8349 ++ ...ng_contract.rs => fixed_point_math_lib.rs} | 249 +- crates/bindings/src/fvm_lib.rs | 62 + crates/bindings/src/gaussian.rs | 479 + crates/bindings/src/i_portfolio.rs | 1877 + crates/bindings/src/i_portfolio_actions.rs | 324 + crates/bindings/src/i_portfolio_events.rs | 637 + crates/bindings/src/i_portfolio_getters.rs | 1077 + .../{ierc165.rs => i_portfolio_registry.rs} | 56 +- crates/bindings/src/ierc1155.rs | 636 - crates/bindings/src/ierc20.rs | 108 +- crates/bindings/src/ierc4626.rs | 1539 - crates/bindings/src/ierc721.rs | 708 - crates/bindings/src/ierc721_enumerable.rs | 872 - crates/bindings/src/ierc721_metadata.rs | 856 - crates/bindings/src/ierc721_token_receiver.rs | 113 - .../bindings/src/infinitely_liquid_market.rs | 120 +- crates/bindings/src/invariant.rs | 355 + crates/bindings/src/iweth.rs | 155 + crates/bindings/src/lib.rs | 40 +- crates/bindings/src/mock_erc20.rs | 8009 ++ crates/bindings/src/objective.rs | 2180 + crates/bindings/src/portfolio_lib.rs | 62 + crates/bindings/src/portfolio_like.rs | 162 + crates/bindings/src/portfolio_virtual.rs | 3152 + crates/bindings/src/rmm01_extended_lib.rs | 346 + crates/bindings/src/rmm01_lib.rs | 452 + crates/bindings/src/rmm01_portfolio.rs | 75797 ++++++++++++++++ crates/bindings/src/safe_cast_lib.rs | 342 + crates/bindings/src/safe_transfer_lib.rs | 342 + crates/bindings/src/shared_types.rs | 38 + .../src/{bar.rs => simple_registry.rs} | 1734 +- crates/bindings/src/std_invariant.rs | 4686 - crates/bindings/src/units.rs | 62 + crates/bindings/src/weth9.rs | 116 +- crates/bindings/src/writer.rs | 120 +- crates/cli/src/main.rs | 10 +- generate_bindings.sh | 17 + 46 files changed, 113873 insertions(+), 17911 deletions(-) create mode 100644 crates/bindings/src/account_lib.rs rename crates/bindings/src/{std_style.rs => assembly_lib.rs} (78%) delete mode 100644 crates/bindings/src/bar_erc1155.rs delete mode 100644 crates/bindings/src/bar_erc721.rs create mode 100644 crates/bindings/src/echidna_erc20.rs create mode 100644 crates/bindings/src/fee_on_transfer_token.rs rename crates/bindings/src/{reverting_contract.rs => fixed_point_math_lib.rs} (60%) create mode 100644 crates/bindings/src/fvm_lib.rs create mode 100644 crates/bindings/src/gaussian.rs create mode 100644 crates/bindings/src/i_portfolio.rs create mode 100644 crates/bindings/src/i_portfolio_actions.rs create mode 100644 crates/bindings/src/i_portfolio_events.rs create mode 100644 crates/bindings/src/i_portfolio_getters.rs rename crates/bindings/src/{ierc165.rs => i_portfolio_registry.rs} (52%) delete mode 100644 crates/bindings/src/ierc1155.rs delete mode 100644 crates/bindings/src/ierc4626.rs delete mode 100644 crates/bindings/src/ierc721.rs delete mode 100644 crates/bindings/src/ierc721_enumerable.rs delete mode 100644 crates/bindings/src/ierc721_metadata.rs delete mode 100644 crates/bindings/src/ierc721_token_receiver.rs create mode 100644 crates/bindings/src/invariant.rs create mode 100644 crates/bindings/src/iweth.rs create mode 100644 crates/bindings/src/mock_erc20.rs create mode 100644 crates/bindings/src/objective.rs create mode 100644 crates/bindings/src/portfolio_lib.rs create mode 100644 crates/bindings/src/portfolio_like.rs create mode 100644 crates/bindings/src/portfolio_virtual.rs create mode 100644 crates/bindings/src/rmm01_extended_lib.rs create mode 100644 crates/bindings/src/rmm01_lib.rs create mode 100644 crates/bindings/src/rmm01_portfolio.rs create mode 100644 crates/bindings/src/safe_cast_lib.rs create mode 100644 crates/bindings/src/safe_transfer_lib.rs create mode 100644 crates/bindings/src/shared_types.rs rename crates/bindings/src/{bar.rs => simple_registry.rs} (57%) delete mode 100644 crates/bindings/src/std_invariant.rs create mode 100644 crates/bindings/src/units.rs create mode 100755 generate_bindings.sh diff --git a/README.md b/README.md index 0e00212f..86bec338 100644 --- a/README.md +++ b/README.md @@ -58,9 +58,12 @@ This will generate and open the docs in your browser. From there, you can look a In the `lib/` folder you can add additional smart contracts or regenerate Rust bindings. To do so, run the following from the Arbiter root directory: ``` -fforge bind -b crates/bindings/ --crate-name bindings --overwrite +forge bind -C lib/arbmod/contracts -b crates/bindings/ --crate-name bindings --overwrite \ +&& forge bind -C lib/portfolio/contracts -b crates/bindings/ --crate-name bindings --overwrite ``` +You can of course add an additional directory of contracts in `lib/`. Just be sure to include it when you generate bindings! + ## Contributing See our [Contributing Guidelines](https://github.com/primitivefinance/arbiter/blob/main/.github/CONTRIBUTING.md) diff --git a/crates/bindings/src/account_lib.rs b/crates/bindings/src/account_lib.rs new file mode 100644 index 00000000..34c3e918 --- /dev/null +++ b/crates/bindings/src/account_lib.rs @@ -0,0 +1,62 @@ +pub use account_lib::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod account_lib { + #[rustfmt::skip] + const __ABI: &str = "[]"; + ///The parsed JSON ABI of the contract. + pub static ACCOUNTLIB_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| + ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); + pub struct AccountLib(::ethers::contract::Contract); + impl ::core::clone::Clone for AccountLib { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for AccountLib { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for AccountLib { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for AccountLib { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(stringify!(AccountLib)).field(&self.address()).finish() + } + } + impl AccountLib { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + ACCOUNTLIB_ABI.clone(), + client, + ), + ) + } + } + impl From<::ethers::contract::Contract> + for AccountLib { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } +} diff --git a/crates/bindings/src/arbiter_token.rs b/crates/bindings/src/arbiter_token.rs index dd976251..af39e808 100644 --- a/crates/bindings/src/arbiter_token.rs +++ b/crates/bindings/src/arbiter_token.rs @@ -3101,38 +3101,38 @@ pub mod arbiter_token { 34, 18, 32, - 85, - 80, - 215, - 26, - 179, - 119, - 121, - 19, - 132, - 71, - 232, - 203, - 243, + 168, 118, - 195, - 91, - 218, - 77, - 79, - 81, - 26, - 20, + 56, + 225, + 102, + 69, + 151, + 88, + 138, + 92, + 145, 175, - 132, - 134, - 90, - 127, - 78, - 196, - 226, 36, - 60, + 148, + 74, + 82, + 157, + 206, + 19, + 225, + 210, + 135, + 45, + 235, + 250, + 41, + 178, + 131, + 55, + 18, + 8, + 235, 100, 115, 111, @@ -5475,38 +5475,38 @@ pub mod arbiter_token { 34, 18, 32, - 85, - 80, - 215, - 26, - 179, - 119, - 121, - 19, - 132, - 71, - 232, - 203, - 243, + 168, 118, - 195, - 91, - 218, - 77, - 79, - 81, - 26, - 20, + 56, + 225, + 102, + 69, + 151, + 88, + 138, + 92, + 145, 175, - 132, - 134, - 90, - 127, - 78, - 196, - 226, 36, - 60, + 148, + 74, + 82, + 157, + 206, + 19, + 225, + 210, + 135, + 45, + 235, + 250, + 41, + 178, + 131, + 55, + 18, + 8, + 235, 100, 115, 111, diff --git a/crates/bindings/src/std_style.rs b/crates/bindings/src/assembly_lib.rs similarity index 78% rename from crates/bindings/src/std_style.rs rename to crates/bindings/src/assembly_lib.rs index f4245a82..a306f726 100644 --- a/crates/bindings/src/std_style.rs +++ b/crates/bindings/src/assembly_lib.rs @@ -1,4 +1,4 @@ -pub use std_style::*; +pub use assembly_lib::*; /// This module was auto-generated with ethers-rs Abigen. /// More information at: #[allow( @@ -9,11 +9,11 @@ pub use std_style::*; dead_code, non_camel_case_types, )] -pub mod std_style { +pub mod assembly_lib { #[rustfmt::skip] const __ABI: &str = "[]"; ///The parsed JSON ABI of the contract. - pub static STDSTYLE_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| + pub static ASSEMBLYLIB_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); #[rustfmt::skip] const __BYTECODE: &[u8] = &[ @@ -115,38 +115,38 @@ pub mod std_style { 34, 18, 32, - 13, - 55, - 40, - 122, - 235, - 181, - 91, - 222, - 160, - 49, + 143, 200, - 233, - 75, - 99, - 175, - 190, - 54, - 165, - 213, - 114, - 96, 46, - 148, - 142, - 123, - 207, - 196, - 126, - 14, - 205, + 223, + 198, 118, - 6, + 250, + 200, + 172, + 149, + 61, + 122, + 82, + 83, + 57, + 219, + 143, + 223, + 250, + 38, + 4, + 96, + 143, + 160, + 123, + 56, + 2, + 160, + 98, + 74, + 43, + 217, 100, 115, 111, @@ -155,12 +155,12 @@ pub mod std_style { 67, 0, 8, - 19, + 13, 0, 51, ]; ///The bytecode of the contract. - pub static STDSTYLE_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + pub static ASSEMBLYLIB_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( __BYTECODE, ); #[rustfmt::skip] @@ -208,38 +208,38 @@ pub mod std_style { 34, 18, 32, - 13, - 55, - 40, - 122, - 235, - 181, - 91, - 222, - 160, - 49, + 143, 200, - 233, - 75, - 99, - 175, - 190, - 54, - 165, - 213, - 114, - 96, 46, - 148, - 142, - 123, - 207, - 196, - 126, - 14, - 205, + 223, + 198, 118, - 6, + 250, + 200, + 172, + 149, + 61, + 122, + 82, + 83, + 57, + 219, + 143, + 223, + 250, + 38, + 4, + 96, + 143, + 160, + 123, + 56, + 2, + 160, + 98, + 74, + 43, + 217, 100, 115, 111, @@ -248,37 +248,37 @@ pub mod std_style { 67, 0, 8, - 19, + 13, 0, 51, ]; ///The deployed bytecode of the contract. - pub static STDSTYLE_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + pub static ASSEMBLYLIB_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( __DEPLOYED_BYTECODE, ); - pub struct StdStyle(::ethers::contract::Contract); - impl ::core::clone::Clone for StdStyle { + pub struct AssemblyLib(::ethers::contract::Contract); + impl ::core::clone::Clone for AssemblyLib { fn clone(&self) -> Self { Self(::core::clone::Clone::clone(&self.0)) } } - impl ::core::ops::Deref for StdStyle { + impl ::core::ops::Deref for AssemblyLib { type Target = ::ethers::contract::Contract; fn deref(&self) -> &Self::Target { &self.0 } } - impl ::core::ops::DerefMut for StdStyle { + impl ::core::ops::DerefMut for AssemblyLib { fn deref_mut(&mut self) -> &mut Self::Target { &mut self.0 } } - impl ::core::fmt::Debug for StdStyle { + impl ::core::fmt::Debug for AssemblyLib { fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(stringify!(StdStyle)).field(&self.address()).finish() + f.debug_tuple(stringify!(AssemblyLib)).field(&self.address()).finish() } } - impl StdStyle { + impl AssemblyLib { /// Creates a new contract instance with the specified `ethers` client at /// `address`. The contract derefs to a `ethers::Contract` object. pub fn new>( @@ -288,7 +288,7 @@ pub mod std_style { Self( ::ethers::contract::Contract::new( address.into(), - STDSTYLE_ABI.clone(), + ASSEMBLYLIB_ABI.clone(), client, ), ) @@ -324,8 +324,8 @@ pub mod std_style { ::ethers::contract::ContractError, > { let factory = ::ethers::contract::ContractFactory::new( - STDSTYLE_ABI.clone(), - STDSTYLE_BYTECODE.clone().into(), + ASSEMBLYLIB_ABI.clone(), + ASSEMBLYLIB_BYTECODE.clone().into(), client, ); let deployer = factory.deploy(constructor_args)?; @@ -334,7 +334,7 @@ pub mod std_style { } } impl From<::ethers::contract::Contract> - for StdStyle { + for AssemblyLib { fn from(contract: ::ethers::contract::Contract) -> Self { Self::new(contract.address(), contract.client()) } diff --git a/crates/bindings/src/bar_erc1155.rs b/crates/bindings/src/bar_erc1155.rs deleted file mode 100644 index 2e3bc052..00000000 --- a/crates/bindings/src/bar_erc1155.rs +++ /dev/null @@ -1,918 +0,0 @@ -pub use bar_erc1155::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types, -)] -pub mod bar_erc1155 { - #[rustfmt::skip] - const __ABI: &str = "[{\"inputs\":[],\"stateMutability\":\"payable\",\"type\":\"constructor\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]}]"; - ///The parsed JSON ABI of the contract. - pub static BARERC1155_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| - ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); - #[rustfmt::skip] - const __BYTECODE: &[u8] = &[ - 96, - 128, - 96, - 64, - 144, - 129, - 82, - 105, - 2, - 30, - 25, - 224, - 201, - 186, - 178, - 64, - 0, - 0, - 127, - 166, - 238, - 247, - 227, - 90, - 190, - 112, - 38, - 114, - 150, - 65, - 20, - 127, - 121, - 21, - 87, - 60, - 126, - 151, - 180, - 126, - 250, - 84, - 111, - 95, - 110, - 50, - 48, - 38, - 59, - 203, - 73, - 129, - 144, - 85, - 48, - 96, - 0, - 144, - 129, - 82, - 127, - 173, - 50, - 40, - 182, - 118, - 247, - 211, - 205, - 66, - 132, - 165, - 68, - 63, - 23, - 241, - 150, - 43, - 54, - 228, - 145, - 179, - 10, - 64, - 178, - 64, - 88, - 73, - 229, - 151, - 186, - 95, - 181, - 96, - 32, - 82, - 145, - 144, - 145, - 32, - 85, - 97, - 1, - 25, - 128, - 97, - 0, - 115, - 96, - 0, - 57, - 96, - 0, - 243, - 254, - 96, - 128, - 96, - 64, - 82, - 52, - 128, - 21, - 96, - 15, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 96, - 4, - 54, - 16, - 96, - 49, - 87, - 96, - 0, - 53, - 96, - 224, - 28, - 128, - 98, - 253, - 213, - 142, - 20, - 96, - 54, - 87, - 128, - 99, - 189, - 133, - 176, - 57, - 20, - 96, - 120, - 87, - 91, - 96, - 0, - 128, - 253, - 91, - 96, - 102, - 96, - 65, - 54, - 96, - 4, - 96, - 149, - 86, - 91, - 96, - 0, - 144, - 129, - 82, - 96, - 32, - 129, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 148, - 144, - 148, - 22, - 131, - 82, - 146, - 144, - 82, - 32, - 84, - 144, - 86, - 91, - 96, - 64, - 81, - 144, - 129, - 82, - 96, - 32, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 243, - 91, - 96, - 102, - 96, - 131, - 54, - 96, - 4, - 96, - 203, - 86, - 91, - 96, - 0, - 144, - 129, - 82, - 96, - 1, - 96, - 32, - 82, - 96, - 64, - 144, - 32, - 84, - 144, - 86, - 91, - 96, - 0, - 128, - 96, - 64, - 131, - 133, - 3, - 18, - 21, - 96, - 167, - 87, - 96, - 0, - 128, - 253, - 91, - 130, - 53, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 129, - 22, - 129, - 20, - 96, - 189, - 87, - 96, - 0, - 128, - 253, - 91, - 148, - 96, - 32, - 147, - 144, - 147, - 1, - 53, - 147, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 96, - 32, - 130, - 132, - 3, - 18, - 21, - 96, - 220, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 53, - 145, - 144, - 80, - 86, - 254, - 162, - 100, - 105, - 112, - 102, - 115, - 88, - 34, - 18, - 32, - 86, - 252, - 185, - 243, - 219, - 17, - 221, - 127, - 2, - 57, - 142, - 186, - 233, - 143, - 99, - 251, - 46, - 37, - 64, - 238, - 184, - 17, - 138, - 72, - 139, - 93, - 137, - 121, - 8, - 252, - 116, - 171, - 100, - 115, - 111, - 108, - 99, - 67, - 0, - 8, - 19, - 0, - 51, - ]; - ///The bytecode of the contract. - pub static BARERC1155_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( - __BYTECODE, - ); - #[rustfmt::skip] - const __DEPLOYED_BYTECODE: &[u8] = &[ - 96, - 128, - 96, - 64, - 82, - 52, - 128, - 21, - 96, - 15, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 96, - 4, - 54, - 16, - 96, - 49, - 87, - 96, - 0, - 53, - 96, - 224, - 28, - 128, - 98, - 253, - 213, - 142, - 20, - 96, - 54, - 87, - 128, - 99, - 189, - 133, - 176, - 57, - 20, - 96, - 120, - 87, - 91, - 96, - 0, - 128, - 253, - 91, - 96, - 102, - 96, - 65, - 54, - 96, - 4, - 96, - 149, - 86, - 91, - 96, - 0, - 144, - 129, - 82, - 96, - 32, - 129, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 148, - 144, - 148, - 22, - 131, - 82, - 146, - 144, - 82, - 32, - 84, - 144, - 86, - 91, - 96, - 64, - 81, - 144, - 129, - 82, - 96, - 32, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 243, - 91, - 96, - 102, - 96, - 131, - 54, - 96, - 4, - 96, - 203, - 86, - 91, - 96, - 0, - 144, - 129, - 82, - 96, - 1, - 96, - 32, - 82, - 96, - 64, - 144, - 32, - 84, - 144, - 86, - 91, - 96, - 0, - 128, - 96, - 64, - 131, - 133, - 3, - 18, - 21, - 96, - 167, - 87, - 96, - 0, - 128, - 253, - 91, - 130, - 53, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 129, - 22, - 129, - 20, - 96, - 189, - 87, - 96, - 0, - 128, - 253, - 91, - 148, - 96, - 32, - 147, - 144, - 147, - 1, - 53, - 147, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 96, - 32, - 130, - 132, - 3, - 18, - 21, - 96, - 220, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 53, - 145, - 144, - 80, - 86, - 254, - 162, - 100, - 105, - 112, - 102, - 115, - 88, - 34, - 18, - 32, - 86, - 252, - 185, - 243, - 219, - 17, - 221, - 127, - 2, - 57, - 142, - 186, - 233, - 143, - 99, - 251, - 46, - 37, - 64, - 238, - 184, - 17, - 138, - 72, - 139, - 93, - 137, - 121, - 8, - 252, - 116, - 171, - 100, - 115, - 111, - 108, - 99, - 67, - 0, - 8, - 19, - 0, - 51, - ]; - ///The deployed bytecode of the contract. - pub static BARERC1155_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( - __DEPLOYED_BYTECODE, - ); - pub struct BarERC1155(::ethers::contract::Contract); - impl ::core::clone::Clone for BarERC1155 { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for BarERC1155 { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for BarERC1155 { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for BarERC1155 { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(stringify!(BarERC1155)).field(&self.address()).finish() - } - } - impl BarERC1155 { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self( - ::ethers::contract::Contract::new( - address.into(), - BARERC1155_ABI.clone(), - client, - ), - ) - } - /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. - /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction - /// - /// Notes: - /// - If there are no constructor arguments, you should pass `()` as the argument. - /// - The default poll duration is 7 seconds. - /// - The default number of confirmations is 1 block. - /// - /// - /// # Example - /// - /// Generate contract bindings with `abigen!` and deploy a new contract instance. - /// - /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. - /// - /// ```ignore - /// # async fn deploy(client: ::std::sync::Arc) { - /// abigen!(Greeter, "../greeter.json"); - /// - /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); - /// let msg = greeter_contract.greet().call().await.unwrap(); - /// # } - /// ``` - pub fn deploy( - client: ::std::sync::Arc, - constructor_args: T, - ) -> ::core::result::Result< - ::ethers::contract::builders::ContractDeployer, - ::ethers::contract::ContractError, - > { - let factory = ::ethers::contract::ContractFactory::new( - BARERC1155_ABI.clone(), - BARERC1155_BYTECODE.clone().into(), - client, - ); - let deployer = factory.deploy(constructor_args)?; - let deployer = ::ethers::contract::ContractDeployer::new(deployer); - Ok(deployer) - } - ///Calls the contract's `balanceOf` (0x00fdd58e) function - pub fn balance_of( - &self, - account: ::ethers::core::types::Address, - id: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([0, 253, 213, 142], (account, id)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `totalSupply` (0xbd85b039) function - pub fn total_supply( - &self, - id: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([189, 133, 176, 57], id) - .expect("method not found (this should never happen)") - } - } - impl From<::ethers::contract::Contract> - for BarERC1155 { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - ///Container type for all input parameters for the `balanceOf` function with signature `balanceOf(address,uint256)` and selector `0x00fdd58e` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "balanceOf", abi = "balanceOf(address,uint256)")] - pub struct BalanceOfCall { - pub account: ::ethers::core::types::Address, - pub id: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `totalSupply` function with signature `totalSupply(uint256)` and selector `0xbd85b039` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "totalSupply", abi = "totalSupply(uint256)")] - pub struct TotalSupplyCall { - pub id: ::ethers::core::types::U256, - } - ///Container type for all of the contract's call - #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] - pub enum BarERC1155Calls { - BalanceOf(BalanceOfCall), - TotalSupply(TotalSupplyCall), - } - impl ::ethers::core::abi::AbiDecode for BarERC1155Calls { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::BalanceOf(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::TotalSupply(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for BarERC1155Calls { - fn encode(self) -> Vec { - match self { - Self::BalanceOf(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::TotalSupply(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - } - } - } - impl ::core::fmt::Display for BarERC1155Calls { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::BalanceOf(element) => ::core::fmt::Display::fmt(element, f), - Self::TotalSupply(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for BarERC1155Calls { - fn from(value: BalanceOfCall) -> Self { - Self::BalanceOf(value) - } - } - impl ::core::convert::From for BarERC1155Calls { - fn from(value: TotalSupplyCall) -> Self { - Self::TotalSupply(value) - } - } - ///Container type for all return fields from the `balanceOf` function with signature `balanceOf(address,uint256)` and selector `0x00fdd58e` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct BalanceOfReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `totalSupply` function with signature `totalSupply(uint256)` and selector `0xbd85b039` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct TotalSupplyReturn(pub ::ethers::core::types::U256); -} diff --git a/crates/bindings/src/bar_erc721.rs b/crates/bindings/src/bar_erc721.rs deleted file mode 100644 index a4349765..00000000 --- a/crates/bindings/src/bar_erc721.rs +++ /dev/null @@ -1,1049 +0,0 @@ -pub use bar_erc721::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types, -)] -pub mod bar_erc721 { - #[rustfmt::skip] - const __ABI: &str = "[{\"inputs\":[],\"stateMutability\":\"payable\",\"type\":\"constructor\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]}]"; - ///The parsed JSON ABI of the contract. - pub static BARERC721_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| - ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); - #[rustfmt::skip] - const __BYTECODE: &[u8] = &[ - 96, - 128, - 96, - 64, - 144, - 129, - 82, - 127, - 173, - 165, - 1, - 49, - 34, - 211, - 149, - 186, - 60, - 84, - 119, - 34, - 131, - 251, - 6, - 155, - 16, - 66, - 96, - 86, - 239, - 140, - 165, - 71, - 80, - 203, - 155, - 181, - 82, - 165, - 158, - 125, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 25, - 144, - 129, - 22, - 96, - 1, - 144, - 129, - 23, - 144, - 146, - 85, - 127, - 204, - 105, - 136, - 95, - 218, - 107, - 204, - 26, - 74, - 206, - 5, - 139, - 74, - 98, - 191, - 94, - 23, - 158, - 167, - 143, - 213, - 138, - 28, - 205, - 113, - 194, - 44, - 201, - 182, - 136, - 121, - 47, - 130, - 144, - 85, - 127, - 171, - 187, - 92, - 170, - 125, - 218, - 133, - 14, - 96, - 147, - 45, - 224, - 147, - 78, - 177, - 249, - 208, - 245, - 150, - 149, - 5, - 15, - 118, - 29, - 198, - 78, - 68, - 62, - 80, - 48, - 165, - 105, - 128, - 84, - 130, - 22, - 48, - 144, - 129, - 23, - 144, - 145, - 85, - 127, - 16, - 30, - 54, - 135, - 118, - 88, - 46, - 87, - 171, - 61, - 17, - 111, - 254, - 37, - 23, - 192, - 165, - 133, - 205, - 91, - 35, - 23, - 75, - 1, - 226, - 117, - 194, - 216, - 50, - 156, - 61, - 131, - 128, - 84, - 144, - 146, - 22, - 129, - 23, - 144, - 145, - 85, - 96, - 0, - 144, - 129, - 82, - 96, - 32, - 145, - 144, - 145, - 82, - 32, - 96, - 2, - 144, - 85, - 97, - 1, - 41, - 128, - 97, - 0, - 215, - 96, - 0, - 57, - 96, - 0, - 243, - 254, - 96, - 128, - 96, - 64, - 82, - 52, - 128, - 21, - 96, - 15, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 96, - 4, - 54, - 16, - 96, - 50, - 87, - 96, - 0, - 53, - 96, - 224, - 28, - 128, - 99, - 99, - 82, - 33, - 30, - 20, - 96, - 55, - 87, - 128, - 99, - 112, - 160, - 130, - 49, - 20, - 96, - 122, - 87, - 91, - 96, - 0, - 128, - 253, - 91, - 96, - 93, - 96, - 66, - 54, - 96, - 4, - 96, - 173, - 86, - 91, - 96, - 0, - 144, - 129, - 82, - 96, - 32, - 129, - 144, - 82, - 96, - 64, - 144, - 32, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 144, - 86, - 91, - 96, - 64, - 81, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 144, - 145, - 22, - 129, - 82, - 96, - 32, - 1, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 243, - 91, - 96, - 160, - 96, - 133, - 54, - 96, - 4, - 96, - 197, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 1, - 96, - 32, - 82, - 96, - 64, - 144, - 32, - 84, - 144, - 86, - 91, - 96, - 64, - 81, - 144, - 129, - 82, - 96, - 32, - 1, - 96, - 113, - 86, - 91, - 96, - 0, - 96, - 32, - 130, - 132, - 3, - 18, - 21, - 96, - 190, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 53, - 145, - 144, - 80, - 86, - 91, - 96, - 0, - 96, - 32, - 130, - 132, - 3, - 18, - 21, - 96, - 214, - 87, - 96, - 0, - 128, - 253, - 91, - 129, - 53, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 129, - 22, - 129, - 20, - 96, - 236, - 87, - 96, - 0, - 128, - 253, - 91, - 147, - 146, - 80, - 80, - 80, - 86, - 254, - 162, - 100, - 105, - 112, - 102, - 115, - 88, - 34, - 18, - 32, - 82, - 164, - 254, - 166, - 34, - 152, - 17, - 227, - 136, - 39, - 207, - 30, - 46, - 229, - 84, - 244, - 235, - 182, - 236, - 3, - 177, - 78, - 246, - 58, - 188, - 180, - 171, - 197, - 185, - 99, - 219, - 4, - 100, - 115, - 111, - 108, - 99, - 67, - 0, - 8, - 19, - 0, - 51, - ]; - ///The bytecode of the contract. - pub static BARERC721_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( - __BYTECODE, - ); - #[rustfmt::skip] - const __DEPLOYED_BYTECODE: &[u8] = &[ - 96, - 128, - 96, - 64, - 82, - 52, - 128, - 21, - 96, - 15, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 96, - 4, - 54, - 16, - 96, - 50, - 87, - 96, - 0, - 53, - 96, - 224, - 28, - 128, - 99, - 99, - 82, - 33, - 30, - 20, - 96, - 55, - 87, - 128, - 99, - 112, - 160, - 130, - 49, - 20, - 96, - 122, - 87, - 91, - 96, - 0, - 128, - 253, - 91, - 96, - 93, - 96, - 66, - 54, - 96, - 4, - 96, - 173, - 86, - 91, - 96, - 0, - 144, - 129, - 82, - 96, - 32, - 129, - 144, - 82, - 96, - 64, - 144, - 32, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 144, - 86, - 91, - 96, - 64, - 81, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 144, - 145, - 22, - 129, - 82, - 96, - 32, - 1, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 243, - 91, - 96, - 160, - 96, - 133, - 54, - 96, - 4, - 96, - 197, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 1, - 96, - 32, - 82, - 96, - 64, - 144, - 32, - 84, - 144, - 86, - 91, - 96, - 64, - 81, - 144, - 129, - 82, - 96, - 32, - 1, - 96, - 113, - 86, - 91, - 96, - 0, - 96, - 32, - 130, - 132, - 3, - 18, - 21, - 96, - 190, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 53, - 145, - 144, - 80, - 86, - 91, - 96, - 0, - 96, - 32, - 130, - 132, - 3, - 18, - 21, - 96, - 214, - 87, - 96, - 0, - 128, - 253, - 91, - 129, - 53, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 129, - 22, - 129, - 20, - 96, - 236, - 87, - 96, - 0, - 128, - 253, - 91, - 147, - 146, - 80, - 80, - 80, - 86, - 254, - 162, - 100, - 105, - 112, - 102, - 115, - 88, - 34, - 18, - 32, - 82, - 164, - 254, - 166, - 34, - 152, - 17, - 227, - 136, - 39, - 207, - 30, - 46, - 229, - 84, - 244, - 235, - 182, - 236, - 3, - 177, - 78, - 246, - 58, - 188, - 180, - 171, - 197, - 185, - 99, - 219, - 4, - 100, - 115, - 111, - 108, - 99, - 67, - 0, - 8, - 19, - 0, - 51, - ]; - ///The deployed bytecode of the contract. - pub static BARERC721_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( - __DEPLOYED_BYTECODE, - ); - pub struct BarERC721(::ethers::contract::Contract); - impl ::core::clone::Clone for BarERC721 { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for BarERC721 { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for BarERC721 { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for BarERC721 { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(stringify!(BarERC721)).field(&self.address()).finish() - } - } - impl BarERC721 { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self( - ::ethers::contract::Contract::new( - address.into(), - BARERC721_ABI.clone(), - client, - ), - ) - } - /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. - /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction - /// - /// Notes: - /// - If there are no constructor arguments, you should pass `()` as the argument. - /// - The default poll duration is 7 seconds. - /// - The default number of confirmations is 1 block. - /// - /// - /// # Example - /// - /// Generate contract bindings with `abigen!` and deploy a new contract instance. - /// - /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. - /// - /// ```ignore - /// # async fn deploy(client: ::std::sync::Arc) { - /// abigen!(Greeter, "../greeter.json"); - /// - /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); - /// let msg = greeter_contract.greet().call().await.unwrap(); - /// # } - /// ``` - pub fn deploy( - client: ::std::sync::Arc, - constructor_args: T, - ) -> ::core::result::Result< - ::ethers::contract::builders::ContractDeployer, - ::ethers::contract::ContractError, - > { - let factory = ::ethers::contract::ContractFactory::new( - BARERC721_ABI.clone(), - BARERC721_BYTECODE.clone().into(), - client, - ); - let deployer = factory.deploy(constructor_args)?; - let deployer = ::ethers::contract::ContractDeployer::new(deployer); - Ok(deployer) - } - ///Calls the contract's `balanceOf` (0x70a08231) function - pub fn balance_of( - &self, - owner: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([112, 160, 130, 49], owner) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `ownerOf` (0x6352211e) function - pub fn owner_of( - &self, - token_id: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::ethers::core::types::Address, - > { - self.0 - .method_hash([99, 82, 33, 30], token_id) - .expect("method not found (this should never happen)") - } - } - impl From<::ethers::contract::Contract> - for BarERC721 { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - ///Container type for all input parameters for the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "balanceOf", abi = "balanceOf(address)")] - pub struct BalanceOfCall { - pub owner: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `ownerOf` function with signature `ownerOf(uint256)` and selector `0x6352211e` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "ownerOf", abi = "ownerOf(uint256)")] - pub struct OwnerOfCall { - pub token_id: ::ethers::core::types::U256, - } - ///Container type for all of the contract's call - #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] - pub enum BarERC721Calls { - BalanceOf(BalanceOfCall), - OwnerOf(OwnerOfCall), - } - impl ::ethers::core::abi::AbiDecode for BarERC721Calls { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::BalanceOf(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::OwnerOf(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for BarERC721Calls { - fn encode(self) -> Vec { - match self { - Self::BalanceOf(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::OwnerOf(element) => ::ethers::core::abi::AbiEncode::encode(element), - } - } - } - impl ::core::fmt::Display for BarERC721Calls { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::BalanceOf(element) => ::core::fmt::Display::fmt(element, f), - Self::OwnerOf(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for BarERC721Calls { - fn from(value: BalanceOfCall) -> Self { - Self::BalanceOf(value) - } - } - impl ::core::convert::From for BarERC721Calls { - fn from(value: OwnerOfCall) -> Self { - Self::OwnerOf(value) - } - } - ///Container type for all return fields from the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct BalanceOfReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `ownerOf` function with signature `ownerOf(uint256)` and selector `0x6352211e` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct OwnerOfReturn(pub ::ethers::core::types::Address); -} diff --git a/crates/bindings/src/echidna_erc20.rs b/crates/bindings/src/echidna_erc20.rs new file mode 100644 index 00000000..cb41bffd --- /dev/null +++ b/crates/bindings/src/echidna_erc20.rs @@ -0,0 +1,7961 @@ +pub use echidna_erc20::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod echidna_erc20 { + #[rustfmt::skip] + const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\",\"components\":[]},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimals_\",\"type\":\"uint8\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"_Portfolio\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Approval\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Transfer\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"Portfolio\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"burn\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"mint\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"decimals_\",\"type\":\"uint8\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"setDecimals\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]}]"; + ///The parsed JSON ABI of the contract. + pub static ECHIDNAERC20_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| + ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); + #[rustfmt::skip] + const __BYTECODE: &[u8] = &[ + 96, + 128, + 96, + 64, + 82, + 52, + 128, + 21, + 98, + 0, + 0, + 17, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 96, + 64, + 81, + 98, + 0, + 15, + 43, + 56, + 3, + 128, + 98, + 0, + 15, + 43, + 131, + 57, + 129, + 1, + 96, + 64, + 129, + 144, + 82, + 98, + 0, + 0, + 52, + 145, + 98, + 0, + 2, + 7, + 86, + 91, + 131, + 81, + 98, + 0, + 0, + 73, + 144, + 96, + 3, + 144, + 96, + 32, + 135, + 1, + 144, + 98, + 0, + 0, + 148, + 86, + 91, + 80, + 130, + 81, + 98, + 0, + 0, + 95, + 144, + 96, + 4, + 144, + 96, + 32, + 134, + 1, + 144, + 98, + 0, + 0, + 148, + 86, + 91, + 80, + 96, + 5, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 144, + 146, + 22, + 97, + 1, + 0, + 2, + 96, + 1, + 96, + 1, + 96, + 168, + 27, + 3, + 25, + 144, + 146, + 22, + 96, + 255, + 144, + 147, + 22, + 146, + 144, + 146, + 23, + 23, + 144, + 85, + 80, + 98, + 0, + 2, + 231, + 144, + 80, + 86, + 91, + 130, + 128, + 84, + 98, + 0, + 0, + 162, + 144, + 98, + 0, + 2, + 171, + 86, + 91, + 144, + 96, + 0, + 82, + 96, + 32, + 96, + 0, + 32, + 144, + 96, + 31, + 1, + 96, + 32, + 144, + 4, + 129, + 1, + 146, + 130, + 98, + 0, + 0, + 198, + 87, + 96, + 0, + 133, + 85, + 98, + 0, + 1, + 17, + 86, + 91, + 130, + 96, + 31, + 16, + 98, + 0, + 0, + 225, + 87, + 128, + 81, + 96, + 255, + 25, + 22, + 131, + 128, + 1, + 23, + 133, + 85, + 98, + 0, + 1, + 17, + 86, + 91, + 130, + 128, + 1, + 96, + 1, + 1, + 133, + 85, + 130, + 21, + 98, + 0, + 1, + 17, + 87, + 145, + 130, + 1, + 91, + 130, + 129, + 17, + 21, + 98, + 0, + 1, + 17, + 87, + 130, + 81, + 130, + 85, + 145, + 96, + 32, + 1, + 145, + 144, + 96, + 1, + 1, + 144, + 98, + 0, + 0, + 244, + 86, + 91, + 80, + 98, + 0, + 1, + 31, + 146, + 145, + 80, + 98, + 0, + 1, + 35, + 86, + 91, + 80, + 144, + 86, + 91, + 91, + 128, + 130, + 17, + 21, + 98, + 0, + 1, + 31, + 87, + 96, + 0, + 129, + 85, + 96, + 1, + 1, + 98, + 0, + 1, + 36, + 86, + 91, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 65, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 96, + 0, + 130, + 96, + 31, + 131, + 1, + 18, + 98, + 0, + 1, + 98, + 87, + 96, + 0, + 128, + 253, + 91, + 129, + 81, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 128, + 130, + 17, + 21, + 98, + 0, + 1, + 127, + 87, + 98, + 0, + 1, + 127, + 98, + 0, + 1, + 58, + 86, + 91, + 96, + 64, + 81, + 96, + 31, + 131, + 1, + 96, + 31, + 25, + 144, + 129, + 22, + 96, + 63, + 1, + 22, + 129, + 1, + 144, + 130, + 130, + 17, + 129, + 131, + 16, + 23, + 21, + 98, + 0, + 1, + 170, + 87, + 98, + 0, + 1, + 170, + 98, + 0, + 1, + 58, + 86, + 91, + 129, + 96, + 64, + 82, + 131, + 129, + 82, + 96, + 32, + 146, + 80, + 134, + 131, + 133, + 136, + 1, + 1, + 17, + 21, + 98, + 0, + 1, + 199, + 87, + 96, + 0, + 128, + 253, + 91, + 96, + 0, + 145, + 80, + 91, + 131, + 130, + 16, + 21, + 98, + 0, + 1, + 235, + 87, + 133, + 130, + 1, + 131, + 1, + 81, + 129, + 131, + 1, + 132, + 1, + 82, + 144, + 130, + 1, + 144, + 98, + 0, + 1, + 204, + 86, + 91, + 131, + 130, + 17, + 21, + 98, + 0, + 1, + 253, + 87, + 96, + 0, + 131, + 133, + 131, + 1, + 1, + 82, + 91, + 150, + 149, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 128, + 96, + 128, + 133, + 135, + 3, + 18, + 21, + 98, + 0, + 2, + 30, + 87, + 96, + 0, + 128, + 253, + 91, + 132, + 81, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 128, + 130, + 17, + 21, + 98, + 0, + 2, + 54, + 87, + 96, + 0, + 128, + 253, + 91, + 98, + 0, + 2, + 68, + 136, + 131, + 137, + 1, + 98, + 0, + 1, + 80, + 86, + 91, + 149, + 80, + 96, + 32, + 135, + 1, + 81, + 145, + 80, + 128, + 130, + 17, + 21, + 98, + 0, + 2, + 91, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 98, + 0, + 2, + 106, + 135, + 130, + 136, + 1, + 98, + 0, + 1, + 80, + 86, + 91, + 147, + 80, + 80, + 96, + 64, + 133, + 1, + 81, + 96, + 255, + 129, + 22, + 129, + 20, + 98, + 0, + 2, + 130, + 87, + 96, + 0, + 128, + 253, + 91, + 96, + 96, + 134, + 1, + 81, + 144, + 146, + 80, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 129, + 22, + 129, + 20, + 98, + 0, + 2, + 160, + 87, + 96, + 0, + 128, + 253, + 91, + 147, + 150, + 146, + 149, + 80, + 144, + 147, + 80, + 80, + 86, + 91, + 96, + 1, + 129, + 129, + 28, + 144, + 130, + 22, + 128, + 98, + 0, + 2, + 192, + 87, + 96, + 127, + 130, + 22, + 145, + 80, + 91, + 96, + 32, + 130, + 16, + 129, + 3, + 98, + 0, + 2, + 225, + 87, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 34, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 80, + 145, + 144, + 80, + 86, + 91, + 97, + 12, + 52, + 128, + 98, + 0, + 2, + 247, + 96, + 0, + 57, + 96, + 0, + 243, + 254, + 96, + 128, + 96, + 64, + 82, + 52, + 128, + 21, + 97, + 0, + 16, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 96, + 4, + 54, + 16, + 97, + 0, + 245, + 87, + 96, + 0, + 53, + 96, + 224, + 28, + 128, + 99, + 80, + 211, + 244, + 124, + 17, + 97, + 0, + 151, + 87, + 128, + 99, + 157, + 194, + 159, + 172, + 17, + 97, + 0, + 102, + 87, + 128, + 99, + 157, + 194, + 159, + 172, + 20, + 97, + 2, + 44, + 87, + 128, + 99, + 164, + 87, + 194, + 215, + 20, + 97, + 2, + 63, + 87, + 128, + 99, + 169, + 5, + 156, + 187, + 20, + 97, + 2, + 82, + 87, + 128, + 99, + 221, + 98, + 237, + 62, + 20, + 97, + 2, + 101, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 80, + 211, + 244, + 124, + 20, + 97, + 1, + 167, + 87, + 128, + 99, + 112, + 160, + 130, + 49, + 20, + 97, + 1, + 215, + 87, + 128, + 99, + 122, + 19, + 149, + 170, + 20, + 97, + 2, + 0, + 87, + 128, + 99, + 149, + 216, + 155, + 65, + 20, + 97, + 2, + 36, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 35, + 184, + 114, + 221, + 17, + 97, + 0, + 211, + 87, + 128, + 99, + 35, + 184, + 114, + 221, + 20, + 97, + 1, + 77, + 87, + 128, + 99, + 49, + 60, + 229, + 103, + 20, + 97, + 1, + 96, + 87, + 128, + 99, + 57, + 80, + 147, + 81, + 20, + 97, + 1, + 127, + 87, + 128, + 99, + 64, + 193, + 15, + 25, + 20, + 97, + 1, + 146, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 6, + 253, + 222, + 3, + 20, + 97, + 0, + 250, + 87, + 128, + 99, + 9, + 94, + 167, + 179, + 20, + 97, + 1, + 24, + 87, + 128, + 99, + 24, + 22, + 13, + 221, + 20, + 97, + 1, + 59, + 87, + 91, + 96, + 0, + 128, + 253, + 91, + 97, + 1, + 2, + 97, + 2, + 158, + 86, + 91, + 96, + 64, + 81, + 97, + 1, + 15, + 145, + 144, + 97, + 10, + 48, + 86, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 243, + 91, + 97, + 1, + 43, + 97, + 1, + 38, + 54, + 96, + 4, + 97, + 10, + 161, + 86, + 91, + 97, + 3, + 44, + 86, + 91, + 96, + 64, + 81, + 144, + 21, + 21, + 129, + 82, + 96, + 32, + 1, + 97, + 1, + 15, + 86, + 91, + 96, + 2, + 84, + 91, + 96, + 64, + 81, + 144, + 129, + 82, + 96, + 32, + 1, + 97, + 1, + 15, + 86, + 91, + 97, + 1, + 43, + 97, + 1, + 91, + 54, + 96, + 4, + 97, + 10, + 203, + 86, + 91, + 97, + 3, + 66, + 86, + 91, + 96, + 5, + 84, + 97, + 1, + 109, + 144, + 96, + 255, + 22, + 129, + 86, + 91, + 96, + 64, + 81, + 96, + 255, + 144, + 145, + 22, + 129, + 82, + 96, + 32, + 1, + 97, + 1, + 15, + 86, + 91, + 97, + 1, + 43, + 97, + 1, + 141, + 54, + 96, + 4, + 97, + 10, + 161, + 86, + 91, + 97, + 3, + 241, + 86, + 91, + 97, + 1, + 165, + 97, + 1, + 160, + 54, + 96, + 4, + 97, + 10, + 161, + 86, + 91, + 97, + 4, + 45, + 86, + 91, + 0, + 91, + 96, + 5, + 84, + 97, + 1, + 191, + 144, + 97, + 1, + 0, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 86, + 91, + 96, + 64, + 81, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 144, + 145, + 22, + 129, + 82, + 96, + 32, + 1, + 97, + 1, + 15, + 86, + 91, + 97, + 1, + 63, + 97, + 1, + 229, + 54, + 96, + 4, + 97, + 11, + 7, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 32, + 129, + 144, + 82, + 96, + 64, + 144, + 32, + 84, + 144, + 86, + 91, + 97, + 1, + 165, + 97, + 2, + 14, + 54, + 96, + 4, + 97, + 11, + 41, + 86, + 91, + 96, + 5, + 128, + 84, + 96, + 255, + 25, + 22, + 96, + 255, + 146, + 144, + 146, + 22, + 145, + 144, + 145, + 23, + 144, + 85, + 86, + 91, + 97, + 1, + 2, + 97, + 4, + 90, + 86, + 91, + 97, + 1, + 165, + 97, + 2, + 58, + 54, + 96, + 4, + 97, + 10, + 161, + 86, + 91, + 97, + 4, + 103, + 86, + 91, + 97, + 1, + 43, + 97, + 2, + 77, + 54, + 96, + 4, + 97, + 10, + 161, + 86, + 91, + 97, + 4, + 113, + 86, + 91, + 97, + 1, + 43, + 97, + 2, + 96, + 54, + 96, + 4, + 97, + 10, + 161, + 86, + 91, + 97, + 5, + 10, + 86, + 91, + 97, + 1, + 63, + 97, + 2, + 115, + 54, + 96, + 4, + 97, + 11, + 76, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 145, + 130, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 1, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 147, + 144, + 148, + 22, + 130, + 82, + 145, + 144, + 145, + 82, + 32, + 84, + 144, + 86, + 91, + 96, + 3, + 128, + 84, + 97, + 2, + 171, + 144, + 97, + 11, + 127, + 86, + 91, + 128, + 96, + 31, + 1, + 96, + 32, + 128, + 145, + 4, + 2, + 96, + 32, + 1, + 96, + 64, + 81, + 144, + 129, + 1, + 96, + 64, + 82, + 128, + 146, + 145, + 144, + 129, + 129, + 82, + 96, + 32, + 1, + 130, + 128, + 84, + 97, + 2, + 215, + 144, + 97, + 11, + 127, + 86, + 91, + 128, + 21, + 97, + 3, + 36, + 87, + 128, + 96, + 31, + 16, + 97, + 2, + 249, + 87, + 97, + 1, + 0, + 128, + 131, + 84, + 4, + 2, + 131, + 82, + 145, + 96, + 32, + 1, + 145, + 97, + 3, + 36, + 86, + 91, + 130, + 1, + 145, + 144, + 96, + 0, + 82, + 96, + 32, + 96, + 0, + 32, + 144, + 91, + 129, + 84, + 129, + 82, + 144, + 96, + 1, + 1, + 144, + 96, + 32, + 1, + 128, + 131, + 17, + 97, + 3, + 7, + 87, + 130, + 144, + 3, + 96, + 31, + 22, + 130, + 1, + 145, + 91, + 80, + 80, + 80, + 80, + 80, + 129, + 86, + 91, + 96, + 0, + 97, + 3, + 57, + 51, + 132, + 132, + 97, + 5, + 23, + 86, + 91, + 80, + 96, + 1, + 146, + 145, + 80, + 80, + 86, + 91, + 96, + 0, + 97, + 3, + 79, + 132, + 132, + 132, + 97, + 6, + 60, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 132, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 1, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 51, + 132, + 82, + 144, + 145, + 82, + 144, + 32, + 84, + 130, + 129, + 16, + 21, + 97, + 3, + 217, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 40, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 116, + 114, + 97, + 110, + 115, + 102, + 101, + 114, + 32, + 97, + 109, + 111, + 117, + 110, + 116, + 32, + 101, + 120, + 99, + 101, + 101, + 100, + 115, + 32, + 97, + 96, + 68, + 130, + 1, + 82, + 103, + 108, + 108, + 111, + 119, + 97, + 110, + 99, + 101, + 96, + 192, + 27, + 96, + 100, + 130, + 1, + 82, + 96, + 132, + 1, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 97, + 3, + 230, + 133, + 51, + 133, + 132, + 3, + 97, + 5, + 23, + 86, + 91, + 80, + 96, + 1, + 148, + 147, + 80, + 80, + 80, + 80, + 86, + 91, + 51, + 96, + 0, + 129, + 129, + 82, + 96, + 1, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 135, + 22, + 132, + 82, + 144, + 145, + 82, + 129, + 32, + 84, + 144, + 145, + 97, + 3, + 57, + 145, + 133, + 144, + 97, + 4, + 40, + 144, + 134, + 144, + 97, + 11, + 207, + 86, + 91, + 97, + 5, + 23, + 86, + 91, + 96, + 5, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 97, + 1, + 0, + 144, + 145, + 4, + 129, + 22, + 144, + 131, + 22, + 3, + 97, + 4, + 76, + 87, + 80, + 80, + 86, + 91, + 97, + 4, + 86, + 130, + 130, + 97, + 8, + 11, + 86, + 91, + 80, + 80, + 86, + 91, + 96, + 4, + 128, + 84, + 97, + 2, + 171, + 144, + 97, + 11, + 127, + 86, + 91, + 97, + 4, + 86, + 130, + 130, + 97, + 8, + 234, + 86, + 91, + 51, + 96, + 0, + 144, + 129, + 82, + 96, + 1, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 134, + 22, + 132, + 82, + 144, + 145, + 82, + 129, + 32, + 84, + 130, + 129, + 16, + 21, + 97, + 4, + 243, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 37, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 100, + 101, + 99, + 114, + 101, + 97, + 115, + 101, + 100, + 32, + 97, + 108, + 108, + 111, + 119, + 97, + 110, + 99, + 101, + 32, + 98, + 101, + 108, + 111, + 119, + 96, + 68, + 130, + 1, + 82, + 100, + 32, + 122, + 101, + 114, + 111, + 96, + 216, + 27, + 96, + 100, + 130, + 1, + 82, + 96, + 132, + 1, + 97, + 3, + 208, + 86, + 91, + 97, + 5, + 0, + 51, + 133, + 133, + 132, + 3, + 97, + 5, + 23, + 86, + 91, + 80, + 96, + 1, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 97, + 3, + 57, + 51, + 132, + 132, + 97, + 6, + 60, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 22, + 97, + 5, + 121, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 36, + 128, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 97, + 112, + 112, + 114, + 111, + 118, + 101, + 32, + 102, + 114, + 111, + 109, + 32, + 116, + 104, + 101, + 32, + 122, + 101, + 114, + 111, + 32, + 97, + 100, + 100, + 96, + 68, + 130, + 1, + 82, + 99, + 114, + 101, + 115, + 115, + 96, + 224, + 27, + 96, + 100, + 130, + 1, + 82, + 96, + 132, + 1, + 97, + 3, + 208, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 97, + 5, + 218, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 34, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 97, + 112, + 112, + 114, + 111, + 118, + 101, + 32, + 116, + 111, + 32, + 116, + 104, + 101, + 32, + 122, + 101, + 114, + 111, + 32, + 97, + 100, + 100, + 114, + 101, + 96, + 68, + 130, + 1, + 82, + 97, + 115, + 115, + 96, + 240, + 27, + 96, + 100, + 130, + 1, + 82, + 96, + 132, + 1, + 97, + 3, + 208, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 129, + 22, + 96, + 0, + 129, + 129, + 82, + 96, + 1, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 148, + 135, + 22, + 128, + 132, + 82, + 148, + 130, + 82, + 145, + 130, + 144, + 32, + 133, + 144, + 85, + 144, + 81, + 132, + 129, + 82, + 127, + 140, + 91, + 225, + 229, + 235, + 236, + 125, + 91, + 209, + 79, + 113, + 66, + 125, + 30, + 132, + 243, + 221, + 3, + 20, + 192, + 247, + 178, + 41, + 30, + 91, + 32, + 10, + 200, + 199, + 195, + 185, + 37, + 145, + 1, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 80, + 80, + 80, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 22, + 97, + 6, + 160, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 37, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 116, + 114, + 97, + 110, + 115, + 102, + 101, + 114, + 32, + 102, + 114, + 111, + 109, + 32, + 116, + 104, + 101, + 32, + 122, + 101, + 114, + 111, + 32, + 97, + 100, + 96, + 68, + 130, + 1, + 82, + 100, + 100, + 114, + 101, + 115, + 115, + 96, + 216, + 27, + 96, + 100, + 130, + 1, + 82, + 96, + 132, + 1, + 97, + 3, + 208, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 97, + 7, + 2, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 35, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 116, + 114, + 97, + 110, + 115, + 102, + 101, + 114, + 32, + 116, + 111, + 32, + 116, + 104, + 101, + 32, + 122, + 101, + 114, + 111, + 32, + 97, + 100, + 100, + 114, + 96, + 68, + 130, + 1, + 82, + 98, + 101, + 115, + 115, + 96, + 232, + 27, + 96, + 100, + 130, + 1, + 82, + 96, + 132, + 1, + 97, + 3, + 208, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 32, + 129, + 144, + 82, + 96, + 64, + 144, + 32, + 84, + 129, + 129, + 16, + 21, + 97, + 7, + 122, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 38, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 116, + 114, + 97, + 110, + 115, + 102, + 101, + 114, + 32, + 97, + 109, + 111, + 117, + 110, + 116, + 32, + 101, + 120, + 99, + 101, + 101, + 100, + 115, + 32, + 98, + 96, + 68, + 130, + 1, + 82, + 101, + 97, + 108, + 97, + 110, + 99, + 101, + 96, + 208, + 27, + 96, + 100, + 130, + 1, + 82, + 96, + 132, + 1, + 97, + 3, + 208, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 128, + 133, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 32, + 129, + 144, + 82, + 96, + 64, + 128, + 130, + 32, + 133, + 133, + 3, + 144, + 85, + 145, + 133, + 22, + 129, + 82, + 144, + 129, + 32, + 128, + 84, + 132, + 146, + 144, + 97, + 7, + 177, + 144, + 132, + 144, + 97, + 11, + 207, + 86, + 91, + 146, + 80, + 80, + 129, + 144, + 85, + 80, + 130, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 132, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 127, + 221, + 242, + 82, + 173, + 27, + 226, + 200, + 155, + 105, + 194, + 176, + 104, + 252, + 55, + 141, + 170, + 149, + 43, + 167, + 241, + 99, + 196, + 161, + 22, + 40, + 245, + 90, + 77, + 245, + 35, + 179, + 239, + 132, + 96, + 64, + 81, + 97, + 7, + 253, + 145, + 129, + 82, + 96, + 32, + 1, + 144, + 86, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 97, + 8, + 97, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 31, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 109, + 105, + 110, + 116, + 32, + 116, + 111, + 32, + 116, + 104, + 101, + 32, + 122, + 101, + 114, + 111, + 32, + 97, + 100, + 100, + 114, + 101, + 115, + 115, + 0, + 96, + 68, + 130, + 1, + 82, + 96, + 100, + 1, + 97, + 3, + 208, + 86, + 91, + 128, + 96, + 2, + 96, + 0, + 130, + 130, + 84, + 97, + 8, + 115, + 145, + 144, + 97, + 11, + 207, + 86, + 91, + 144, + 145, + 85, + 80, + 80, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 32, + 129, + 144, + 82, + 96, + 64, + 129, + 32, + 128, + 84, + 131, + 146, + 144, + 97, + 8, + 160, + 144, + 132, + 144, + 97, + 11, + 207, + 86, + 91, + 144, + 145, + 85, + 80, + 80, + 96, + 64, + 81, + 129, + 129, + 82, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 22, + 144, + 96, + 0, + 144, + 127, + 221, + 242, + 82, + 173, + 27, + 226, + 200, + 155, + 105, + 194, + 176, + 104, + 252, + 55, + 141, + 170, + 149, + 43, + 167, + 241, + 99, + 196, + 161, + 22, + 40, + 245, + 90, + 77, + 245, + 35, + 179, + 239, + 144, + 96, + 32, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 80, + 80, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 97, + 9, + 74, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 33, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 98, + 117, + 114, + 110, + 32, + 102, + 114, + 111, + 109, + 32, + 116, + 104, + 101, + 32, + 122, + 101, + 114, + 111, + 32, + 97, + 100, + 100, + 114, + 101, + 115, + 96, + 68, + 130, + 1, + 82, + 96, + 115, + 96, + 248, + 27, + 96, + 100, + 130, + 1, + 82, + 96, + 132, + 1, + 97, + 3, + 208, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 32, + 129, + 144, + 82, + 96, + 64, + 144, + 32, + 84, + 129, + 129, + 16, + 21, + 97, + 9, + 190, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 34, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 98, + 117, + 114, + 110, + 32, + 97, + 109, + 111, + 117, + 110, + 116, + 32, + 101, + 120, + 99, + 101, + 101, + 100, + 115, + 32, + 98, + 97, + 108, + 97, + 110, + 96, + 68, + 130, + 1, + 82, + 97, + 99, + 101, + 96, + 240, + 27, + 96, + 100, + 130, + 1, + 82, + 96, + 132, + 1, + 97, + 3, + 208, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 32, + 129, + 144, + 82, + 96, + 64, + 129, + 32, + 131, + 131, + 3, + 144, + 85, + 96, + 2, + 128, + 84, + 132, + 146, + 144, + 97, + 9, + 237, + 144, + 132, + 144, + 97, + 11, + 231, + 86, + 91, + 144, + 145, + 85, + 80, + 80, + 96, + 64, + 81, + 130, + 129, + 82, + 96, + 0, + 144, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 133, + 22, + 144, + 127, + 221, + 242, + 82, + 173, + 27, + 226, + 200, + 155, + 105, + 194, + 176, + 104, + 252, + 55, + 141, + 170, + 149, + 43, + 167, + 241, + 99, + 196, + 161, + 22, + 40, + 245, + 90, + 77, + 245, + 35, + 179, + 239, + 144, + 96, + 32, + 1, + 97, + 6, + 47, + 86, + 91, + 96, + 0, + 96, + 32, + 128, + 131, + 82, + 131, + 81, + 128, + 130, + 133, + 1, + 82, + 96, + 0, + 91, + 129, + 129, + 16, + 21, + 97, + 10, + 93, + 87, + 133, + 129, + 1, + 131, + 1, + 81, + 133, + 130, + 1, + 96, + 64, + 1, + 82, + 130, + 1, + 97, + 10, + 65, + 86, + 91, + 129, + 129, + 17, + 21, + 97, + 10, + 111, + 87, + 96, + 0, + 96, + 64, + 131, + 135, + 1, + 1, + 82, + 91, + 80, + 96, + 31, + 1, + 96, + 31, + 25, + 22, + 146, + 144, + 146, + 1, + 96, + 64, + 1, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 128, + 53, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 129, + 22, + 129, + 20, + 97, + 10, + 156, + 87, + 96, + 0, + 128, + 253, + 91, + 145, + 144, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 64, + 131, + 133, + 3, + 18, + 21, + 97, + 10, + 180, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 10, + 189, + 131, + 97, + 10, + 133, + 86, + 91, + 148, + 96, + 32, + 147, + 144, + 147, + 1, + 53, + 147, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 96, + 96, + 132, + 134, + 3, + 18, + 21, + 97, + 10, + 224, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 10, + 233, + 132, + 97, + 10, + 133, + 86, + 91, + 146, + 80, + 97, + 10, + 247, + 96, + 32, + 133, + 1, + 97, + 10, + 133, + 86, + 91, + 145, + 80, + 96, + 64, + 132, + 1, + 53, + 144, + 80, + 146, + 80, + 146, + 80, + 146, + 86, + 91, + 96, + 0, + 96, + 32, + 130, + 132, + 3, + 18, + 21, + 97, + 11, + 25, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 11, + 34, + 130, + 97, + 10, + 133, + 86, + 91, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 96, + 32, + 130, + 132, + 3, + 18, + 21, + 97, + 11, + 59, + 87, + 96, + 0, + 128, + 253, + 91, + 129, + 53, + 96, + 255, + 129, + 22, + 129, + 20, + 97, + 11, + 34, + 87, + 96, + 0, + 128, + 253, + 91, + 96, + 0, + 128, + 96, + 64, + 131, + 133, + 3, + 18, + 21, + 97, + 11, + 95, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 11, + 104, + 131, + 97, + 10, + 133, + 86, + 91, + 145, + 80, + 97, + 11, + 118, + 96, + 32, + 132, + 1, + 97, + 10, + 133, + 86, + 91, + 144, + 80, + 146, + 80, + 146, + 144, + 80, + 86, + 91, + 96, + 1, + 129, + 129, + 28, + 144, + 130, + 22, + 128, + 97, + 11, + 147, + 87, + 96, + 127, + 130, + 22, + 145, + 80, + 91, + 96, + 32, + 130, + 16, + 129, + 3, + 97, + 11, + 179, + 87, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 34, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 80, + 145, + 144, + 80, + 86, + 91, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 17, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 96, + 0, + 130, + 25, + 130, + 17, + 21, + 97, + 11, + 226, + 87, + 97, + 11, + 226, + 97, + 11, + 185, + 86, + 91, + 80, + 1, + 144, + 86, + 91, + 96, + 0, + 130, + 130, + 16, + 21, + 97, + 11, + 249, + 87, + 97, + 11, + 249, + 97, + 11, + 185, + 86, + 91, + 80, + 3, + 144, + 86, + 254, + 162, + 100, + 105, + 112, + 102, + 115, + 88, + 34, + 18, + 32, + 137, + 143, + 186, + 19, + 26, + 145, + 115, + 79, + 169, + 109, + 93, + 52, + 125, + 203, + 215, + 78, + 120, + 22, + 42, + 134, + 159, + 66, + 54, + 122, + 86, + 172, + 145, + 69, + 60, + 254, + 6, + 69, + 100, + 115, + 111, + 108, + 99, + 67, + 0, + 8, + 13, + 0, + 51, + ]; + ///The bytecode of the contract. + pub static ECHIDNAERC20_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __BYTECODE, + ); + #[rustfmt::skip] + const __DEPLOYED_BYTECODE: &[u8] = &[ + 96, + 128, + 96, + 64, + 82, + 52, + 128, + 21, + 97, + 0, + 16, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 96, + 4, + 54, + 16, + 97, + 0, + 245, + 87, + 96, + 0, + 53, + 96, + 224, + 28, + 128, + 99, + 80, + 211, + 244, + 124, + 17, + 97, + 0, + 151, + 87, + 128, + 99, + 157, + 194, + 159, + 172, + 17, + 97, + 0, + 102, + 87, + 128, + 99, + 157, + 194, + 159, + 172, + 20, + 97, + 2, + 44, + 87, + 128, + 99, + 164, + 87, + 194, + 215, + 20, + 97, + 2, + 63, + 87, + 128, + 99, + 169, + 5, + 156, + 187, + 20, + 97, + 2, + 82, + 87, + 128, + 99, + 221, + 98, + 237, + 62, + 20, + 97, + 2, + 101, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 80, + 211, + 244, + 124, + 20, + 97, + 1, + 167, + 87, + 128, + 99, + 112, + 160, + 130, + 49, + 20, + 97, + 1, + 215, + 87, + 128, + 99, + 122, + 19, + 149, + 170, + 20, + 97, + 2, + 0, + 87, + 128, + 99, + 149, + 216, + 155, + 65, + 20, + 97, + 2, + 36, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 35, + 184, + 114, + 221, + 17, + 97, + 0, + 211, + 87, + 128, + 99, + 35, + 184, + 114, + 221, + 20, + 97, + 1, + 77, + 87, + 128, + 99, + 49, + 60, + 229, + 103, + 20, + 97, + 1, + 96, + 87, + 128, + 99, + 57, + 80, + 147, + 81, + 20, + 97, + 1, + 127, + 87, + 128, + 99, + 64, + 193, + 15, + 25, + 20, + 97, + 1, + 146, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 6, + 253, + 222, + 3, + 20, + 97, + 0, + 250, + 87, + 128, + 99, + 9, + 94, + 167, + 179, + 20, + 97, + 1, + 24, + 87, + 128, + 99, + 24, + 22, + 13, + 221, + 20, + 97, + 1, + 59, + 87, + 91, + 96, + 0, + 128, + 253, + 91, + 97, + 1, + 2, + 97, + 2, + 158, + 86, + 91, + 96, + 64, + 81, + 97, + 1, + 15, + 145, + 144, + 97, + 10, + 48, + 86, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 243, + 91, + 97, + 1, + 43, + 97, + 1, + 38, + 54, + 96, + 4, + 97, + 10, + 161, + 86, + 91, + 97, + 3, + 44, + 86, + 91, + 96, + 64, + 81, + 144, + 21, + 21, + 129, + 82, + 96, + 32, + 1, + 97, + 1, + 15, + 86, + 91, + 96, + 2, + 84, + 91, + 96, + 64, + 81, + 144, + 129, + 82, + 96, + 32, + 1, + 97, + 1, + 15, + 86, + 91, + 97, + 1, + 43, + 97, + 1, + 91, + 54, + 96, + 4, + 97, + 10, + 203, + 86, + 91, + 97, + 3, + 66, + 86, + 91, + 96, + 5, + 84, + 97, + 1, + 109, + 144, + 96, + 255, + 22, + 129, + 86, + 91, + 96, + 64, + 81, + 96, + 255, + 144, + 145, + 22, + 129, + 82, + 96, + 32, + 1, + 97, + 1, + 15, + 86, + 91, + 97, + 1, + 43, + 97, + 1, + 141, + 54, + 96, + 4, + 97, + 10, + 161, + 86, + 91, + 97, + 3, + 241, + 86, + 91, + 97, + 1, + 165, + 97, + 1, + 160, + 54, + 96, + 4, + 97, + 10, + 161, + 86, + 91, + 97, + 4, + 45, + 86, + 91, + 0, + 91, + 96, + 5, + 84, + 97, + 1, + 191, + 144, + 97, + 1, + 0, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 86, + 91, + 96, + 64, + 81, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 144, + 145, + 22, + 129, + 82, + 96, + 32, + 1, + 97, + 1, + 15, + 86, + 91, + 97, + 1, + 63, + 97, + 1, + 229, + 54, + 96, + 4, + 97, + 11, + 7, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 32, + 129, + 144, + 82, + 96, + 64, + 144, + 32, + 84, + 144, + 86, + 91, + 97, + 1, + 165, + 97, + 2, + 14, + 54, + 96, + 4, + 97, + 11, + 41, + 86, + 91, + 96, + 5, + 128, + 84, + 96, + 255, + 25, + 22, + 96, + 255, + 146, + 144, + 146, + 22, + 145, + 144, + 145, + 23, + 144, + 85, + 86, + 91, + 97, + 1, + 2, + 97, + 4, + 90, + 86, + 91, + 97, + 1, + 165, + 97, + 2, + 58, + 54, + 96, + 4, + 97, + 10, + 161, + 86, + 91, + 97, + 4, + 103, + 86, + 91, + 97, + 1, + 43, + 97, + 2, + 77, + 54, + 96, + 4, + 97, + 10, + 161, + 86, + 91, + 97, + 4, + 113, + 86, + 91, + 97, + 1, + 43, + 97, + 2, + 96, + 54, + 96, + 4, + 97, + 10, + 161, + 86, + 91, + 97, + 5, + 10, + 86, + 91, + 97, + 1, + 63, + 97, + 2, + 115, + 54, + 96, + 4, + 97, + 11, + 76, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 145, + 130, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 1, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 147, + 144, + 148, + 22, + 130, + 82, + 145, + 144, + 145, + 82, + 32, + 84, + 144, + 86, + 91, + 96, + 3, + 128, + 84, + 97, + 2, + 171, + 144, + 97, + 11, + 127, + 86, + 91, + 128, + 96, + 31, + 1, + 96, + 32, + 128, + 145, + 4, + 2, + 96, + 32, + 1, + 96, + 64, + 81, + 144, + 129, + 1, + 96, + 64, + 82, + 128, + 146, + 145, + 144, + 129, + 129, + 82, + 96, + 32, + 1, + 130, + 128, + 84, + 97, + 2, + 215, + 144, + 97, + 11, + 127, + 86, + 91, + 128, + 21, + 97, + 3, + 36, + 87, + 128, + 96, + 31, + 16, + 97, + 2, + 249, + 87, + 97, + 1, + 0, + 128, + 131, + 84, + 4, + 2, + 131, + 82, + 145, + 96, + 32, + 1, + 145, + 97, + 3, + 36, + 86, + 91, + 130, + 1, + 145, + 144, + 96, + 0, + 82, + 96, + 32, + 96, + 0, + 32, + 144, + 91, + 129, + 84, + 129, + 82, + 144, + 96, + 1, + 1, + 144, + 96, + 32, + 1, + 128, + 131, + 17, + 97, + 3, + 7, + 87, + 130, + 144, + 3, + 96, + 31, + 22, + 130, + 1, + 145, + 91, + 80, + 80, + 80, + 80, + 80, + 129, + 86, + 91, + 96, + 0, + 97, + 3, + 57, + 51, + 132, + 132, + 97, + 5, + 23, + 86, + 91, + 80, + 96, + 1, + 146, + 145, + 80, + 80, + 86, + 91, + 96, + 0, + 97, + 3, + 79, + 132, + 132, + 132, + 97, + 6, + 60, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 132, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 1, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 51, + 132, + 82, + 144, + 145, + 82, + 144, + 32, + 84, + 130, + 129, + 16, + 21, + 97, + 3, + 217, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 40, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 116, + 114, + 97, + 110, + 115, + 102, + 101, + 114, + 32, + 97, + 109, + 111, + 117, + 110, + 116, + 32, + 101, + 120, + 99, + 101, + 101, + 100, + 115, + 32, + 97, + 96, + 68, + 130, + 1, + 82, + 103, + 108, + 108, + 111, + 119, + 97, + 110, + 99, + 101, + 96, + 192, + 27, + 96, + 100, + 130, + 1, + 82, + 96, + 132, + 1, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 97, + 3, + 230, + 133, + 51, + 133, + 132, + 3, + 97, + 5, + 23, + 86, + 91, + 80, + 96, + 1, + 148, + 147, + 80, + 80, + 80, + 80, + 86, + 91, + 51, + 96, + 0, + 129, + 129, + 82, + 96, + 1, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 135, + 22, + 132, + 82, + 144, + 145, + 82, + 129, + 32, + 84, + 144, + 145, + 97, + 3, + 57, + 145, + 133, + 144, + 97, + 4, + 40, + 144, + 134, + 144, + 97, + 11, + 207, + 86, + 91, + 97, + 5, + 23, + 86, + 91, + 96, + 5, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 97, + 1, + 0, + 144, + 145, + 4, + 129, + 22, + 144, + 131, + 22, + 3, + 97, + 4, + 76, + 87, + 80, + 80, + 86, + 91, + 97, + 4, + 86, + 130, + 130, + 97, + 8, + 11, + 86, + 91, + 80, + 80, + 86, + 91, + 96, + 4, + 128, + 84, + 97, + 2, + 171, + 144, + 97, + 11, + 127, + 86, + 91, + 97, + 4, + 86, + 130, + 130, + 97, + 8, + 234, + 86, + 91, + 51, + 96, + 0, + 144, + 129, + 82, + 96, + 1, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 134, + 22, + 132, + 82, + 144, + 145, + 82, + 129, + 32, + 84, + 130, + 129, + 16, + 21, + 97, + 4, + 243, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 37, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 100, + 101, + 99, + 114, + 101, + 97, + 115, + 101, + 100, + 32, + 97, + 108, + 108, + 111, + 119, + 97, + 110, + 99, + 101, + 32, + 98, + 101, + 108, + 111, + 119, + 96, + 68, + 130, + 1, + 82, + 100, + 32, + 122, + 101, + 114, + 111, + 96, + 216, + 27, + 96, + 100, + 130, + 1, + 82, + 96, + 132, + 1, + 97, + 3, + 208, + 86, + 91, + 97, + 5, + 0, + 51, + 133, + 133, + 132, + 3, + 97, + 5, + 23, + 86, + 91, + 80, + 96, + 1, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 97, + 3, + 57, + 51, + 132, + 132, + 97, + 6, + 60, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 22, + 97, + 5, + 121, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 36, + 128, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 97, + 112, + 112, + 114, + 111, + 118, + 101, + 32, + 102, + 114, + 111, + 109, + 32, + 116, + 104, + 101, + 32, + 122, + 101, + 114, + 111, + 32, + 97, + 100, + 100, + 96, + 68, + 130, + 1, + 82, + 99, + 114, + 101, + 115, + 115, + 96, + 224, + 27, + 96, + 100, + 130, + 1, + 82, + 96, + 132, + 1, + 97, + 3, + 208, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 97, + 5, + 218, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 34, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 97, + 112, + 112, + 114, + 111, + 118, + 101, + 32, + 116, + 111, + 32, + 116, + 104, + 101, + 32, + 122, + 101, + 114, + 111, + 32, + 97, + 100, + 100, + 114, + 101, + 96, + 68, + 130, + 1, + 82, + 97, + 115, + 115, + 96, + 240, + 27, + 96, + 100, + 130, + 1, + 82, + 96, + 132, + 1, + 97, + 3, + 208, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 129, + 22, + 96, + 0, + 129, + 129, + 82, + 96, + 1, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 148, + 135, + 22, + 128, + 132, + 82, + 148, + 130, + 82, + 145, + 130, + 144, + 32, + 133, + 144, + 85, + 144, + 81, + 132, + 129, + 82, + 127, + 140, + 91, + 225, + 229, + 235, + 236, + 125, + 91, + 209, + 79, + 113, + 66, + 125, + 30, + 132, + 243, + 221, + 3, + 20, + 192, + 247, + 178, + 41, + 30, + 91, + 32, + 10, + 200, + 199, + 195, + 185, + 37, + 145, + 1, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 80, + 80, + 80, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 22, + 97, + 6, + 160, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 37, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 116, + 114, + 97, + 110, + 115, + 102, + 101, + 114, + 32, + 102, + 114, + 111, + 109, + 32, + 116, + 104, + 101, + 32, + 122, + 101, + 114, + 111, + 32, + 97, + 100, + 96, + 68, + 130, + 1, + 82, + 100, + 100, + 114, + 101, + 115, + 115, + 96, + 216, + 27, + 96, + 100, + 130, + 1, + 82, + 96, + 132, + 1, + 97, + 3, + 208, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 97, + 7, + 2, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 35, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 116, + 114, + 97, + 110, + 115, + 102, + 101, + 114, + 32, + 116, + 111, + 32, + 116, + 104, + 101, + 32, + 122, + 101, + 114, + 111, + 32, + 97, + 100, + 100, + 114, + 96, + 68, + 130, + 1, + 82, + 98, + 101, + 115, + 115, + 96, + 232, + 27, + 96, + 100, + 130, + 1, + 82, + 96, + 132, + 1, + 97, + 3, + 208, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 32, + 129, + 144, + 82, + 96, + 64, + 144, + 32, + 84, + 129, + 129, + 16, + 21, + 97, + 7, + 122, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 38, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 116, + 114, + 97, + 110, + 115, + 102, + 101, + 114, + 32, + 97, + 109, + 111, + 117, + 110, + 116, + 32, + 101, + 120, + 99, + 101, + 101, + 100, + 115, + 32, + 98, + 96, + 68, + 130, + 1, + 82, + 101, + 97, + 108, + 97, + 110, + 99, + 101, + 96, + 208, + 27, + 96, + 100, + 130, + 1, + 82, + 96, + 132, + 1, + 97, + 3, + 208, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 128, + 133, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 32, + 129, + 144, + 82, + 96, + 64, + 128, + 130, + 32, + 133, + 133, + 3, + 144, + 85, + 145, + 133, + 22, + 129, + 82, + 144, + 129, + 32, + 128, + 84, + 132, + 146, + 144, + 97, + 7, + 177, + 144, + 132, + 144, + 97, + 11, + 207, + 86, + 91, + 146, + 80, + 80, + 129, + 144, + 85, + 80, + 130, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 132, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 127, + 221, + 242, + 82, + 173, + 27, + 226, + 200, + 155, + 105, + 194, + 176, + 104, + 252, + 55, + 141, + 170, + 149, + 43, + 167, + 241, + 99, + 196, + 161, + 22, + 40, + 245, + 90, + 77, + 245, + 35, + 179, + 239, + 132, + 96, + 64, + 81, + 97, + 7, + 253, + 145, + 129, + 82, + 96, + 32, + 1, + 144, + 86, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 97, + 8, + 97, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 31, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 109, + 105, + 110, + 116, + 32, + 116, + 111, + 32, + 116, + 104, + 101, + 32, + 122, + 101, + 114, + 111, + 32, + 97, + 100, + 100, + 114, + 101, + 115, + 115, + 0, + 96, + 68, + 130, + 1, + 82, + 96, + 100, + 1, + 97, + 3, + 208, + 86, + 91, + 128, + 96, + 2, + 96, + 0, + 130, + 130, + 84, + 97, + 8, + 115, + 145, + 144, + 97, + 11, + 207, + 86, + 91, + 144, + 145, + 85, + 80, + 80, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 32, + 129, + 144, + 82, + 96, + 64, + 129, + 32, + 128, + 84, + 131, + 146, + 144, + 97, + 8, + 160, + 144, + 132, + 144, + 97, + 11, + 207, + 86, + 91, + 144, + 145, + 85, + 80, + 80, + 96, + 64, + 81, + 129, + 129, + 82, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 22, + 144, + 96, + 0, + 144, + 127, + 221, + 242, + 82, + 173, + 27, + 226, + 200, + 155, + 105, + 194, + 176, + 104, + 252, + 55, + 141, + 170, + 149, + 43, + 167, + 241, + 99, + 196, + 161, + 22, + 40, + 245, + 90, + 77, + 245, + 35, + 179, + 239, + 144, + 96, + 32, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 80, + 80, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 97, + 9, + 74, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 33, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 98, + 117, + 114, + 110, + 32, + 102, + 114, + 111, + 109, + 32, + 116, + 104, + 101, + 32, + 122, + 101, + 114, + 111, + 32, + 97, + 100, + 100, + 114, + 101, + 115, + 96, + 68, + 130, + 1, + 82, + 96, + 115, + 96, + 248, + 27, + 96, + 100, + 130, + 1, + 82, + 96, + 132, + 1, + 97, + 3, + 208, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 32, + 129, + 144, + 82, + 96, + 64, + 144, + 32, + 84, + 129, + 129, + 16, + 21, + 97, + 9, + 190, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 34, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 98, + 117, + 114, + 110, + 32, + 97, + 109, + 111, + 117, + 110, + 116, + 32, + 101, + 120, + 99, + 101, + 101, + 100, + 115, + 32, + 98, + 97, + 108, + 97, + 110, + 96, + 68, + 130, + 1, + 82, + 97, + 99, + 101, + 96, + 240, + 27, + 96, + 100, + 130, + 1, + 82, + 96, + 132, + 1, + 97, + 3, + 208, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 32, + 129, + 144, + 82, + 96, + 64, + 129, + 32, + 131, + 131, + 3, + 144, + 85, + 96, + 2, + 128, + 84, + 132, + 146, + 144, + 97, + 9, + 237, + 144, + 132, + 144, + 97, + 11, + 231, + 86, + 91, + 144, + 145, + 85, + 80, + 80, + 96, + 64, + 81, + 130, + 129, + 82, + 96, + 0, + 144, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 133, + 22, + 144, + 127, + 221, + 242, + 82, + 173, + 27, + 226, + 200, + 155, + 105, + 194, + 176, + 104, + 252, + 55, + 141, + 170, + 149, + 43, + 167, + 241, + 99, + 196, + 161, + 22, + 40, + 245, + 90, + 77, + 245, + 35, + 179, + 239, + 144, + 96, + 32, + 1, + 97, + 6, + 47, + 86, + 91, + 96, + 0, + 96, + 32, + 128, + 131, + 82, + 131, + 81, + 128, + 130, + 133, + 1, + 82, + 96, + 0, + 91, + 129, + 129, + 16, + 21, + 97, + 10, + 93, + 87, + 133, + 129, + 1, + 131, + 1, + 81, + 133, + 130, + 1, + 96, + 64, + 1, + 82, + 130, + 1, + 97, + 10, + 65, + 86, + 91, + 129, + 129, + 17, + 21, + 97, + 10, + 111, + 87, + 96, + 0, + 96, + 64, + 131, + 135, + 1, + 1, + 82, + 91, + 80, + 96, + 31, + 1, + 96, + 31, + 25, + 22, + 146, + 144, + 146, + 1, + 96, + 64, + 1, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 128, + 53, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 129, + 22, + 129, + 20, + 97, + 10, + 156, + 87, + 96, + 0, + 128, + 253, + 91, + 145, + 144, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 64, + 131, + 133, + 3, + 18, + 21, + 97, + 10, + 180, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 10, + 189, + 131, + 97, + 10, + 133, + 86, + 91, + 148, + 96, + 32, + 147, + 144, + 147, + 1, + 53, + 147, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 96, + 96, + 132, + 134, + 3, + 18, + 21, + 97, + 10, + 224, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 10, + 233, + 132, + 97, + 10, + 133, + 86, + 91, + 146, + 80, + 97, + 10, + 247, + 96, + 32, + 133, + 1, + 97, + 10, + 133, + 86, + 91, + 145, + 80, + 96, + 64, + 132, + 1, + 53, + 144, + 80, + 146, + 80, + 146, + 80, + 146, + 86, + 91, + 96, + 0, + 96, + 32, + 130, + 132, + 3, + 18, + 21, + 97, + 11, + 25, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 11, + 34, + 130, + 97, + 10, + 133, + 86, + 91, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 96, + 32, + 130, + 132, + 3, + 18, + 21, + 97, + 11, + 59, + 87, + 96, + 0, + 128, + 253, + 91, + 129, + 53, + 96, + 255, + 129, + 22, + 129, + 20, + 97, + 11, + 34, + 87, + 96, + 0, + 128, + 253, + 91, + 96, + 0, + 128, + 96, + 64, + 131, + 133, + 3, + 18, + 21, + 97, + 11, + 95, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 11, + 104, + 131, + 97, + 10, + 133, + 86, + 91, + 145, + 80, + 97, + 11, + 118, + 96, + 32, + 132, + 1, + 97, + 10, + 133, + 86, + 91, + 144, + 80, + 146, + 80, + 146, + 144, + 80, + 86, + 91, + 96, + 1, + 129, + 129, + 28, + 144, + 130, + 22, + 128, + 97, + 11, + 147, + 87, + 96, + 127, + 130, + 22, + 145, + 80, + 91, + 96, + 32, + 130, + 16, + 129, + 3, + 97, + 11, + 179, + 87, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 34, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 80, + 145, + 144, + 80, + 86, + 91, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 17, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 96, + 0, + 130, + 25, + 130, + 17, + 21, + 97, + 11, + 226, + 87, + 97, + 11, + 226, + 97, + 11, + 185, + 86, + 91, + 80, + 1, + 144, + 86, + 91, + 96, + 0, + 130, + 130, + 16, + 21, + 97, + 11, + 249, + 87, + 97, + 11, + 249, + 97, + 11, + 185, + 86, + 91, + 80, + 3, + 144, + 86, + 254, + 162, + 100, + 105, + 112, + 102, + 115, + 88, + 34, + 18, + 32, + 137, + 143, + 186, + 19, + 26, + 145, + 115, + 79, + 169, + 109, + 93, + 52, + 125, + 203, + 215, + 78, + 120, + 22, + 42, + 134, + 159, + 66, + 54, + 122, + 86, + 172, + 145, + 69, + 60, + 254, + 6, + 69, + 100, + 115, + 111, + 108, + 99, + 67, + 0, + 8, + 13, + 0, + 51, + ]; + ///The deployed bytecode of the contract. + pub static ECHIDNAERC20_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __DEPLOYED_BYTECODE, + ); + pub struct EchidnaERC20(::ethers::contract::Contract); + impl ::core::clone::Clone for EchidnaERC20 { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for EchidnaERC20 { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for EchidnaERC20 { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for EchidnaERC20 { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(stringify!(EchidnaERC20)).field(&self.address()).finish() + } + } + impl EchidnaERC20 { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + ECHIDNAERC20_ABI.clone(), + client, + ), + ) + } + /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. + /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction + /// + /// Notes: + /// - If there are no constructor arguments, you should pass `()` as the argument. + /// - The default poll duration is 7 seconds. + /// - The default number of confirmations is 1 block. + /// + /// + /// # Example + /// + /// Generate contract bindings with `abigen!` and deploy a new contract instance. + /// + /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. + /// + /// ```ignore + /// # async fn deploy(client: ::std::sync::Arc) { + /// abigen!(Greeter, "../greeter.json"); + /// + /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); + /// let msg = greeter_contract.greet().call().await.unwrap(); + /// # } + /// ``` + pub fn deploy( + client: ::std::sync::Arc, + constructor_args: T, + ) -> ::core::result::Result< + ::ethers::contract::builders::ContractDeployer, + ::ethers::contract::ContractError, + > { + let factory = ::ethers::contract::ContractFactory::new( + ECHIDNAERC20_ABI.clone(), + ECHIDNAERC20_BYTECODE.clone().into(), + client, + ); + let deployer = factory.deploy(constructor_args)?; + let deployer = ::ethers::contract::ContractDeployer::new(deployer); + Ok(deployer) + } + ///Calls the contract's `Portfolio` (0x50d3f47c) function + pub fn portfolio( + &self, + ) -> ::ethers::contract::builders::ContractCall< + M, + ::ethers::core::types::Address, + > { + self.0 + .method_hash([80, 211, 244, 124], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `allowance` (0xdd62ed3e) function + pub fn allowance( + &self, + owner: ::ethers::core::types::Address, + spender: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([221, 98, 237, 62], (owner, spender)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `approve` (0x095ea7b3) function + pub fn approve( + &self, + spender: ::ethers::core::types::Address, + amount: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([9, 94, 167, 179], (spender, amount)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `balanceOf` (0x70a08231) function + pub fn balance_of( + &self, + account: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([112, 160, 130, 49], account) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `burn` (0x9dc29fac) function + pub fn burn( + &self, + to: ::ethers::core::types::Address, + wad: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([157, 194, 159, 172], (to, wad)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `decimals` (0x313ce567) function + pub fn decimals(&self) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([49, 60, 229, 103], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `decreaseAllowance` (0xa457c2d7) function + pub fn decrease_allowance( + &self, + spender: ::ethers::core::types::Address, + subtracted_value: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([164, 87, 194, 215], (spender, subtracted_value)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `increaseAllowance` (0x39509351) function + pub fn increase_allowance( + &self, + spender: ::ethers::core::types::Address, + added_value: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([57, 80, 147, 81], (spender, added_value)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `mint` (0x40c10f19) function + pub fn mint( + &self, + to: ::ethers::core::types::Address, + wad: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([64, 193, 15, 25], (to, wad)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `name` (0x06fdde03) function + pub fn name( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([6, 253, 222, 3], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `setDecimals` (0x7a1395aa) function + pub fn set_decimals( + &self, + decimals: u8, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([122, 19, 149, 170], decimals) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `symbol` (0x95d89b41) function + pub fn symbol( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([149, 216, 155, 65], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `totalSupply` (0x18160ddd) function + pub fn total_supply( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([24, 22, 13, 221], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `transfer` (0xa9059cbb) function + pub fn transfer( + &self, + recipient: ::ethers::core::types::Address, + amount: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([169, 5, 156, 187], (recipient, amount)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `transferFrom` (0x23b872dd) function + pub fn transfer_from( + &self, + sender: ::ethers::core::types::Address, + recipient: ::ethers::core::types::Address, + amount: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([35, 184, 114, 221], (sender, recipient, amount)) + .expect("method not found (this should never happen)") + } + ///Gets the contract's `Approval` event + pub fn approval_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + ApprovalFilter, + > { + self.0.event() + } + ///Gets the contract's `Transfer` event + pub fn transfer_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + TransferFilter, + > { + self.0.event() + } + /// Returns an `Event` builder for all the events of this contract. + pub fn events( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + EchidnaERC20Events, + > { + self.0.event_with_filter(::core::default::Default::default()) + } + } + impl From<::ethers::contract::Contract> + for EchidnaERC20 { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "Approval", abi = "Approval(address,address,uint256)")] + pub struct ApprovalFilter { + #[ethevent(indexed)] + pub owner: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub spender: ::ethers::core::types::Address, + pub value: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "Transfer", abi = "Transfer(address,address,uint256)")] + pub struct TransferFilter { + #[ethevent(indexed)] + pub from: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub to: ::ethers::core::types::Address, + pub value: ::ethers::core::types::U256, + } + ///Container type for all of the contract's events + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum EchidnaERC20Events { + ApprovalFilter(ApprovalFilter), + TransferFilter(TransferFilter), + } + impl ::ethers::contract::EthLogDecode for EchidnaERC20Events { + fn decode_log( + log: &::ethers::core::abi::RawLog, + ) -> ::core::result::Result { + if let Ok(decoded) = ApprovalFilter::decode_log(log) { + return Ok(EchidnaERC20Events::ApprovalFilter(decoded)); + } + if let Ok(decoded) = TransferFilter::decode_log(log) { + return Ok(EchidnaERC20Events::TransferFilter(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData) + } + } + impl ::core::fmt::Display for EchidnaERC20Events { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::ApprovalFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::TransferFilter(element) => ::core::fmt::Display::fmt(element, f), + } + } + } + impl ::core::convert::From for EchidnaERC20Events { + fn from(value: ApprovalFilter) -> Self { + Self::ApprovalFilter(value) + } + } + impl ::core::convert::From for EchidnaERC20Events { + fn from(value: TransferFilter) -> Self { + Self::TransferFilter(value) + } + } + ///Container type for all input parameters for the `Portfolio` function with signature `Portfolio()` and selector `0x50d3f47c` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "Portfolio", abi = "Portfolio()")] + pub struct PortfolioCall; + ///Container type for all input parameters for the `allowance` function with signature `allowance(address,address)` and selector `0xdd62ed3e` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "allowance", abi = "allowance(address,address)")] + pub struct AllowanceCall { + pub owner: ::ethers::core::types::Address, + pub spender: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "approve", abi = "approve(address,uint256)")] + pub struct ApproveCall { + pub spender: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "balanceOf", abi = "balanceOf(address)")] + pub struct BalanceOfCall { + pub account: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `burn` function with signature `burn(address,uint256)` and selector `0x9dc29fac` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "burn", abi = "burn(address,uint256)")] + pub struct BurnCall { + pub to: ::ethers::core::types::Address, + pub wad: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `decimals` function with signature `decimals()` and selector `0x313ce567` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "decimals", abi = "decimals()")] + pub struct DecimalsCall; + ///Container type for all input parameters for the `decreaseAllowance` function with signature `decreaseAllowance(address,uint256)` and selector `0xa457c2d7` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "decreaseAllowance", abi = "decreaseAllowance(address,uint256)")] + pub struct DecreaseAllowanceCall { + pub spender: ::ethers::core::types::Address, + pub subtracted_value: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `increaseAllowance` function with signature `increaseAllowance(address,uint256)` and selector `0x39509351` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "increaseAllowance", abi = "increaseAllowance(address,uint256)")] + pub struct IncreaseAllowanceCall { + pub spender: ::ethers::core::types::Address, + pub added_value: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `mint` function with signature `mint(address,uint256)` and selector `0x40c10f19` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "mint", abi = "mint(address,uint256)")] + pub struct MintCall { + pub to: ::ethers::core::types::Address, + pub wad: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `name` function with signature `name()` and selector `0x06fdde03` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "name", abi = "name()")] + pub struct NameCall; + ///Container type for all input parameters for the `setDecimals` function with signature `setDecimals(uint8)` and selector `0x7a1395aa` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "setDecimals", abi = "setDecimals(uint8)")] + pub struct SetDecimalsCall { + pub decimals: u8, + } + ///Container type for all input parameters for the `symbol` function with signature `symbol()` and selector `0x95d89b41` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "symbol", abi = "symbol()")] + pub struct SymbolCall; + ///Container type for all input parameters for the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "totalSupply", abi = "totalSupply()")] + pub struct TotalSupplyCall; + ///Container type for all input parameters for the `transfer` function with signature `transfer(address,uint256)` and selector `0xa9059cbb` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "transfer", abi = "transfer(address,uint256)")] + pub struct TransferCall { + pub recipient: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "transferFrom", abi = "transferFrom(address,address,uint256)")] + pub struct TransferFromCall { + pub sender: ::ethers::core::types::Address, + pub recipient: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + ///Container type for all of the contract's call + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum EchidnaERC20Calls { + Portfolio(PortfolioCall), + Allowance(AllowanceCall), + Approve(ApproveCall), + BalanceOf(BalanceOfCall), + Burn(BurnCall), + Decimals(DecimalsCall), + DecreaseAllowance(DecreaseAllowanceCall), + IncreaseAllowance(IncreaseAllowanceCall), + Mint(MintCall), + Name(NameCall), + SetDecimals(SetDecimalsCall), + Symbol(SymbolCall), + TotalSupply(TotalSupplyCall), + Transfer(TransferCall), + TransferFrom(TransferFromCall), + } + impl ::ethers::core::abi::AbiDecode for EchidnaERC20Calls { + fn decode( + data: impl AsRef<[u8]>, + ) -> ::core::result::Result { + let data = data.as_ref(); + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Portfolio(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Allowance(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Approve(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::BalanceOf(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Burn(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Decimals(decoded)); + } + if let Ok(decoded) + = ::decode( + data, + ) { + return Ok(Self::DecreaseAllowance(decoded)); + } + if let Ok(decoded) + = ::decode( + data, + ) { + return Ok(Self::IncreaseAllowance(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Mint(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Name(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::SetDecimals(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Symbol(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::TotalSupply(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Transfer(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::TransferFrom(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData.into()) + } + } + impl ::ethers::core::abi::AbiEncode for EchidnaERC20Calls { + fn encode(self) -> Vec { + match self { + Self::Portfolio(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Allowance(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Approve(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::BalanceOf(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Burn(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Decimals(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::DecreaseAllowance(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::IncreaseAllowance(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Mint(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Name(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::SetDecimals(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Symbol(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::TotalSupply(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Transfer(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::TransferFrom(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + } + } + } + impl ::core::fmt::Display for EchidnaERC20Calls { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::Portfolio(element) => ::core::fmt::Display::fmt(element, f), + Self::Allowance(element) => ::core::fmt::Display::fmt(element, f), + Self::Approve(element) => ::core::fmt::Display::fmt(element, f), + Self::BalanceOf(element) => ::core::fmt::Display::fmt(element, f), + Self::Burn(element) => ::core::fmt::Display::fmt(element, f), + Self::Decimals(element) => ::core::fmt::Display::fmt(element, f), + Self::DecreaseAllowance(element) => ::core::fmt::Display::fmt(element, f), + Self::IncreaseAllowance(element) => ::core::fmt::Display::fmt(element, f), + Self::Mint(element) => ::core::fmt::Display::fmt(element, f), + Self::Name(element) => ::core::fmt::Display::fmt(element, f), + Self::SetDecimals(element) => ::core::fmt::Display::fmt(element, f), + Self::Symbol(element) => ::core::fmt::Display::fmt(element, f), + Self::TotalSupply(element) => ::core::fmt::Display::fmt(element, f), + Self::Transfer(element) => ::core::fmt::Display::fmt(element, f), + Self::TransferFrom(element) => ::core::fmt::Display::fmt(element, f), + } + } + } + impl ::core::convert::From for EchidnaERC20Calls { + fn from(value: PortfolioCall) -> Self { + Self::Portfolio(value) + } + } + impl ::core::convert::From for EchidnaERC20Calls { + fn from(value: AllowanceCall) -> Self { + Self::Allowance(value) + } + } + impl ::core::convert::From for EchidnaERC20Calls { + fn from(value: ApproveCall) -> Self { + Self::Approve(value) + } + } + impl ::core::convert::From for EchidnaERC20Calls { + fn from(value: BalanceOfCall) -> Self { + Self::BalanceOf(value) + } + } + impl ::core::convert::From for EchidnaERC20Calls { + fn from(value: BurnCall) -> Self { + Self::Burn(value) + } + } + impl ::core::convert::From for EchidnaERC20Calls { + fn from(value: DecimalsCall) -> Self { + Self::Decimals(value) + } + } + impl ::core::convert::From for EchidnaERC20Calls { + fn from(value: DecreaseAllowanceCall) -> Self { + Self::DecreaseAllowance(value) + } + } + impl ::core::convert::From for EchidnaERC20Calls { + fn from(value: IncreaseAllowanceCall) -> Self { + Self::IncreaseAllowance(value) + } + } + impl ::core::convert::From for EchidnaERC20Calls { + fn from(value: MintCall) -> Self { + Self::Mint(value) + } + } + impl ::core::convert::From for EchidnaERC20Calls { + fn from(value: NameCall) -> Self { + Self::Name(value) + } + } + impl ::core::convert::From for EchidnaERC20Calls { + fn from(value: SetDecimalsCall) -> Self { + Self::SetDecimals(value) + } + } + impl ::core::convert::From for EchidnaERC20Calls { + fn from(value: SymbolCall) -> Self { + Self::Symbol(value) + } + } + impl ::core::convert::From for EchidnaERC20Calls { + fn from(value: TotalSupplyCall) -> Self { + Self::TotalSupply(value) + } + } + impl ::core::convert::From for EchidnaERC20Calls { + fn from(value: TransferCall) -> Self { + Self::Transfer(value) + } + } + impl ::core::convert::From for EchidnaERC20Calls { + fn from(value: TransferFromCall) -> Self { + Self::TransferFrom(value) + } + } + ///Container type for all return fields from the `Portfolio` function with signature `Portfolio()` and selector `0x50d3f47c` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct PortfolioReturn(pub ::ethers::core::types::Address); + ///Container type for all return fields from the `allowance` function with signature `allowance(address,address)` and selector `0xdd62ed3e` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct AllowanceReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct ApproveReturn(pub bool); + ///Container type for all return fields from the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct BalanceOfReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `decimals` function with signature `decimals()` and selector `0x313ce567` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct DecimalsReturn(pub u8); + ///Container type for all return fields from the `decreaseAllowance` function with signature `decreaseAllowance(address,uint256)` and selector `0xa457c2d7` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct DecreaseAllowanceReturn(pub bool); + ///Container type for all return fields from the `increaseAllowance` function with signature `increaseAllowance(address,uint256)` and selector `0x39509351` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct IncreaseAllowanceReturn(pub bool); + ///Container type for all return fields from the `name` function with signature `name()` and selector `0x06fdde03` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct NameReturn(pub ::std::string::String); + ///Container type for all return fields from the `symbol` function with signature `symbol()` and selector `0x95d89b41` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct SymbolReturn(pub ::std::string::String); + ///Container type for all return fields from the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct TotalSupplyReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `transfer` function with signature `transfer(address,uint256)` and selector `0xa9059cbb` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct TransferReturn(pub bool); + ///Container type for all return fields from the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct TransferFromReturn(pub bool); +} diff --git a/crates/bindings/src/erc20.rs b/crates/bindings/src/erc20.rs index 1aaa2886..bdab330f 100644 --- a/crates/bindings/src/erc20.rs +++ b/crates/bindings/src/erc20.rs @@ -11,5040 +11,10 @@ pub use erc20::*; )] pub mod erc20 { #[rustfmt::skip] - const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\",\"components\":[]},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Approval\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Transfer\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]}]"; + const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Approval\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Transfer\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\",\"components\":[]},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\",\"components\":[]},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"permit\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]}]"; ///The parsed JSON ABI of the contract. pub static ERC20_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); - #[rustfmt::skip] - const __BYTECODE: &[u8] = &[ - 96, - 128, - 96, - 64, - 82, - 52, - 128, - 21, - 98, - 0, - 0, - 17, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 96, - 64, - 81, - 98, - 0, - 11, - 70, - 56, - 3, - 128, - 98, - 0, - 11, - 70, - 131, - 57, - 129, - 1, - 96, - 64, - 129, - 144, - 82, - 98, - 0, - 0, - 52, - 145, - 98, - 0, - 1, - 31, - 86, - 91, - 96, - 3, - 98, - 0, - 0, - 66, - 131, - 130, - 98, - 0, - 2, - 24, - 86, - 91, - 80, - 96, - 4, - 98, - 0, - 0, - 81, - 130, - 130, - 98, - 0, - 2, - 24, - 86, - 91, - 80, - 80, - 80, - 98, - 0, - 2, - 228, - 86, - 91, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 65, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 96, - 0, - 130, - 96, - 31, - 131, - 1, - 18, - 98, - 0, - 0, - 130, - 87, - 96, - 0, - 128, - 253, - 91, - 129, - 81, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 128, - 130, - 17, - 21, - 98, - 0, - 0, - 159, - 87, - 98, - 0, - 0, - 159, - 98, - 0, - 0, - 90, - 86, - 91, - 96, - 64, - 81, - 96, - 31, - 131, - 1, - 96, - 31, - 25, - 144, - 129, - 22, - 96, - 63, - 1, - 22, - 129, - 1, - 144, - 130, - 130, - 17, - 129, - 131, - 16, - 23, - 21, - 98, - 0, - 0, - 202, - 87, - 98, - 0, - 0, - 202, - 98, - 0, - 0, - 90, - 86, - 91, - 129, - 96, - 64, - 82, - 131, - 129, - 82, - 96, - 32, - 146, - 80, - 134, - 131, - 133, - 136, - 1, - 1, - 17, - 21, - 98, - 0, - 0, - 231, - 87, - 96, - 0, - 128, - 253, - 91, - 96, - 0, - 145, - 80, - 91, - 131, - 130, - 16, - 21, - 98, - 0, - 1, - 11, - 87, - 133, - 130, - 1, - 131, - 1, - 81, - 129, - 131, - 1, - 132, - 1, - 82, - 144, - 130, - 1, - 144, - 98, - 0, - 0, - 236, - 86, - 91, - 96, - 0, - 147, - 129, - 1, - 144, - 146, - 1, - 146, - 144, - 146, - 82, - 148, - 147, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 64, - 131, - 133, - 3, - 18, - 21, - 98, - 0, - 1, - 51, - 87, - 96, - 0, - 128, - 253, - 91, - 130, - 81, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 128, - 130, - 17, - 21, - 98, - 0, - 1, - 75, - 87, - 96, - 0, - 128, - 253, - 91, - 98, - 0, - 1, - 89, - 134, - 131, - 135, - 1, - 98, - 0, - 0, - 112, - 86, - 91, - 147, - 80, - 96, - 32, - 133, - 1, - 81, - 145, - 80, - 128, - 130, - 17, - 21, - 98, - 0, - 1, - 112, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 98, - 0, - 1, - 127, - 133, - 130, - 134, - 1, - 98, - 0, - 0, - 112, - 86, - 91, - 145, - 80, - 80, - 146, - 80, - 146, - 144, - 80, - 86, - 91, - 96, - 1, - 129, - 129, - 28, - 144, - 130, - 22, - 128, - 98, - 0, - 1, - 158, - 87, - 96, - 127, - 130, - 22, - 145, - 80, - 91, - 96, - 32, - 130, - 16, - 129, - 3, - 98, - 0, - 1, - 191, - 87, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 34, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 80, - 145, - 144, - 80, - 86, - 91, - 96, - 31, - 130, - 17, - 21, - 98, - 0, - 2, - 19, - 87, - 96, - 0, - 129, - 129, - 82, - 96, - 32, - 129, - 32, - 96, - 31, - 133, - 1, - 96, - 5, - 28, - 129, - 1, - 96, - 32, - 134, - 16, - 21, - 98, - 0, - 1, - 238, - 87, - 80, - 128, - 91, - 96, - 31, - 133, - 1, - 96, - 5, - 28, - 130, - 1, - 145, - 80, - 91, - 129, - 129, - 16, - 21, - 98, - 0, - 2, - 15, - 87, - 130, - 129, - 85, - 96, - 1, - 1, - 98, - 0, - 1, - 250, - 86, - 91, - 80, - 80, - 80, - 91, - 80, - 80, - 80, - 86, - 91, - 129, - 81, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 129, - 17, - 21, - 98, - 0, - 2, - 52, - 87, - 98, - 0, - 2, - 52, - 98, - 0, - 0, - 90, - 86, - 91, - 98, - 0, - 2, - 76, - 129, - 98, - 0, - 2, - 69, - 132, - 84, - 98, - 0, - 1, - 137, - 86, - 91, - 132, - 98, - 0, - 1, - 197, - 86, - 91, - 96, - 32, - 128, - 96, - 31, - 131, - 17, - 96, - 1, - 129, - 20, - 98, - 0, - 2, - 132, - 87, - 96, - 0, - 132, - 21, - 98, - 0, - 2, - 107, - 87, - 80, - 133, - 131, - 1, - 81, - 91, - 96, - 0, - 25, - 96, - 3, - 134, - 144, - 27, - 28, - 25, - 22, - 96, - 1, - 133, - 144, - 27, - 23, - 133, - 85, - 98, - 0, - 2, - 15, - 86, - 91, - 96, - 0, - 133, - 129, - 82, - 96, - 32, - 129, - 32, - 96, - 31, - 25, - 134, - 22, - 145, - 91, - 130, - 129, - 16, - 21, - 98, - 0, - 2, - 181, - 87, - 136, - 134, - 1, - 81, - 130, - 85, - 148, - 132, - 1, - 148, - 96, - 1, - 144, - 145, - 1, - 144, - 132, - 1, - 98, - 0, - 2, - 148, - 86, - 91, - 80, - 133, - 130, - 16, - 21, - 98, - 0, - 2, - 212, - 87, - 135, - 133, - 1, - 81, - 96, - 0, - 25, - 96, - 3, - 136, - 144, - 27, - 96, - 248, - 22, - 28, - 25, - 22, - 129, - 85, - 91, - 80, - 80, - 80, - 80, - 80, - 96, - 1, - 144, - 129, - 27, - 1, - 144, - 85, - 80, - 86, - 91, - 97, - 8, - 82, - 128, - 98, - 0, - 2, - 244, - 96, - 0, - 57, - 96, - 0, - 243, - 254, - 96, - 128, - 96, - 64, - 82, - 52, - 128, - 21, - 97, - 0, - 16, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 96, - 4, - 54, - 16, - 97, - 0, - 169, - 87, - 96, - 0, - 53, - 96, - 224, - 28, - 128, - 99, - 57, - 80, - 147, - 81, - 17, - 97, - 0, - 113, - 87, - 128, - 99, - 57, - 80, - 147, - 81, - 20, - 97, - 1, - 35, - 87, - 128, - 99, - 112, - 160, - 130, - 49, - 20, - 97, - 1, - 54, - 87, - 128, - 99, - 149, - 216, - 155, - 65, - 20, - 97, - 1, - 95, - 87, - 128, - 99, - 164, - 87, - 194, - 215, - 20, - 97, - 1, - 103, - 87, - 128, - 99, - 169, - 5, - 156, - 187, - 20, - 97, - 1, - 122, - 87, - 128, - 99, - 221, - 98, - 237, - 62, - 20, - 97, - 1, - 141, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 99, - 6, - 253, - 222, - 3, - 20, - 97, - 0, - 174, - 87, - 128, - 99, - 9, - 94, - 167, - 179, - 20, - 97, - 0, - 204, - 87, - 128, - 99, - 24, - 22, - 13, - 221, - 20, - 97, - 0, - 239, - 87, - 128, - 99, - 35, - 184, - 114, - 221, - 20, - 97, - 1, - 1, - 87, - 128, - 99, - 49, - 60, - 229, - 103, - 20, - 97, - 1, - 20, - 87, - 91, - 96, - 0, - 128, - 253, - 91, - 97, - 0, - 182, - 97, - 1, - 160, - 86, - 91, - 96, - 64, - 81, - 97, - 0, - 195, - 145, - 144, - 97, - 6, - 156, - 86, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 243, - 91, - 97, - 0, - 223, - 97, - 0, - 218, - 54, - 96, - 4, - 97, - 7, - 6, - 86, - 91, - 97, - 2, - 50, - 86, - 91, - 96, - 64, - 81, - 144, - 21, - 21, - 129, - 82, - 96, - 32, - 1, - 97, - 0, - 195, - 86, - 91, - 96, - 2, - 84, - 91, - 96, - 64, - 81, - 144, - 129, - 82, - 96, - 32, - 1, - 97, - 0, - 195, - 86, - 91, - 97, - 0, - 223, - 97, - 1, - 15, - 54, - 96, - 4, - 97, - 7, - 48, - 86, - 91, - 97, - 2, - 76, - 86, - 91, - 96, - 64, - 81, - 96, - 18, - 129, - 82, - 96, - 32, - 1, - 97, - 0, - 195, - 86, - 91, - 97, - 0, - 223, - 97, - 1, - 49, - 54, - 96, - 4, - 97, - 7, - 6, - 86, - 91, - 97, - 2, - 112, - 86, - 91, - 97, - 0, - 243, - 97, - 1, - 68, - 54, - 96, - 4, - 97, - 7, - 108, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 32, - 129, - 144, - 82, - 96, - 64, - 144, - 32, - 84, - 144, - 86, - 91, - 97, - 0, - 182, - 97, - 2, - 146, - 86, - 91, - 97, - 0, - 223, - 97, - 1, - 117, - 54, - 96, - 4, - 97, - 7, - 6, - 86, - 91, - 97, - 2, - 161, - 86, - 91, - 97, - 0, - 223, - 97, - 1, - 136, - 54, - 96, - 4, - 97, - 7, - 6, - 86, - 91, - 97, - 3, - 33, - 86, - 91, - 97, - 0, - 243, - 97, - 1, - 155, - 54, - 96, - 4, - 97, - 7, - 142, - 86, - 91, - 97, - 3, - 47, - 86, - 91, - 96, - 96, - 96, - 3, - 128, - 84, - 97, - 1, - 175, - 144, - 97, - 7, - 193, - 86, - 91, - 128, - 96, - 31, - 1, - 96, - 32, - 128, - 145, - 4, - 2, - 96, - 32, - 1, - 96, - 64, - 81, - 144, - 129, - 1, - 96, - 64, - 82, - 128, - 146, - 145, - 144, - 129, - 129, - 82, - 96, - 32, - 1, - 130, - 128, - 84, - 97, - 1, - 219, - 144, - 97, - 7, - 193, - 86, - 91, - 128, - 21, - 97, - 2, - 40, - 87, - 128, - 96, - 31, - 16, - 97, - 1, - 253, - 87, - 97, - 1, - 0, - 128, - 131, - 84, - 4, - 2, - 131, - 82, - 145, - 96, - 32, - 1, - 145, - 97, - 2, - 40, - 86, - 91, - 130, - 1, - 145, - 144, - 96, - 0, - 82, - 96, - 32, - 96, - 0, - 32, - 144, - 91, - 129, - 84, - 129, - 82, - 144, - 96, - 1, - 1, - 144, - 96, - 32, - 1, - 128, - 131, - 17, - 97, - 2, - 11, - 87, - 130, - 144, - 3, - 96, - 31, - 22, - 130, - 1, - 145, - 91, - 80, - 80, - 80, - 80, - 80, - 144, - 80, - 144, - 86, - 91, - 96, - 0, - 51, - 97, - 2, - 64, - 129, - 133, - 133, - 97, - 3, - 90, - 86, - 91, - 96, - 1, - 145, - 80, - 80, - 91, - 146, - 145, - 80, - 80, - 86, - 91, - 96, - 0, - 51, - 97, - 2, - 90, - 133, - 130, - 133, - 97, - 4, - 126, - 86, - 91, - 97, - 2, - 101, - 133, - 133, - 133, - 97, - 4, - 248, - 86, - 91, - 80, - 96, - 1, - 148, - 147, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 51, - 97, - 2, - 64, - 129, - 133, - 133, - 97, - 2, - 131, - 131, - 131, - 97, - 3, - 47, - 86, - 91, - 97, - 2, - 141, - 145, - 144, - 97, - 7, - 251, - 86, - 91, - 97, - 3, - 90, - 86, - 91, - 96, - 96, - 96, - 4, - 128, - 84, - 97, - 1, - 175, - 144, - 97, - 7, - 193, - 86, - 91, - 96, - 0, - 51, - 129, - 97, - 2, - 175, - 130, - 134, - 97, - 3, - 47, - 86, - 91, - 144, - 80, - 131, - 129, - 16, - 21, - 97, - 3, - 20, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 37, - 96, - 36, - 130, - 1, - 82, - 127, - 69, - 82, - 67, - 50, - 48, - 58, - 32, - 100, - 101, - 99, - 114, - 101, - 97, - 115, - 101, - 100, - 32, - 97, - 108, - 108, - 111, - 119, - 97, - 110, - 99, - 101, - 32, - 98, - 101, - 108, - 111, - 119, - 96, - 68, - 130, - 1, - 82, - 100, - 32, - 122, - 101, - 114, - 111, - 96, - 216, - 27, - 96, - 100, - 130, - 1, - 82, - 96, - 132, - 1, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 97, - 2, - 101, - 130, - 134, - 134, - 132, - 3, - 97, - 3, - 90, - 86, - 91, - 96, - 0, - 51, - 97, - 2, - 64, - 129, - 133, - 133, - 97, - 4, - 248, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 145, - 130, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 1, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 147, - 144, - 148, - 22, - 130, - 82, - 145, - 144, - 145, - 82, - 32, - 84, - 144, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 131, - 22, - 97, - 3, - 188, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 36, - 128, - 130, - 1, - 82, - 127, - 69, - 82, - 67, - 50, - 48, - 58, - 32, - 97, - 112, - 112, - 114, - 111, - 118, - 101, - 32, - 102, - 114, - 111, - 109, - 32, - 116, - 104, - 101, - 32, - 122, - 101, - 114, - 111, - 32, - 97, - 100, - 100, - 96, - 68, - 130, - 1, - 82, - 99, - 114, - 101, - 115, - 115, - 96, - 224, - 27, - 96, - 100, - 130, - 1, - 82, - 96, - 132, - 1, - 97, - 3, - 11, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 130, - 22, - 97, - 4, - 29, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 34, - 96, - 36, - 130, - 1, - 82, - 127, - 69, - 82, - 67, - 50, - 48, - 58, - 32, - 97, - 112, - 112, - 114, - 111, - 118, - 101, - 32, - 116, - 111, - 32, - 116, - 104, - 101, - 32, - 122, - 101, - 114, - 111, - 32, - 97, - 100, - 100, - 114, - 101, - 96, - 68, - 130, - 1, - 82, - 97, - 115, - 115, - 96, - 240, - 27, - 96, - 100, - 130, - 1, - 82, - 96, - 132, - 1, - 97, - 3, - 11, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 131, - 129, - 22, - 96, - 0, - 129, - 129, - 82, - 96, - 1, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 148, - 135, - 22, - 128, - 132, - 82, - 148, - 130, - 82, - 145, - 130, - 144, - 32, - 133, - 144, - 85, - 144, - 81, - 132, - 129, - 82, - 127, - 140, - 91, - 225, - 229, - 235, - 236, - 125, - 91, - 209, - 79, - 113, - 66, - 125, - 30, - 132, - 243, - 221, - 3, - 20, - 192, - 247, - 178, - 41, - 30, - 91, - 32, - 10, - 200, - 199, - 195, - 185, - 37, - 145, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 163, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 97, - 4, - 138, - 132, - 132, - 97, - 3, - 47, - 86, - 91, - 144, - 80, - 96, - 0, - 25, - 129, - 20, - 97, - 4, - 242, - 87, - 129, - 129, - 16, - 21, - 97, - 4, - 229, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 29, - 96, - 36, - 130, - 1, - 82, - 127, - 69, - 82, - 67, - 50, - 48, - 58, - 32, - 105, - 110, - 115, - 117, - 102, - 102, - 105, - 99, - 105, - 101, - 110, - 116, - 32, - 97, - 108, - 108, - 111, - 119, - 97, - 110, - 99, - 101, - 0, - 0, - 0, - 96, - 68, - 130, - 1, - 82, - 96, - 100, - 1, - 97, - 3, - 11, - 86, - 91, - 97, - 4, - 242, - 132, - 132, - 132, - 132, - 3, - 97, - 3, - 90, - 86, - 91, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 131, - 22, - 97, - 5, - 92, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 37, - 96, - 36, - 130, - 1, - 82, - 127, - 69, - 82, - 67, - 50, - 48, - 58, - 32, - 116, - 114, - 97, - 110, - 115, - 102, - 101, - 114, - 32, - 102, - 114, - 111, - 109, - 32, - 116, - 104, - 101, - 32, - 122, - 101, - 114, - 111, - 32, - 97, - 100, - 96, - 68, - 130, - 1, - 82, - 100, - 100, - 114, - 101, - 115, - 115, - 96, - 216, - 27, - 96, - 100, - 130, - 1, - 82, - 96, - 132, - 1, - 97, - 3, - 11, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 130, - 22, - 97, - 5, - 190, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 35, - 96, - 36, - 130, - 1, - 82, - 127, - 69, - 82, - 67, - 50, - 48, - 58, - 32, - 116, - 114, - 97, - 110, - 115, - 102, - 101, - 114, - 32, - 116, - 111, - 32, - 116, - 104, - 101, - 32, - 122, - 101, - 114, - 111, - 32, - 97, - 100, - 100, - 114, - 96, - 68, - 130, - 1, - 82, - 98, - 101, - 115, - 115, - 96, - 232, - 27, - 96, - 100, - 130, - 1, - 82, - 96, - 132, - 1, - 97, - 3, - 11, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 131, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 32, - 129, - 144, - 82, - 96, - 64, - 144, - 32, - 84, - 129, - 129, - 16, - 21, - 97, - 6, - 54, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 38, - 96, - 36, - 130, - 1, - 82, - 127, - 69, - 82, - 67, - 50, - 48, - 58, - 32, - 116, - 114, - 97, - 110, - 115, - 102, - 101, - 114, - 32, - 97, - 109, - 111, - 117, - 110, - 116, - 32, - 101, - 120, - 99, - 101, - 101, - 100, - 115, - 32, - 98, - 96, - 68, - 130, - 1, - 82, - 101, - 97, - 108, - 97, - 110, - 99, - 101, - 96, - 208, - 27, - 96, - 100, - 130, - 1, - 82, - 96, - 132, - 1, - 97, - 3, - 11, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 132, - 129, - 22, - 96, - 0, - 129, - 129, - 82, - 96, - 32, - 129, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 135, - 135, - 3, - 144, - 85, - 147, - 135, - 22, - 128, - 131, - 82, - 145, - 132, - 144, - 32, - 128, - 84, - 135, - 1, - 144, - 85, - 146, - 81, - 133, - 129, - 82, - 144, - 146, - 127, - 221, - 242, - 82, - 173, - 27, - 226, - 200, - 155, - 105, - 194, - 176, - 104, - 252, - 55, - 141, - 170, - 149, - 43, - 167, - 241, - 99, - 196, - 161, - 22, - 40, - 245, - 90, - 77, - 245, - 35, - 179, - 239, - 145, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 163, - 97, - 4, - 242, - 86, - 91, - 96, - 0, - 96, - 32, - 128, - 131, - 82, - 131, - 81, - 128, - 130, - 133, - 1, - 82, - 96, - 0, - 91, - 129, - 129, - 16, - 21, - 97, - 6, - 201, - 87, - 133, - 129, - 1, - 131, - 1, - 81, - 133, - 130, - 1, - 96, - 64, - 1, - 82, - 130, - 1, - 97, - 6, - 173, - 86, - 91, - 80, - 96, - 0, - 96, - 64, - 130, - 134, - 1, - 1, - 82, - 96, - 64, - 96, - 31, - 25, - 96, - 31, - 131, - 1, - 22, - 133, - 1, - 1, - 146, - 80, - 80, - 80, - 146, - 145, - 80, - 80, - 86, - 91, - 128, - 53, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 129, - 22, - 129, - 20, - 97, - 7, - 1, - 87, - 96, - 0, - 128, - 253, - 91, - 145, - 144, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 64, - 131, - 133, - 3, - 18, - 21, - 97, - 7, - 25, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 7, - 34, - 131, - 97, - 6, - 234, - 86, - 91, - 148, - 96, - 32, - 147, - 144, - 147, - 1, - 53, - 147, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 96, - 96, - 132, - 134, - 3, - 18, - 21, - 97, - 7, - 69, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 7, - 78, - 132, - 97, - 6, - 234, - 86, - 91, - 146, - 80, - 97, - 7, - 92, - 96, - 32, - 133, - 1, - 97, - 6, - 234, - 86, - 91, - 145, - 80, - 96, - 64, - 132, - 1, - 53, - 144, - 80, - 146, - 80, - 146, - 80, - 146, - 86, - 91, - 96, - 0, - 96, - 32, - 130, - 132, - 3, - 18, - 21, - 97, - 7, - 126, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 7, - 135, - 130, - 97, - 6, - 234, - 86, - 91, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 64, - 131, - 133, - 3, - 18, - 21, - 97, - 7, - 161, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 7, - 170, - 131, - 97, - 6, - 234, - 86, - 91, - 145, - 80, - 97, - 7, - 184, - 96, - 32, - 132, - 1, - 97, - 6, - 234, - 86, - 91, - 144, - 80, - 146, - 80, - 146, - 144, - 80, - 86, - 91, - 96, - 1, - 129, - 129, - 28, - 144, - 130, - 22, - 128, - 97, - 7, - 213, - 87, - 96, - 127, - 130, - 22, - 145, - 80, - 91, - 96, - 32, - 130, - 16, - 129, - 3, - 97, - 7, - 245, - 87, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 34, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 80, - 145, - 144, - 80, - 86, - 91, - 128, - 130, - 1, - 128, - 130, - 17, - 21, - 97, - 2, - 70, - 87, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 17, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 254, - 162, - 100, - 105, - 112, - 102, - 115, - 88, - 34, - 18, - 32, - 152, - 108, - 46, - 235, - 149, - 232, - 158, - 70, - 135, - 4, - 97, - 133, - 183, - 143, - 90, - 171, - 132, - 145, - 136, - 153, - 102, - 165, - 158, - 35, - 83, - 97, - 171, - 107, - 141, - 170, - 134, - 101, - 100, - 115, - 111, - 108, - 99, - 67, - 0, - 8, - 19, - 0, - 51, - ]; - ///The bytecode of the contract. - pub static ERC20_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( - __BYTECODE, - ); - #[rustfmt::skip] - const __DEPLOYED_BYTECODE: &[u8] = &[ - 96, - 128, - 96, - 64, - 82, - 52, - 128, - 21, - 97, - 0, - 16, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 96, - 4, - 54, - 16, - 97, - 0, - 169, - 87, - 96, - 0, - 53, - 96, - 224, - 28, - 128, - 99, - 57, - 80, - 147, - 81, - 17, - 97, - 0, - 113, - 87, - 128, - 99, - 57, - 80, - 147, - 81, - 20, - 97, - 1, - 35, - 87, - 128, - 99, - 112, - 160, - 130, - 49, - 20, - 97, - 1, - 54, - 87, - 128, - 99, - 149, - 216, - 155, - 65, - 20, - 97, - 1, - 95, - 87, - 128, - 99, - 164, - 87, - 194, - 215, - 20, - 97, - 1, - 103, - 87, - 128, - 99, - 169, - 5, - 156, - 187, - 20, - 97, - 1, - 122, - 87, - 128, - 99, - 221, - 98, - 237, - 62, - 20, - 97, - 1, - 141, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 99, - 6, - 253, - 222, - 3, - 20, - 97, - 0, - 174, - 87, - 128, - 99, - 9, - 94, - 167, - 179, - 20, - 97, - 0, - 204, - 87, - 128, - 99, - 24, - 22, - 13, - 221, - 20, - 97, - 0, - 239, - 87, - 128, - 99, - 35, - 184, - 114, - 221, - 20, - 97, - 1, - 1, - 87, - 128, - 99, - 49, - 60, - 229, - 103, - 20, - 97, - 1, - 20, - 87, - 91, - 96, - 0, - 128, - 253, - 91, - 97, - 0, - 182, - 97, - 1, - 160, - 86, - 91, - 96, - 64, - 81, - 97, - 0, - 195, - 145, - 144, - 97, - 6, - 156, - 86, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 243, - 91, - 97, - 0, - 223, - 97, - 0, - 218, - 54, - 96, - 4, - 97, - 7, - 6, - 86, - 91, - 97, - 2, - 50, - 86, - 91, - 96, - 64, - 81, - 144, - 21, - 21, - 129, - 82, - 96, - 32, - 1, - 97, - 0, - 195, - 86, - 91, - 96, - 2, - 84, - 91, - 96, - 64, - 81, - 144, - 129, - 82, - 96, - 32, - 1, - 97, - 0, - 195, - 86, - 91, - 97, - 0, - 223, - 97, - 1, - 15, - 54, - 96, - 4, - 97, - 7, - 48, - 86, - 91, - 97, - 2, - 76, - 86, - 91, - 96, - 64, - 81, - 96, - 18, - 129, - 82, - 96, - 32, - 1, - 97, - 0, - 195, - 86, - 91, - 97, - 0, - 223, - 97, - 1, - 49, - 54, - 96, - 4, - 97, - 7, - 6, - 86, - 91, - 97, - 2, - 112, - 86, - 91, - 97, - 0, - 243, - 97, - 1, - 68, - 54, - 96, - 4, - 97, - 7, - 108, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 32, - 129, - 144, - 82, - 96, - 64, - 144, - 32, - 84, - 144, - 86, - 91, - 97, - 0, - 182, - 97, - 2, - 146, - 86, - 91, - 97, - 0, - 223, - 97, - 1, - 117, - 54, - 96, - 4, - 97, - 7, - 6, - 86, - 91, - 97, - 2, - 161, - 86, - 91, - 97, - 0, - 223, - 97, - 1, - 136, - 54, - 96, - 4, - 97, - 7, - 6, - 86, - 91, - 97, - 3, - 33, - 86, - 91, - 97, - 0, - 243, - 97, - 1, - 155, - 54, - 96, - 4, - 97, - 7, - 142, - 86, - 91, - 97, - 3, - 47, - 86, - 91, - 96, - 96, - 96, - 3, - 128, - 84, - 97, - 1, - 175, - 144, - 97, - 7, - 193, - 86, - 91, - 128, - 96, - 31, - 1, - 96, - 32, - 128, - 145, - 4, - 2, - 96, - 32, - 1, - 96, - 64, - 81, - 144, - 129, - 1, - 96, - 64, - 82, - 128, - 146, - 145, - 144, - 129, - 129, - 82, - 96, - 32, - 1, - 130, - 128, - 84, - 97, - 1, - 219, - 144, - 97, - 7, - 193, - 86, - 91, - 128, - 21, - 97, - 2, - 40, - 87, - 128, - 96, - 31, - 16, - 97, - 1, - 253, - 87, - 97, - 1, - 0, - 128, - 131, - 84, - 4, - 2, - 131, - 82, - 145, - 96, - 32, - 1, - 145, - 97, - 2, - 40, - 86, - 91, - 130, - 1, - 145, - 144, - 96, - 0, - 82, - 96, - 32, - 96, - 0, - 32, - 144, - 91, - 129, - 84, - 129, - 82, - 144, - 96, - 1, - 1, - 144, - 96, - 32, - 1, - 128, - 131, - 17, - 97, - 2, - 11, - 87, - 130, - 144, - 3, - 96, - 31, - 22, - 130, - 1, - 145, - 91, - 80, - 80, - 80, - 80, - 80, - 144, - 80, - 144, - 86, - 91, - 96, - 0, - 51, - 97, - 2, - 64, - 129, - 133, - 133, - 97, - 3, - 90, - 86, - 91, - 96, - 1, - 145, - 80, - 80, - 91, - 146, - 145, - 80, - 80, - 86, - 91, - 96, - 0, - 51, - 97, - 2, - 90, - 133, - 130, - 133, - 97, - 4, - 126, - 86, - 91, - 97, - 2, - 101, - 133, - 133, - 133, - 97, - 4, - 248, - 86, - 91, - 80, - 96, - 1, - 148, - 147, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 51, - 97, - 2, - 64, - 129, - 133, - 133, - 97, - 2, - 131, - 131, - 131, - 97, - 3, - 47, - 86, - 91, - 97, - 2, - 141, - 145, - 144, - 97, - 7, - 251, - 86, - 91, - 97, - 3, - 90, - 86, - 91, - 96, - 96, - 96, - 4, - 128, - 84, - 97, - 1, - 175, - 144, - 97, - 7, - 193, - 86, - 91, - 96, - 0, - 51, - 129, - 97, - 2, - 175, - 130, - 134, - 97, - 3, - 47, - 86, - 91, - 144, - 80, - 131, - 129, - 16, - 21, - 97, - 3, - 20, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 37, - 96, - 36, - 130, - 1, - 82, - 127, - 69, - 82, - 67, - 50, - 48, - 58, - 32, - 100, - 101, - 99, - 114, - 101, - 97, - 115, - 101, - 100, - 32, - 97, - 108, - 108, - 111, - 119, - 97, - 110, - 99, - 101, - 32, - 98, - 101, - 108, - 111, - 119, - 96, - 68, - 130, - 1, - 82, - 100, - 32, - 122, - 101, - 114, - 111, - 96, - 216, - 27, - 96, - 100, - 130, - 1, - 82, - 96, - 132, - 1, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 97, - 2, - 101, - 130, - 134, - 134, - 132, - 3, - 97, - 3, - 90, - 86, - 91, - 96, - 0, - 51, - 97, - 2, - 64, - 129, - 133, - 133, - 97, - 4, - 248, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 145, - 130, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 1, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 147, - 144, - 148, - 22, - 130, - 82, - 145, - 144, - 145, - 82, - 32, - 84, - 144, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 131, - 22, - 97, - 3, - 188, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 36, - 128, - 130, - 1, - 82, - 127, - 69, - 82, - 67, - 50, - 48, - 58, - 32, - 97, - 112, - 112, - 114, - 111, - 118, - 101, - 32, - 102, - 114, - 111, - 109, - 32, - 116, - 104, - 101, - 32, - 122, - 101, - 114, - 111, - 32, - 97, - 100, - 100, - 96, - 68, - 130, - 1, - 82, - 99, - 114, - 101, - 115, - 115, - 96, - 224, - 27, - 96, - 100, - 130, - 1, - 82, - 96, - 132, - 1, - 97, - 3, - 11, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 130, - 22, - 97, - 4, - 29, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 34, - 96, - 36, - 130, - 1, - 82, - 127, - 69, - 82, - 67, - 50, - 48, - 58, - 32, - 97, - 112, - 112, - 114, - 111, - 118, - 101, - 32, - 116, - 111, - 32, - 116, - 104, - 101, - 32, - 122, - 101, - 114, - 111, - 32, - 97, - 100, - 100, - 114, - 101, - 96, - 68, - 130, - 1, - 82, - 97, - 115, - 115, - 96, - 240, - 27, - 96, - 100, - 130, - 1, - 82, - 96, - 132, - 1, - 97, - 3, - 11, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 131, - 129, - 22, - 96, - 0, - 129, - 129, - 82, - 96, - 1, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 148, - 135, - 22, - 128, - 132, - 82, - 148, - 130, - 82, - 145, - 130, - 144, - 32, - 133, - 144, - 85, - 144, - 81, - 132, - 129, - 82, - 127, - 140, - 91, - 225, - 229, - 235, - 236, - 125, - 91, - 209, - 79, - 113, - 66, - 125, - 30, - 132, - 243, - 221, - 3, - 20, - 192, - 247, - 178, - 41, - 30, - 91, - 32, - 10, - 200, - 199, - 195, - 185, - 37, - 145, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 163, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 97, - 4, - 138, - 132, - 132, - 97, - 3, - 47, - 86, - 91, - 144, - 80, - 96, - 0, - 25, - 129, - 20, - 97, - 4, - 242, - 87, - 129, - 129, - 16, - 21, - 97, - 4, - 229, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 29, - 96, - 36, - 130, - 1, - 82, - 127, - 69, - 82, - 67, - 50, - 48, - 58, - 32, - 105, - 110, - 115, - 117, - 102, - 102, - 105, - 99, - 105, - 101, - 110, - 116, - 32, - 97, - 108, - 108, - 111, - 119, - 97, - 110, - 99, - 101, - 0, - 0, - 0, - 96, - 68, - 130, - 1, - 82, - 96, - 100, - 1, - 97, - 3, - 11, - 86, - 91, - 97, - 4, - 242, - 132, - 132, - 132, - 132, - 3, - 97, - 3, - 90, - 86, - 91, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 131, - 22, - 97, - 5, - 92, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 37, - 96, - 36, - 130, - 1, - 82, - 127, - 69, - 82, - 67, - 50, - 48, - 58, - 32, - 116, - 114, - 97, - 110, - 115, - 102, - 101, - 114, - 32, - 102, - 114, - 111, - 109, - 32, - 116, - 104, - 101, - 32, - 122, - 101, - 114, - 111, - 32, - 97, - 100, - 96, - 68, - 130, - 1, - 82, - 100, - 100, - 114, - 101, - 115, - 115, - 96, - 216, - 27, - 96, - 100, - 130, - 1, - 82, - 96, - 132, - 1, - 97, - 3, - 11, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 130, - 22, - 97, - 5, - 190, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 35, - 96, - 36, - 130, - 1, - 82, - 127, - 69, - 82, - 67, - 50, - 48, - 58, - 32, - 116, - 114, - 97, - 110, - 115, - 102, - 101, - 114, - 32, - 116, - 111, - 32, - 116, - 104, - 101, - 32, - 122, - 101, - 114, - 111, - 32, - 97, - 100, - 100, - 114, - 96, - 68, - 130, - 1, - 82, - 98, - 101, - 115, - 115, - 96, - 232, - 27, - 96, - 100, - 130, - 1, - 82, - 96, - 132, - 1, - 97, - 3, - 11, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 131, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 32, - 129, - 144, - 82, - 96, - 64, - 144, - 32, - 84, - 129, - 129, - 16, - 21, - 97, - 6, - 54, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 38, - 96, - 36, - 130, - 1, - 82, - 127, - 69, - 82, - 67, - 50, - 48, - 58, - 32, - 116, - 114, - 97, - 110, - 115, - 102, - 101, - 114, - 32, - 97, - 109, - 111, - 117, - 110, - 116, - 32, - 101, - 120, - 99, - 101, - 101, - 100, - 115, - 32, - 98, - 96, - 68, - 130, - 1, - 82, - 101, - 97, - 108, - 97, - 110, - 99, - 101, - 96, - 208, - 27, - 96, - 100, - 130, - 1, - 82, - 96, - 132, - 1, - 97, - 3, - 11, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 132, - 129, - 22, - 96, - 0, - 129, - 129, - 82, - 96, - 32, - 129, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 135, - 135, - 3, - 144, - 85, - 147, - 135, - 22, - 128, - 131, - 82, - 145, - 132, - 144, - 32, - 128, - 84, - 135, - 1, - 144, - 85, - 146, - 81, - 133, - 129, - 82, - 144, - 146, - 127, - 221, - 242, - 82, - 173, - 27, - 226, - 200, - 155, - 105, - 194, - 176, - 104, - 252, - 55, - 141, - 170, - 149, - 43, - 167, - 241, - 99, - 196, - 161, - 22, - 40, - 245, - 90, - 77, - 245, - 35, - 179, - 239, - 145, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 163, - 97, - 4, - 242, - 86, - 91, - 96, - 0, - 96, - 32, - 128, - 131, - 82, - 131, - 81, - 128, - 130, - 133, - 1, - 82, - 96, - 0, - 91, - 129, - 129, - 16, - 21, - 97, - 6, - 201, - 87, - 133, - 129, - 1, - 131, - 1, - 81, - 133, - 130, - 1, - 96, - 64, - 1, - 82, - 130, - 1, - 97, - 6, - 173, - 86, - 91, - 80, - 96, - 0, - 96, - 64, - 130, - 134, - 1, - 1, - 82, - 96, - 64, - 96, - 31, - 25, - 96, - 31, - 131, - 1, - 22, - 133, - 1, - 1, - 146, - 80, - 80, - 80, - 146, - 145, - 80, - 80, - 86, - 91, - 128, - 53, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 129, - 22, - 129, - 20, - 97, - 7, - 1, - 87, - 96, - 0, - 128, - 253, - 91, - 145, - 144, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 64, - 131, - 133, - 3, - 18, - 21, - 97, - 7, - 25, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 7, - 34, - 131, - 97, - 6, - 234, - 86, - 91, - 148, - 96, - 32, - 147, - 144, - 147, - 1, - 53, - 147, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 96, - 96, - 132, - 134, - 3, - 18, - 21, - 97, - 7, - 69, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 7, - 78, - 132, - 97, - 6, - 234, - 86, - 91, - 146, - 80, - 97, - 7, - 92, - 96, - 32, - 133, - 1, - 97, - 6, - 234, - 86, - 91, - 145, - 80, - 96, - 64, - 132, - 1, - 53, - 144, - 80, - 146, - 80, - 146, - 80, - 146, - 86, - 91, - 96, - 0, - 96, - 32, - 130, - 132, - 3, - 18, - 21, - 97, - 7, - 126, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 7, - 135, - 130, - 97, - 6, - 234, - 86, - 91, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 64, - 131, - 133, - 3, - 18, - 21, - 97, - 7, - 161, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 7, - 170, - 131, - 97, - 6, - 234, - 86, - 91, - 145, - 80, - 97, - 7, - 184, - 96, - 32, - 132, - 1, - 97, - 6, - 234, - 86, - 91, - 144, - 80, - 146, - 80, - 146, - 144, - 80, - 86, - 91, - 96, - 1, - 129, - 129, - 28, - 144, - 130, - 22, - 128, - 97, - 7, - 213, - 87, - 96, - 127, - 130, - 22, - 145, - 80, - 91, - 96, - 32, - 130, - 16, - 129, - 3, - 97, - 7, - 245, - 87, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 34, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 80, - 145, - 144, - 80, - 86, - 91, - 128, - 130, - 1, - 128, - 130, - 17, - 21, - 97, - 2, - 70, - 87, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 17, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 254, - 162, - 100, - 105, - 112, - 102, - 115, - 88, - 34, - 18, - 32, - 152, - 108, - 46, - 235, - 149, - 232, - 158, - 70, - 135, - 4, - 97, - 133, - 183, - 143, - 90, - 171, - 132, - 145, - 136, - 153, - 102, - 165, - 158, - 35, - 83, - 97, - 171, - 107, - 141, - 170, - 134, - 101, - 100, - 115, - 111, - 108, - 99, - 67, - 0, - 8, - 19, - 0, - 51, - ]; - ///The deployed bytecode of the contract. - pub static ERC20_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( - __DEPLOYED_BYTECODE, - ); pub struct ERC20(::ethers::contract::Contract); impl ::core::clone::Clone for ERC20 { fn clone(&self) -> Self { @@ -5082,53 +52,22 @@ pub mod erc20 { ), ) } - /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. - /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction - /// - /// Notes: - /// - If there are no constructor arguments, you should pass `()` as the argument. - /// - The default poll duration is 7 seconds. - /// - The default number of confirmations is 1 block. - /// - /// - /// # Example - /// - /// Generate contract bindings with `abigen!` and deploy a new contract instance. - /// - /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. - /// - /// ```ignore - /// # async fn deploy(client: ::std::sync::Arc) { - /// abigen!(Greeter, "../greeter.json"); - /// - /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); - /// let msg = greeter_contract.greet().call().await.unwrap(); - /// # } - /// ``` - pub fn deploy( - client: ::std::sync::Arc, - constructor_args: T, - ) -> ::core::result::Result< - ::ethers::contract::builders::ContractDeployer, - ::ethers::contract::ContractError, - > { - let factory = ::ethers::contract::ContractFactory::new( - ERC20_ABI.clone(), - ERC20_BYTECODE.clone().into(), - client, - ); - let deployer = factory.deploy(constructor_args)?; - let deployer = ::ethers::contract::ContractDeployer::new(deployer); - Ok(deployer) + ///Calls the contract's `DOMAIN_SEPARATOR` (0x3644e515) function + pub fn domain_separator( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([54, 68, 229, 21], ()) + .expect("method not found (this should never happen)") } ///Calls the contract's `allowance` (0xdd62ed3e) function pub fn allowance( &self, - owner: ::ethers::core::types::Address, - spender: ::ethers::core::types::Address, + p0: ::ethers::core::types::Address, + p1: ::ethers::core::types::Address, ) -> ::ethers::contract::builders::ContractCall { self.0 - .method_hash([221, 98, 237, 62], (owner, spender)) + .method_hash([221, 98, 237, 62], (p0, p1)) .expect("method not found (this should never happen)") } ///Calls the contract's `approve` (0x095ea7b3) function @@ -5144,10 +83,10 @@ pub mod erc20 { ///Calls the contract's `balanceOf` (0x70a08231) function pub fn balance_of( &self, - account: ::ethers::core::types::Address, + p0: ::ethers::core::types::Address, ) -> ::ethers::contract::builders::ContractCall { self.0 - .method_hash([112, 160, 130, 49], account) + .method_hash([112, 160, 130, 49], p0) .expect("method not found (this should never happen)") } ///Calls the contract's `decimals` (0x313ce567) function @@ -5156,32 +95,39 @@ pub mod erc20 { .method_hash([49, 60, 229, 103], ()) .expect("method not found (this should never happen)") } - ///Calls the contract's `decreaseAllowance` (0xa457c2d7) function - pub fn decrease_allowance( + ///Calls the contract's `name` (0x06fdde03) function + pub fn name( &self, - spender: ::ethers::core::types::Address, - subtracted_value: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { + ) -> ::ethers::contract::builders::ContractCall { self.0 - .method_hash([164, 87, 194, 215], (spender, subtracted_value)) + .method_hash([6, 253, 222, 3], ()) .expect("method not found (this should never happen)") } - ///Calls the contract's `increaseAllowance` (0x39509351) function - pub fn increase_allowance( + ///Calls the contract's `nonces` (0x7ecebe00) function + pub fn nonces( &self, - spender: ::ethers::core::types::Address, - added_value: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { + p0: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { self.0 - .method_hash([57, 80, 147, 81], (spender, added_value)) + .method_hash([126, 206, 190, 0], p0) .expect("method not found (this should never happen)") } - ///Calls the contract's `name` (0x06fdde03) function - pub fn name( + ///Calls the contract's `permit` (0xd505accf) function + pub fn permit( &self, - ) -> ::ethers::contract::builders::ContractCall { + owner: ::ethers::core::types::Address, + spender: ::ethers::core::types::Address, + value: ::ethers::core::types::U256, + deadline: ::ethers::core::types::U256, + v: u8, + r: [u8; 32], + s: [u8; 32], + ) -> ::ethers::contract::builders::ContractCall { self.0 - .method_hash([6, 253, 222, 3], ()) + .method_hash( + [213, 5, 172, 207], + (owner, spender, value, deadline, v, r, s), + ) .expect("method not found (this should never happen)") } ///Calls the contract's `symbol` (0x95d89b41) function @@ -5270,7 +216,7 @@ pub mod erc20 { pub owner: ::ethers::core::types::Address, #[ethevent(indexed)] pub spender: ::ethers::core::types::Address, - pub value: ::ethers::core::types::U256, + pub amount: ::ethers::core::types::U256, } #[derive( Clone, @@ -5288,7 +234,7 @@ pub mod erc20 { pub from: ::ethers::core::types::Address, #[ethevent(indexed)] pub to: ::ethers::core::types::Address, - pub value: ::ethers::core::types::U256, + pub amount: ::ethers::core::types::U256, } ///Container type for all of the contract's events #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] @@ -5327,6 +273,19 @@ pub mod erc20 { Self::TransferFilter(value) } } + ///Container type for all input parameters for the `DOMAIN_SEPARATOR` function with signature `DOMAIN_SEPARATOR()` and selector `0x3644e515` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "DOMAIN_SEPARATOR", abi = "DOMAIN_SEPARATOR()")] + pub struct DomainSeparatorCall; ///Container type for all input parameters for the `allowance` function with signature `allowance(address,address)` and selector `0xdd62ed3e` #[derive( Clone, @@ -5339,10 +298,10 @@ pub mod erc20 { Hash )] #[ethcall(name = "allowance", abi = "allowance(address,address)")] - pub struct AllowanceCall { - pub owner: ::ethers::core::types::Address, - pub spender: ::ethers::core::types::Address, - } + pub struct AllowanceCall( + pub ::ethers::core::types::Address, + pub ::ethers::core::types::Address, + ); ///Container type for all input parameters for the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` #[derive( Clone, @@ -5371,9 +330,7 @@ pub mod erc20 { Hash )] #[ethcall(name = "balanceOf", abi = "balanceOf(address)")] - pub struct BalanceOfCall { - pub account: ::ethers::core::types::Address, - } + pub struct BalanceOfCall(pub ::ethers::core::types::Address); ///Container type for all input parameters for the `decimals` function with signature `decimals()` and selector `0x313ce567` #[derive( Clone, @@ -5387,7 +344,7 @@ pub mod erc20 { )] #[ethcall(name = "decimals", abi = "decimals()")] pub struct DecimalsCall; - ///Container type for all input parameters for the `decreaseAllowance` function with signature `decreaseAllowance(address,uint256)` and selector `0xa457c2d7` + ///Container type for all input parameters for the `name` function with signature `name()` and selector `0x06fdde03` #[derive( Clone, ::ethers::contract::EthCall, @@ -5398,12 +355,9 @@ pub mod erc20 { Eq, Hash )] - #[ethcall(name = "decreaseAllowance", abi = "decreaseAllowance(address,uint256)")] - pub struct DecreaseAllowanceCall { - pub spender: ::ethers::core::types::Address, - pub subtracted_value: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `increaseAllowance` function with signature `increaseAllowance(address,uint256)` and selector `0x39509351` + #[ethcall(name = "name", abi = "name()")] + pub struct NameCall; + ///Container type for all input parameters for the `nonces` function with signature `nonces(address)` and selector `0x7ecebe00` #[derive( Clone, ::ethers::contract::EthCall, @@ -5414,12 +368,9 @@ pub mod erc20 { Eq, Hash )] - #[ethcall(name = "increaseAllowance", abi = "increaseAllowance(address,uint256)")] - pub struct IncreaseAllowanceCall { - pub spender: ::ethers::core::types::Address, - pub added_value: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `name` function with signature `name()` and selector `0x06fdde03` + #[ethcall(name = "nonces", abi = "nonces(address)")] + pub struct NoncesCall(pub ::ethers::core::types::Address); + ///Container type for all input parameters for the `permit` function with signature `permit(address,address,uint256,uint256,uint8,bytes32,bytes32)` and selector `0xd505accf` #[derive( Clone, ::ethers::contract::EthCall, @@ -5430,8 +381,19 @@ pub mod erc20 { Eq, Hash )] - #[ethcall(name = "name", abi = "name()")] - pub struct NameCall; + #[ethcall( + name = "permit", + abi = "permit(address,address,uint256,uint256,uint8,bytes32,bytes32)" + )] + pub struct PermitCall { + pub owner: ::ethers::core::types::Address, + pub spender: ::ethers::core::types::Address, + pub value: ::ethers::core::types::U256, + pub deadline: ::ethers::core::types::U256, + pub v: u8, + pub r: [u8; 32], + pub s: [u8; 32], + } ///Container type for all input parameters for the `symbol` function with signature `symbol()` and selector `0x95d89b41` #[derive( Clone, @@ -5494,13 +456,14 @@ pub mod erc20 { ///Container type for all of the contract's call #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] pub enum ERC20Calls { + DomainSeparator(DomainSeparatorCall), Allowance(AllowanceCall), Approve(ApproveCall), BalanceOf(BalanceOfCall), Decimals(DecimalsCall), - DecreaseAllowance(DecreaseAllowanceCall), - IncreaseAllowance(IncreaseAllowanceCall), Name(NameCall), + Nonces(NoncesCall), + Permit(PermitCall), Symbol(SymbolCall), TotalSupply(TotalSupplyCall), Transfer(TransferCall), @@ -5511,6 +474,10 @@ pub mod erc20 { data: impl AsRef<[u8]>, ) -> ::core::result::Result { let data = data.as_ref(); + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::DomainSeparator(decoded)); + } if let Ok(decoded) = ::decode(data) { return Ok(Self::Allowance(decoded)); @@ -5528,20 +495,16 @@ pub mod erc20 { return Ok(Self::Decimals(decoded)); } if let Ok(decoded) - = ::decode( - data, - ) { - return Ok(Self::DecreaseAllowance(decoded)); + = ::decode(data) { + return Ok(Self::Name(decoded)); } if let Ok(decoded) - = ::decode( - data, - ) { - return Ok(Self::IncreaseAllowance(decoded)); + = ::decode(data) { + return Ok(Self::Nonces(decoded)); } if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Name(decoded)); + = ::decode(data) { + return Ok(Self::Permit(decoded)); } if let Ok(decoded) = ::decode(data) { @@ -5565,6 +528,9 @@ pub mod erc20 { impl ::ethers::core::abi::AbiEncode for ERC20Calls { fn encode(self) -> Vec { match self { + Self::DomainSeparator(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } Self::Allowance(element) => { ::ethers::core::abi::AbiEncode::encode(element) } @@ -5575,13 +541,9 @@ pub mod erc20 { Self::Decimals(element) => { ::ethers::core::abi::AbiEncode::encode(element) } - Self::DecreaseAllowance(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::IncreaseAllowance(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } Self::Name(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Nonces(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Permit(element) => ::ethers::core::abi::AbiEncode::encode(element), Self::Symbol(element) => ::ethers::core::abi::AbiEncode::encode(element), Self::TotalSupply(element) => { ::ethers::core::abi::AbiEncode::encode(element) @@ -5598,13 +560,14 @@ pub mod erc20 { impl ::core::fmt::Display for ERC20Calls { fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { match self { + Self::DomainSeparator(element) => ::core::fmt::Display::fmt(element, f), Self::Allowance(element) => ::core::fmt::Display::fmt(element, f), Self::Approve(element) => ::core::fmt::Display::fmt(element, f), Self::BalanceOf(element) => ::core::fmt::Display::fmt(element, f), Self::Decimals(element) => ::core::fmt::Display::fmt(element, f), - Self::DecreaseAllowance(element) => ::core::fmt::Display::fmt(element, f), - Self::IncreaseAllowance(element) => ::core::fmt::Display::fmt(element, f), Self::Name(element) => ::core::fmt::Display::fmt(element, f), + Self::Nonces(element) => ::core::fmt::Display::fmt(element, f), + Self::Permit(element) => ::core::fmt::Display::fmt(element, f), Self::Symbol(element) => ::core::fmt::Display::fmt(element, f), Self::TotalSupply(element) => ::core::fmt::Display::fmt(element, f), Self::Transfer(element) => ::core::fmt::Display::fmt(element, f), @@ -5612,6 +575,11 @@ pub mod erc20 { } } } + impl ::core::convert::From for ERC20Calls { + fn from(value: DomainSeparatorCall) -> Self { + Self::DomainSeparator(value) + } + } impl ::core::convert::From for ERC20Calls { fn from(value: AllowanceCall) -> Self { Self::Allowance(value) @@ -5632,19 +600,19 @@ pub mod erc20 { Self::Decimals(value) } } - impl ::core::convert::From for ERC20Calls { - fn from(value: DecreaseAllowanceCall) -> Self { - Self::DecreaseAllowance(value) + impl ::core::convert::From for ERC20Calls { + fn from(value: NameCall) -> Self { + Self::Name(value) } } - impl ::core::convert::From for ERC20Calls { - fn from(value: IncreaseAllowanceCall) -> Self { - Self::IncreaseAllowance(value) + impl ::core::convert::From for ERC20Calls { + fn from(value: NoncesCall) -> Self { + Self::Nonces(value) } } - impl ::core::convert::From for ERC20Calls { - fn from(value: NameCall) -> Self { - Self::Name(value) + impl ::core::convert::From for ERC20Calls { + fn from(value: PermitCall) -> Self { + Self::Permit(value) } } impl ::core::convert::From for ERC20Calls { @@ -5667,7 +635,7 @@ pub mod erc20 { Self::TransferFrom(value) } } - ///Container type for all return fields from the `allowance` function with signature `allowance(address,address)` and selector `0xdd62ed3e` + ///Container type for all return fields from the `DOMAIN_SEPARATOR` function with signature `DOMAIN_SEPARATOR()` and selector `0x3644e515` #[derive( Clone, ::ethers::contract::EthAbiType, @@ -5678,8 +646,8 @@ pub mod erc20 { Eq, Hash )] - pub struct AllowanceReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` + pub struct DomainSeparatorReturn(pub [u8; 32]); + ///Container type for all return fields from the `allowance` function with signature `allowance(address,address)` and selector `0xdd62ed3e` #[derive( Clone, ::ethers::contract::EthAbiType, @@ -5690,8 +658,8 @@ pub mod erc20 { Eq, Hash )] - pub struct ApproveReturn(pub bool); - ///Container type for all return fields from the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` + pub struct AllowanceReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` #[derive( Clone, ::ethers::contract::EthAbiType, @@ -5702,8 +670,8 @@ pub mod erc20 { Eq, Hash )] - pub struct BalanceOfReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `decimals` function with signature `decimals()` and selector `0x313ce567` + pub struct ApproveReturn(pub bool); + ///Container type for all return fields from the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` #[derive( Clone, ::ethers::contract::EthAbiType, @@ -5714,8 +682,8 @@ pub mod erc20 { Eq, Hash )] - pub struct DecimalsReturn(pub u8); - ///Container type for all return fields from the `decreaseAllowance` function with signature `decreaseAllowance(address,uint256)` and selector `0xa457c2d7` + pub struct BalanceOfReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `decimals` function with signature `decimals()` and selector `0x313ce567` #[derive( Clone, ::ethers::contract::EthAbiType, @@ -5726,8 +694,8 @@ pub mod erc20 { Eq, Hash )] - pub struct DecreaseAllowanceReturn(pub bool); - ///Container type for all return fields from the `increaseAllowance` function with signature `increaseAllowance(address,uint256)` and selector `0x39509351` + pub struct DecimalsReturn(pub u8); + ///Container type for all return fields from the `name` function with signature `name()` and selector `0x06fdde03` #[derive( Clone, ::ethers::contract::EthAbiType, @@ -5738,8 +706,8 @@ pub mod erc20 { Eq, Hash )] - pub struct IncreaseAllowanceReturn(pub bool); - ///Container type for all return fields from the `name` function with signature `name()` and selector `0x06fdde03` + pub struct NameReturn(pub ::std::string::String); + ///Container type for all return fields from the `nonces` function with signature `nonces(address)` and selector `0x7ecebe00` #[derive( Clone, ::ethers::contract::EthAbiType, @@ -5750,7 +718,7 @@ pub mod erc20 { Eq, Hash )] - pub struct NameReturn(pub ::std::string::String); + pub struct NoncesReturn(pub ::ethers::core::types::U256); ///Container type for all return fields from the `symbol` function with signature `symbol()` and selector `0x95d89b41` #[derive( Clone, diff --git a/crates/bindings/src/fee_on_transfer_token.rs b/crates/bindings/src/fee_on_transfer_token.rs new file mode 100644 index 00000000..86661f56 --- /dev/null +++ b/crates/bindings/src/fee_on_transfer_token.rs @@ -0,0 +1,8349 @@ +pub use fee_on_transfer_token::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod fee_on_transfer_token { + #[rustfmt::skip] + const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\",\"components\":[]},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Approval\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Transfer\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"burn\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"mint\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\",\"components\":[]},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\",\"components\":[]},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"permit\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]}]"; + ///The parsed JSON ABI of the contract. + pub static FEEONTRANSFERTOKEN_ABI: ::ethers::contract::Lazy< + ::ethers::core::abi::Abi, + > = ::ethers::contract::Lazy::new(|| { + ::ethers::core::utils::__serde_json::from_str(__ABI) + .expect("ABI is always valid") + }); + #[rustfmt::skip] + const __BYTECODE: &[u8] = &[ + 96, + 224, + 96, + 64, + 82, + 52, + 128, + 21, + 98, + 0, + 0, + 17, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 96, + 64, + 81, + 98, + 0, + 16, + 163, + 56, + 3, + 128, + 98, + 0, + 16, + 163, + 131, + 57, + 129, + 1, + 96, + 64, + 129, + 144, + 82, + 98, + 0, + 0, + 52, + 145, + 98, + 0, + 2, + 160, + 86, + 91, + 130, + 130, + 130, + 130, + 130, + 130, + 130, + 96, + 0, + 144, + 128, + 81, + 144, + 96, + 32, + 1, + 144, + 98, + 0, + 0, + 82, + 146, + 145, + 144, + 98, + 0, + 1, + 45, + 86, + 91, + 80, + 129, + 81, + 98, + 0, + 0, + 104, + 144, + 96, + 1, + 144, + 96, + 32, + 133, + 1, + 144, + 98, + 0, + 1, + 45, + 86, + 91, + 80, + 96, + 255, + 129, + 22, + 96, + 128, + 82, + 70, + 96, + 160, + 82, + 98, + 0, + 0, + 126, + 98, + 0, + 0, + 145, + 86, + 91, + 96, + 192, + 82, + 80, + 98, + 0, + 4, + 4, + 151, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 127, + 139, + 115, + 195, + 198, + 155, + 184, + 254, + 61, + 81, + 46, + 204, + 76, + 247, + 89, + 204, + 121, + 35, + 159, + 123, + 23, + 155, + 15, + 250, + 202, + 169, + 167, + 93, + 82, + 43, + 57, + 64, + 15, + 96, + 0, + 96, + 64, + 81, + 98, + 0, + 0, + 197, + 145, + 144, + 98, + 0, + 3, + 97, + 86, + 91, + 96, + 64, + 128, + 81, + 145, + 130, + 144, + 3, + 130, + 32, + 96, + 32, + 131, + 1, + 147, + 144, + 147, + 82, + 129, + 1, + 145, + 144, + 145, + 82, + 127, + 200, + 158, + 253, + 170, + 84, + 192, + 242, + 12, + 122, + 223, + 97, + 40, + 130, + 223, + 9, + 80, + 245, + 169, + 81, + 99, + 126, + 3, + 7, + 205, + 203, + 76, + 103, + 47, + 41, + 139, + 139, + 198, + 96, + 96, + 130, + 1, + 82, + 70, + 96, + 128, + 130, + 1, + 82, + 48, + 96, + 160, + 130, + 1, + 82, + 96, + 192, + 1, + 96, + 64, + 81, + 96, + 32, + 129, + 131, + 3, + 3, + 129, + 82, + 144, + 96, + 64, + 82, + 128, + 81, + 144, + 96, + 32, + 1, + 32, + 144, + 80, + 144, + 86, + 91, + 130, + 128, + 84, + 98, + 0, + 1, + 59, + 144, + 98, + 0, + 3, + 37, + 86, + 91, + 144, + 96, + 0, + 82, + 96, + 32, + 96, + 0, + 32, + 144, + 96, + 31, + 1, + 96, + 32, + 144, + 4, + 129, + 1, + 146, + 130, + 98, + 0, + 1, + 95, + 87, + 96, + 0, + 133, + 85, + 98, + 0, + 1, + 170, + 86, + 91, + 130, + 96, + 31, + 16, + 98, + 0, + 1, + 122, + 87, + 128, + 81, + 96, + 255, + 25, + 22, + 131, + 128, + 1, + 23, + 133, + 85, + 98, + 0, + 1, + 170, + 86, + 91, + 130, + 128, + 1, + 96, + 1, + 1, + 133, + 85, + 130, + 21, + 98, + 0, + 1, + 170, + 87, + 145, + 130, + 1, + 91, + 130, + 129, + 17, + 21, + 98, + 0, + 1, + 170, + 87, + 130, + 81, + 130, + 85, + 145, + 96, + 32, + 1, + 145, + 144, + 96, + 1, + 1, + 144, + 98, + 0, + 1, + 141, + 86, + 91, + 80, + 98, + 0, + 1, + 184, + 146, + 145, + 80, + 98, + 0, + 1, + 188, + 86, + 91, + 80, + 144, + 86, + 91, + 91, + 128, + 130, + 17, + 21, + 98, + 0, + 1, + 184, + 87, + 96, + 0, + 129, + 85, + 96, + 1, + 1, + 98, + 0, + 1, + 189, + 86, + 91, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 65, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 96, + 0, + 130, + 96, + 31, + 131, + 1, + 18, + 98, + 0, + 1, + 251, + 87, + 96, + 0, + 128, + 253, + 91, + 129, + 81, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 128, + 130, + 17, + 21, + 98, + 0, + 2, + 24, + 87, + 98, + 0, + 2, + 24, + 98, + 0, + 1, + 211, + 86, + 91, + 96, + 64, + 81, + 96, + 31, + 131, + 1, + 96, + 31, + 25, + 144, + 129, + 22, + 96, + 63, + 1, + 22, + 129, + 1, + 144, + 130, + 130, + 17, + 129, + 131, + 16, + 23, + 21, + 98, + 0, + 2, + 67, + 87, + 98, + 0, + 2, + 67, + 98, + 0, + 1, + 211, + 86, + 91, + 129, + 96, + 64, + 82, + 131, + 129, + 82, + 96, + 32, + 146, + 80, + 134, + 131, + 133, + 136, + 1, + 1, + 17, + 21, + 98, + 0, + 2, + 96, + 87, + 96, + 0, + 128, + 253, + 91, + 96, + 0, + 145, + 80, + 91, + 131, + 130, + 16, + 21, + 98, + 0, + 2, + 132, + 87, + 133, + 130, + 1, + 131, + 1, + 81, + 129, + 131, + 1, + 132, + 1, + 82, + 144, + 130, + 1, + 144, + 98, + 0, + 2, + 101, + 86, + 91, + 131, + 130, + 17, + 21, + 98, + 0, + 2, + 150, + 87, + 96, + 0, + 131, + 133, + 131, + 1, + 1, + 82, + 91, + 150, + 149, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 96, + 96, + 132, + 134, + 3, + 18, + 21, + 98, + 0, + 2, + 182, + 87, + 96, + 0, + 128, + 253, + 91, + 131, + 81, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 128, + 130, + 17, + 21, + 98, + 0, + 2, + 206, + 87, + 96, + 0, + 128, + 253, + 91, + 98, + 0, + 2, + 220, + 135, + 131, + 136, + 1, + 98, + 0, + 1, + 233, + 86, + 91, + 148, + 80, + 96, + 32, + 134, + 1, + 81, + 145, + 80, + 128, + 130, + 17, + 21, + 98, + 0, + 2, + 243, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 98, + 0, + 3, + 2, + 134, + 130, + 135, + 1, + 98, + 0, + 1, + 233, + 86, + 91, + 146, + 80, + 80, + 96, + 64, + 132, + 1, + 81, + 96, + 255, + 129, + 22, + 129, + 20, + 98, + 0, + 3, + 26, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 145, + 80, + 80, + 146, + 80, + 146, + 80, + 146, + 86, + 91, + 96, + 1, + 129, + 129, + 28, + 144, + 130, + 22, + 128, + 98, + 0, + 3, + 58, + 87, + 96, + 127, + 130, + 22, + 145, + 80, + 91, + 96, + 32, + 130, + 16, + 129, + 3, + 98, + 0, + 3, + 91, + 87, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 34, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 80, + 145, + 144, + 80, + 86, + 91, + 96, + 0, + 128, + 131, + 84, + 129, + 96, + 1, + 130, + 129, + 28, + 145, + 80, + 128, + 131, + 22, + 128, + 98, + 0, + 3, + 126, + 87, + 96, + 127, + 131, + 22, + 146, + 80, + 91, + 96, + 32, + 128, + 132, + 16, + 130, + 3, + 98, + 0, + 3, + 158, + 87, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 134, + 82, + 96, + 34, + 96, + 4, + 82, + 96, + 36, + 134, + 253, + 91, + 129, + 128, + 21, + 98, + 0, + 3, + 181, + 87, + 96, + 1, + 129, + 20, + 98, + 0, + 3, + 199, + 87, + 98, + 0, + 3, + 246, + 86, + 91, + 96, + 255, + 25, + 134, + 22, + 137, + 82, + 132, + 137, + 1, + 150, + 80, + 98, + 0, + 3, + 246, + 86, + 91, + 96, + 0, + 138, + 129, + 82, + 96, + 32, + 144, + 32, + 96, + 0, + 91, + 134, + 129, + 16, + 21, + 98, + 0, + 3, + 238, + 87, + 129, + 84, + 139, + 130, + 1, + 82, + 144, + 133, + 1, + 144, + 131, + 1, + 98, + 0, + 3, + 211, + 86, + 91, + 80, + 80, + 132, + 137, + 1, + 150, + 80, + 91, + 80, + 148, + 152, + 151, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 128, + 81, + 96, + 160, + 81, + 96, + 192, + 81, + 97, + 12, + 111, + 98, + 0, + 4, + 52, + 96, + 0, + 57, + 96, + 0, + 97, + 3, + 243, + 1, + 82, + 96, + 0, + 97, + 3, + 190, + 1, + 82, + 96, + 0, + 97, + 1, + 95, + 1, + 82, + 97, + 12, + 111, + 96, + 0, + 243, + 254, + 96, + 128, + 96, + 64, + 82, + 52, + 128, + 21, + 97, + 0, + 16, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 96, + 4, + 54, + 16, + 97, + 0, + 234, + 87, + 96, + 0, + 53, + 96, + 224, + 28, + 128, + 99, + 112, + 160, + 130, + 49, + 17, + 97, + 0, + 140, + 87, + 128, + 99, + 157, + 194, + 159, + 172, + 17, + 97, + 0, + 102, + 87, + 128, + 99, + 157, + 194, + 159, + 172, + 20, + 97, + 1, + 248, + 87, + 128, + 99, + 169, + 5, + 156, + 187, + 20, + 97, + 2, + 11, + 87, + 128, + 99, + 213, + 5, + 172, + 207, + 20, + 97, + 2, + 30, + 87, + 128, + 99, + 221, + 98, + 237, + 62, + 20, + 97, + 2, + 49, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 112, + 160, + 130, + 49, + 20, + 97, + 1, + 176, + 87, + 128, + 99, + 126, + 206, + 190, + 0, + 20, + 97, + 1, + 208, + 87, + 128, + 99, + 149, + 216, + 155, + 65, + 20, + 97, + 1, + 240, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 35, + 184, + 114, + 221, + 17, + 97, + 0, + 200, + 87, + 128, + 99, + 35, + 184, + 114, + 221, + 20, + 97, + 1, + 71, + 87, + 128, + 99, + 49, + 60, + 229, + 103, + 20, + 97, + 1, + 90, + 87, + 128, + 99, + 54, + 68, + 229, + 21, + 20, + 97, + 1, + 147, + 87, + 128, + 99, + 64, + 193, + 15, + 25, + 20, + 97, + 1, + 155, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 6, + 253, + 222, + 3, + 20, + 97, + 0, + 239, + 87, + 128, + 99, + 9, + 94, + 167, + 179, + 20, + 97, + 1, + 13, + 87, + 128, + 99, + 24, + 22, + 13, + 221, + 20, + 97, + 1, + 48, + 87, + 91, + 96, + 0, + 128, + 253, + 91, + 97, + 0, + 247, + 97, + 2, + 92, + 86, + 91, + 96, + 64, + 81, + 97, + 1, + 4, + 145, + 144, + 97, + 9, + 31, + 86, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 243, + 91, + 97, + 1, + 32, + 97, + 1, + 27, + 54, + 96, + 4, + 97, + 9, + 144, + 86, + 91, + 97, + 2, + 234, + 86, + 91, + 96, + 64, + 81, + 144, + 21, + 21, + 129, + 82, + 96, + 32, + 1, + 97, + 1, + 4, + 86, + 91, + 97, + 1, + 57, + 96, + 2, + 84, + 129, + 86, + 91, + 96, + 64, + 81, + 144, + 129, + 82, + 96, + 32, + 1, + 97, + 1, + 4, + 86, + 91, + 97, + 1, + 32, + 97, + 1, + 85, + 54, + 96, + 4, + 97, + 9, + 186, + 86, + 91, + 97, + 3, + 86, + 86, + 91, + 97, + 1, + 129, + 127, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 129, + 86, + 91, + 96, + 64, + 81, + 96, + 255, + 144, + 145, + 22, + 129, + 82, + 96, + 32, + 1, + 97, + 1, + 4, + 86, + 91, + 97, + 1, + 57, + 97, + 3, + 186, + 86, + 91, + 97, + 1, + 174, + 97, + 1, + 169, + 54, + 96, + 4, + 97, + 9, + 144, + 86, + 91, + 97, + 4, + 21, + 86, + 91, + 0, + 91, + 97, + 1, + 57, + 97, + 1, + 190, + 54, + 96, + 4, + 97, + 9, + 246, + 86, + 91, + 96, + 3, + 96, + 32, + 82, + 96, + 0, + 144, + 129, + 82, + 96, + 64, + 144, + 32, + 84, + 129, + 86, + 91, + 97, + 1, + 57, + 97, + 1, + 222, + 54, + 96, + 4, + 97, + 9, + 246, + 86, + 91, + 96, + 5, + 96, + 32, + 82, + 96, + 0, + 144, + 129, + 82, + 96, + 64, + 144, + 32, + 84, + 129, + 86, + 91, + 97, + 0, + 247, + 97, + 4, + 35, + 86, + 91, + 97, + 1, + 174, + 97, + 2, + 6, + 54, + 96, + 4, + 97, + 9, + 144, + 86, + 91, + 97, + 4, + 48, + 86, + 91, + 97, + 1, + 32, + 97, + 2, + 25, + 54, + 96, + 4, + 97, + 9, + 144, + 86, + 91, + 97, + 4, + 58, + 86, + 91, + 97, + 1, + 174, + 97, + 2, + 44, + 54, + 96, + 4, + 97, + 10, + 24, + 86, + 91, + 97, + 4, + 160, + 86, + 91, + 97, + 1, + 57, + 97, + 2, + 63, + 54, + 96, + 4, + 97, + 10, + 139, + 86, + 91, + 96, + 4, + 96, + 32, + 144, + 129, + 82, + 96, + 0, + 146, + 131, + 82, + 96, + 64, + 128, + 132, + 32, + 144, + 145, + 82, + 144, + 130, + 82, + 144, + 32, + 84, + 129, + 86, + 91, + 96, + 0, + 128, + 84, + 97, + 2, + 105, + 144, + 97, + 10, + 190, + 86, + 91, + 128, + 96, + 31, + 1, + 96, + 32, + 128, + 145, + 4, + 2, + 96, + 32, + 1, + 96, + 64, + 81, + 144, + 129, + 1, + 96, + 64, + 82, + 128, + 146, + 145, + 144, + 129, + 129, + 82, + 96, + 32, + 1, + 130, + 128, + 84, + 97, + 2, + 149, + 144, + 97, + 10, + 190, + 86, + 91, + 128, + 21, + 97, + 2, + 226, + 87, + 128, + 96, + 31, + 16, + 97, + 2, + 183, + 87, + 97, + 1, + 0, + 128, + 131, + 84, + 4, + 2, + 131, + 82, + 145, + 96, + 32, + 1, + 145, + 97, + 2, + 226, + 86, + 91, + 130, + 1, + 145, + 144, + 96, + 0, + 82, + 96, + 32, + 96, + 0, + 32, + 144, + 91, + 129, + 84, + 129, + 82, + 144, + 96, + 1, + 1, + 144, + 96, + 32, + 1, + 128, + 131, + 17, + 97, + 2, + 197, + 87, + 130, + 144, + 3, + 96, + 31, + 22, + 130, + 1, + 145, + 91, + 80, + 80, + 80, + 80, + 80, + 129, + 86, + 91, + 51, + 96, + 0, + 129, + 129, + 82, + 96, + 4, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 135, + 22, + 128, + 133, + 82, + 146, + 82, + 128, + 131, + 32, + 133, + 144, + 85, + 81, + 145, + 146, + 144, + 145, + 127, + 140, + 91, + 225, + 229, + 235, + 236, + 125, + 91, + 209, + 79, + 113, + 66, + 125, + 30, + 132, + 243, + 221, + 3, + 20, + 192, + 247, + 178, + 41, + 30, + 91, + 32, + 10, + 200, + 199, + 195, + 185, + 37, + 144, + 97, + 3, + 69, + 144, + 134, + 129, + 82, + 96, + 32, + 1, + 144, + 86, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 80, + 96, + 1, + 146, + 145, + 80, + 80, + 86, + 91, + 96, + 0, + 97, + 3, + 99, + 132, + 132, + 132, + 97, + 6, + 233, + 86, + 91, + 80, + 96, + 0, + 96, + 100, + 97, + 3, + 115, + 132, + 96, + 1, + 97, + 11, + 14, + 86, + 91, + 97, + 3, + 125, + 145, + 144, + 97, + 11, + 45, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 133, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 3, + 96, + 32, + 82, + 96, + 64, + 129, + 32, + 128, + 84, + 146, + 147, + 80, + 131, + 146, + 144, + 145, + 144, + 97, + 3, + 170, + 144, + 132, + 144, + 97, + 11, + 79, + 86, + 91, + 144, + 145, + 85, + 80, + 96, + 1, + 150, + 149, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 127, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 70, + 20, + 97, + 3, + 240, + 87, + 97, + 3, + 235, + 97, + 7, + 201, + 86, + 91, + 144, + 80, + 144, + 86, + 91, + 80, + 127, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 144, + 86, + 91, + 97, + 4, + 31, + 130, + 130, + 97, + 8, + 99, + 86, + 91, + 80, + 80, + 86, + 91, + 96, + 1, + 128, + 84, + 97, + 2, + 105, + 144, + 97, + 10, + 190, + 86, + 91, + 97, + 4, + 31, + 130, + 130, + 97, + 8, + 189, + 86, + 91, + 51, + 96, + 0, + 144, + 129, + 82, + 96, + 3, + 96, + 32, + 82, + 96, + 64, + 129, + 32, + 128, + 84, + 131, + 145, + 144, + 131, + 144, + 97, + 4, + 91, + 144, + 132, + 144, + 97, + 11, + 79, + 86, + 91, + 144, + 145, + 85, + 80, + 80, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 22, + 96, + 0, + 129, + 129, + 82, + 96, + 3, + 96, + 32, + 82, + 96, + 64, + 144, + 129, + 144, + 32, + 128, + 84, + 133, + 1, + 144, + 85, + 81, + 51, + 144, + 96, + 0, + 128, + 81, + 96, + 32, + 97, + 12, + 26, + 131, + 57, + 129, + 81, + 145, + 82, + 144, + 97, + 3, + 69, + 144, + 134, + 129, + 82, + 96, + 32, + 1, + 144, + 86, + 91, + 66, + 132, + 16, + 21, + 97, + 4, + 245, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 23, + 96, + 36, + 130, + 1, + 82, + 127, + 80, + 69, + 82, + 77, + 73, + 84, + 95, + 68, + 69, + 65, + 68, + 76, + 73, + 78, + 69, + 95, + 69, + 88, + 80, + 73, + 82, + 69, + 68, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 96, + 68, + 130, + 1, + 82, + 96, + 100, + 1, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 0, + 96, + 1, + 97, + 5, + 1, + 97, + 3, + 186, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 138, + 129, + 22, + 96, + 0, + 129, + 129, + 82, + 96, + 5, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 145, + 130, + 144, + 32, + 128, + 84, + 96, + 1, + 129, + 1, + 144, + 145, + 85, + 130, + 81, + 127, + 110, + 113, + 237, + 174, + 18, + 177, + 185, + 127, + 77, + 31, + 96, + 55, + 15, + 239, + 16, + 16, + 95, + 162, + 250, + 174, + 1, + 38, + 17, + 74, + 22, + 156, + 100, + 132, + 93, + 97, + 38, + 201, + 129, + 132, + 1, + 82, + 128, + 132, + 1, + 148, + 144, + 148, + 82, + 147, + 141, + 22, + 96, + 96, + 132, + 1, + 82, + 96, + 128, + 131, + 1, + 140, + 144, + 82, + 96, + 160, + 131, + 1, + 147, + 144, + 147, + 82, + 96, + 192, + 128, + 131, + 1, + 139, + 144, + 82, + 129, + 81, + 128, + 132, + 3, + 144, + 145, + 1, + 129, + 82, + 96, + 224, + 131, + 1, + 144, + 145, + 82, + 128, + 81, + 146, + 1, + 145, + 144, + 145, + 32, + 97, + 25, + 1, + 96, + 240, + 27, + 97, + 1, + 0, + 131, + 1, + 82, + 97, + 1, + 2, + 130, + 1, + 146, + 144, + 146, + 82, + 97, + 1, + 34, + 129, + 1, + 145, + 144, + 145, + 82, + 97, + 1, + 66, + 1, + 96, + 64, + 128, + 81, + 96, + 31, + 25, + 129, + 132, + 3, + 1, + 129, + 82, + 130, + 130, + 82, + 128, + 81, + 96, + 32, + 145, + 130, + 1, + 32, + 96, + 0, + 132, + 82, + 144, + 131, + 1, + 128, + 131, + 82, + 82, + 96, + 255, + 135, + 22, + 144, + 130, + 1, + 82, + 96, + 96, + 129, + 1, + 133, + 144, + 82, + 96, + 128, + 129, + 1, + 132, + 144, + 82, + 96, + 160, + 1, + 96, + 32, + 96, + 64, + 81, + 96, + 32, + 129, + 3, + 144, + 128, + 132, + 3, + 144, + 133, + 90, + 250, + 21, + 128, + 21, + 97, + 6, + 13, + 87, + 61, + 96, + 0, + 128, + 62, + 61, + 96, + 0, + 253, + 91, + 80, + 80, + 96, + 64, + 81, + 96, + 31, + 25, + 1, + 81, + 145, + 80, + 80, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 129, + 22, + 21, + 128, + 21, + 144, + 97, + 6, + 67, + 87, + 80, + 135, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 20, + 91, + 97, + 6, + 128, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 14, + 96, + 36, + 130, + 1, + 82, + 109, + 36, + 167, + 43, + 32, + 166, + 36, + 162, + 47, + 169, + 164, + 163, + 167, + 34, + 169, + 96, + 145, + 27, + 96, + 68, + 130, + 1, + 82, + 96, + 100, + 1, + 97, + 4, + 236, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 144, + 129, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 4, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 138, + 133, + 22, + 128, + 133, + 82, + 144, + 131, + 82, + 146, + 129, + 144, + 32, + 137, + 144, + 85, + 81, + 136, + 129, + 82, + 145, + 146, + 138, + 22, + 145, + 127, + 140, + 91, + 225, + 229, + 235, + 236, + 125, + 91, + 209, + 79, + 113, + 66, + 125, + 30, + 132, + 243, + 221, + 3, + 20, + 192, + 247, + 178, + 41, + 30, + 91, + 32, + 10, + 200, + 199, + 195, + 185, + 37, + 145, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 4, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 51, + 132, + 82, + 144, + 145, + 82, + 129, + 32, + 84, + 96, + 0, + 25, + 129, + 20, + 97, + 7, + 69, + 87, + 97, + 7, + 32, + 131, + 130, + 97, + 11, + 79, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 134, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 4, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 51, + 132, + 82, + 144, + 145, + 82, + 144, + 32, + 85, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 133, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 3, + 96, + 32, + 82, + 96, + 64, + 129, + 32, + 128, + 84, + 133, + 146, + 144, + 97, + 7, + 109, + 144, + 132, + 144, + 97, + 11, + 79, + 86, + 91, + 144, + 145, + 85, + 80, + 80, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 128, + 133, + 22, + 96, + 0, + 129, + 129, + 82, + 96, + 3, + 96, + 32, + 82, + 96, + 64, + 144, + 129, + 144, + 32, + 128, + 84, + 135, + 1, + 144, + 85, + 81, + 144, + 145, + 135, + 22, + 144, + 96, + 0, + 128, + 81, + 96, + 32, + 97, + 12, + 26, + 131, + 57, + 129, + 81, + 145, + 82, + 144, + 97, + 7, + 182, + 144, + 135, + 129, + 82, + 96, + 32, + 1, + 144, + 86, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 80, + 96, + 1, + 148, + 147, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 127, + 139, + 115, + 195, + 198, + 155, + 184, + 254, + 61, + 81, + 46, + 204, + 76, + 247, + 89, + 204, + 121, + 35, + 159, + 123, + 23, + 155, + 15, + 250, + 202, + 169, + 167, + 93, + 82, + 43, + 57, + 64, + 15, + 96, + 0, + 96, + 64, + 81, + 97, + 7, + 251, + 145, + 144, + 97, + 11, + 102, + 86, + 91, + 96, + 64, + 128, + 81, + 145, + 130, + 144, + 3, + 130, + 32, + 96, + 32, + 131, + 1, + 147, + 144, + 147, + 82, + 129, + 1, + 145, + 144, + 145, + 82, + 127, + 200, + 158, + 253, + 170, + 84, + 192, + 242, + 12, + 122, + 223, + 97, + 40, + 130, + 223, + 9, + 80, + 245, + 169, + 81, + 99, + 126, + 3, + 7, + 205, + 203, + 76, + 103, + 47, + 41, + 139, + 139, + 198, + 96, + 96, + 130, + 1, + 82, + 70, + 96, + 128, + 130, + 1, + 82, + 48, + 96, + 160, + 130, + 1, + 82, + 96, + 192, + 1, + 96, + 64, + 81, + 96, + 32, + 129, + 131, + 3, + 3, + 129, + 82, + 144, + 96, + 64, + 82, + 128, + 81, + 144, + 96, + 32, + 1, + 32, + 144, + 80, + 144, + 86, + 91, + 128, + 96, + 2, + 96, + 0, + 130, + 130, + 84, + 97, + 8, + 117, + 145, + 144, + 97, + 12, + 1, + 86, + 91, + 144, + 145, + 85, + 80, + 80, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 96, + 0, + 129, + 129, + 82, + 96, + 3, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 128, + 84, + 134, + 1, + 144, + 85, + 81, + 132, + 129, + 82, + 96, + 0, + 128, + 81, + 96, + 32, + 97, + 12, + 26, + 131, + 57, + 129, + 81, + 145, + 82, + 145, + 1, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 80, + 80, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 3, + 96, + 32, + 82, + 96, + 64, + 129, + 32, + 128, + 84, + 131, + 146, + 144, + 97, + 8, + 229, + 144, + 132, + 144, + 97, + 11, + 79, + 86, + 91, + 144, + 145, + 85, + 80, + 80, + 96, + 2, + 128, + 84, + 130, + 144, + 3, + 144, + 85, + 96, + 64, + 81, + 129, + 129, + 82, + 96, + 0, + 144, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 132, + 22, + 144, + 96, + 0, + 128, + 81, + 96, + 32, + 97, + 12, + 26, + 131, + 57, + 129, + 81, + 145, + 82, + 144, + 96, + 32, + 1, + 97, + 8, + 177, + 86, + 91, + 96, + 0, + 96, + 32, + 128, + 131, + 82, + 131, + 81, + 128, + 130, + 133, + 1, + 82, + 96, + 0, + 91, + 129, + 129, + 16, + 21, + 97, + 9, + 76, + 87, + 133, + 129, + 1, + 131, + 1, + 81, + 133, + 130, + 1, + 96, + 64, + 1, + 82, + 130, + 1, + 97, + 9, + 48, + 86, + 91, + 129, + 129, + 17, + 21, + 97, + 9, + 94, + 87, + 96, + 0, + 96, + 64, + 131, + 135, + 1, + 1, + 82, + 91, + 80, + 96, + 31, + 1, + 96, + 31, + 25, + 22, + 146, + 144, + 146, + 1, + 96, + 64, + 1, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 128, + 53, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 129, + 22, + 129, + 20, + 97, + 9, + 139, + 87, + 96, + 0, + 128, + 253, + 91, + 145, + 144, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 64, + 131, + 133, + 3, + 18, + 21, + 97, + 9, + 163, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 9, + 172, + 131, + 97, + 9, + 116, + 86, + 91, + 148, + 96, + 32, + 147, + 144, + 147, + 1, + 53, + 147, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 96, + 96, + 132, + 134, + 3, + 18, + 21, + 97, + 9, + 207, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 9, + 216, + 132, + 97, + 9, + 116, + 86, + 91, + 146, + 80, + 97, + 9, + 230, + 96, + 32, + 133, + 1, + 97, + 9, + 116, + 86, + 91, + 145, + 80, + 96, + 64, + 132, + 1, + 53, + 144, + 80, + 146, + 80, + 146, + 80, + 146, + 86, + 91, + 96, + 0, + 96, + 32, + 130, + 132, + 3, + 18, + 21, + 97, + 10, + 8, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 10, + 17, + 130, + 97, + 9, + 116, + 86, + 91, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 128, + 96, + 0, + 128, + 96, + 0, + 96, + 224, + 136, + 138, + 3, + 18, + 21, + 97, + 10, + 51, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 10, + 60, + 136, + 97, + 9, + 116, + 86, + 91, + 150, + 80, + 97, + 10, + 74, + 96, + 32, + 137, + 1, + 97, + 9, + 116, + 86, + 91, + 149, + 80, + 96, + 64, + 136, + 1, + 53, + 148, + 80, + 96, + 96, + 136, + 1, + 53, + 147, + 80, + 96, + 128, + 136, + 1, + 53, + 96, + 255, + 129, + 22, + 129, + 20, + 97, + 10, + 110, + 87, + 96, + 0, + 128, + 253, + 91, + 150, + 153, + 149, + 152, + 80, + 147, + 150, + 146, + 149, + 148, + 96, + 160, + 132, + 1, + 53, + 148, + 80, + 96, + 192, + 144, + 147, + 1, + 53, + 146, + 145, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 64, + 131, + 133, + 3, + 18, + 21, + 97, + 10, + 158, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 10, + 167, + 131, + 97, + 9, + 116, + 86, + 91, + 145, + 80, + 97, + 10, + 181, + 96, + 32, + 132, + 1, + 97, + 9, + 116, + 86, + 91, + 144, + 80, + 146, + 80, + 146, + 144, + 80, + 86, + 91, + 96, + 1, + 129, + 129, + 28, + 144, + 130, + 22, + 128, + 97, + 10, + 210, + 87, + 96, + 127, + 130, + 22, + 145, + 80, + 91, + 96, + 32, + 130, + 16, + 129, + 3, + 97, + 10, + 242, + 87, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 34, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 80, + 145, + 144, + 80, + 86, + 91, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 17, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 96, + 0, + 129, + 96, + 0, + 25, + 4, + 131, + 17, + 130, + 21, + 21, + 22, + 21, + 97, + 11, + 40, + 87, + 97, + 11, + 40, + 97, + 10, + 248, + 86, + 91, + 80, + 2, + 144, + 86, + 91, + 96, + 0, + 130, + 97, + 11, + 74, + 87, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 18, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 80, + 4, + 144, + 86, + 91, + 96, + 0, + 130, + 130, + 16, + 21, + 97, + 11, + 97, + 87, + 97, + 11, + 97, + 97, + 10, + 248, + 86, + 91, + 80, + 3, + 144, + 86, + 91, + 96, + 0, + 128, + 131, + 84, + 129, + 96, + 1, + 130, + 129, + 28, + 145, + 80, + 128, + 131, + 22, + 128, + 97, + 11, + 130, + 87, + 96, + 127, + 131, + 22, + 146, + 80, + 91, + 96, + 32, + 128, + 132, + 16, + 130, + 3, + 97, + 11, + 161, + 87, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 134, + 82, + 96, + 34, + 96, + 4, + 82, + 96, + 36, + 134, + 253, + 91, + 129, + 128, + 21, + 97, + 11, + 181, + 87, + 96, + 1, + 129, + 20, + 97, + 11, + 198, + 87, + 97, + 11, + 243, + 86, + 91, + 96, + 255, + 25, + 134, + 22, + 137, + 82, + 132, + 137, + 1, + 150, + 80, + 97, + 11, + 243, + 86, + 91, + 96, + 0, + 138, + 129, + 82, + 96, + 32, + 144, + 32, + 96, + 0, + 91, + 134, + 129, + 16, + 21, + 97, + 11, + 235, + 87, + 129, + 84, + 139, + 130, + 1, + 82, + 144, + 133, + 1, + 144, + 131, + 1, + 97, + 11, + 210, + 86, + 91, + 80, + 80, + 132, + 137, + 1, + 150, + 80, + 91, + 80, + 148, + 152, + 151, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 130, + 25, + 130, + 17, + 21, + 97, + 12, + 20, + 87, + 97, + 12, + 20, + 97, + 10, + 248, + 86, + 91, + 80, + 1, + 144, + 86, + 254, + 221, + 242, + 82, + 173, + 27, + 226, + 200, + 155, + 105, + 194, + 176, + 104, + 252, + 55, + 141, + 170, + 149, + 43, + 167, + 241, + 99, + 196, + 161, + 22, + 40, + 245, + 90, + 77, + 245, + 35, + 179, + 239, + 162, + 100, + 105, + 112, + 102, + 115, + 88, + 34, + 18, + 32, + 164, + 58, + 27, + 68, + 152, + 101, + 234, + 102, + 167, + 171, + 28, + 247, + 96, + 214, + 58, + 195, + 219, + 250, + 63, + 173, + 150, + 252, + 3, + 204, + 97, + 234, + 63, + 226, + 188, + 181, + 93, + 150, + 100, + 115, + 111, + 108, + 99, + 67, + 0, + 8, + 13, + 0, + 51, + ]; + ///The bytecode of the contract. + pub static FEEONTRANSFERTOKEN_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __BYTECODE, + ); + #[rustfmt::skip] + const __DEPLOYED_BYTECODE: &[u8] = &[ + 96, + 128, + 96, + 64, + 82, + 52, + 128, + 21, + 97, + 0, + 16, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 96, + 4, + 54, + 16, + 97, + 0, + 234, + 87, + 96, + 0, + 53, + 96, + 224, + 28, + 128, + 99, + 112, + 160, + 130, + 49, + 17, + 97, + 0, + 140, + 87, + 128, + 99, + 157, + 194, + 159, + 172, + 17, + 97, + 0, + 102, + 87, + 128, + 99, + 157, + 194, + 159, + 172, + 20, + 97, + 1, + 248, + 87, + 128, + 99, + 169, + 5, + 156, + 187, + 20, + 97, + 2, + 11, + 87, + 128, + 99, + 213, + 5, + 172, + 207, + 20, + 97, + 2, + 30, + 87, + 128, + 99, + 221, + 98, + 237, + 62, + 20, + 97, + 2, + 49, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 112, + 160, + 130, + 49, + 20, + 97, + 1, + 176, + 87, + 128, + 99, + 126, + 206, + 190, + 0, + 20, + 97, + 1, + 208, + 87, + 128, + 99, + 149, + 216, + 155, + 65, + 20, + 97, + 1, + 240, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 35, + 184, + 114, + 221, + 17, + 97, + 0, + 200, + 87, + 128, + 99, + 35, + 184, + 114, + 221, + 20, + 97, + 1, + 71, + 87, + 128, + 99, + 49, + 60, + 229, + 103, + 20, + 97, + 1, + 90, + 87, + 128, + 99, + 54, + 68, + 229, + 21, + 20, + 97, + 1, + 147, + 87, + 128, + 99, + 64, + 193, + 15, + 25, + 20, + 97, + 1, + 155, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 6, + 253, + 222, + 3, + 20, + 97, + 0, + 239, + 87, + 128, + 99, + 9, + 94, + 167, + 179, + 20, + 97, + 1, + 13, + 87, + 128, + 99, + 24, + 22, + 13, + 221, + 20, + 97, + 1, + 48, + 87, + 91, + 96, + 0, + 128, + 253, + 91, + 97, + 0, + 247, + 97, + 2, + 92, + 86, + 91, + 96, + 64, + 81, + 97, + 1, + 4, + 145, + 144, + 97, + 9, + 31, + 86, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 243, + 91, + 97, + 1, + 32, + 97, + 1, + 27, + 54, + 96, + 4, + 97, + 9, + 144, + 86, + 91, + 97, + 2, + 234, + 86, + 91, + 96, + 64, + 81, + 144, + 21, + 21, + 129, + 82, + 96, + 32, + 1, + 97, + 1, + 4, + 86, + 91, + 97, + 1, + 57, + 96, + 2, + 84, + 129, + 86, + 91, + 96, + 64, + 81, + 144, + 129, + 82, + 96, + 32, + 1, + 97, + 1, + 4, + 86, + 91, + 97, + 1, + 32, + 97, + 1, + 85, + 54, + 96, + 4, + 97, + 9, + 186, + 86, + 91, + 97, + 3, + 86, + 86, + 91, + 97, + 1, + 129, + 127, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 129, + 86, + 91, + 96, + 64, + 81, + 96, + 255, + 144, + 145, + 22, + 129, + 82, + 96, + 32, + 1, + 97, + 1, + 4, + 86, + 91, + 97, + 1, + 57, + 97, + 3, + 186, + 86, + 91, + 97, + 1, + 174, + 97, + 1, + 169, + 54, + 96, + 4, + 97, + 9, + 144, + 86, + 91, + 97, + 4, + 21, + 86, + 91, + 0, + 91, + 97, + 1, + 57, + 97, + 1, + 190, + 54, + 96, + 4, + 97, + 9, + 246, + 86, + 91, + 96, + 3, + 96, + 32, + 82, + 96, + 0, + 144, + 129, + 82, + 96, + 64, + 144, + 32, + 84, + 129, + 86, + 91, + 97, + 1, + 57, + 97, + 1, + 222, + 54, + 96, + 4, + 97, + 9, + 246, + 86, + 91, + 96, + 5, + 96, + 32, + 82, + 96, + 0, + 144, + 129, + 82, + 96, + 64, + 144, + 32, + 84, + 129, + 86, + 91, + 97, + 0, + 247, + 97, + 4, + 35, + 86, + 91, + 97, + 1, + 174, + 97, + 2, + 6, + 54, + 96, + 4, + 97, + 9, + 144, + 86, + 91, + 97, + 4, + 48, + 86, + 91, + 97, + 1, + 32, + 97, + 2, + 25, + 54, + 96, + 4, + 97, + 9, + 144, + 86, + 91, + 97, + 4, + 58, + 86, + 91, + 97, + 1, + 174, + 97, + 2, + 44, + 54, + 96, + 4, + 97, + 10, + 24, + 86, + 91, + 97, + 4, + 160, + 86, + 91, + 97, + 1, + 57, + 97, + 2, + 63, + 54, + 96, + 4, + 97, + 10, + 139, + 86, + 91, + 96, + 4, + 96, + 32, + 144, + 129, + 82, + 96, + 0, + 146, + 131, + 82, + 96, + 64, + 128, + 132, + 32, + 144, + 145, + 82, + 144, + 130, + 82, + 144, + 32, + 84, + 129, + 86, + 91, + 96, + 0, + 128, + 84, + 97, + 2, + 105, + 144, + 97, + 10, + 190, + 86, + 91, + 128, + 96, + 31, + 1, + 96, + 32, + 128, + 145, + 4, + 2, + 96, + 32, + 1, + 96, + 64, + 81, + 144, + 129, + 1, + 96, + 64, + 82, + 128, + 146, + 145, + 144, + 129, + 129, + 82, + 96, + 32, + 1, + 130, + 128, + 84, + 97, + 2, + 149, + 144, + 97, + 10, + 190, + 86, + 91, + 128, + 21, + 97, + 2, + 226, + 87, + 128, + 96, + 31, + 16, + 97, + 2, + 183, + 87, + 97, + 1, + 0, + 128, + 131, + 84, + 4, + 2, + 131, + 82, + 145, + 96, + 32, + 1, + 145, + 97, + 2, + 226, + 86, + 91, + 130, + 1, + 145, + 144, + 96, + 0, + 82, + 96, + 32, + 96, + 0, + 32, + 144, + 91, + 129, + 84, + 129, + 82, + 144, + 96, + 1, + 1, + 144, + 96, + 32, + 1, + 128, + 131, + 17, + 97, + 2, + 197, + 87, + 130, + 144, + 3, + 96, + 31, + 22, + 130, + 1, + 145, + 91, + 80, + 80, + 80, + 80, + 80, + 129, + 86, + 91, + 51, + 96, + 0, + 129, + 129, + 82, + 96, + 4, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 135, + 22, + 128, + 133, + 82, + 146, + 82, + 128, + 131, + 32, + 133, + 144, + 85, + 81, + 145, + 146, + 144, + 145, + 127, + 140, + 91, + 225, + 229, + 235, + 236, + 125, + 91, + 209, + 79, + 113, + 66, + 125, + 30, + 132, + 243, + 221, + 3, + 20, + 192, + 247, + 178, + 41, + 30, + 91, + 32, + 10, + 200, + 199, + 195, + 185, + 37, + 144, + 97, + 3, + 69, + 144, + 134, + 129, + 82, + 96, + 32, + 1, + 144, + 86, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 80, + 96, + 1, + 146, + 145, + 80, + 80, + 86, + 91, + 96, + 0, + 97, + 3, + 99, + 132, + 132, + 132, + 97, + 6, + 233, + 86, + 91, + 80, + 96, + 0, + 96, + 100, + 97, + 3, + 115, + 132, + 96, + 1, + 97, + 11, + 14, + 86, + 91, + 97, + 3, + 125, + 145, + 144, + 97, + 11, + 45, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 133, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 3, + 96, + 32, + 82, + 96, + 64, + 129, + 32, + 128, + 84, + 146, + 147, + 80, + 131, + 146, + 144, + 145, + 144, + 97, + 3, + 170, + 144, + 132, + 144, + 97, + 11, + 79, + 86, + 91, + 144, + 145, + 85, + 80, + 96, + 1, + 150, + 149, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 127, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 70, + 20, + 97, + 3, + 240, + 87, + 97, + 3, + 235, + 97, + 7, + 201, + 86, + 91, + 144, + 80, + 144, + 86, + 91, + 80, + 127, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 144, + 86, + 91, + 97, + 4, + 31, + 130, + 130, + 97, + 8, + 99, + 86, + 91, + 80, + 80, + 86, + 91, + 96, + 1, + 128, + 84, + 97, + 2, + 105, + 144, + 97, + 10, + 190, + 86, + 91, + 97, + 4, + 31, + 130, + 130, + 97, + 8, + 189, + 86, + 91, + 51, + 96, + 0, + 144, + 129, + 82, + 96, + 3, + 96, + 32, + 82, + 96, + 64, + 129, + 32, + 128, + 84, + 131, + 145, + 144, + 131, + 144, + 97, + 4, + 91, + 144, + 132, + 144, + 97, + 11, + 79, + 86, + 91, + 144, + 145, + 85, + 80, + 80, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 22, + 96, + 0, + 129, + 129, + 82, + 96, + 3, + 96, + 32, + 82, + 96, + 64, + 144, + 129, + 144, + 32, + 128, + 84, + 133, + 1, + 144, + 85, + 81, + 51, + 144, + 96, + 0, + 128, + 81, + 96, + 32, + 97, + 12, + 26, + 131, + 57, + 129, + 81, + 145, + 82, + 144, + 97, + 3, + 69, + 144, + 134, + 129, + 82, + 96, + 32, + 1, + 144, + 86, + 91, + 66, + 132, + 16, + 21, + 97, + 4, + 245, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 23, + 96, + 36, + 130, + 1, + 82, + 127, + 80, + 69, + 82, + 77, + 73, + 84, + 95, + 68, + 69, + 65, + 68, + 76, + 73, + 78, + 69, + 95, + 69, + 88, + 80, + 73, + 82, + 69, + 68, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 96, + 68, + 130, + 1, + 82, + 96, + 100, + 1, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 0, + 96, + 1, + 97, + 5, + 1, + 97, + 3, + 186, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 138, + 129, + 22, + 96, + 0, + 129, + 129, + 82, + 96, + 5, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 145, + 130, + 144, + 32, + 128, + 84, + 96, + 1, + 129, + 1, + 144, + 145, + 85, + 130, + 81, + 127, + 110, + 113, + 237, + 174, + 18, + 177, + 185, + 127, + 77, + 31, + 96, + 55, + 15, + 239, + 16, + 16, + 95, + 162, + 250, + 174, + 1, + 38, + 17, + 74, + 22, + 156, + 100, + 132, + 93, + 97, + 38, + 201, + 129, + 132, + 1, + 82, + 128, + 132, + 1, + 148, + 144, + 148, + 82, + 147, + 141, + 22, + 96, + 96, + 132, + 1, + 82, + 96, + 128, + 131, + 1, + 140, + 144, + 82, + 96, + 160, + 131, + 1, + 147, + 144, + 147, + 82, + 96, + 192, + 128, + 131, + 1, + 139, + 144, + 82, + 129, + 81, + 128, + 132, + 3, + 144, + 145, + 1, + 129, + 82, + 96, + 224, + 131, + 1, + 144, + 145, + 82, + 128, + 81, + 146, + 1, + 145, + 144, + 145, + 32, + 97, + 25, + 1, + 96, + 240, + 27, + 97, + 1, + 0, + 131, + 1, + 82, + 97, + 1, + 2, + 130, + 1, + 146, + 144, + 146, + 82, + 97, + 1, + 34, + 129, + 1, + 145, + 144, + 145, + 82, + 97, + 1, + 66, + 1, + 96, + 64, + 128, + 81, + 96, + 31, + 25, + 129, + 132, + 3, + 1, + 129, + 82, + 130, + 130, + 82, + 128, + 81, + 96, + 32, + 145, + 130, + 1, + 32, + 96, + 0, + 132, + 82, + 144, + 131, + 1, + 128, + 131, + 82, + 82, + 96, + 255, + 135, + 22, + 144, + 130, + 1, + 82, + 96, + 96, + 129, + 1, + 133, + 144, + 82, + 96, + 128, + 129, + 1, + 132, + 144, + 82, + 96, + 160, + 1, + 96, + 32, + 96, + 64, + 81, + 96, + 32, + 129, + 3, + 144, + 128, + 132, + 3, + 144, + 133, + 90, + 250, + 21, + 128, + 21, + 97, + 6, + 13, + 87, + 61, + 96, + 0, + 128, + 62, + 61, + 96, + 0, + 253, + 91, + 80, + 80, + 96, + 64, + 81, + 96, + 31, + 25, + 1, + 81, + 145, + 80, + 80, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 129, + 22, + 21, + 128, + 21, + 144, + 97, + 6, + 67, + 87, + 80, + 135, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 20, + 91, + 97, + 6, + 128, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 14, + 96, + 36, + 130, + 1, + 82, + 109, + 36, + 167, + 43, + 32, + 166, + 36, + 162, + 47, + 169, + 164, + 163, + 167, + 34, + 169, + 96, + 145, + 27, + 96, + 68, + 130, + 1, + 82, + 96, + 100, + 1, + 97, + 4, + 236, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 144, + 129, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 4, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 138, + 133, + 22, + 128, + 133, + 82, + 144, + 131, + 82, + 146, + 129, + 144, + 32, + 137, + 144, + 85, + 81, + 136, + 129, + 82, + 145, + 146, + 138, + 22, + 145, + 127, + 140, + 91, + 225, + 229, + 235, + 236, + 125, + 91, + 209, + 79, + 113, + 66, + 125, + 30, + 132, + 243, + 221, + 3, + 20, + 192, + 247, + 178, + 41, + 30, + 91, + 32, + 10, + 200, + 199, + 195, + 185, + 37, + 145, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 4, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 51, + 132, + 82, + 144, + 145, + 82, + 129, + 32, + 84, + 96, + 0, + 25, + 129, + 20, + 97, + 7, + 69, + 87, + 97, + 7, + 32, + 131, + 130, + 97, + 11, + 79, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 134, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 4, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 51, + 132, + 82, + 144, + 145, + 82, + 144, + 32, + 85, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 133, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 3, + 96, + 32, + 82, + 96, + 64, + 129, + 32, + 128, + 84, + 133, + 146, + 144, + 97, + 7, + 109, + 144, + 132, + 144, + 97, + 11, + 79, + 86, + 91, + 144, + 145, + 85, + 80, + 80, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 128, + 133, + 22, + 96, + 0, + 129, + 129, + 82, + 96, + 3, + 96, + 32, + 82, + 96, + 64, + 144, + 129, + 144, + 32, + 128, + 84, + 135, + 1, + 144, + 85, + 81, + 144, + 145, + 135, + 22, + 144, + 96, + 0, + 128, + 81, + 96, + 32, + 97, + 12, + 26, + 131, + 57, + 129, + 81, + 145, + 82, + 144, + 97, + 7, + 182, + 144, + 135, + 129, + 82, + 96, + 32, + 1, + 144, + 86, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 80, + 96, + 1, + 148, + 147, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 127, + 139, + 115, + 195, + 198, + 155, + 184, + 254, + 61, + 81, + 46, + 204, + 76, + 247, + 89, + 204, + 121, + 35, + 159, + 123, + 23, + 155, + 15, + 250, + 202, + 169, + 167, + 93, + 82, + 43, + 57, + 64, + 15, + 96, + 0, + 96, + 64, + 81, + 97, + 7, + 251, + 145, + 144, + 97, + 11, + 102, + 86, + 91, + 96, + 64, + 128, + 81, + 145, + 130, + 144, + 3, + 130, + 32, + 96, + 32, + 131, + 1, + 147, + 144, + 147, + 82, + 129, + 1, + 145, + 144, + 145, + 82, + 127, + 200, + 158, + 253, + 170, + 84, + 192, + 242, + 12, + 122, + 223, + 97, + 40, + 130, + 223, + 9, + 80, + 245, + 169, + 81, + 99, + 126, + 3, + 7, + 205, + 203, + 76, + 103, + 47, + 41, + 139, + 139, + 198, + 96, + 96, + 130, + 1, + 82, + 70, + 96, + 128, + 130, + 1, + 82, + 48, + 96, + 160, + 130, + 1, + 82, + 96, + 192, + 1, + 96, + 64, + 81, + 96, + 32, + 129, + 131, + 3, + 3, + 129, + 82, + 144, + 96, + 64, + 82, + 128, + 81, + 144, + 96, + 32, + 1, + 32, + 144, + 80, + 144, + 86, + 91, + 128, + 96, + 2, + 96, + 0, + 130, + 130, + 84, + 97, + 8, + 117, + 145, + 144, + 97, + 12, + 1, + 86, + 91, + 144, + 145, + 85, + 80, + 80, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 96, + 0, + 129, + 129, + 82, + 96, + 3, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 128, + 84, + 134, + 1, + 144, + 85, + 81, + 132, + 129, + 82, + 96, + 0, + 128, + 81, + 96, + 32, + 97, + 12, + 26, + 131, + 57, + 129, + 81, + 145, + 82, + 145, + 1, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 80, + 80, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 3, + 96, + 32, + 82, + 96, + 64, + 129, + 32, + 128, + 84, + 131, + 146, + 144, + 97, + 8, + 229, + 144, + 132, + 144, + 97, + 11, + 79, + 86, + 91, + 144, + 145, + 85, + 80, + 80, + 96, + 2, + 128, + 84, + 130, + 144, + 3, + 144, + 85, + 96, + 64, + 81, + 129, + 129, + 82, + 96, + 0, + 144, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 132, + 22, + 144, + 96, + 0, + 128, + 81, + 96, + 32, + 97, + 12, + 26, + 131, + 57, + 129, + 81, + 145, + 82, + 144, + 96, + 32, + 1, + 97, + 8, + 177, + 86, + 91, + 96, + 0, + 96, + 32, + 128, + 131, + 82, + 131, + 81, + 128, + 130, + 133, + 1, + 82, + 96, + 0, + 91, + 129, + 129, + 16, + 21, + 97, + 9, + 76, + 87, + 133, + 129, + 1, + 131, + 1, + 81, + 133, + 130, + 1, + 96, + 64, + 1, + 82, + 130, + 1, + 97, + 9, + 48, + 86, + 91, + 129, + 129, + 17, + 21, + 97, + 9, + 94, + 87, + 96, + 0, + 96, + 64, + 131, + 135, + 1, + 1, + 82, + 91, + 80, + 96, + 31, + 1, + 96, + 31, + 25, + 22, + 146, + 144, + 146, + 1, + 96, + 64, + 1, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 128, + 53, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 129, + 22, + 129, + 20, + 97, + 9, + 139, + 87, + 96, + 0, + 128, + 253, + 91, + 145, + 144, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 64, + 131, + 133, + 3, + 18, + 21, + 97, + 9, + 163, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 9, + 172, + 131, + 97, + 9, + 116, + 86, + 91, + 148, + 96, + 32, + 147, + 144, + 147, + 1, + 53, + 147, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 96, + 96, + 132, + 134, + 3, + 18, + 21, + 97, + 9, + 207, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 9, + 216, + 132, + 97, + 9, + 116, + 86, + 91, + 146, + 80, + 97, + 9, + 230, + 96, + 32, + 133, + 1, + 97, + 9, + 116, + 86, + 91, + 145, + 80, + 96, + 64, + 132, + 1, + 53, + 144, + 80, + 146, + 80, + 146, + 80, + 146, + 86, + 91, + 96, + 0, + 96, + 32, + 130, + 132, + 3, + 18, + 21, + 97, + 10, + 8, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 10, + 17, + 130, + 97, + 9, + 116, + 86, + 91, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 128, + 96, + 0, + 128, + 96, + 0, + 96, + 224, + 136, + 138, + 3, + 18, + 21, + 97, + 10, + 51, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 10, + 60, + 136, + 97, + 9, + 116, + 86, + 91, + 150, + 80, + 97, + 10, + 74, + 96, + 32, + 137, + 1, + 97, + 9, + 116, + 86, + 91, + 149, + 80, + 96, + 64, + 136, + 1, + 53, + 148, + 80, + 96, + 96, + 136, + 1, + 53, + 147, + 80, + 96, + 128, + 136, + 1, + 53, + 96, + 255, + 129, + 22, + 129, + 20, + 97, + 10, + 110, + 87, + 96, + 0, + 128, + 253, + 91, + 150, + 153, + 149, + 152, + 80, + 147, + 150, + 146, + 149, + 148, + 96, + 160, + 132, + 1, + 53, + 148, + 80, + 96, + 192, + 144, + 147, + 1, + 53, + 146, + 145, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 64, + 131, + 133, + 3, + 18, + 21, + 97, + 10, + 158, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 10, + 167, + 131, + 97, + 9, + 116, + 86, + 91, + 145, + 80, + 97, + 10, + 181, + 96, + 32, + 132, + 1, + 97, + 9, + 116, + 86, + 91, + 144, + 80, + 146, + 80, + 146, + 144, + 80, + 86, + 91, + 96, + 1, + 129, + 129, + 28, + 144, + 130, + 22, + 128, + 97, + 10, + 210, + 87, + 96, + 127, + 130, + 22, + 145, + 80, + 91, + 96, + 32, + 130, + 16, + 129, + 3, + 97, + 10, + 242, + 87, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 34, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 80, + 145, + 144, + 80, + 86, + 91, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 17, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 96, + 0, + 129, + 96, + 0, + 25, + 4, + 131, + 17, + 130, + 21, + 21, + 22, + 21, + 97, + 11, + 40, + 87, + 97, + 11, + 40, + 97, + 10, + 248, + 86, + 91, + 80, + 2, + 144, + 86, + 91, + 96, + 0, + 130, + 97, + 11, + 74, + 87, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 18, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 80, + 4, + 144, + 86, + 91, + 96, + 0, + 130, + 130, + 16, + 21, + 97, + 11, + 97, + 87, + 97, + 11, + 97, + 97, + 10, + 248, + 86, + 91, + 80, + 3, + 144, + 86, + 91, + 96, + 0, + 128, + 131, + 84, + 129, + 96, + 1, + 130, + 129, + 28, + 145, + 80, + 128, + 131, + 22, + 128, + 97, + 11, + 130, + 87, + 96, + 127, + 131, + 22, + 146, + 80, + 91, + 96, + 32, + 128, + 132, + 16, + 130, + 3, + 97, + 11, + 161, + 87, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 134, + 82, + 96, + 34, + 96, + 4, + 82, + 96, + 36, + 134, + 253, + 91, + 129, + 128, + 21, + 97, + 11, + 181, + 87, + 96, + 1, + 129, + 20, + 97, + 11, + 198, + 87, + 97, + 11, + 243, + 86, + 91, + 96, + 255, + 25, + 134, + 22, + 137, + 82, + 132, + 137, + 1, + 150, + 80, + 97, + 11, + 243, + 86, + 91, + 96, + 0, + 138, + 129, + 82, + 96, + 32, + 144, + 32, + 96, + 0, + 91, + 134, + 129, + 16, + 21, + 97, + 11, + 235, + 87, + 129, + 84, + 139, + 130, + 1, + 82, + 144, + 133, + 1, + 144, + 131, + 1, + 97, + 11, + 210, + 86, + 91, + 80, + 80, + 132, + 137, + 1, + 150, + 80, + 91, + 80, + 148, + 152, + 151, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 130, + 25, + 130, + 17, + 21, + 97, + 12, + 20, + 87, + 97, + 12, + 20, + 97, + 10, + 248, + 86, + 91, + 80, + 1, + 144, + 86, + 254, + 221, + 242, + 82, + 173, + 27, + 226, + 200, + 155, + 105, + 194, + 176, + 104, + 252, + 55, + 141, + 170, + 149, + 43, + 167, + 241, + 99, + 196, + 161, + 22, + 40, + 245, + 90, + 77, + 245, + 35, + 179, + 239, + 162, + 100, + 105, + 112, + 102, + 115, + 88, + 34, + 18, + 32, + 164, + 58, + 27, + 68, + 152, + 101, + 234, + 102, + 167, + 171, + 28, + 247, + 96, + 214, + 58, + 195, + 219, + 250, + 63, + 173, + 150, + 252, + 3, + 204, + 97, + 234, + 63, + 226, + 188, + 181, + 93, + 150, + 100, + 115, + 111, + 108, + 99, + 67, + 0, + 8, + 13, + 0, + 51, + ]; + ///The deployed bytecode of the contract. + pub static FEEONTRANSFERTOKEN_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __DEPLOYED_BYTECODE, + ); + pub struct FeeOnTransferToken(::ethers::contract::Contract); + impl ::core::clone::Clone for FeeOnTransferToken { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for FeeOnTransferToken { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for FeeOnTransferToken { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for FeeOnTransferToken { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(stringify!(FeeOnTransferToken)).field(&self.address()).finish() + } + } + impl FeeOnTransferToken { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + FEEONTRANSFERTOKEN_ABI.clone(), + client, + ), + ) + } + /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. + /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction + /// + /// Notes: + /// - If there are no constructor arguments, you should pass `()` as the argument. + /// - The default poll duration is 7 seconds. + /// - The default number of confirmations is 1 block. + /// + /// + /// # Example + /// + /// Generate contract bindings with `abigen!` and deploy a new contract instance. + /// + /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. + /// + /// ```ignore + /// # async fn deploy(client: ::std::sync::Arc) { + /// abigen!(Greeter, "../greeter.json"); + /// + /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); + /// let msg = greeter_contract.greet().call().await.unwrap(); + /// # } + /// ``` + pub fn deploy( + client: ::std::sync::Arc, + constructor_args: T, + ) -> ::core::result::Result< + ::ethers::contract::builders::ContractDeployer, + ::ethers::contract::ContractError, + > { + let factory = ::ethers::contract::ContractFactory::new( + FEEONTRANSFERTOKEN_ABI.clone(), + FEEONTRANSFERTOKEN_BYTECODE.clone().into(), + client, + ); + let deployer = factory.deploy(constructor_args)?; + let deployer = ::ethers::contract::ContractDeployer::new(deployer); + Ok(deployer) + } + ///Calls the contract's `DOMAIN_SEPARATOR` (0x3644e515) function + pub fn domain_separator( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([54, 68, 229, 21], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `allowance` (0xdd62ed3e) function + pub fn allowance( + &self, + p0: ::ethers::core::types::Address, + p1: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([221, 98, 237, 62], (p0, p1)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `approve` (0x095ea7b3) function + pub fn approve( + &self, + spender: ::ethers::core::types::Address, + amount: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([9, 94, 167, 179], (spender, amount)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `balanceOf` (0x70a08231) function + pub fn balance_of( + &self, + p0: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([112, 160, 130, 49], p0) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `burn` (0x9dc29fac) function + pub fn burn( + &self, + from: ::ethers::core::types::Address, + value: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([157, 194, 159, 172], (from, value)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `decimals` (0x313ce567) function + pub fn decimals(&self) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([49, 60, 229, 103], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `mint` (0x40c10f19) function + pub fn mint( + &self, + to: ::ethers::core::types::Address, + value: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([64, 193, 15, 25], (to, value)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `name` (0x06fdde03) function + pub fn name( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([6, 253, 222, 3], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `nonces` (0x7ecebe00) function + pub fn nonces( + &self, + p0: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([126, 206, 190, 0], p0) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `permit` (0xd505accf) function + pub fn permit( + &self, + owner: ::ethers::core::types::Address, + spender: ::ethers::core::types::Address, + value: ::ethers::core::types::U256, + deadline: ::ethers::core::types::U256, + v: u8, + r: [u8; 32], + s: [u8; 32], + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash( + [213, 5, 172, 207], + (owner, spender, value, deadline, v, r, s), + ) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `symbol` (0x95d89b41) function + pub fn symbol( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([149, 216, 155, 65], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `totalSupply` (0x18160ddd) function + pub fn total_supply( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([24, 22, 13, 221], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `transfer` (0xa9059cbb) function + pub fn transfer( + &self, + to: ::ethers::core::types::Address, + amount: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([169, 5, 156, 187], (to, amount)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `transferFrom` (0x23b872dd) function + pub fn transfer_from( + &self, + from: ::ethers::core::types::Address, + to: ::ethers::core::types::Address, + amount: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([35, 184, 114, 221], (from, to, amount)) + .expect("method not found (this should never happen)") + } + ///Gets the contract's `Approval` event + pub fn approval_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + ApprovalFilter, + > { + self.0.event() + } + ///Gets the contract's `Transfer` event + pub fn transfer_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + TransferFilter, + > { + self.0.event() + } + /// Returns an `Event` builder for all the events of this contract. + pub fn events( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + FeeOnTransferTokenEvents, + > { + self.0.event_with_filter(::core::default::Default::default()) + } + } + impl From<::ethers::contract::Contract> + for FeeOnTransferToken { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "Approval", abi = "Approval(address,address,uint256)")] + pub struct ApprovalFilter { + #[ethevent(indexed)] + pub owner: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub spender: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "Transfer", abi = "Transfer(address,address,uint256)")] + pub struct TransferFilter { + #[ethevent(indexed)] + pub from: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub to: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + ///Container type for all of the contract's events + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum FeeOnTransferTokenEvents { + ApprovalFilter(ApprovalFilter), + TransferFilter(TransferFilter), + } + impl ::ethers::contract::EthLogDecode for FeeOnTransferTokenEvents { + fn decode_log( + log: &::ethers::core::abi::RawLog, + ) -> ::core::result::Result { + if let Ok(decoded) = ApprovalFilter::decode_log(log) { + return Ok(FeeOnTransferTokenEvents::ApprovalFilter(decoded)); + } + if let Ok(decoded) = TransferFilter::decode_log(log) { + return Ok(FeeOnTransferTokenEvents::TransferFilter(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData) + } + } + impl ::core::fmt::Display for FeeOnTransferTokenEvents { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::ApprovalFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::TransferFilter(element) => ::core::fmt::Display::fmt(element, f), + } + } + } + impl ::core::convert::From for FeeOnTransferTokenEvents { + fn from(value: ApprovalFilter) -> Self { + Self::ApprovalFilter(value) + } + } + impl ::core::convert::From for FeeOnTransferTokenEvents { + fn from(value: TransferFilter) -> Self { + Self::TransferFilter(value) + } + } + ///Container type for all input parameters for the `DOMAIN_SEPARATOR` function with signature `DOMAIN_SEPARATOR()` and selector `0x3644e515` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "DOMAIN_SEPARATOR", abi = "DOMAIN_SEPARATOR()")] + pub struct DomainSeparatorCall; + ///Container type for all input parameters for the `allowance` function with signature `allowance(address,address)` and selector `0xdd62ed3e` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "allowance", abi = "allowance(address,address)")] + pub struct AllowanceCall( + pub ::ethers::core::types::Address, + pub ::ethers::core::types::Address, + ); + ///Container type for all input parameters for the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "approve", abi = "approve(address,uint256)")] + pub struct ApproveCall { + pub spender: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "balanceOf", abi = "balanceOf(address)")] + pub struct BalanceOfCall(pub ::ethers::core::types::Address); + ///Container type for all input parameters for the `burn` function with signature `burn(address,uint256)` and selector `0x9dc29fac` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "burn", abi = "burn(address,uint256)")] + pub struct BurnCall { + pub from: ::ethers::core::types::Address, + pub value: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `decimals` function with signature `decimals()` and selector `0x313ce567` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "decimals", abi = "decimals()")] + pub struct DecimalsCall; + ///Container type for all input parameters for the `mint` function with signature `mint(address,uint256)` and selector `0x40c10f19` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "mint", abi = "mint(address,uint256)")] + pub struct MintCall { + pub to: ::ethers::core::types::Address, + pub value: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `name` function with signature `name()` and selector `0x06fdde03` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "name", abi = "name()")] + pub struct NameCall; + ///Container type for all input parameters for the `nonces` function with signature `nonces(address)` and selector `0x7ecebe00` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "nonces", abi = "nonces(address)")] + pub struct NoncesCall(pub ::ethers::core::types::Address); + ///Container type for all input parameters for the `permit` function with signature `permit(address,address,uint256,uint256,uint8,bytes32,bytes32)` and selector `0xd505accf` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall( + name = "permit", + abi = "permit(address,address,uint256,uint256,uint8,bytes32,bytes32)" + )] + pub struct PermitCall { + pub owner: ::ethers::core::types::Address, + pub spender: ::ethers::core::types::Address, + pub value: ::ethers::core::types::U256, + pub deadline: ::ethers::core::types::U256, + pub v: u8, + pub r: [u8; 32], + pub s: [u8; 32], + } + ///Container type for all input parameters for the `symbol` function with signature `symbol()` and selector `0x95d89b41` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "symbol", abi = "symbol()")] + pub struct SymbolCall; + ///Container type for all input parameters for the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "totalSupply", abi = "totalSupply()")] + pub struct TotalSupplyCall; + ///Container type for all input parameters for the `transfer` function with signature `transfer(address,uint256)` and selector `0xa9059cbb` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "transfer", abi = "transfer(address,uint256)")] + pub struct TransferCall { + pub to: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "transferFrom", abi = "transferFrom(address,address,uint256)")] + pub struct TransferFromCall { + pub from: ::ethers::core::types::Address, + pub to: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + ///Container type for all of the contract's call + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum FeeOnTransferTokenCalls { + DomainSeparator(DomainSeparatorCall), + Allowance(AllowanceCall), + Approve(ApproveCall), + BalanceOf(BalanceOfCall), + Burn(BurnCall), + Decimals(DecimalsCall), + Mint(MintCall), + Name(NameCall), + Nonces(NoncesCall), + Permit(PermitCall), + Symbol(SymbolCall), + TotalSupply(TotalSupplyCall), + Transfer(TransferCall), + TransferFrom(TransferFromCall), + } + impl ::ethers::core::abi::AbiDecode for FeeOnTransferTokenCalls { + fn decode( + data: impl AsRef<[u8]>, + ) -> ::core::result::Result { + let data = data.as_ref(); + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::DomainSeparator(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Allowance(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Approve(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::BalanceOf(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Burn(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Decimals(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Mint(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Name(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Nonces(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Permit(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Symbol(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::TotalSupply(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Transfer(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::TransferFrom(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData.into()) + } + } + impl ::ethers::core::abi::AbiEncode for FeeOnTransferTokenCalls { + fn encode(self) -> Vec { + match self { + Self::DomainSeparator(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Allowance(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Approve(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::BalanceOf(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Burn(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Decimals(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Mint(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Name(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Nonces(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Permit(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Symbol(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::TotalSupply(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Transfer(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::TransferFrom(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + } + } + } + impl ::core::fmt::Display for FeeOnTransferTokenCalls { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::DomainSeparator(element) => ::core::fmt::Display::fmt(element, f), + Self::Allowance(element) => ::core::fmt::Display::fmt(element, f), + Self::Approve(element) => ::core::fmt::Display::fmt(element, f), + Self::BalanceOf(element) => ::core::fmt::Display::fmt(element, f), + Self::Burn(element) => ::core::fmt::Display::fmt(element, f), + Self::Decimals(element) => ::core::fmt::Display::fmt(element, f), + Self::Mint(element) => ::core::fmt::Display::fmt(element, f), + Self::Name(element) => ::core::fmt::Display::fmt(element, f), + Self::Nonces(element) => ::core::fmt::Display::fmt(element, f), + Self::Permit(element) => ::core::fmt::Display::fmt(element, f), + Self::Symbol(element) => ::core::fmt::Display::fmt(element, f), + Self::TotalSupply(element) => ::core::fmt::Display::fmt(element, f), + Self::Transfer(element) => ::core::fmt::Display::fmt(element, f), + Self::TransferFrom(element) => ::core::fmt::Display::fmt(element, f), + } + } + } + impl ::core::convert::From for FeeOnTransferTokenCalls { + fn from(value: DomainSeparatorCall) -> Self { + Self::DomainSeparator(value) + } + } + impl ::core::convert::From for FeeOnTransferTokenCalls { + fn from(value: AllowanceCall) -> Self { + Self::Allowance(value) + } + } + impl ::core::convert::From for FeeOnTransferTokenCalls { + fn from(value: ApproveCall) -> Self { + Self::Approve(value) + } + } + impl ::core::convert::From for FeeOnTransferTokenCalls { + fn from(value: BalanceOfCall) -> Self { + Self::BalanceOf(value) + } + } + impl ::core::convert::From for FeeOnTransferTokenCalls { + fn from(value: BurnCall) -> Self { + Self::Burn(value) + } + } + impl ::core::convert::From for FeeOnTransferTokenCalls { + fn from(value: DecimalsCall) -> Self { + Self::Decimals(value) + } + } + impl ::core::convert::From for FeeOnTransferTokenCalls { + fn from(value: MintCall) -> Self { + Self::Mint(value) + } + } + impl ::core::convert::From for FeeOnTransferTokenCalls { + fn from(value: NameCall) -> Self { + Self::Name(value) + } + } + impl ::core::convert::From for FeeOnTransferTokenCalls { + fn from(value: NoncesCall) -> Self { + Self::Nonces(value) + } + } + impl ::core::convert::From for FeeOnTransferTokenCalls { + fn from(value: PermitCall) -> Self { + Self::Permit(value) + } + } + impl ::core::convert::From for FeeOnTransferTokenCalls { + fn from(value: SymbolCall) -> Self { + Self::Symbol(value) + } + } + impl ::core::convert::From for FeeOnTransferTokenCalls { + fn from(value: TotalSupplyCall) -> Self { + Self::TotalSupply(value) + } + } + impl ::core::convert::From for FeeOnTransferTokenCalls { + fn from(value: TransferCall) -> Self { + Self::Transfer(value) + } + } + impl ::core::convert::From for FeeOnTransferTokenCalls { + fn from(value: TransferFromCall) -> Self { + Self::TransferFrom(value) + } + } + ///Container type for all return fields from the `DOMAIN_SEPARATOR` function with signature `DOMAIN_SEPARATOR()` and selector `0x3644e515` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct DomainSeparatorReturn(pub [u8; 32]); + ///Container type for all return fields from the `allowance` function with signature `allowance(address,address)` and selector `0xdd62ed3e` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct AllowanceReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct ApproveReturn(pub bool); + ///Container type for all return fields from the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct BalanceOfReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `decimals` function with signature `decimals()` and selector `0x313ce567` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct DecimalsReturn(pub u8); + ///Container type for all return fields from the `name` function with signature `name()` and selector `0x06fdde03` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct NameReturn(pub ::std::string::String); + ///Container type for all return fields from the `nonces` function with signature `nonces(address)` and selector `0x7ecebe00` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct NoncesReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `symbol` function with signature `symbol()` and selector `0x95d89b41` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct SymbolReturn(pub ::std::string::String); + ///Container type for all return fields from the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct TotalSupplyReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `transfer` function with signature `transfer(address,uint256)` and selector `0xa9059cbb` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct TransferReturn(pub bool); + ///Container type for all return fields from the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct TransferFromReturn(pub bool); +} diff --git a/crates/bindings/src/reverting_contract.rs b/crates/bindings/src/fixed_point_math_lib.rs similarity index 60% rename from crates/bindings/src/reverting_contract.rs rename to crates/bindings/src/fixed_point_math_lib.rs index 7994e0a3..0bff2f29 100644 --- a/crates/bindings/src/reverting_contract.rs +++ b/crates/bindings/src/fixed_point_math_lib.rs @@ -1,4 +1,4 @@ -pub use reverting_contract::*; +pub use fixed_point_math_lib::*; /// This module was auto-generated with ethers-rs Abigen. /// More information at: #[allow( @@ -9,11 +9,11 @@ pub use reverting_contract::*; dead_code, non_camel_case_types, )] -pub mod reverting_contract { +pub mod fixed_point_math_lib { #[rustfmt::skip] - const __ABI: &str = "[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\",\"outputs\":[]}]"; + const __ABI: &str = "[]"; ///The parsed JSON ABI of the contract. - pub static REVERTINGCONTRACT_ABI: ::ethers::contract::Lazy< + pub static FIXEDPOINTMATHLIB_ABI: ::ethers::contract::Lazy< ::ethers::core::abi::Abi, > = ::ethers::contract::Lazy::new(|| { ::ethers::core::utils::__serde_json::from_str(__ABI) @@ -22,33 +22,176 @@ pub mod reverting_contract { #[rustfmt::skip] const __BYTECODE: &[u8] = &[ 96, - 128, + 86, 96, - 64, - 82, - 52, + 55, + 96, + 11, + 130, + 130, + 130, + 57, 128, - 21, + 81, + 96, + 0, + 26, + 96, + 115, + 20, 96, - 15, + 42, 87, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 0, + 96, + 4, + 82, + 96, + 36, 96, 0, - 128, 253, 91, + 48, + 96, + 0, + 82, + 96, + 115, + 129, + 83, + 130, + 129, + 243, + 254, + 115, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 48, + 20, + 96, + 128, + 96, + 64, + 82, 96, 0, 128, 253, 254, + 162, + 100, + 105, + 112, + 102, + 115, + 88, + 34, + 18, + 32, + 179, + 57, + 13, + 16, + 88, + 48, + 27, + 105, + 123, + 27, + 186, + 51, + 30, + 187, + 174, + 68, + 233, + 146, + 251, + 61, + 250, + 111, + 203, + 105, + 140, + 23, + 0, + 140, + 141, + 135, + 222, + 94, + 100, + 115, + 111, + 108, + 99, + 67, + 0, + 8, + 13, + 0, + 51, ]; ///The bytecode of the contract. - pub static REVERTINGCONTRACT_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + pub static FIXEDPOINTMATHLIB_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( __BYTECODE, ); #[rustfmt::skip] const __DEPLOYED_BYTECODE: &[u8] = &[ + 115, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 48, + 20, 96, 128, 96, @@ -69,38 +212,38 @@ pub mod reverting_contract { 34, 18, 32, - 127, - 112, - 102, - 45, - 76, - 248, - 41, - 249, - 118, - 154, - 47, + 179, + 57, + 13, + 16, + 88, 48, + 27, + 105, + 123, + 27, + 186, + 51, + 30, + 187, + 174, + 68, + 233, + 146, + 251, + 61, 250, - 2, + 111, + 203, + 105, + 140, + 23, 0, - 231, - 250, - 6, - 166, - 0, - 53, - 235, - 229, - 90, - 38, - 197, - 8, - 163, - 213, - 10, + 140, 141, - 22, + 135, + 222, + 94, 100, 115, 111, @@ -109,37 +252,37 @@ pub mod reverting_contract { 67, 0, 8, - 19, + 13, 0, 51, ]; ///The deployed bytecode of the contract. - pub static REVERTINGCONTRACT_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + pub static FIXEDPOINTMATHLIB_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( __DEPLOYED_BYTECODE, ); - pub struct RevertingContract(::ethers::contract::Contract); - impl ::core::clone::Clone for RevertingContract { + pub struct FixedPointMathLib(::ethers::contract::Contract); + impl ::core::clone::Clone for FixedPointMathLib { fn clone(&self) -> Self { Self(::core::clone::Clone::clone(&self.0)) } } - impl ::core::ops::Deref for RevertingContract { + impl ::core::ops::Deref for FixedPointMathLib { type Target = ::ethers::contract::Contract; fn deref(&self) -> &Self::Target { &self.0 } } - impl ::core::ops::DerefMut for RevertingContract { + impl ::core::ops::DerefMut for FixedPointMathLib { fn deref_mut(&mut self) -> &mut Self::Target { &mut self.0 } } - impl ::core::fmt::Debug for RevertingContract { + impl ::core::fmt::Debug for FixedPointMathLib { fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(stringify!(RevertingContract)).field(&self.address()).finish() + f.debug_tuple(stringify!(FixedPointMathLib)).field(&self.address()).finish() } } - impl RevertingContract { + impl FixedPointMathLib { /// Creates a new contract instance with the specified `ethers` client at /// `address`. The contract derefs to a `ethers::Contract` object. pub fn new>( @@ -149,7 +292,7 @@ pub mod reverting_contract { Self( ::ethers::contract::Contract::new( address.into(), - REVERTINGCONTRACT_ABI.clone(), + FIXEDPOINTMATHLIB_ABI.clone(), client, ), ) @@ -185,8 +328,8 @@ pub mod reverting_contract { ::ethers::contract::ContractError, > { let factory = ::ethers::contract::ContractFactory::new( - REVERTINGCONTRACT_ABI.clone(), - REVERTINGCONTRACT_BYTECODE.clone().into(), + FIXEDPOINTMATHLIB_ABI.clone(), + FIXEDPOINTMATHLIB_BYTECODE.clone().into(), client, ); let deployer = factory.deploy(constructor_args)?; @@ -195,7 +338,7 @@ pub mod reverting_contract { } } impl From<::ethers::contract::Contract> - for RevertingContract { + for FixedPointMathLib { fn from(contract: ::ethers::contract::Contract) -> Self { Self::new(contract.address(), contract.client()) } diff --git a/crates/bindings/src/fvm_lib.rs b/crates/bindings/src/fvm_lib.rs new file mode 100644 index 00000000..cc22bbf5 --- /dev/null +++ b/crates/bindings/src/fvm_lib.rs @@ -0,0 +1,62 @@ +pub use fvm_lib::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod fvm_lib { + #[rustfmt::skip] + const __ABI: &str = "[]"; + ///The parsed JSON ABI of the contract. + pub static FVMLIB_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| + ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); + pub struct FVMLib(::ethers::contract::Contract); + impl ::core::clone::Clone for FVMLib { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for FVMLib { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for FVMLib { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for FVMLib { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(stringify!(FVMLib)).field(&self.address()).finish() + } + } + impl FVMLib { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + FVMLIB_ABI.clone(), + client, + ), + ) + } + } + impl From<::ethers::contract::Contract> + for FVMLib { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } +} diff --git a/crates/bindings/src/gaussian.rs b/crates/bindings/src/gaussian.rs new file mode 100644 index 00000000..b3ba04a5 --- /dev/null +++ b/crates/bindings/src/gaussian.rs @@ -0,0 +1,479 @@ +pub use gaussian::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod gaussian { + #[rustfmt::skip] + const __ABI: &str = "[{\"inputs\":[],\"type\":\"error\",\"name\":\"Infinity\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"NegativeInfinity\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"OutOfBounds\",\"outputs\":[]}]"; + ///The parsed JSON ABI of the contract. + pub static GAUSSIAN_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| + ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); + #[rustfmt::skip] + const __BYTECODE: &[u8] = &[ + 96, + 86, + 96, + 55, + 96, + 11, + 130, + 130, + 130, + 57, + 128, + 81, + 96, + 0, + 26, + 96, + 115, + 20, + 96, + 42, + 87, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 0, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 48, + 96, + 0, + 82, + 96, + 115, + 129, + 83, + 130, + 129, + 243, + 254, + 115, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 48, + 20, + 96, + 128, + 96, + 64, + 82, + 96, + 0, + 128, + 253, + 254, + 162, + 100, + 105, + 112, + 102, + 115, + 88, + 34, + 18, + 32, + 85, + 151, + 143, + 125, + 73, + 175, + 216, + 84, + 232, + 75, + 6, + 199, + 76, + 165, + 165, + 201, + 152, + 128, + 191, + 75, + 105, + 203, + 211, + 129, + 58, + 142, + 121, + 163, + 95, + 231, + 155, + 124, + 100, + 115, + 111, + 108, + 99, + 67, + 0, + 8, + 13, + 0, + 51, + ]; + ///The bytecode of the contract. + pub static GAUSSIAN_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __BYTECODE, + ); + #[rustfmt::skip] + const __DEPLOYED_BYTECODE: &[u8] = &[ + 115, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 48, + 20, + 96, + 128, + 96, + 64, + 82, + 96, + 0, + 128, + 253, + 254, + 162, + 100, + 105, + 112, + 102, + 115, + 88, + 34, + 18, + 32, + 85, + 151, + 143, + 125, + 73, + 175, + 216, + 84, + 232, + 75, + 6, + 199, + 76, + 165, + 165, + 201, + 152, + 128, + 191, + 75, + 105, + 203, + 211, + 129, + 58, + 142, + 121, + 163, + 95, + 231, + 155, + 124, + 100, + 115, + 111, + 108, + 99, + 67, + 0, + 8, + 13, + 0, + 51, + ]; + ///The deployed bytecode of the contract. + pub static GAUSSIAN_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __DEPLOYED_BYTECODE, + ); + pub struct Gaussian(::ethers::contract::Contract); + impl ::core::clone::Clone for Gaussian { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for Gaussian { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for Gaussian { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for Gaussian { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(stringify!(Gaussian)).field(&self.address()).finish() + } + } + impl Gaussian { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + GAUSSIAN_ABI.clone(), + client, + ), + ) + } + /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. + /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction + /// + /// Notes: + /// - If there are no constructor arguments, you should pass `()` as the argument. + /// - The default poll duration is 7 seconds. + /// - The default number of confirmations is 1 block. + /// + /// + /// # Example + /// + /// Generate contract bindings with `abigen!` and deploy a new contract instance. + /// + /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. + /// + /// ```ignore + /// # async fn deploy(client: ::std::sync::Arc) { + /// abigen!(Greeter, "../greeter.json"); + /// + /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); + /// let msg = greeter_contract.greet().call().await.unwrap(); + /// # } + /// ``` + pub fn deploy( + client: ::std::sync::Arc, + constructor_args: T, + ) -> ::core::result::Result< + ::ethers::contract::builders::ContractDeployer, + ::ethers::contract::ContractError, + > { + let factory = ::ethers::contract::ContractFactory::new( + GAUSSIAN_ABI.clone(), + GAUSSIAN_BYTECODE.clone().into(), + client, + ); + let deployer = factory.deploy(constructor_args)?; + let deployer = ::ethers::contract::ContractDeployer::new(deployer); + Ok(deployer) + } + } + impl From<::ethers::contract::Contract> + for Gaussian { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } + ///Custom Error type `Infinity` with signature `Infinity()` and selector `0x07a02127` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "Infinity", abi = "Infinity()")] + pub struct Infinity; + ///Custom Error type `NegativeInfinity` with signature `NegativeInfinity()` and selector `0x8bb56614` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "NegativeInfinity", abi = "NegativeInfinity()")] + pub struct NegativeInfinity; + ///Custom Error type `OutOfBounds` with signature `OutOfBounds()` and selector `0xb4120f14` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "OutOfBounds", abi = "OutOfBounds()")] + pub struct OutOfBounds; + ///Container type for all of the contract's custom errors + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum GaussianErrors { + Infinity(Infinity), + NegativeInfinity(NegativeInfinity), + OutOfBounds(OutOfBounds), + /// The standard solidity revert string, with selector + /// Error(string) -- 0x08c379a0 + RevertString(::std::string::String), + } + impl ::ethers::core::abi::AbiDecode for GaussianErrors { + fn decode( + data: impl AsRef<[u8]>, + ) -> ::core::result::Result { + let data = data.as_ref(); + if let Ok(decoded) + = <::std::string::String as ::ethers::core::abi::AbiDecode>::decode( + data, + ) { + return Ok(Self::RevertString(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Infinity(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::NegativeInfinity(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::OutOfBounds(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData.into()) + } + } + impl ::ethers::core::abi::AbiEncode for GaussianErrors { + fn encode(self) -> ::std::vec::Vec { + match self { + Self::Infinity(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::NegativeInfinity(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::OutOfBounds(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::RevertString(s) => ::ethers::core::abi::AbiEncode::encode(s), + } + } + } + impl ::ethers::contract::ContractRevert for GaussianErrors { + fn valid_selector(selector: [u8; 4]) -> bool { + match selector { + [0x08, 0xc3, 0x79, 0xa0] => true, + _ if selector + == ::selector() => true, + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => true, + _ => false, + } + } + } + impl ::core::fmt::Display for GaussianErrors { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::Infinity(element) => ::core::fmt::Display::fmt(element, f), + Self::NegativeInfinity(element) => ::core::fmt::Display::fmt(element, f), + Self::OutOfBounds(element) => ::core::fmt::Display::fmt(element, f), + Self::RevertString(s) => ::core::fmt::Display::fmt(s, f), + } + } + } + impl ::core::convert::From<::std::string::String> for GaussianErrors { + fn from(value: String) -> Self { + Self::RevertString(value) + } + } + impl ::core::convert::From for GaussianErrors { + fn from(value: Infinity) -> Self { + Self::Infinity(value) + } + } + impl ::core::convert::From for GaussianErrors { + fn from(value: NegativeInfinity) -> Self { + Self::NegativeInfinity(value) + } + } + impl ::core::convert::From for GaussianErrors { + fn from(value: OutOfBounds) -> Self { + Self::OutOfBounds(value) + } + } +} diff --git a/crates/bindings/src/i_portfolio.rs b/crates/bindings/src/i_portfolio.rs new file mode 100644 index 00000000..55c89dc6 --- /dev/null +++ b/crates/bindings/src/i_portfolio.rs @@ -0,0 +1,1877 @@ +pub use i_portfolio::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod i_portfolio { + pub use super::super::shared_types::*; + #[rustfmt::skip] + const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaLiquidity\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Allocate\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint16\",\"name\":\"priorityFee\",\"type\":\"uint16\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint16\",\"name\":\"fee\",\"type\":\"uint16\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint16\",\"name\":\"jit\",\"type\":\"uint16\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"ChangeParameters\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"feeAssetDec\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"feeQuoteDec\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true}],\"type\":\"event\",\"name\":\"Collect\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"pairId\",\"type\":\"uint24\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint8\",\"name\":\"decimalsAsset\",\"type\":\"uint8\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint8\",\"name\":\"decimalsQuote\",\"type\":\"uint8\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"CreatePair\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"bool\",\"name\":\"isMutable\",\"type\":\"bool\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"CreatePool\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaLiquidity\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Deallocate\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"DecreaseReserveBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"DecreaseUserBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Deposit\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"IncreaseReserveBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"IncreaseUserBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"sellAsset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"input\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"tokenOut\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"output\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"feeAmountDec\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"int256\",\"name\":\"invariantWad\",\"type\":\"int256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Swap\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"prevFee\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"nextFee\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"UpdateProtocolFee\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\",\"name\":\"VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"WETH\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"priorityFee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"fee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"jit\",\"type\":\"uint16\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"changeParameters\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"deposit\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"draw\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"fund\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"bool\",\"name\":\"sellAsset\",\"type\":\"bool\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getAmountOut\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"int128\",\"name\":\"deltaLiquidity\",\"type\":\"int128\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getLiquidityDeltas\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"deltaAsset\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"deltaQuote\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getMaxLiquidity\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"deltaLiquidity\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getNetBalance\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPairId\",\"outputs\":[{\"internalType\":\"uint24\",\"name\":\"pairId\",\"type\":\"uint24\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPairNonce\",\"outputs\":[{\"internalType\":\"uint24\",\"name\":\"\",\"type\":\"uint24\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"pairNonce\",\"type\":\"uint24\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPoolNonce\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPoolReserves\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getReserve\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getVirtualPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getVirtualReservesPerLiquidity\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"deltaAsset\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"deltaQuote\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\",\"components\":[]}],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"multiprocess\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"pairId\",\"type\":\"uint24\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"pairs\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"tokenAsset\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsAsset\",\"type\":\"uint8\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"tokenQuote\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsQuote\",\"type\":\"uint8\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"pools\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"virtualX\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"virtualY\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"liquidity\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint32\",\"name\":\"lastTimestamp\",\"type\":\"uint32\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"controller\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"invariantGrowthGlobal\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthGlobalAsset\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthGlobalQuote\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"struct PortfolioCurve\",\"name\":\"\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"uint128\",\"name\":\"maxPrice\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"jit\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"fee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"duration\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"volatility\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"priorityFee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint32\",\"name\":\"createdAt\",\"type\":\"uint32\",\"components\":[]},{\"internalType\":\"bool\",\"name\":\"perpetual\",\"type\":\"bool\",\"components\":[]}]},{\"internalType\":\"struct PortfolioPair\",\"name\":\"\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"address\",\"name\":\"tokenAsset\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsAsset\",\"type\":\"uint8\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"tokenQuote\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsQuote\",\"type\":\"uint8\",\"components\":[]}]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"positions\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"freeLiquidity\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint32\",\"name\":\"lastTimestamp\",\"type\":\"uint32\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"invariantGrowthLast\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthAssetLast\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthQuoteLast\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"tokensOwedAsset\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"tokensOwedQuote\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"invariantOwed\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"setProtocolFee\",\"outputs\":[]}]"; + ///The parsed JSON ABI of the contract. + pub static IPORTFOLIO_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| + ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); + pub struct IPortfolio(::ethers::contract::Contract); + impl ::core::clone::Clone for IPortfolio { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for IPortfolio { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for IPortfolio { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for IPortfolio { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(stringify!(IPortfolio)).field(&self.address()).finish() + } + } + impl IPortfolio { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + IPORTFOLIO_ABI.clone(), + client, + ), + ) + } + ///Calls the contract's `REGISTRY` (0x06433b1b) function + pub fn registry( + &self, + ) -> ::ethers::contract::builders::ContractCall< + M, + ::ethers::core::types::Address, + > { + self.0 + .method_hash([6, 67, 59, 27], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `VERSION` (0xffa1ad74) function + pub fn version( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([255, 161, 173, 116], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `WETH` (0xad5c4648) function + pub fn weth( + &self, + ) -> ::ethers::contract::builders::ContractCall< + M, + ::ethers::core::types::Address, + > { + self.0 + .method_hash([173, 92, 70, 72], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `changeParameters` (0xaf777855) function + pub fn change_parameters( + &self, + pool_id: u64, + priority_fee: u16, + fee: u16, + jit: u16, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([175, 119, 120, 85], (pool_id, priority_fee, fee, jit)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `deposit` (0xd0e30db0) function + pub fn deposit(&self) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([208, 227, 13, 176], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `draw` (0xad24d6a0) function + pub fn draw( + &self, + token: ::ethers::core::types::Address, + amount: ::ethers::core::types::U256, + to: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([173, 36, 214, 160], (token, amount, to)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `fund` (0x7b1837de) function + pub fn fund( + &self, + token: ::ethers::core::types::Address, + amount: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([123, 24, 55, 222], (token, amount)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getAmountOut` (0x7dae4890) function + pub fn get_amount_out( + &self, + pool_id: u64, + sell_asset: bool, + amount_in: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([125, 174, 72, 144], (pool_id, sell_asset, amount_in)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getBalance` (0xd4fac45d) function + pub fn get_balance( + &self, + owner: ::ethers::core::types::Address, + token: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([212, 250, 196, 93], (owner, token)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getLiquidityDeltas` (0x8992f20a) function + pub fn get_liquidity_deltas( + &self, + pool_id: u64, + delta_liquidity: i128, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([137, 146, 242, 10], (pool_id, delta_liquidity)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getMaxLiquidity` (0xd6b7dec5) function + pub fn get_max_liquidity( + &self, + pool_id: u64, + delta_asset: ::ethers::core::types::U256, + delta_quote: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([214, 183, 222, 197], (pool_id, delta_asset, delta_quote)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getNetBalance` (0x4dc68a90) function + pub fn get_net_balance( + &self, + token: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([77, 198, 138, 144], token) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getPairId` (0x3f92a339) function + pub fn get_pair_id( + &self, + asset: ::ethers::core::types::Address, + quote: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([63, 146, 163, 57], (asset, quote)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getPairNonce` (0x078888d6) function + pub fn get_pair_nonce( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([7, 136, 136, 214], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getPoolNonce` (0xa5cd8a49) function + pub fn get_pool_nonce( + &self, + pair_nonce: u32, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([165, 205, 138, 73], pair_nonce) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getPoolReserves` (0x2afb9df8) function + pub fn get_pool_reserves( + &self, + pool_id: u64, + ) -> ::ethers::contract::builders::ContractCall< + M, + (::ethers::core::types::U256, ::ethers::core::types::U256), + > { + self.0 + .method_hash([42, 251, 157, 248], pool_id) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getReserve` (0xc9a396e9) function + pub fn get_reserve( + &self, + token: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([201, 163, 150, 233], token) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getVirtualPrice` (0x61b7ea6a) function + pub fn get_virtual_price( + &self, + pool_id: u64, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([97, 183, 234, 106], pool_id) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getVirtualReservesPerLiquidity` (0x1a4b905b) function + pub fn get_virtual_reserves_per_liquidity( + &self, + pool_id: u64, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([26, 75, 144, 91], pool_id) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `multiprocess` (0xa0fdf413) function + pub fn multiprocess( + &self, + data: ::ethers::core::types::Bytes, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([160, 253, 244, 19], data) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `pairs` (0x5e47663c) function + pub fn pairs( + &self, + pair_id: u32, + ) -> ::ethers::contract::builders::ContractCall< + M, + (::ethers::core::types::Address, u8, ::ethers::core::types::Address, u8), + > { + self.0 + .method_hash([94, 71, 102, 60], pair_id) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `pools` (0x89a5f084) function + pub fn pools( + &self, + pool_id: u64, + ) -> ::ethers::contract::builders::ContractCall< + M, + ( + u128, + u128, + u128, + u32, + ::ethers::core::types::Address, + ::ethers::core::types::U256, + ::ethers::core::types::U256, + ::ethers::core::types::U256, + PortfolioCurve, + PortfolioPair, + ), + > { + self.0 + .method_hash([137, 165, 240, 132], pool_id) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `positions` (0xb68513ea) function + pub fn positions( + &self, + owner: ::ethers::core::types::Address, + pool_id: u64, + ) -> ::ethers::contract::builders::ContractCall< + M, + ( + u128, + u32, + ::ethers::core::types::U256, + ::ethers::core::types::U256, + ::ethers::core::types::U256, + u128, + u128, + u128, + ), + > { + self.0 + .method_hash([182, 133, 19, 234], (owner, pool_id)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `setProtocolFee` (0x787dce3d) function + pub fn set_protocol_fee( + &self, + fee: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([120, 125, 206, 61], fee) + .expect("method not found (this should never happen)") + } + ///Gets the contract's `Allocate` event + pub fn allocate_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + AllocateFilter, + > { + self.0.event() + } + ///Gets the contract's `ChangeParameters` event + pub fn change_parameters_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + ChangeParametersFilter, + > { + self.0.event() + } + ///Gets the contract's `Collect` event + pub fn collect_filter( + &self, + ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, CollectFilter> { + self.0.event() + } + ///Gets the contract's `CreatePair` event + pub fn create_pair_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + CreatePairFilter, + > { + self.0.event() + } + ///Gets the contract's `CreatePool` event + pub fn create_pool_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + CreatePoolFilter, + > { + self.0.event() + } + ///Gets the contract's `Deallocate` event + pub fn deallocate_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + DeallocateFilter, + > { + self.0.event() + } + ///Gets the contract's `DecreaseReserveBalance` event + pub fn decrease_reserve_balance_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + DecreaseReserveBalanceFilter, + > { + self.0.event() + } + ///Gets the contract's `DecreaseUserBalance` event + pub fn decrease_user_balance_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + DecreaseUserBalanceFilter, + > { + self.0.event() + } + ///Gets the contract's `Deposit` event + pub fn deposit_filter( + &self, + ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, DepositFilter> { + self.0.event() + } + ///Gets the contract's `IncreaseReserveBalance` event + pub fn increase_reserve_balance_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + IncreaseReserveBalanceFilter, + > { + self.0.event() + } + ///Gets the contract's `IncreaseUserBalance` event + pub fn increase_user_balance_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + IncreaseUserBalanceFilter, + > { + self.0.event() + } + ///Gets the contract's `Swap` event + pub fn swap_filter( + &self, + ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, SwapFilter> { + self.0.event() + } + ///Gets the contract's `UpdateProtocolFee` event + pub fn update_protocol_fee_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + UpdateProtocolFeeFilter, + > { + self.0.event() + } + /// Returns an `Event` builder for all the events of this contract. + pub fn events( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + IPortfolioEvents, + > { + self.0.event_with_filter(::core::default::Default::default()) + } + } + impl From<::ethers::contract::Contract> + for IPortfolio { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "Allocate", + abi = "Allocate(uint64,address,address,uint256,uint256,uint256)" + )] + pub struct AllocateFilter { + #[ethevent(indexed)] + pub pool_id: u64, + #[ethevent(indexed)] + pub asset: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub quote: ::ethers::core::types::Address, + pub delta_asset: ::ethers::core::types::U256, + pub delta_quote: ::ethers::core::types::U256, + pub delta_liquidity: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "ChangeParameters", + abi = "ChangeParameters(uint64,uint16,uint16,uint16)" + )] + pub struct ChangeParametersFilter { + #[ethevent(indexed)] + pub pool_id: u64, + #[ethevent(indexed)] + pub priority_fee: u16, + #[ethevent(indexed)] + pub fee: u16, + pub jit: u16, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "Collect", + abi = "Collect(uint64,address,uint256,address,uint256,address)" + )] + pub struct CollectFilter { + pub pool_id: u64, + #[ethevent(indexed)] + pub account: ::ethers::core::types::Address, + pub fee_asset_dec: ::ethers::core::types::U256, + #[ethevent(indexed)] + pub asset: ::ethers::core::types::Address, + pub fee_quote_dec: ::ethers::core::types::U256, + #[ethevent(indexed)] + pub quote: ::ethers::core::types::Address, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "CreatePair", + abi = "CreatePair(uint24,address,address,uint8,uint8)" + )] + pub struct CreatePairFilter { + #[ethevent(indexed)] + pub pair_id: u32, + #[ethevent(indexed)] + pub asset: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub quote: ::ethers::core::types::Address, + pub decimals_asset: u8, + pub decimals_quote: u8, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "CreatePool", + abi = "CreatePool(uint64,bool,address,address,uint256)" + )] + pub struct CreatePoolFilter { + #[ethevent(indexed)] + pub pool_id: u64, + pub is_mutable: bool, + #[ethevent(indexed)] + pub asset: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub quote: ::ethers::core::types::Address, + pub price: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "Deallocate", + abi = "Deallocate(uint64,address,address,uint256,uint256,uint256)" + )] + pub struct DeallocateFilter { + #[ethevent(indexed)] + pub pool_id: u64, + #[ethevent(indexed)] + pub asset: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub quote: ::ethers::core::types::Address, + pub delta_asset: ::ethers::core::types::U256, + pub delta_quote: ::ethers::core::types::U256, + pub delta_liquidity: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "DecreaseReserveBalance", + abi = "DecreaseReserveBalance(address,uint256)" + )] + pub struct DecreaseReserveBalanceFilter { + #[ethevent(indexed)] + pub token: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "DecreaseUserBalance", + abi = "DecreaseUserBalance(address,address,uint256)" + )] + pub struct DecreaseUserBalanceFilter { + #[ethevent(indexed)] + pub account: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub token: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "Deposit", abi = "Deposit(address,uint256)")] + pub struct DepositFilter { + #[ethevent(indexed)] + pub account: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "IncreaseReserveBalance", + abi = "IncreaseReserveBalance(address,uint256)" + )] + pub struct IncreaseReserveBalanceFilter { + #[ethevent(indexed)] + pub token: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "IncreaseUserBalance", + abi = "IncreaseUserBalance(address,address,uint256)" + )] + pub struct IncreaseUserBalanceFilter { + #[ethevent(indexed)] + pub account: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub token: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "Swap", + abi = "Swap(uint64,uint256,address,uint256,address,uint256,uint256,int256)" + )] + pub struct SwapFilter { + #[ethevent(indexed)] + pub pool_id: u64, + pub price: ::ethers::core::types::U256, + #[ethevent(indexed)] + pub sell_asset: ::ethers::core::types::Address, + pub input: ::ethers::core::types::U256, + #[ethevent(indexed)] + pub token_out: ::ethers::core::types::Address, + pub output: ::ethers::core::types::U256, + pub fee_amount_dec: ::ethers::core::types::U256, + pub invariant_wad: ::ethers::core::types::I256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "UpdateProtocolFee", abi = "UpdateProtocolFee(uint256,uint256)")] + pub struct UpdateProtocolFeeFilter { + pub prev_fee: ::ethers::core::types::U256, + pub next_fee: ::ethers::core::types::U256, + } + ///Container type for all of the contract's events + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum IPortfolioEvents { + AllocateFilter(AllocateFilter), + ChangeParametersFilter(ChangeParametersFilter), + CollectFilter(CollectFilter), + CreatePairFilter(CreatePairFilter), + CreatePoolFilter(CreatePoolFilter), + DeallocateFilter(DeallocateFilter), + DecreaseReserveBalanceFilter(DecreaseReserveBalanceFilter), + DecreaseUserBalanceFilter(DecreaseUserBalanceFilter), + DepositFilter(DepositFilter), + IncreaseReserveBalanceFilter(IncreaseReserveBalanceFilter), + IncreaseUserBalanceFilter(IncreaseUserBalanceFilter), + SwapFilter(SwapFilter), + UpdateProtocolFeeFilter(UpdateProtocolFeeFilter), + } + impl ::ethers::contract::EthLogDecode for IPortfolioEvents { + fn decode_log( + log: &::ethers::core::abi::RawLog, + ) -> ::core::result::Result { + if let Ok(decoded) = AllocateFilter::decode_log(log) { + return Ok(IPortfolioEvents::AllocateFilter(decoded)); + } + if let Ok(decoded) = ChangeParametersFilter::decode_log(log) { + return Ok(IPortfolioEvents::ChangeParametersFilter(decoded)); + } + if let Ok(decoded) = CollectFilter::decode_log(log) { + return Ok(IPortfolioEvents::CollectFilter(decoded)); + } + if let Ok(decoded) = CreatePairFilter::decode_log(log) { + return Ok(IPortfolioEvents::CreatePairFilter(decoded)); + } + if let Ok(decoded) = CreatePoolFilter::decode_log(log) { + return Ok(IPortfolioEvents::CreatePoolFilter(decoded)); + } + if let Ok(decoded) = DeallocateFilter::decode_log(log) { + return Ok(IPortfolioEvents::DeallocateFilter(decoded)); + } + if let Ok(decoded) = DecreaseReserveBalanceFilter::decode_log(log) { + return Ok(IPortfolioEvents::DecreaseReserveBalanceFilter(decoded)); + } + if let Ok(decoded) = DecreaseUserBalanceFilter::decode_log(log) { + return Ok(IPortfolioEvents::DecreaseUserBalanceFilter(decoded)); + } + if let Ok(decoded) = DepositFilter::decode_log(log) { + return Ok(IPortfolioEvents::DepositFilter(decoded)); + } + if let Ok(decoded) = IncreaseReserveBalanceFilter::decode_log(log) { + return Ok(IPortfolioEvents::IncreaseReserveBalanceFilter(decoded)); + } + if let Ok(decoded) = IncreaseUserBalanceFilter::decode_log(log) { + return Ok(IPortfolioEvents::IncreaseUserBalanceFilter(decoded)); + } + if let Ok(decoded) = SwapFilter::decode_log(log) { + return Ok(IPortfolioEvents::SwapFilter(decoded)); + } + if let Ok(decoded) = UpdateProtocolFeeFilter::decode_log(log) { + return Ok(IPortfolioEvents::UpdateProtocolFeeFilter(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData) + } + } + impl ::core::fmt::Display for IPortfolioEvents { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::AllocateFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::ChangeParametersFilter(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::CollectFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::CreatePairFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::CreatePoolFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::DeallocateFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::DecreaseReserveBalanceFilter(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::DecreaseUserBalanceFilter(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::DepositFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::IncreaseReserveBalanceFilter(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::IncreaseUserBalanceFilter(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::SwapFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::UpdateProtocolFeeFilter(element) => { + ::core::fmt::Display::fmt(element, f) + } + } + } + } + impl ::core::convert::From for IPortfolioEvents { + fn from(value: AllocateFilter) -> Self { + Self::AllocateFilter(value) + } + } + impl ::core::convert::From for IPortfolioEvents { + fn from(value: ChangeParametersFilter) -> Self { + Self::ChangeParametersFilter(value) + } + } + impl ::core::convert::From for IPortfolioEvents { + fn from(value: CollectFilter) -> Self { + Self::CollectFilter(value) + } + } + impl ::core::convert::From for IPortfolioEvents { + fn from(value: CreatePairFilter) -> Self { + Self::CreatePairFilter(value) + } + } + impl ::core::convert::From for IPortfolioEvents { + fn from(value: CreatePoolFilter) -> Self { + Self::CreatePoolFilter(value) + } + } + impl ::core::convert::From for IPortfolioEvents { + fn from(value: DeallocateFilter) -> Self { + Self::DeallocateFilter(value) + } + } + impl ::core::convert::From for IPortfolioEvents { + fn from(value: DecreaseReserveBalanceFilter) -> Self { + Self::DecreaseReserveBalanceFilter(value) + } + } + impl ::core::convert::From for IPortfolioEvents { + fn from(value: DecreaseUserBalanceFilter) -> Self { + Self::DecreaseUserBalanceFilter(value) + } + } + impl ::core::convert::From for IPortfolioEvents { + fn from(value: DepositFilter) -> Self { + Self::DepositFilter(value) + } + } + impl ::core::convert::From for IPortfolioEvents { + fn from(value: IncreaseReserveBalanceFilter) -> Self { + Self::IncreaseReserveBalanceFilter(value) + } + } + impl ::core::convert::From for IPortfolioEvents { + fn from(value: IncreaseUserBalanceFilter) -> Self { + Self::IncreaseUserBalanceFilter(value) + } + } + impl ::core::convert::From for IPortfolioEvents { + fn from(value: SwapFilter) -> Self { + Self::SwapFilter(value) + } + } + impl ::core::convert::From for IPortfolioEvents { + fn from(value: UpdateProtocolFeeFilter) -> Self { + Self::UpdateProtocolFeeFilter(value) + } + } + ///Container type for all input parameters for the `REGISTRY` function with signature `REGISTRY()` and selector `0x06433b1b` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "REGISTRY", abi = "REGISTRY()")] + pub struct RegistryCall; + ///Container type for all input parameters for the `VERSION` function with signature `VERSION()` and selector `0xffa1ad74` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "VERSION", abi = "VERSION()")] + pub struct VersionCall; + ///Container type for all input parameters for the `WETH` function with signature `WETH()` and selector `0xad5c4648` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "WETH", abi = "WETH()")] + pub struct WethCall; + ///Container type for all input parameters for the `changeParameters` function with signature `changeParameters(uint64,uint16,uint16,uint16)` and selector `0xaf777855` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall( + name = "changeParameters", + abi = "changeParameters(uint64,uint16,uint16,uint16)" + )] + pub struct ChangeParametersCall { + pub pool_id: u64, + pub priority_fee: u16, + pub fee: u16, + pub jit: u16, + } + ///Container type for all input parameters for the `deposit` function with signature `deposit()` and selector `0xd0e30db0` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "deposit", abi = "deposit()")] + pub struct DepositCall; + ///Container type for all input parameters for the `draw` function with signature `draw(address,uint256,address)` and selector `0xad24d6a0` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "draw", abi = "draw(address,uint256,address)")] + pub struct DrawCall { + pub token: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + pub to: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `fund` function with signature `fund(address,uint256)` and selector `0x7b1837de` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "fund", abi = "fund(address,uint256)")] + pub struct FundCall { + pub token: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `getAmountOut` function with signature `getAmountOut(uint64,bool,uint256)` and selector `0x7dae4890` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getAmountOut", abi = "getAmountOut(uint64,bool,uint256)")] + pub struct GetAmountOutCall { + pub pool_id: u64, + pub sell_asset: bool, + pub amount_in: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `getBalance` function with signature `getBalance(address,address)` and selector `0xd4fac45d` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getBalance", abi = "getBalance(address,address)")] + pub struct GetBalanceCall { + pub owner: ::ethers::core::types::Address, + pub token: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `getLiquidityDeltas` function with signature `getLiquidityDeltas(uint64,int128)` and selector `0x8992f20a` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getLiquidityDeltas", abi = "getLiquidityDeltas(uint64,int128)")] + pub struct GetLiquidityDeltasCall { + pub pool_id: u64, + pub delta_liquidity: i128, + } + ///Container type for all input parameters for the `getMaxLiquidity` function with signature `getMaxLiquidity(uint64,uint256,uint256)` and selector `0xd6b7dec5` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getMaxLiquidity", abi = "getMaxLiquidity(uint64,uint256,uint256)")] + pub struct GetMaxLiquidityCall { + pub pool_id: u64, + pub delta_asset: ::ethers::core::types::U256, + pub delta_quote: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `getNetBalance` function with signature `getNetBalance(address)` and selector `0x4dc68a90` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getNetBalance", abi = "getNetBalance(address)")] + pub struct GetNetBalanceCall { + pub token: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `getPairId` function with signature `getPairId(address,address)` and selector `0x3f92a339` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getPairId", abi = "getPairId(address,address)")] + pub struct GetPairIdCall { + pub asset: ::ethers::core::types::Address, + pub quote: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `getPairNonce` function with signature `getPairNonce()` and selector `0x078888d6` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getPairNonce", abi = "getPairNonce()")] + pub struct GetPairNonceCall; + ///Container type for all input parameters for the `getPoolNonce` function with signature `getPoolNonce(uint24)` and selector `0xa5cd8a49` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getPoolNonce", abi = "getPoolNonce(uint24)")] + pub struct GetPoolNonceCall { + pub pair_nonce: u32, + } + ///Container type for all input parameters for the `getPoolReserves` function with signature `getPoolReserves(uint64)` and selector `0x2afb9df8` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getPoolReserves", abi = "getPoolReserves(uint64)")] + pub struct GetPoolReservesCall { + pub pool_id: u64, + } + ///Container type for all input parameters for the `getReserve` function with signature `getReserve(address)` and selector `0xc9a396e9` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getReserve", abi = "getReserve(address)")] + pub struct GetReserveCall { + pub token: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `getVirtualPrice` function with signature `getVirtualPrice(uint64)` and selector `0x61b7ea6a` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getVirtualPrice", abi = "getVirtualPrice(uint64)")] + pub struct GetVirtualPriceCall { + pub pool_id: u64, + } + ///Container type for all input parameters for the `getVirtualReservesPerLiquidity` function with signature `getVirtualReservesPerLiquidity(uint64)` and selector `0x1a4b905b` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall( + name = "getVirtualReservesPerLiquidity", + abi = "getVirtualReservesPerLiquidity(uint64)" + )] + pub struct GetVirtualReservesPerLiquidityCall { + pub pool_id: u64, + } + ///Container type for all input parameters for the `multiprocess` function with signature `multiprocess(bytes)` and selector `0xa0fdf413` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "multiprocess", abi = "multiprocess(bytes)")] + pub struct MultiprocessCall { + pub data: ::ethers::core::types::Bytes, + } + ///Container type for all input parameters for the `pairs` function with signature `pairs(uint24)` and selector `0x5e47663c` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "pairs", abi = "pairs(uint24)")] + pub struct PairsCall { + pub pair_id: u32, + } + ///Container type for all input parameters for the `pools` function with signature `pools(uint64)` and selector `0x89a5f084` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "pools", abi = "pools(uint64)")] + pub struct PoolsCall { + pub pool_id: u64, + } + ///Container type for all input parameters for the `positions` function with signature `positions(address,uint64)` and selector `0xb68513ea` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "positions", abi = "positions(address,uint64)")] + pub struct PositionsCall { + pub owner: ::ethers::core::types::Address, + pub pool_id: u64, + } + ///Container type for all input parameters for the `setProtocolFee` function with signature `setProtocolFee(uint256)` and selector `0x787dce3d` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "setProtocolFee", abi = "setProtocolFee(uint256)")] + pub struct SetProtocolFeeCall { + pub fee: ::ethers::core::types::U256, + } + ///Container type for all of the contract's call + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum IPortfolioCalls { + Registry(RegistryCall), + Version(VersionCall), + Weth(WethCall), + ChangeParameters(ChangeParametersCall), + Deposit(DepositCall), + Draw(DrawCall), + Fund(FundCall), + GetAmountOut(GetAmountOutCall), + GetBalance(GetBalanceCall), + GetLiquidityDeltas(GetLiquidityDeltasCall), + GetMaxLiquidity(GetMaxLiquidityCall), + GetNetBalance(GetNetBalanceCall), + GetPairId(GetPairIdCall), + GetPairNonce(GetPairNonceCall), + GetPoolNonce(GetPoolNonceCall), + GetPoolReserves(GetPoolReservesCall), + GetReserve(GetReserveCall), + GetVirtualPrice(GetVirtualPriceCall), + GetVirtualReservesPerLiquidity(GetVirtualReservesPerLiquidityCall), + Multiprocess(MultiprocessCall), + Pairs(PairsCall), + Pools(PoolsCall), + Positions(PositionsCall), + SetProtocolFee(SetProtocolFeeCall), + } + impl ::ethers::core::abi::AbiDecode for IPortfolioCalls { + fn decode( + data: impl AsRef<[u8]>, + ) -> ::core::result::Result { + let data = data.as_ref(); + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Registry(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Version(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Weth(decoded)); + } + if let Ok(decoded) + = ::decode( + data, + ) { + return Ok(Self::ChangeParameters(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Deposit(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Draw(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Fund(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetAmountOut(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetBalance(decoded)); + } + if let Ok(decoded) + = ::decode( + data, + ) { + return Ok(Self::GetLiquidityDeltas(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetMaxLiquidity(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetNetBalance(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetPairId(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetPairNonce(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetPoolNonce(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetPoolReserves(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetReserve(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetVirtualPrice(decoded)); + } + if let Ok(decoded) + = ::decode( + data, + ) { + return Ok(Self::GetVirtualReservesPerLiquidity(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Multiprocess(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Pairs(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Pools(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Positions(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::SetProtocolFee(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData.into()) + } + } + impl ::ethers::core::abi::AbiEncode for IPortfolioCalls { + fn encode(self) -> Vec { + match self { + Self::Registry(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Version(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Weth(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::ChangeParameters(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Deposit(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Draw(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Fund(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::GetAmountOut(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetBalance(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetLiquidityDeltas(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetMaxLiquidity(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetNetBalance(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetPairId(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetPairNonce(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetPoolNonce(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetPoolReserves(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetReserve(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetVirtualPrice(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetVirtualReservesPerLiquidity(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Multiprocess(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Pairs(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Pools(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Positions(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::SetProtocolFee(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + } + } + } + impl ::core::fmt::Display for IPortfolioCalls { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::Registry(element) => ::core::fmt::Display::fmt(element, f), + Self::Version(element) => ::core::fmt::Display::fmt(element, f), + Self::Weth(element) => ::core::fmt::Display::fmt(element, f), + Self::ChangeParameters(element) => ::core::fmt::Display::fmt(element, f), + Self::Deposit(element) => ::core::fmt::Display::fmt(element, f), + Self::Draw(element) => ::core::fmt::Display::fmt(element, f), + Self::Fund(element) => ::core::fmt::Display::fmt(element, f), + Self::GetAmountOut(element) => ::core::fmt::Display::fmt(element, f), + Self::GetBalance(element) => ::core::fmt::Display::fmt(element, f), + Self::GetLiquidityDeltas(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::GetMaxLiquidity(element) => ::core::fmt::Display::fmt(element, f), + Self::GetNetBalance(element) => ::core::fmt::Display::fmt(element, f), + Self::GetPairId(element) => ::core::fmt::Display::fmt(element, f), + Self::GetPairNonce(element) => ::core::fmt::Display::fmt(element, f), + Self::GetPoolNonce(element) => ::core::fmt::Display::fmt(element, f), + Self::GetPoolReserves(element) => ::core::fmt::Display::fmt(element, f), + Self::GetReserve(element) => ::core::fmt::Display::fmt(element, f), + Self::GetVirtualPrice(element) => ::core::fmt::Display::fmt(element, f), + Self::GetVirtualReservesPerLiquidity(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::Multiprocess(element) => ::core::fmt::Display::fmt(element, f), + Self::Pairs(element) => ::core::fmt::Display::fmt(element, f), + Self::Pools(element) => ::core::fmt::Display::fmt(element, f), + Self::Positions(element) => ::core::fmt::Display::fmt(element, f), + Self::SetProtocolFee(element) => ::core::fmt::Display::fmt(element, f), + } + } + } + impl ::core::convert::From for IPortfolioCalls { + fn from(value: RegistryCall) -> Self { + Self::Registry(value) + } + } + impl ::core::convert::From for IPortfolioCalls { + fn from(value: VersionCall) -> Self { + Self::Version(value) + } + } + impl ::core::convert::From for IPortfolioCalls { + fn from(value: WethCall) -> Self { + Self::Weth(value) + } + } + impl ::core::convert::From for IPortfolioCalls { + fn from(value: ChangeParametersCall) -> Self { + Self::ChangeParameters(value) + } + } + impl ::core::convert::From for IPortfolioCalls { + fn from(value: DepositCall) -> Self { + Self::Deposit(value) + } + } + impl ::core::convert::From for IPortfolioCalls { + fn from(value: DrawCall) -> Self { + Self::Draw(value) + } + } + impl ::core::convert::From for IPortfolioCalls { + fn from(value: FundCall) -> Self { + Self::Fund(value) + } + } + impl ::core::convert::From for IPortfolioCalls { + fn from(value: GetAmountOutCall) -> Self { + Self::GetAmountOut(value) + } + } + impl ::core::convert::From for IPortfolioCalls { + fn from(value: GetBalanceCall) -> Self { + Self::GetBalance(value) + } + } + impl ::core::convert::From for IPortfolioCalls { + fn from(value: GetLiquidityDeltasCall) -> Self { + Self::GetLiquidityDeltas(value) + } + } + impl ::core::convert::From for IPortfolioCalls { + fn from(value: GetMaxLiquidityCall) -> Self { + Self::GetMaxLiquidity(value) + } + } + impl ::core::convert::From for IPortfolioCalls { + fn from(value: GetNetBalanceCall) -> Self { + Self::GetNetBalance(value) + } + } + impl ::core::convert::From for IPortfolioCalls { + fn from(value: GetPairIdCall) -> Self { + Self::GetPairId(value) + } + } + impl ::core::convert::From for IPortfolioCalls { + fn from(value: GetPairNonceCall) -> Self { + Self::GetPairNonce(value) + } + } + impl ::core::convert::From for IPortfolioCalls { + fn from(value: GetPoolNonceCall) -> Self { + Self::GetPoolNonce(value) + } + } + impl ::core::convert::From for IPortfolioCalls { + fn from(value: GetPoolReservesCall) -> Self { + Self::GetPoolReserves(value) + } + } + impl ::core::convert::From for IPortfolioCalls { + fn from(value: GetReserveCall) -> Self { + Self::GetReserve(value) + } + } + impl ::core::convert::From for IPortfolioCalls { + fn from(value: GetVirtualPriceCall) -> Self { + Self::GetVirtualPrice(value) + } + } + impl ::core::convert::From for IPortfolioCalls { + fn from(value: GetVirtualReservesPerLiquidityCall) -> Self { + Self::GetVirtualReservesPerLiquidity(value) + } + } + impl ::core::convert::From for IPortfolioCalls { + fn from(value: MultiprocessCall) -> Self { + Self::Multiprocess(value) + } + } + impl ::core::convert::From for IPortfolioCalls { + fn from(value: PairsCall) -> Self { + Self::Pairs(value) + } + } + impl ::core::convert::From for IPortfolioCalls { + fn from(value: PoolsCall) -> Self { + Self::Pools(value) + } + } + impl ::core::convert::From for IPortfolioCalls { + fn from(value: PositionsCall) -> Self { + Self::Positions(value) + } + } + impl ::core::convert::From for IPortfolioCalls { + fn from(value: SetProtocolFeeCall) -> Self { + Self::SetProtocolFee(value) + } + } + ///Container type for all return fields from the `REGISTRY` function with signature `REGISTRY()` and selector `0x06433b1b` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct RegistryReturn(pub ::ethers::core::types::Address); + ///Container type for all return fields from the `VERSION` function with signature `VERSION()` and selector `0xffa1ad74` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct VersionReturn(pub ::std::string::String); + ///Container type for all return fields from the `WETH` function with signature `WETH()` and selector `0xad5c4648` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct WethReturn(pub ::ethers::core::types::Address); + ///Container type for all return fields from the `getAmountOut` function with signature `getAmountOut(uint64,bool,uint256)` and selector `0x7dae4890` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetAmountOutReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `getBalance` function with signature `getBalance(address,address)` and selector `0xd4fac45d` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetBalanceReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `getLiquidityDeltas` function with signature `getLiquidityDeltas(uint64,int128)` and selector `0x8992f20a` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetLiquidityDeltasReturn { + pub delta_asset: u128, + pub delta_quote: u128, + } + ///Container type for all return fields from the `getMaxLiquidity` function with signature `getMaxLiquidity(uint64,uint256,uint256)` and selector `0xd6b7dec5` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetMaxLiquidityReturn { + pub delta_liquidity: u128, + } + ///Container type for all return fields from the `getNetBalance` function with signature `getNetBalance(address)` and selector `0x4dc68a90` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetNetBalanceReturn(pub ::ethers::core::types::I256); + ///Container type for all return fields from the `getPairId` function with signature `getPairId(address,address)` and selector `0x3f92a339` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetPairIdReturn { + pub pair_id: u32, + } + ///Container type for all return fields from the `getPairNonce` function with signature `getPairNonce()` and selector `0x078888d6` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetPairNonceReturn(pub u32); + ///Container type for all return fields from the `getPoolNonce` function with signature `getPoolNonce(uint24)` and selector `0xa5cd8a49` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetPoolNonceReturn(pub u32); + ///Container type for all return fields from the `getPoolReserves` function with signature `getPoolReserves(uint64)` and selector `0x2afb9df8` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetPoolReservesReturn { + pub delta_asset: ::ethers::core::types::U256, + pub delta_quote: ::ethers::core::types::U256, + } + ///Container type for all return fields from the `getReserve` function with signature `getReserve(address)` and selector `0xc9a396e9` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetReserveReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `getVirtualPrice` function with signature `getVirtualPrice(uint64)` and selector `0x61b7ea6a` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetVirtualPriceReturn { + pub price: ::ethers::core::types::U256, + } + ///Container type for all return fields from the `getVirtualReservesPerLiquidity` function with signature `getVirtualReservesPerLiquidity(uint64)` and selector `0x1a4b905b` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetVirtualReservesPerLiquidityReturn { + pub delta_asset: u128, + pub delta_quote: u128, + } + ///Container type for all return fields from the `pairs` function with signature `pairs(uint24)` and selector `0x5e47663c` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct PairsReturn { + pub token_asset: ::ethers::core::types::Address, + pub decimals_asset: u8, + pub token_quote: ::ethers::core::types::Address, + pub decimals_quote: u8, + } + ///Container type for all return fields from the `pools` function with signature `pools(uint64)` and selector `0x89a5f084` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct PoolsReturn { + pub virtual_x: u128, + pub virtual_y: u128, + pub liquidity: u128, + pub last_timestamp: u32, + pub controller: ::ethers::core::types::Address, + pub invariant_growth_global: ::ethers::core::types::U256, + pub fee_growth_global_asset: ::ethers::core::types::U256, + pub fee_growth_global_quote: ::ethers::core::types::U256, + pub p8: PortfolioCurve, + pub p9: PortfolioPair, + } + ///Container type for all return fields from the `positions` function with signature `positions(address,uint64)` and selector `0xb68513ea` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct PositionsReturn { + pub free_liquidity: u128, + pub last_timestamp: u32, + pub invariant_growth_last: ::ethers::core::types::U256, + pub fee_growth_asset_last: ::ethers::core::types::U256, + pub fee_growth_quote_last: ::ethers::core::types::U256, + pub tokens_owed_asset: u128, + pub tokens_owed_quote: u128, + pub invariant_owed: u128, + } +} diff --git a/crates/bindings/src/i_portfolio_actions.rs b/crates/bindings/src/i_portfolio_actions.rs new file mode 100644 index 00000000..1a5ea612 --- /dev/null +++ b/crates/bindings/src/i_portfolio_actions.rs @@ -0,0 +1,324 @@ +pub use i_portfolio_actions::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod i_portfolio_actions { + #[rustfmt::skip] + const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"priorityFee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"fee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"jit\",\"type\":\"uint16\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"changeParameters\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"deposit\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"draw\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"fund\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\",\"components\":[]}],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"multiprocess\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"setProtocolFee\",\"outputs\":[]}]"; + ///The parsed JSON ABI of the contract. + pub static IPORTFOLIOACTIONS_ABI: ::ethers::contract::Lazy< + ::ethers::core::abi::Abi, + > = ::ethers::contract::Lazy::new(|| { + ::ethers::core::utils::__serde_json::from_str(__ABI) + .expect("ABI is always valid") + }); + pub struct IPortfolioActions(::ethers::contract::Contract); + impl ::core::clone::Clone for IPortfolioActions { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for IPortfolioActions { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for IPortfolioActions { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for IPortfolioActions { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(stringify!(IPortfolioActions)).field(&self.address()).finish() + } + } + impl IPortfolioActions { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + IPORTFOLIOACTIONS_ABI.clone(), + client, + ), + ) + } + ///Calls the contract's `changeParameters` (0xaf777855) function + pub fn change_parameters( + &self, + pool_id: u64, + priority_fee: u16, + fee: u16, + jit: u16, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([175, 119, 120, 85], (pool_id, priority_fee, fee, jit)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `deposit` (0xd0e30db0) function + pub fn deposit(&self) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([208, 227, 13, 176], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `draw` (0xad24d6a0) function + pub fn draw( + &self, + token: ::ethers::core::types::Address, + amount: ::ethers::core::types::U256, + to: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([173, 36, 214, 160], (token, amount, to)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `fund` (0x7b1837de) function + pub fn fund( + &self, + token: ::ethers::core::types::Address, + amount: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([123, 24, 55, 222], (token, amount)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `multiprocess` (0xa0fdf413) function + pub fn multiprocess( + &self, + data: ::ethers::core::types::Bytes, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([160, 253, 244, 19], data) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `setProtocolFee` (0x787dce3d) function + pub fn set_protocol_fee( + &self, + fee: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([120, 125, 206, 61], fee) + .expect("method not found (this should never happen)") + } + } + impl From<::ethers::contract::Contract> + for IPortfolioActions { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } + ///Container type for all input parameters for the `changeParameters` function with signature `changeParameters(uint64,uint16,uint16,uint16)` and selector `0xaf777855` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall( + name = "changeParameters", + abi = "changeParameters(uint64,uint16,uint16,uint16)" + )] + pub struct ChangeParametersCall { + pub pool_id: u64, + pub priority_fee: u16, + pub fee: u16, + pub jit: u16, + } + ///Container type for all input parameters for the `deposit` function with signature `deposit()` and selector `0xd0e30db0` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "deposit", abi = "deposit()")] + pub struct DepositCall; + ///Container type for all input parameters for the `draw` function with signature `draw(address,uint256,address)` and selector `0xad24d6a0` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "draw", abi = "draw(address,uint256,address)")] + pub struct DrawCall { + pub token: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + pub to: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `fund` function with signature `fund(address,uint256)` and selector `0x7b1837de` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "fund", abi = "fund(address,uint256)")] + pub struct FundCall { + pub token: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `multiprocess` function with signature `multiprocess(bytes)` and selector `0xa0fdf413` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "multiprocess", abi = "multiprocess(bytes)")] + pub struct MultiprocessCall { + pub data: ::ethers::core::types::Bytes, + } + ///Container type for all input parameters for the `setProtocolFee` function with signature `setProtocolFee(uint256)` and selector `0x787dce3d` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "setProtocolFee", abi = "setProtocolFee(uint256)")] + pub struct SetProtocolFeeCall { + pub fee: ::ethers::core::types::U256, + } + ///Container type for all of the contract's call + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum IPortfolioActionsCalls { + ChangeParameters(ChangeParametersCall), + Deposit(DepositCall), + Draw(DrawCall), + Fund(FundCall), + Multiprocess(MultiprocessCall), + SetProtocolFee(SetProtocolFeeCall), + } + impl ::ethers::core::abi::AbiDecode for IPortfolioActionsCalls { + fn decode( + data: impl AsRef<[u8]>, + ) -> ::core::result::Result { + let data = data.as_ref(); + if let Ok(decoded) + = ::decode( + data, + ) { + return Ok(Self::ChangeParameters(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Deposit(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Draw(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Fund(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Multiprocess(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::SetProtocolFee(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData.into()) + } + } + impl ::ethers::core::abi::AbiEncode for IPortfolioActionsCalls { + fn encode(self) -> Vec { + match self { + Self::ChangeParameters(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Deposit(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Draw(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Fund(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Multiprocess(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::SetProtocolFee(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + } + } + } + impl ::core::fmt::Display for IPortfolioActionsCalls { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::ChangeParameters(element) => ::core::fmt::Display::fmt(element, f), + Self::Deposit(element) => ::core::fmt::Display::fmt(element, f), + Self::Draw(element) => ::core::fmt::Display::fmt(element, f), + Self::Fund(element) => ::core::fmt::Display::fmt(element, f), + Self::Multiprocess(element) => ::core::fmt::Display::fmt(element, f), + Self::SetProtocolFee(element) => ::core::fmt::Display::fmt(element, f), + } + } + } + impl ::core::convert::From for IPortfolioActionsCalls { + fn from(value: ChangeParametersCall) -> Self { + Self::ChangeParameters(value) + } + } + impl ::core::convert::From for IPortfolioActionsCalls { + fn from(value: DepositCall) -> Self { + Self::Deposit(value) + } + } + impl ::core::convert::From for IPortfolioActionsCalls { + fn from(value: DrawCall) -> Self { + Self::Draw(value) + } + } + impl ::core::convert::From for IPortfolioActionsCalls { + fn from(value: FundCall) -> Self { + Self::Fund(value) + } + } + impl ::core::convert::From for IPortfolioActionsCalls { + fn from(value: MultiprocessCall) -> Self { + Self::Multiprocess(value) + } + } + impl ::core::convert::From for IPortfolioActionsCalls { + fn from(value: SetProtocolFeeCall) -> Self { + Self::SetProtocolFee(value) + } + } +} diff --git a/crates/bindings/src/i_portfolio_events.rs b/crates/bindings/src/i_portfolio_events.rs new file mode 100644 index 00000000..9e889018 --- /dev/null +++ b/crates/bindings/src/i_portfolio_events.rs @@ -0,0 +1,637 @@ +pub use i_portfolio_events::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod i_portfolio_events { + #[rustfmt::skip] + const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaLiquidity\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Allocate\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint16\",\"name\":\"priorityFee\",\"type\":\"uint16\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint16\",\"name\":\"fee\",\"type\":\"uint16\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint16\",\"name\":\"jit\",\"type\":\"uint16\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"ChangeParameters\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"feeAssetDec\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"feeQuoteDec\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true}],\"type\":\"event\",\"name\":\"Collect\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"pairId\",\"type\":\"uint24\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint8\",\"name\":\"decimalsAsset\",\"type\":\"uint8\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint8\",\"name\":\"decimalsQuote\",\"type\":\"uint8\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"CreatePair\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"bool\",\"name\":\"isMutable\",\"type\":\"bool\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"CreatePool\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaLiquidity\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Deallocate\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"DecreaseReserveBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"DecreaseUserBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Deposit\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"IncreaseReserveBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"IncreaseUserBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"sellAsset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"input\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"tokenOut\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"output\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"feeAmountDec\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"int256\",\"name\":\"invariantWad\",\"type\":\"int256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Swap\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"prevFee\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"nextFee\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"UpdateProtocolFee\",\"outputs\":[],\"anonymous\":false}]"; + ///The parsed JSON ABI of the contract. + pub static IPORTFOLIOEVENTS_ABI: ::ethers::contract::Lazy< + ::ethers::core::abi::Abi, + > = ::ethers::contract::Lazy::new(|| { + ::ethers::core::utils::__serde_json::from_str(__ABI) + .expect("ABI is always valid") + }); + pub struct IPortfolioEvents(::ethers::contract::Contract); + impl ::core::clone::Clone for IPortfolioEvents { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for IPortfolioEvents { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for IPortfolioEvents { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for IPortfolioEvents { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(stringify!(IPortfolioEvents)).field(&self.address()).finish() + } + } + impl IPortfolioEvents { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + IPORTFOLIOEVENTS_ABI.clone(), + client, + ), + ) + } + ///Gets the contract's `Allocate` event + pub fn allocate_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + AllocateFilter, + > { + self.0.event() + } + ///Gets the contract's `ChangeParameters` event + pub fn change_parameters_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + ChangeParametersFilter, + > { + self.0.event() + } + ///Gets the contract's `Collect` event + pub fn collect_filter( + &self, + ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, CollectFilter> { + self.0.event() + } + ///Gets the contract's `CreatePair` event + pub fn create_pair_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + CreatePairFilter, + > { + self.0.event() + } + ///Gets the contract's `CreatePool` event + pub fn create_pool_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + CreatePoolFilter, + > { + self.0.event() + } + ///Gets the contract's `Deallocate` event + pub fn deallocate_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + DeallocateFilter, + > { + self.0.event() + } + ///Gets the contract's `DecreaseReserveBalance` event + pub fn decrease_reserve_balance_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + DecreaseReserveBalanceFilter, + > { + self.0.event() + } + ///Gets the contract's `DecreaseUserBalance` event + pub fn decrease_user_balance_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + DecreaseUserBalanceFilter, + > { + self.0.event() + } + ///Gets the contract's `Deposit` event + pub fn deposit_filter( + &self, + ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, DepositFilter> { + self.0.event() + } + ///Gets the contract's `IncreaseReserveBalance` event + pub fn increase_reserve_balance_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + IncreaseReserveBalanceFilter, + > { + self.0.event() + } + ///Gets the contract's `IncreaseUserBalance` event + pub fn increase_user_balance_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + IncreaseUserBalanceFilter, + > { + self.0.event() + } + ///Gets the contract's `Swap` event + pub fn swap_filter( + &self, + ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, SwapFilter> { + self.0.event() + } + ///Gets the contract's `UpdateProtocolFee` event + pub fn update_protocol_fee_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + UpdateProtocolFeeFilter, + > { + self.0.event() + } + /// Returns an `Event` builder for all the events of this contract. + pub fn events( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + IPortfolioEventsEvents, + > { + self.0.event_with_filter(::core::default::Default::default()) + } + } + impl From<::ethers::contract::Contract> + for IPortfolioEvents { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "Allocate", + abi = "Allocate(uint64,address,address,uint256,uint256,uint256)" + )] + pub struct AllocateFilter { + #[ethevent(indexed)] + pub pool_id: u64, + #[ethevent(indexed)] + pub asset: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub quote: ::ethers::core::types::Address, + pub delta_asset: ::ethers::core::types::U256, + pub delta_quote: ::ethers::core::types::U256, + pub delta_liquidity: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "ChangeParameters", + abi = "ChangeParameters(uint64,uint16,uint16,uint16)" + )] + pub struct ChangeParametersFilter { + #[ethevent(indexed)] + pub pool_id: u64, + #[ethevent(indexed)] + pub priority_fee: u16, + #[ethevent(indexed)] + pub fee: u16, + pub jit: u16, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "Collect", + abi = "Collect(uint64,address,uint256,address,uint256,address)" + )] + pub struct CollectFilter { + pub pool_id: u64, + #[ethevent(indexed)] + pub account: ::ethers::core::types::Address, + pub fee_asset_dec: ::ethers::core::types::U256, + #[ethevent(indexed)] + pub asset: ::ethers::core::types::Address, + pub fee_quote_dec: ::ethers::core::types::U256, + #[ethevent(indexed)] + pub quote: ::ethers::core::types::Address, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "CreatePair", + abi = "CreatePair(uint24,address,address,uint8,uint8)" + )] + pub struct CreatePairFilter { + #[ethevent(indexed)] + pub pair_id: u32, + #[ethevent(indexed)] + pub asset: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub quote: ::ethers::core::types::Address, + pub decimals_asset: u8, + pub decimals_quote: u8, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "CreatePool", + abi = "CreatePool(uint64,bool,address,address,uint256)" + )] + pub struct CreatePoolFilter { + #[ethevent(indexed)] + pub pool_id: u64, + pub is_mutable: bool, + #[ethevent(indexed)] + pub asset: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub quote: ::ethers::core::types::Address, + pub price: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "Deallocate", + abi = "Deallocate(uint64,address,address,uint256,uint256,uint256)" + )] + pub struct DeallocateFilter { + #[ethevent(indexed)] + pub pool_id: u64, + #[ethevent(indexed)] + pub asset: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub quote: ::ethers::core::types::Address, + pub delta_asset: ::ethers::core::types::U256, + pub delta_quote: ::ethers::core::types::U256, + pub delta_liquidity: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "DecreaseReserveBalance", + abi = "DecreaseReserveBalance(address,uint256)" + )] + pub struct DecreaseReserveBalanceFilter { + #[ethevent(indexed)] + pub token: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "DecreaseUserBalance", + abi = "DecreaseUserBalance(address,address,uint256)" + )] + pub struct DecreaseUserBalanceFilter { + #[ethevent(indexed)] + pub account: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub token: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "Deposit", abi = "Deposit(address,uint256)")] + pub struct DepositFilter { + #[ethevent(indexed)] + pub account: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "IncreaseReserveBalance", + abi = "IncreaseReserveBalance(address,uint256)" + )] + pub struct IncreaseReserveBalanceFilter { + #[ethevent(indexed)] + pub token: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "IncreaseUserBalance", + abi = "IncreaseUserBalance(address,address,uint256)" + )] + pub struct IncreaseUserBalanceFilter { + #[ethevent(indexed)] + pub account: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub token: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "Swap", + abi = "Swap(uint64,uint256,address,uint256,address,uint256,uint256,int256)" + )] + pub struct SwapFilter { + #[ethevent(indexed)] + pub pool_id: u64, + pub price: ::ethers::core::types::U256, + #[ethevent(indexed)] + pub sell_asset: ::ethers::core::types::Address, + pub input: ::ethers::core::types::U256, + #[ethevent(indexed)] + pub token_out: ::ethers::core::types::Address, + pub output: ::ethers::core::types::U256, + pub fee_amount_dec: ::ethers::core::types::U256, + pub invariant_wad: ::ethers::core::types::I256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "UpdateProtocolFee", abi = "UpdateProtocolFee(uint256,uint256)")] + pub struct UpdateProtocolFeeFilter { + pub prev_fee: ::ethers::core::types::U256, + pub next_fee: ::ethers::core::types::U256, + } + ///Container type for all of the contract's events + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum IPortfolioEventsEvents { + AllocateFilter(AllocateFilter), + ChangeParametersFilter(ChangeParametersFilter), + CollectFilter(CollectFilter), + CreatePairFilter(CreatePairFilter), + CreatePoolFilter(CreatePoolFilter), + DeallocateFilter(DeallocateFilter), + DecreaseReserveBalanceFilter(DecreaseReserveBalanceFilter), + DecreaseUserBalanceFilter(DecreaseUserBalanceFilter), + DepositFilter(DepositFilter), + IncreaseReserveBalanceFilter(IncreaseReserveBalanceFilter), + IncreaseUserBalanceFilter(IncreaseUserBalanceFilter), + SwapFilter(SwapFilter), + UpdateProtocolFeeFilter(UpdateProtocolFeeFilter), + } + impl ::ethers::contract::EthLogDecode for IPortfolioEventsEvents { + fn decode_log( + log: &::ethers::core::abi::RawLog, + ) -> ::core::result::Result { + if let Ok(decoded) = AllocateFilter::decode_log(log) { + return Ok(IPortfolioEventsEvents::AllocateFilter(decoded)); + } + if let Ok(decoded) = ChangeParametersFilter::decode_log(log) { + return Ok(IPortfolioEventsEvents::ChangeParametersFilter(decoded)); + } + if let Ok(decoded) = CollectFilter::decode_log(log) { + return Ok(IPortfolioEventsEvents::CollectFilter(decoded)); + } + if let Ok(decoded) = CreatePairFilter::decode_log(log) { + return Ok(IPortfolioEventsEvents::CreatePairFilter(decoded)); + } + if let Ok(decoded) = CreatePoolFilter::decode_log(log) { + return Ok(IPortfolioEventsEvents::CreatePoolFilter(decoded)); + } + if let Ok(decoded) = DeallocateFilter::decode_log(log) { + return Ok(IPortfolioEventsEvents::DeallocateFilter(decoded)); + } + if let Ok(decoded) = DecreaseReserveBalanceFilter::decode_log(log) { + return Ok(IPortfolioEventsEvents::DecreaseReserveBalanceFilter(decoded)); + } + if let Ok(decoded) = DecreaseUserBalanceFilter::decode_log(log) { + return Ok(IPortfolioEventsEvents::DecreaseUserBalanceFilter(decoded)); + } + if let Ok(decoded) = DepositFilter::decode_log(log) { + return Ok(IPortfolioEventsEvents::DepositFilter(decoded)); + } + if let Ok(decoded) = IncreaseReserveBalanceFilter::decode_log(log) { + return Ok(IPortfolioEventsEvents::IncreaseReserveBalanceFilter(decoded)); + } + if let Ok(decoded) = IncreaseUserBalanceFilter::decode_log(log) { + return Ok(IPortfolioEventsEvents::IncreaseUserBalanceFilter(decoded)); + } + if let Ok(decoded) = SwapFilter::decode_log(log) { + return Ok(IPortfolioEventsEvents::SwapFilter(decoded)); + } + if let Ok(decoded) = UpdateProtocolFeeFilter::decode_log(log) { + return Ok(IPortfolioEventsEvents::UpdateProtocolFeeFilter(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData) + } + } + impl ::core::fmt::Display for IPortfolioEventsEvents { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::AllocateFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::ChangeParametersFilter(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::CollectFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::CreatePairFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::CreatePoolFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::DeallocateFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::DecreaseReserveBalanceFilter(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::DecreaseUserBalanceFilter(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::DepositFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::IncreaseReserveBalanceFilter(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::IncreaseUserBalanceFilter(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::SwapFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::UpdateProtocolFeeFilter(element) => { + ::core::fmt::Display::fmt(element, f) + } + } + } + } + impl ::core::convert::From for IPortfolioEventsEvents { + fn from(value: AllocateFilter) -> Self { + Self::AllocateFilter(value) + } + } + impl ::core::convert::From for IPortfolioEventsEvents { + fn from(value: ChangeParametersFilter) -> Self { + Self::ChangeParametersFilter(value) + } + } + impl ::core::convert::From for IPortfolioEventsEvents { + fn from(value: CollectFilter) -> Self { + Self::CollectFilter(value) + } + } + impl ::core::convert::From for IPortfolioEventsEvents { + fn from(value: CreatePairFilter) -> Self { + Self::CreatePairFilter(value) + } + } + impl ::core::convert::From for IPortfolioEventsEvents { + fn from(value: CreatePoolFilter) -> Self { + Self::CreatePoolFilter(value) + } + } + impl ::core::convert::From for IPortfolioEventsEvents { + fn from(value: DeallocateFilter) -> Self { + Self::DeallocateFilter(value) + } + } + impl ::core::convert::From for IPortfolioEventsEvents { + fn from(value: DecreaseReserveBalanceFilter) -> Self { + Self::DecreaseReserveBalanceFilter(value) + } + } + impl ::core::convert::From for IPortfolioEventsEvents { + fn from(value: DecreaseUserBalanceFilter) -> Self { + Self::DecreaseUserBalanceFilter(value) + } + } + impl ::core::convert::From for IPortfolioEventsEvents { + fn from(value: DepositFilter) -> Self { + Self::DepositFilter(value) + } + } + impl ::core::convert::From for IPortfolioEventsEvents { + fn from(value: IncreaseReserveBalanceFilter) -> Self { + Self::IncreaseReserveBalanceFilter(value) + } + } + impl ::core::convert::From for IPortfolioEventsEvents { + fn from(value: IncreaseUserBalanceFilter) -> Self { + Self::IncreaseUserBalanceFilter(value) + } + } + impl ::core::convert::From for IPortfolioEventsEvents { + fn from(value: SwapFilter) -> Self { + Self::SwapFilter(value) + } + } + impl ::core::convert::From for IPortfolioEventsEvents { + fn from(value: UpdateProtocolFeeFilter) -> Self { + Self::UpdateProtocolFeeFilter(value) + } + } +} diff --git a/crates/bindings/src/i_portfolio_getters.rs b/crates/bindings/src/i_portfolio_getters.rs new file mode 100644 index 00000000..769b4bef --- /dev/null +++ b/crates/bindings/src/i_portfolio_getters.rs @@ -0,0 +1,1077 @@ +pub use i_portfolio_getters::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod i_portfolio_getters { + pub use super::super::shared_types::*; + #[rustfmt::skip] + const __ABI: &str = "[{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\",\"name\":\"VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"WETH\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"bool\",\"name\":\"sellAsset\",\"type\":\"bool\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getAmountOut\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"int128\",\"name\":\"deltaLiquidity\",\"type\":\"int128\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getLiquidityDeltas\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"deltaAsset\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"deltaQuote\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getMaxLiquidity\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"deltaLiquidity\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getNetBalance\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPairId\",\"outputs\":[{\"internalType\":\"uint24\",\"name\":\"pairId\",\"type\":\"uint24\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPairNonce\",\"outputs\":[{\"internalType\":\"uint24\",\"name\":\"\",\"type\":\"uint24\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"pairNonce\",\"type\":\"uint24\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPoolNonce\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPoolReserves\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getReserve\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getVirtualPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getVirtualReservesPerLiquidity\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"deltaAsset\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"deltaQuote\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"pairId\",\"type\":\"uint24\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"pairs\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"tokenAsset\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsAsset\",\"type\":\"uint8\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"tokenQuote\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsQuote\",\"type\":\"uint8\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"pools\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"virtualX\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"virtualY\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"liquidity\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint32\",\"name\":\"lastTimestamp\",\"type\":\"uint32\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"controller\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"invariantGrowthGlobal\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthGlobalAsset\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthGlobalQuote\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"struct PortfolioCurve\",\"name\":\"\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"uint128\",\"name\":\"maxPrice\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"jit\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"fee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"duration\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"volatility\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"priorityFee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint32\",\"name\":\"createdAt\",\"type\":\"uint32\",\"components\":[]},{\"internalType\":\"bool\",\"name\":\"perpetual\",\"type\":\"bool\",\"components\":[]}]},{\"internalType\":\"struct PortfolioPair\",\"name\":\"\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"address\",\"name\":\"tokenAsset\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsAsset\",\"type\":\"uint8\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"tokenQuote\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsQuote\",\"type\":\"uint8\",\"components\":[]}]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"positions\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"freeLiquidity\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint32\",\"name\":\"lastTimestamp\",\"type\":\"uint32\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"invariantGrowthLast\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthAssetLast\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthQuoteLast\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"tokensOwedAsset\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"tokensOwedQuote\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"invariantOwed\",\"type\":\"uint128\",\"components\":[]}]}]"; + ///The parsed JSON ABI of the contract. + pub static IPORTFOLIOGETTERS_ABI: ::ethers::contract::Lazy< + ::ethers::core::abi::Abi, + > = ::ethers::contract::Lazy::new(|| { + ::ethers::core::utils::__serde_json::from_str(__ABI) + .expect("ABI is always valid") + }); + pub struct IPortfolioGetters(::ethers::contract::Contract); + impl ::core::clone::Clone for IPortfolioGetters { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for IPortfolioGetters { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for IPortfolioGetters { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for IPortfolioGetters { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(stringify!(IPortfolioGetters)).field(&self.address()).finish() + } + } + impl IPortfolioGetters { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + IPORTFOLIOGETTERS_ABI.clone(), + client, + ), + ) + } + ///Calls the contract's `REGISTRY` (0x06433b1b) function + pub fn registry( + &self, + ) -> ::ethers::contract::builders::ContractCall< + M, + ::ethers::core::types::Address, + > { + self.0 + .method_hash([6, 67, 59, 27], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `VERSION` (0xffa1ad74) function + pub fn version( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([255, 161, 173, 116], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `WETH` (0xad5c4648) function + pub fn weth( + &self, + ) -> ::ethers::contract::builders::ContractCall< + M, + ::ethers::core::types::Address, + > { + self.0 + .method_hash([173, 92, 70, 72], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getAmountOut` (0x7dae4890) function + pub fn get_amount_out( + &self, + pool_id: u64, + sell_asset: bool, + amount_in: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([125, 174, 72, 144], (pool_id, sell_asset, amount_in)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getBalance` (0xd4fac45d) function + pub fn get_balance( + &self, + owner: ::ethers::core::types::Address, + token: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([212, 250, 196, 93], (owner, token)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getLiquidityDeltas` (0x8992f20a) function + pub fn get_liquidity_deltas( + &self, + pool_id: u64, + delta_liquidity: i128, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([137, 146, 242, 10], (pool_id, delta_liquidity)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getMaxLiquidity` (0xd6b7dec5) function + pub fn get_max_liquidity( + &self, + pool_id: u64, + delta_asset: ::ethers::core::types::U256, + delta_quote: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([214, 183, 222, 197], (pool_id, delta_asset, delta_quote)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getNetBalance` (0x4dc68a90) function + pub fn get_net_balance( + &self, + token: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([77, 198, 138, 144], token) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getPairId` (0x3f92a339) function + pub fn get_pair_id( + &self, + asset: ::ethers::core::types::Address, + quote: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([63, 146, 163, 57], (asset, quote)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getPairNonce` (0x078888d6) function + pub fn get_pair_nonce( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([7, 136, 136, 214], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getPoolNonce` (0xa5cd8a49) function + pub fn get_pool_nonce( + &self, + pair_nonce: u32, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([165, 205, 138, 73], pair_nonce) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getPoolReserves` (0x2afb9df8) function + pub fn get_pool_reserves( + &self, + pool_id: u64, + ) -> ::ethers::contract::builders::ContractCall< + M, + (::ethers::core::types::U256, ::ethers::core::types::U256), + > { + self.0 + .method_hash([42, 251, 157, 248], pool_id) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getReserve` (0xc9a396e9) function + pub fn get_reserve( + &self, + token: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([201, 163, 150, 233], token) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getVirtualPrice` (0x61b7ea6a) function + pub fn get_virtual_price( + &self, + pool_id: u64, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([97, 183, 234, 106], pool_id) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getVirtualReservesPerLiquidity` (0x1a4b905b) function + pub fn get_virtual_reserves_per_liquidity( + &self, + pool_id: u64, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([26, 75, 144, 91], pool_id) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `pairs` (0x5e47663c) function + pub fn pairs( + &self, + pair_id: u32, + ) -> ::ethers::contract::builders::ContractCall< + M, + (::ethers::core::types::Address, u8, ::ethers::core::types::Address, u8), + > { + self.0 + .method_hash([94, 71, 102, 60], pair_id) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `pools` (0x89a5f084) function + pub fn pools( + &self, + pool_id: u64, + ) -> ::ethers::contract::builders::ContractCall< + M, + ( + u128, + u128, + u128, + u32, + ::ethers::core::types::Address, + ::ethers::core::types::U256, + ::ethers::core::types::U256, + ::ethers::core::types::U256, + PortfolioCurve, + PortfolioPair, + ), + > { + self.0 + .method_hash([137, 165, 240, 132], pool_id) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `positions` (0xb68513ea) function + pub fn positions( + &self, + owner: ::ethers::core::types::Address, + pool_id: u64, + ) -> ::ethers::contract::builders::ContractCall< + M, + ( + u128, + u32, + ::ethers::core::types::U256, + ::ethers::core::types::U256, + ::ethers::core::types::U256, + u128, + u128, + u128, + ), + > { + self.0 + .method_hash([182, 133, 19, 234], (owner, pool_id)) + .expect("method not found (this should never happen)") + } + } + impl From<::ethers::contract::Contract> + for IPortfolioGetters { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } + ///Container type for all input parameters for the `REGISTRY` function with signature `REGISTRY()` and selector `0x06433b1b` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "REGISTRY", abi = "REGISTRY()")] + pub struct RegistryCall; + ///Container type for all input parameters for the `VERSION` function with signature `VERSION()` and selector `0xffa1ad74` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "VERSION", abi = "VERSION()")] + pub struct VersionCall; + ///Container type for all input parameters for the `WETH` function with signature `WETH()` and selector `0xad5c4648` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "WETH", abi = "WETH()")] + pub struct WethCall; + ///Container type for all input parameters for the `getAmountOut` function with signature `getAmountOut(uint64,bool,uint256)` and selector `0x7dae4890` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getAmountOut", abi = "getAmountOut(uint64,bool,uint256)")] + pub struct GetAmountOutCall { + pub pool_id: u64, + pub sell_asset: bool, + pub amount_in: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `getBalance` function with signature `getBalance(address,address)` and selector `0xd4fac45d` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getBalance", abi = "getBalance(address,address)")] + pub struct GetBalanceCall { + pub owner: ::ethers::core::types::Address, + pub token: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `getLiquidityDeltas` function with signature `getLiquidityDeltas(uint64,int128)` and selector `0x8992f20a` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getLiquidityDeltas", abi = "getLiquidityDeltas(uint64,int128)")] + pub struct GetLiquidityDeltasCall { + pub pool_id: u64, + pub delta_liquidity: i128, + } + ///Container type for all input parameters for the `getMaxLiquidity` function with signature `getMaxLiquidity(uint64,uint256,uint256)` and selector `0xd6b7dec5` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getMaxLiquidity", abi = "getMaxLiquidity(uint64,uint256,uint256)")] + pub struct GetMaxLiquidityCall { + pub pool_id: u64, + pub delta_asset: ::ethers::core::types::U256, + pub delta_quote: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `getNetBalance` function with signature `getNetBalance(address)` and selector `0x4dc68a90` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getNetBalance", abi = "getNetBalance(address)")] + pub struct GetNetBalanceCall { + pub token: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `getPairId` function with signature `getPairId(address,address)` and selector `0x3f92a339` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getPairId", abi = "getPairId(address,address)")] + pub struct GetPairIdCall { + pub asset: ::ethers::core::types::Address, + pub quote: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `getPairNonce` function with signature `getPairNonce()` and selector `0x078888d6` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getPairNonce", abi = "getPairNonce()")] + pub struct GetPairNonceCall; + ///Container type for all input parameters for the `getPoolNonce` function with signature `getPoolNonce(uint24)` and selector `0xa5cd8a49` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getPoolNonce", abi = "getPoolNonce(uint24)")] + pub struct GetPoolNonceCall { + pub pair_nonce: u32, + } + ///Container type for all input parameters for the `getPoolReserves` function with signature `getPoolReserves(uint64)` and selector `0x2afb9df8` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getPoolReserves", abi = "getPoolReserves(uint64)")] + pub struct GetPoolReservesCall { + pub pool_id: u64, + } + ///Container type for all input parameters for the `getReserve` function with signature `getReserve(address)` and selector `0xc9a396e9` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getReserve", abi = "getReserve(address)")] + pub struct GetReserveCall { + pub token: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `getVirtualPrice` function with signature `getVirtualPrice(uint64)` and selector `0x61b7ea6a` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getVirtualPrice", abi = "getVirtualPrice(uint64)")] + pub struct GetVirtualPriceCall { + pub pool_id: u64, + } + ///Container type for all input parameters for the `getVirtualReservesPerLiquidity` function with signature `getVirtualReservesPerLiquidity(uint64)` and selector `0x1a4b905b` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall( + name = "getVirtualReservesPerLiquidity", + abi = "getVirtualReservesPerLiquidity(uint64)" + )] + pub struct GetVirtualReservesPerLiquidityCall { + pub pool_id: u64, + } + ///Container type for all input parameters for the `pairs` function with signature `pairs(uint24)` and selector `0x5e47663c` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "pairs", abi = "pairs(uint24)")] + pub struct PairsCall { + pub pair_id: u32, + } + ///Container type for all input parameters for the `pools` function with signature `pools(uint64)` and selector `0x89a5f084` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "pools", abi = "pools(uint64)")] + pub struct PoolsCall { + pub pool_id: u64, + } + ///Container type for all input parameters for the `positions` function with signature `positions(address,uint64)` and selector `0xb68513ea` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "positions", abi = "positions(address,uint64)")] + pub struct PositionsCall { + pub owner: ::ethers::core::types::Address, + pub pool_id: u64, + } + ///Container type for all of the contract's call + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum IPortfolioGettersCalls { + Registry(RegistryCall), + Version(VersionCall), + Weth(WethCall), + GetAmountOut(GetAmountOutCall), + GetBalance(GetBalanceCall), + GetLiquidityDeltas(GetLiquidityDeltasCall), + GetMaxLiquidity(GetMaxLiquidityCall), + GetNetBalance(GetNetBalanceCall), + GetPairId(GetPairIdCall), + GetPairNonce(GetPairNonceCall), + GetPoolNonce(GetPoolNonceCall), + GetPoolReserves(GetPoolReservesCall), + GetReserve(GetReserveCall), + GetVirtualPrice(GetVirtualPriceCall), + GetVirtualReservesPerLiquidity(GetVirtualReservesPerLiquidityCall), + Pairs(PairsCall), + Pools(PoolsCall), + Positions(PositionsCall), + } + impl ::ethers::core::abi::AbiDecode for IPortfolioGettersCalls { + fn decode( + data: impl AsRef<[u8]>, + ) -> ::core::result::Result { + let data = data.as_ref(); + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Registry(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Version(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Weth(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetAmountOut(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetBalance(decoded)); + } + if let Ok(decoded) + = ::decode( + data, + ) { + return Ok(Self::GetLiquidityDeltas(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetMaxLiquidity(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetNetBalance(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetPairId(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetPairNonce(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetPoolNonce(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetPoolReserves(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetReserve(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetVirtualPrice(decoded)); + } + if let Ok(decoded) + = ::decode( + data, + ) { + return Ok(Self::GetVirtualReservesPerLiquidity(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Pairs(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Pools(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Positions(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData.into()) + } + } + impl ::ethers::core::abi::AbiEncode for IPortfolioGettersCalls { + fn encode(self) -> Vec { + match self { + Self::Registry(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Version(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Weth(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::GetAmountOut(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetBalance(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetLiquidityDeltas(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetMaxLiquidity(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetNetBalance(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetPairId(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetPairNonce(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetPoolNonce(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetPoolReserves(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetReserve(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetVirtualPrice(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetVirtualReservesPerLiquidity(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Pairs(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Pools(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Positions(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + } + } + } + impl ::core::fmt::Display for IPortfolioGettersCalls { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::Registry(element) => ::core::fmt::Display::fmt(element, f), + Self::Version(element) => ::core::fmt::Display::fmt(element, f), + Self::Weth(element) => ::core::fmt::Display::fmt(element, f), + Self::GetAmountOut(element) => ::core::fmt::Display::fmt(element, f), + Self::GetBalance(element) => ::core::fmt::Display::fmt(element, f), + Self::GetLiquidityDeltas(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::GetMaxLiquidity(element) => ::core::fmt::Display::fmt(element, f), + Self::GetNetBalance(element) => ::core::fmt::Display::fmt(element, f), + Self::GetPairId(element) => ::core::fmt::Display::fmt(element, f), + Self::GetPairNonce(element) => ::core::fmt::Display::fmt(element, f), + Self::GetPoolNonce(element) => ::core::fmt::Display::fmt(element, f), + Self::GetPoolReserves(element) => ::core::fmt::Display::fmt(element, f), + Self::GetReserve(element) => ::core::fmt::Display::fmt(element, f), + Self::GetVirtualPrice(element) => ::core::fmt::Display::fmt(element, f), + Self::GetVirtualReservesPerLiquidity(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::Pairs(element) => ::core::fmt::Display::fmt(element, f), + Self::Pools(element) => ::core::fmt::Display::fmt(element, f), + Self::Positions(element) => ::core::fmt::Display::fmt(element, f), + } + } + } + impl ::core::convert::From for IPortfolioGettersCalls { + fn from(value: RegistryCall) -> Self { + Self::Registry(value) + } + } + impl ::core::convert::From for IPortfolioGettersCalls { + fn from(value: VersionCall) -> Self { + Self::Version(value) + } + } + impl ::core::convert::From for IPortfolioGettersCalls { + fn from(value: WethCall) -> Self { + Self::Weth(value) + } + } + impl ::core::convert::From for IPortfolioGettersCalls { + fn from(value: GetAmountOutCall) -> Self { + Self::GetAmountOut(value) + } + } + impl ::core::convert::From for IPortfolioGettersCalls { + fn from(value: GetBalanceCall) -> Self { + Self::GetBalance(value) + } + } + impl ::core::convert::From for IPortfolioGettersCalls { + fn from(value: GetLiquidityDeltasCall) -> Self { + Self::GetLiquidityDeltas(value) + } + } + impl ::core::convert::From for IPortfolioGettersCalls { + fn from(value: GetMaxLiquidityCall) -> Self { + Self::GetMaxLiquidity(value) + } + } + impl ::core::convert::From for IPortfolioGettersCalls { + fn from(value: GetNetBalanceCall) -> Self { + Self::GetNetBalance(value) + } + } + impl ::core::convert::From for IPortfolioGettersCalls { + fn from(value: GetPairIdCall) -> Self { + Self::GetPairId(value) + } + } + impl ::core::convert::From for IPortfolioGettersCalls { + fn from(value: GetPairNonceCall) -> Self { + Self::GetPairNonce(value) + } + } + impl ::core::convert::From for IPortfolioGettersCalls { + fn from(value: GetPoolNonceCall) -> Self { + Self::GetPoolNonce(value) + } + } + impl ::core::convert::From for IPortfolioGettersCalls { + fn from(value: GetPoolReservesCall) -> Self { + Self::GetPoolReserves(value) + } + } + impl ::core::convert::From for IPortfolioGettersCalls { + fn from(value: GetReserveCall) -> Self { + Self::GetReserve(value) + } + } + impl ::core::convert::From for IPortfolioGettersCalls { + fn from(value: GetVirtualPriceCall) -> Self { + Self::GetVirtualPrice(value) + } + } + impl ::core::convert::From + for IPortfolioGettersCalls { + fn from(value: GetVirtualReservesPerLiquidityCall) -> Self { + Self::GetVirtualReservesPerLiquidity(value) + } + } + impl ::core::convert::From for IPortfolioGettersCalls { + fn from(value: PairsCall) -> Self { + Self::Pairs(value) + } + } + impl ::core::convert::From for IPortfolioGettersCalls { + fn from(value: PoolsCall) -> Self { + Self::Pools(value) + } + } + impl ::core::convert::From for IPortfolioGettersCalls { + fn from(value: PositionsCall) -> Self { + Self::Positions(value) + } + } + ///Container type for all return fields from the `REGISTRY` function with signature `REGISTRY()` and selector `0x06433b1b` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct RegistryReturn(pub ::ethers::core::types::Address); + ///Container type for all return fields from the `VERSION` function with signature `VERSION()` and selector `0xffa1ad74` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct VersionReturn(pub ::std::string::String); + ///Container type for all return fields from the `WETH` function with signature `WETH()` and selector `0xad5c4648` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct WethReturn(pub ::ethers::core::types::Address); + ///Container type for all return fields from the `getAmountOut` function with signature `getAmountOut(uint64,bool,uint256)` and selector `0x7dae4890` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetAmountOutReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `getBalance` function with signature `getBalance(address,address)` and selector `0xd4fac45d` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetBalanceReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `getLiquidityDeltas` function with signature `getLiquidityDeltas(uint64,int128)` and selector `0x8992f20a` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetLiquidityDeltasReturn { + pub delta_asset: u128, + pub delta_quote: u128, + } + ///Container type for all return fields from the `getMaxLiquidity` function with signature `getMaxLiquidity(uint64,uint256,uint256)` and selector `0xd6b7dec5` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetMaxLiquidityReturn { + pub delta_liquidity: u128, + } + ///Container type for all return fields from the `getNetBalance` function with signature `getNetBalance(address)` and selector `0x4dc68a90` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetNetBalanceReturn(pub ::ethers::core::types::I256); + ///Container type for all return fields from the `getPairId` function with signature `getPairId(address,address)` and selector `0x3f92a339` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetPairIdReturn { + pub pair_id: u32, + } + ///Container type for all return fields from the `getPairNonce` function with signature `getPairNonce()` and selector `0x078888d6` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetPairNonceReturn(pub u32); + ///Container type for all return fields from the `getPoolNonce` function with signature `getPoolNonce(uint24)` and selector `0xa5cd8a49` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetPoolNonceReturn(pub u32); + ///Container type for all return fields from the `getPoolReserves` function with signature `getPoolReserves(uint64)` and selector `0x2afb9df8` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetPoolReservesReturn { + pub delta_asset: ::ethers::core::types::U256, + pub delta_quote: ::ethers::core::types::U256, + } + ///Container type for all return fields from the `getReserve` function with signature `getReserve(address)` and selector `0xc9a396e9` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetReserveReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `getVirtualPrice` function with signature `getVirtualPrice(uint64)` and selector `0x61b7ea6a` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetVirtualPriceReturn { + pub price: ::ethers::core::types::U256, + } + ///Container type for all return fields from the `getVirtualReservesPerLiquidity` function with signature `getVirtualReservesPerLiquidity(uint64)` and selector `0x1a4b905b` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetVirtualReservesPerLiquidityReturn { + pub delta_asset: u128, + pub delta_quote: u128, + } + ///Container type for all return fields from the `pairs` function with signature `pairs(uint24)` and selector `0x5e47663c` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct PairsReturn { + pub token_asset: ::ethers::core::types::Address, + pub decimals_asset: u8, + pub token_quote: ::ethers::core::types::Address, + pub decimals_quote: u8, + } + ///Container type for all return fields from the `pools` function with signature `pools(uint64)` and selector `0x89a5f084` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct PoolsReturn { + pub virtual_x: u128, + pub virtual_y: u128, + pub liquidity: u128, + pub last_timestamp: u32, + pub controller: ::ethers::core::types::Address, + pub invariant_growth_global: ::ethers::core::types::U256, + pub fee_growth_global_asset: ::ethers::core::types::U256, + pub fee_growth_global_quote: ::ethers::core::types::U256, + pub p8: PortfolioCurve, + pub p9: PortfolioPair, + } + ///Container type for all return fields from the `positions` function with signature `positions(address,uint64)` and selector `0xb68513ea` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct PositionsReturn { + pub free_liquidity: u128, + pub last_timestamp: u32, + pub invariant_growth_last: ::ethers::core::types::U256, + pub fee_growth_asset_last: ::ethers::core::types::U256, + pub fee_growth_quote_last: ::ethers::core::types::U256, + pub tokens_owed_asset: u128, + pub tokens_owed_quote: u128, + pub invariant_owed: u128, + } +} diff --git a/crates/bindings/src/ierc165.rs b/crates/bindings/src/i_portfolio_registry.rs similarity index 52% rename from crates/bindings/src/ierc165.rs rename to crates/bindings/src/i_portfolio_registry.rs index 748cc7f8..4726a26f 100644 --- a/crates/bindings/src/ierc165.rs +++ b/crates/bindings/src/i_portfolio_registry.rs @@ -1,4 +1,4 @@ -pub use ierc165::*; +pub use i_portfolio_registry::*; /// This module was auto-generated with ethers-rs Abigen. /// More information at: #[allow( @@ -9,35 +9,39 @@ pub use ierc165::*; dead_code, non_camel_case_types, )] -pub mod ierc165 { +pub mod i_portfolio_registry { #[rustfmt::skip] - const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceID\",\"type\":\"bytes4\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]}]"; + const __ABI: &str = "[{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"controller\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]}]"; ///The parsed JSON ABI of the contract. - pub static IERC165_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| - ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); - pub struct IERC165(::ethers::contract::Contract); - impl ::core::clone::Clone for IERC165 { + pub static IPORTFOLIOREGISTRY_ABI: ::ethers::contract::Lazy< + ::ethers::core::abi::Abi, + > = ::ethers::contract::Lazy::new(|| { + ::ethers::core::utils::__serde_json::from_str(__ABI) + .expect("ABI is always valid") + }); + pub struct IPortfolioRegistry(::ethers::contract::Contract); + impl ::core::clone::Clone for IPortfolioRegistry { fn clone(&self) -> Self { Self(::core::clone::Clone::clone(&self.0)) } } - impl ::core::ops::Deref for IERC165 { + impl ::core::ops::Deref for IPortfolioRegistry { type Target = ::ethers::contract::Contract; fn deref(&self) -> &Self::Target { &self.0 } } - impl ::core::ops::DerefMut for IERC165 { + impl ::core::ops::DerefMut for IPortfolioRegistry { fn deref_mut(&mut self) -> &mut Self::Target { &mut self.0 } } - impl ::core::fmt::Debug for IERC165 { + impl ::core::fmt::Debug for IPortfolioRegistry { fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(stringify!(IERC165)).field(&self.address()).finish() + f.debug_tuple(stringify!(IPortfolioRegistry)).field(&self.address()).finish() } } - impl IERC165 { + impl IPortfolioRegistry { /// Creates a new contract instance with the specified `ethers` client at /// `address`. The contract derefs to a `ethers::Contract` object. pub fn new>( @@ -47,28 +51,30 @@ pub mod ierc165 { Self( ::ethers::contract::Contract::new( address.into(), - IERC165_ABI.clone(), + IPORTFOLIOREGISTRY_ABI.clone(), client, ), ) } - ///Calls the contract's `supportsInterface` (0x01ffc9a7) function - pub fn supports_interface( + ///Calls the contract's `controller` (0xf77c4791) function + pub fn controller( &self, - interface_id: [u8; 4], - ) -> ::ethers::contract::builders::ContractCall { + ) -> ::ethers::contract::builders::ContractCall< + M, + ::ethers::core::types::Address, + > { self.0 - .method_hash([1, 255, 201, 167], interface_id) + .method_hash([247, 124, 71, 145], ()) .expect("method not found (this should never happen)") } } impl From<::ethers::contract::Contract> - for IERC165 { + for IPortfolioRegistry { fn from(contract: ::ethers::contract::Contract) -> Self { Self::new(contract.address(), contract.client()) } } - ///Container type for all input parameters for the `supportsInterface` function with signature `supportsInterface(bytes4)` and selector `0x01ffc9a7` + ///Container type for all input parameters for the `controller` function with signature `controller()` and selector `0xf77c4791` #[derive( Clone, ::ethers::contract::EthCall, @@ -79,11 +85,9 @@ pub mod ierc165 { Eq, Hash )] - #[ethcall(name = "supportsInterface", abi = "supportsInterface(bytes4)")] - pub struct SupportsInterfaceCall { - pub interface_id: [u8; 4], - } - ///Container type for all return fields from the `supportsInterface` function with signature `supportsInterface(bytes4)` and selector `0x01ffc9a7` + #[ethcall(name = "controller", abi = "controller()")] + pub struct ControllerCall; + ///Container type for all return fields from the `controller` function with signature `controller()` and selector `0xf77c4791` #[derive( Clone, ::ethers::contract::EthAbiType, @@ -94,5 +98,5 @@ pub mod ierc165 { Eq, Hash )] - pub struct SupportsInterfaceReturn(pub bool); + pub struct ControllerReturn(pub ::ethers::core::types::Address); } diff --git a/crates/bindings/src/ierc1155.rs b/crates/bindings/src/ierc1155.rs deleted file mode 100644 index 108e398b..00000000 --- a/crates/bindings/src/ierc1155.rs +++ /dev/null @@ -1,636 +0,0 @@ -pub use ierc1155::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types, -)] -pub mod ierc1155 { - #[rustfmt::skip] - const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"_operator\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"bool\",\"name\":\"_approved\",\"type\":\"bool\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"ApprovalForAll\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_operator\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256[]\",\"name\":\"_ids\",\"type\":\"uint256[]\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256[]\",\"name\":\"_values\",\"type\":\"uint256[]\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"TransferBatch\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_operator\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"_id\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"TransferSingle\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_value\",\"type\":\"string\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"_id\",\"type\":\"uint256\",\"components\":[],\"indexed\":true}],\"type\":\"event\",\"name\":\"URI\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"_id\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_owners\",\"type\":\"address[]\",\"components\":[]},{\"internalType\":\"uint256[]\",\"name\":\"_ids\",\"type\":\"uint256[]\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"balanceOfBatch\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"_operator\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256[]\",\"name\":\"_ids\",\"type\":\"uint256[]\",\"components\":[]},{\"internalType\":\"uint256[]\",\"name\":\"_values\",\"type\":\"uint256[]\",\"components\":[]},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"safeBatchTransferFrom\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"_id\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"safeTransferFrom\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_operator\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"bool\",\"name\":\"_approved\",\"type\":\"bool\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"setApprovalForAll\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceID\",\"type\":\"bytes4\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]}]"; - ///The parsed JSON ABI of the contract. - pub static IERC1155_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| - ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); - pub struct IERC1155(::ethers::contract::Contract); - impl ::core::clone::Clone for IERC1155 { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for IERC1155 { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for IERC1155 { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for IERC1155 { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(stringify!(IERC1155)).field(&self.address()).finish() - } - } - impl IERC1155 { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self( - ::ethers::contract::Contract::new( - address.into(), - IERC1155_ABI.clone(), - client, - ), - ) - } - ///Calls the contract's `balanceOf` (0x00fdd58e) function - pub fn balance_of( - &self, - owner: ::ethers::core::types::Address, - id: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([0, 253, 213, 142], (owner, id)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `balanceOfBatch` (0x4e1273f4) function - pub fn balance_of_batch( - &self, - owners: ::std::vec::Vec<::ethers::core::types::Address>, - ids: ::std::vec::Vec<::ethers::core::types::U256>, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::std::vec::Vec<::ethers::core::types::U256>, - > { - self.0 - .method_hash([78, 18, 115, 244], (owners, ids)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `isApprovedForAll` (0xe985e9c5) function - pub fn is_approved_for_all( - &self, - owner: ::ethers::core::types::Address, - operator: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([233, 133, 233, 197], (owner, operator)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `safeBatchTransferFrom` (0x2eb2c2d6) function - pub fn safe_batch_transfer_from( - &self, - from: ::ethers::core::types::Address, - to: ::ethers::core::types::Address, - ids: ::std::vec::Vec<::ethers::core::types::U256>, - values: ::std::vec::Vec<::ethers::core::types::U256>, - data: ::ethers::core::types::Bytes, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([46, 178, 194, 214], (from, to, ids, values, data)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `safeTransferFrom` (0xf242432a) function - pub fn safe_transfer_from( - &self, - from: ::ethers::core::types::Address, - to: ::ethers::core::types::Address, - id: ::ethers::core::types::U256, - value: ::ethers::core::types::U256, - data: ::ethers::core::types::Bytes, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([242, 66, 67, 42], (from, to, id, value, data)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `setApprovalForAll` (0xa22cb465) function - pub fn set_approval_for_all( - &self, - operator: ::ethers::core::types::Address, - approved: bool, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([162, 44, 180, 101], (operator, approved)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `supportsInterface` (0x01ffc9a7) function - pub fn supports_interface( - &self, - interface_id: [u8; 4], - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([1, 255, 201, 167], interface_id) - .expect("method not found (this should never happen)") - } - ///Gets the contract's `ApprovalForAll` event - pub fn approval_for_all_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - ApprovalForAllFilter, - > { - self.0.event() - } - ///Gets the contract's `TransferBatch` event - pub fn transfer_batch_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - TransferBatchFilter, - > { - self.0.event() - } - ///Gets the contract's `TransferSingle` event - pub fn transfer_single_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - TransferSingleFilter, - > { - self.0.event() - } - ///Gets the contract's `URI` event - pub fn uri_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, UriFilter> { - self.0.event() - } - /// Returns an `Event` builder for all the events of this contract. - pub fn events( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - IERC1155Events, - > { - self.0.event_with_filter(::core::default::Default::default()) - } - } - impl From<::ethers::contract::Contract> - for IERC1155 { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "ApprovalForAll", abi = "ApprovalForAll(address,address,bool)")] - pub struct ApprovalForAllFilter { - #[ethevent(indexed)] - pub owner: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub operator: ::ethers::core::types::Address, - pub approved: bool, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent( - name = "TransferBatch", - abi = "TransferBatch(address,address,address,uint256[],uint256[])" - )] - pub struct TransferBatchFilter { - #[ethevent(indexed)] - pub operator: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub from: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub to: ::ethers::core::types::Address, - pub ids: ::std::vec::Vec<::ethers::core::types::U256>, - pub values: ::std::vec::Vec<::ethers::core::types::U256>, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent( - name = "TransferSingle", - abi = "TransferSingle(address,address,address,uint256,uint256)" - )] - pub struct TransferSingleFilter { - #[ethevent(indexed)] - pub operator: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub from: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub to: ::ethers::core::types::Address, - pub id: ::ethers::core::types::U256, - pub value: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "URI", abi = "URI(string,uint256)")] - pub struct UriFilter { - pub value: ::std::string::String, - #[ethevent(indexed)] - pub id: ::ethers::core::types::U256, - } - ///Container type for all of the contract's events - #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] - pub enum IERC1155Events { - ApprovalForAllFilter(ApprovalForAllFilter), - TransferBatchFilter(TransferBatchFilter), - TransferSingleFilter(TransferSingleFilter), - UriFilter(UriFilter), - } - impl ::ethers::contract::EthLogDecode for IERC1155Events { - fn decode_log( - log: &::ethers::core::abi::RawLog, - ) -> ::core::result::Result { - if let Ok(decoded) = ApprovalForAllFilter::decode_log(log) { - return Ok(IERC1155Events::ApprovalForAllFilter(decoded)); - } - if let Ok(decoded) = TransferBatchFilter::decode_log(log) { - return Ok(IERC1155Events::TransferBatchFilter(decoded)); - } - if let Ok(decoded) = TransferSingleFilter::decode_log(log) { - return Ok(IERC1155Events::TransferSingleFilter(decoded)); - } - if let Ok(decoded) = UriFilter::decode_log(log) { - return Ok(IERC1155Events::UriFilter(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData) - } - } - impl ::core::fmt::Display for IERC1155Events { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::ApprovalForAllFilter(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::TransferBatchFilter(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::TransferSingleFilter(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::UriFilter(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for IERC1155Events { - fn from(value: ApprovalForAllFilter) -> Self { - Self::ApprovalForAllFilter(value) - } - } - impl ::core::convert::From for IERC1155Events { - fn from(value: TransferBatchFilter) -> Self { - Self::TransferBatchFilter(value) - } - } - impl ::core::convert::From for IERC1155Events { - fn from(value: TransferSingleFilter) -> Self { - Self::TransferSingleFilter(value) - } - } - impl ::core::convert::From for IERC1155Events { - fn from(value: UriFilter) -> Self { - Self::UriFilter(value) - } - } - ///Container type for all input parameters for the `balanceOf` function with signature `balanceOf(address,uint256)` and selector `0x00fdd58e` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "balanceOf", abi = "balanceOf(address,uint256)")] - pub struct BalanceOfCall { - pub owner: ::ethers::core::types::Address, - pub id: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `balanceOfBatch` function with signature `balanceOfBatch(address[],uint256[])` and selector `0x4e1273f4` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "balanceOfBatch", abi = "balanceOfBatch(address[],uint256[])")] - pub struct BalanceOfBatchCall { - pub owners: ::std::vec::Vec<::ethers::core::types::Address>, - pub ids: ::std::vec::Vec<::ethers::core::types::U256>, - } - ///Container type for all input parameters for the `isApprovedForAll` function with signature `isApprovedForAll(address,address)` and selector `0xe985e9c5` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "isApprovedForAll", abi = "isApprovedForAll(address,address)")] - pub struct IsApprovedForAllCall { - pub owner: ::ethers::core::types::Address, - pub operator: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `safeBatchTransferFrom` function with signature `safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)` and selector `0x2eb2c2d6` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall( - name = "safeBatchTransferFrom", - abi = "safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)" - )] - pub struct SafeBatchTransferFromCall { - pub from: ::ethers::core::types::Address, - pub to: ::ethers::core::types::Address, - pub ids: ::std::vec::Vec<::ethers::core::types::U256>, - pub values: ::std::vec::Vec<::ethers::core::types::U256>, - pub data: ::ethers::core::types::Bytes, - } - ///Container type for all input parameters for the `safeTransferFrom` function with signature `safeTransferFrom(address,address,uint256,uint256,bytes)` and selector `0xf242432a` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall( - name = "safeTransferFrom", - abi = "safeTransferFrom(address,address,uint256,uint256,bytes)" - )] - pub struct SafeTransferFromCall { - pub from: ::ethers::core::types::Address, - pub to: ::ethers::core::types::Address, - pub id: ::ethers::core::types::U256, - pub value: ::ethers::core::types::U256, - pub data: ::ethers::core::types::Bytes, - } - ///Container type for all input parameters for the `setApprovalForAll` function with signature `setApprovalForAll(address,bool)` and selector `0xa22cb465` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "setApprovalForAll", abi = "setApprovalForAll(address,bool)")] - pub struct SetApprovalForAllCall { - pub operator: ::ethers::core::types::Address, - pub approved: bool, - } - ///Container type for all input parameters for the `supportsInterface` function with signature `supportsInterface(bytes4)` and selector `0x01ffc9a7` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "supportsInterface", abi = "supportsInterface(bytes4)")] - pub struct SupportsInterfaceCall { - pub interface_id: [u8; 4], - } - ///Container type for all of the contract's call - #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] - pub enum IERC1155Calls { - BalanceOf(BalanceOfCall), - BalanceOfBatch(BalanceOfBatchCall), - IsApprovedForAll(IsApprovedForAllCall), - SafeBatchTransferFrom(SafeBatchTransferFromCall), - SafeTransferFrom(SafeTransferFromCall), - SetApprovalForAll(SetApprovalForAllCall), - SupportsInterface(SupportsInterfaceCall), - } - impl ::ethers::core::abi::AbiDecode for IERC1155Calls { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::BalanceOf(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::BalanceOfBatch(decoded)); - } - if let Ok(decoded) - = ::decode( - data, - ) { - return Ok(Self::IsApprovedForAll(decoded)); - } - if let Ok(decoded) - = ::decode( - data, - ) { - return Ok(Self::SafeBatchTransferFrom(decoded)); - } - if let Ok(decoded) - = ::decode( - data, - ) { - return Ok(Self::SafeTransferFrom(decoded)); - } - if let Ok(decoded) - = ::decode( - data, - ) { - return Ok(Self::SetApprovalForAll(decoded)); - } - if let Ok(decoded) - = ::decode( - data, - ) { - return Ok(Self::SupportsInterface(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for IERC1155Calls { - fn encode(self) -> Vec { - match self { - Self::BalanceOf(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::BalanceOfBatch(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::IsApprovedForAll(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::SafeBatchTransferFrom(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::SafeTransferFrom(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::SetApprovalForAll(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::SupportsInterface(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - } - } - } - impl ::core::fmt::Display for IERC1155Calls { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::BalanceOf(element) => ::core::fmt::Display::fmt(element, f), - Self::BalanceOfBatch(element) => ::core::fmt::Display::fmt(element, f), - Self::IsApprovedForAll(element) => ::core::fmt::Display::fmt(element, f), - Self::SafeBatchTransferFrom(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::SafeTransferFrom(element) => ::core::fmt::Display::fmt(element, f), - Self::SetApprovalForAll(element) => ::core::fmt::Display::fmt(element, f), - Self::SupportsInterface(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for IERC1155Calls { - fn from(value: BalanceOfCall) -> Self { - Self::BalanceOf(value) - } - } - impl ::core::convert::From for IERC1155Calls { - fn from(value: BalanceOfBatchCall) -> Self { - Self::BalanceOfBatch(value) - } - } - impl ::core::convert::From for IERC1155Calls { - fn from(value: IsApprovedForAllCall) -> Self { - Self::IsApprovedForAll(value) - } - } - impl ::core::convert::From for IERC1155Calls { - fn from(value: SafeBatchTransferFromCall) -> Self { - Self::SafeBatchTransferFrom(value) - } - } - impl ::core::convert::From for IERC1155Calls { - fn from(value: SafeTransferFromCall) -> Self { - Self::SafeTransferFrom(value) - } - } - impl ::core::convert::From for IERC1155Calls { - fn from(value: SetApprovalForAllCall) -> Self { - Self::SetApprovalForAll(value) - } - } - impl ::core::convert::From for IERC1155Calls { - fn from(value: SupportsInterfaceCall) -> Self { - Self::SupportsInterface(value) - } - } - ///Container type for all return fields from the `balanceOf` function with signature `balanceOf(address,uint256)` and selector `0x00fdd58e` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct BalanceOfReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `balanceOfBatch` function with signature `balanceOfBatch(address[],uint256[])` and selector `0x4e1273f4` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct BalanceOfBatchReturn(pub ::std::vec::Vec<::ethers::core::types::U256>); - ///Container type for all return fields from the `isApprovedForAll` function with signature `isApprovedForAll(address,address)` and selector `0xe985e9c5` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct IsApprovedForAllReturn(pub bool); - ///Container type for all return fields from the `supportsInterface` function with signature `supportsInterface(bytes4)` and selector `0x01ffc9a7` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct SupportsInterfaceReturn(pub bool); -} diff --git a/crates/bindings/src/ierc20.rs b/crates/bindings/src/ierc20.rs index f4906012..b8bfa1f2 100644 --- a/crates/bindings/src/ierc20.rs +++ b/crates/bindings/src/ierc20.rs @@ -11,7 +11,7 @@ pub use ierc20::*; )] pub mod ierc20 { #[rustfmt::skip] - const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Approval\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Transfer\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]}]"; + const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Approval\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Transfer\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]}]"; ///The parsed JSON ABI of the contract. pub static IERC20_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); @@ -87,22 +87,6 @@ pub mod ierc20 { .method_hash([49, 60, 229, 103], ()) .expect("method not found (this should never happen)") } - ///Calls the contract's `name` (0x06fdde03) function - pub fn name( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([6, 253, 222, 3], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `symbol` (0x95d89b41) function - pub fn symbol( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([149, 216, 155, 65], ()) - .expect("method not found (this should never happen)") - } ///Calls the contract's `totalSupply` (0x18160ddd) function pub fn total_supply( &self, @@ -114,22 +98,22 @@ pub mod ierc20 { ///Calls the contract's `transfer` (0xa9059cbb) function pub fn transfer( &self, - to: ::ethers::core::types::Address, + recipient: ::ethers::core::types::Address, amount: ::ethers::core::types::U256, ) -> ::ethers::contract::builders::ContractCall { self.0 - .method_hash([169, 5, 156, 187], (to, amount)) + .method_hash([169, 5, 156, 187], (recipient, amount)) .expect("method not found (this should never happen)") } ///Calls the contract's `transferFrom` (0x23b872dd) function pub fn transfer_from( &self, - from: ::ethers::core::types::Address, - to: ::ethers::core::types::Address, + sender: ::ethers::core::types::Address, + recipient: ::ethers::core::types::Address, amount: ::ethers::core::types::U256, ) -> ::ethers::contract::builders::ContractCall { self.0 - .method_hash([35, 184, 114, 221], (from, to, amount)) + .method_hash([35, 184, 114, 221], (sender, recipient, amount)) .expect("method not found (this should never happen)") } ///Gets the contract's `Approval` event @@ -298,32 +282,6 @@ pub mod ierc20 { )] #[ethcall(name = "decimals", abi = "decimals()")] pub struct DecimalsCall; - ///Container type for all input parameters for the `name` function with signature `name()` and selector `0x06fdde03` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "name", abi = "name()")] - pub struct NameCall; - ///Container type for all input parameters for the `symbol` function with signature `symbol()` and selector `0x95d89b41` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "symbol", abi = "symbol()")] - pub struct SymbolCall; ///Container type for all input parameters for the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd` #[derive( Clone, @@ -350,7 +308,7 @@ pub mod ierc20 { )] #[ethcall(name = "transfer", abi = "transfer(address,uint256)")] pub struct TransferCall { - pub to: ::ethers::core::types::Address, + pub recipient: ::ethers::core::types::Address, pub amount: ::ethers::core::types::U256, } ///Container type for all input parameters for the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd` @@ -366,8 +324,8 @@ pub mod ierc20 { )] #[ethcall(name = "transferFrom", abi = "transferFrom(address,address,uint256)")] pub struct TransferFromCall { - pub from: ::ethers::core::types::Address, - pub to: ::ethers::core::types::Address, + pub sender: ::ethers::core::types::Address, + pub recipient: ::ethers::core::types::Address, pub amount: ::ethers::core::types::U256, } ///Container type for all of the contract's call @@ -377,8 +335,6 @@ pub mod ierc20 { Approve(ApproveCall), BalanceOf(BalanceOfCall), Decimals(DecimalsCall), - Name(NameCall), - Symbol(SymbolCall), TotalSupply(TotalSupplyCall), Transfer(TransferCall), TransferFrom(TransferFromCall), @@ -404,14 +360,6 @@ pub mod ierc20 { = ::decode(data) { return Ok(Self::Decimals(decoded)); } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Name(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Symbol(decoded)); - } if let Ok(decoded) = ::decode(data) { return Ok(Self::TotalSupply(decoded)); @@ -440,8 +388,6 @@ pub mod ierc20 { Self::Decimals(element) => { ::ethers::core::abi::AbiEncode::encode(element) } - Self::Name(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Symbol(element) => ::ethers::core::abi::AbiEncode::encode(element), Self::TotalSupply(element) => { ::ethers::core::abi::AbiEncode::encode(element) } @@ -461,8 +407,6 @@ pub mod ierc20 { Self::Approve(element) => ::core::fmt::Display::fmt(element, f), Self::BalanceOf(element) => ::core::fmt::Display::fmt(element, f), Self::Decimals(element) => ::core::fmt::Display::fmt(element, f), - Self::Name(element) => ::core::fmt::Display::fmt(element, f), - Self::Symbol(element) => ::core::fmt::Display::fmt(element, f), Self::TotalSupply(element) => ::core::fmt::Display::fmt(element, f), Self::Transfer(element) => ::core::fmt::Display::fmt(element, f), Self::TransferFrom(element) => ::core::fmt::Display::fmt(element, f), @@ -489,16 +433,6 @@ pub mod ierc20 { Self::Decimals(value) } } - impl ::core::convert::From for IERC20Calls { - fn from(value: NameCall) -> Self { - Self::Name(value) - } - } - impl ::core::convert::From for IERC20Calls { - fn from(value: SymbolCall) -> Self { - Self::Symbol(value) - } - } impl ::core::convert::From for IERC20Calls { fn from(value: TotalSupplyCall) -> Self { Self::TotalSupply(value) @@ -562,30 +496,6 @@ pub mod ierc20 { Hash )] pub struct DecimalsReturn(pub u8); - ///Container type for all return fields from the `name` function with signature `name()` and selector `0x06fdde03` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct NameReturn(pub ::std::string::String); - ///Container type for all return fields from the `symbol` function with signature `symbol()` and selector `0x95d89b41` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct SymbolReturn(pub ::std::string::String); ///Container type for all return fields from the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd` #[derive( Clone, diff --git a/crates/bindings/src/ierc4626.rs b/crates/bindings/src/ierc4626.rs deleted file mode 100644 index 6516aa5d..00000000 --- a/crates/bindings/src/ierc4626.rs +++ /dev/null @@ -1,1539 +0,0 @@ -pub use ierc4626::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types, -)] -pub mod ierc4626 { - #[rustfmt::skip] - const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Approval\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Deposit\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Transfer\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Withdraw\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"asset\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"assetTokenAddress\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"convertToAssets\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"convertToShares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"deposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"maxDeposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"maxAssets\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"maxMint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"maxShares\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"maxRedeem\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"maxShares\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"maxWithdraw\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"maxAssets\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"mint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"previewDeposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"previewMint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"previewRedeem\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"previewWithdraw\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"redeem\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"totalAssets\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"totalManagedAssets\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"withdraw\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\",\"components\":[]}]}]"; - ///The parsed JSON ABI of the contract. - pub static IERC4626_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| - ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); - pub struct IERC4626(::ethers::contract::Contract); - impl ::core::clone::Clone for IERC4626 { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for IERC4626 { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for IERC4626 { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for IERC4626 { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(stringify!(IERC4626)).field(&self.address()).finish() - } - } - impl IERC4626 { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self( - ::ethers::contract::Contract::new( - address.into(), - IERC4626_ABI.clone(), - client, - ), - ) - } - ///Calls the contract's `allowance` (0xdd62ed3e) function - pub fn allowance( - &self, - owner: ::ethers::core::types::Address, - spender: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([221, 98, 237, 62], (owner, spender)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `approve` (0x095ea7b3) function - pub fn approve( - &self, - spender: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([9, 94, 167, 179], (spender, amount)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `asset` (0x38d52e0f) function - pub fn asset( - &self, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::ethers::core::types::Address, - > { - self.0 - .method_hash([56, 213, 46, 15], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `balanceOf` (0x70a08231) function - pub fn balance_of( - &self, - account: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([112, 160, 130, 49], account) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `convertToAssets` (0x07a2d13a) function - pub fn convert_to_assets( - &self, - shares: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([7, 162, 209, 58], shares) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `convertToShares` (0xc6e6f592) function - pub fn convert_to_shares( - &self, - assets: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([198, 230, 245, 146], assets) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `decimals` (0x313ce567) function - pub fn decimals(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([49, 60, 229, 103], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `deposit` (0x6e553f65) function - pub fn deposit( - &self, - assets: ::ethers::core::types::U256, - receiver: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([110, 85, 63, 101], (assets, receiver)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `maxDeposit` (0x402d267d) function - pub fn max_deposit( - &self, - receiver: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([64, 45, 38, 125], receiver) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `maxMint` (0xc63d75b6) function - pub fn max_mint( - &self, - receiver: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([198, 61, 117, 182], receiver) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `maxRedeem` (0xd905777e) function - pub fn max_redeem( - &self, - owner: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([217, 5, 119, 126], owner) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `maxWithdraw` (0xce96cb77) function - pub fn max_withdraw( - &self, - owner: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([206, 150, 203, 119], owner) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `mint` (0x94bf804d) function - pub fn mint( - &self, - shares: ::ethers::core::types::U256, - receiver: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([148, 191, 128, 77], (shares, receiver)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `name` (0x06fdde03) function - pub fn name( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([6, 253, 222, 3], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `previewDeposit` (0xef8b30f7) function - pub fn preview_deposit( - &self, - assets: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([239, 139, 48, 247], assets) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `previewMint` (0xb3d7f6b9) function - pub fn preview_mint( - &self, - shares: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([179, 215, 246, 185], shares) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `previewRedeem` (0x4cdad506) function - pub fn preview_redeem( - &self, - shares: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([76, 218, 213, 6], shares) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `previewWithdraw` (0x0a28a477) function - pub fn preview_withdraw( - &self, - assets: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([10, 40, 164, 119], assets) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `redeem` (0xba087652) function - pub fn redeem( - &self, - shares: ::ethers::core::types::U256, - receiver: ::ethers::core::types::Address, - owner: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([186, 8, 118, 82], (shares, receiver, owner)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `symbol` (0x95d89b41) function - pub fn symbol( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([149, 216, 155, 65], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `totalAssets` (0x01e1d114) function - pub fn total_assets( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([1, 225, 209, 20], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `totalSupply` (0x18160ddd) function - pub fn total_supply( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([24, 22, 13, 221], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `transfer` (0xa9059cbb) function - pub fn transfer( - &self, - to: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([169, 5, 156, 187], (to, amount)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `transferFrom` (0x23b872dd) function - pub fn transfer_from( - &self, - from: ::ethers::core::types::Address, - to: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([35, 184, 114, 221], (from, to, amount)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `withdraw` (0xb460af94) function - pub fn withdraw( - &self, - assets: ::ethers::core::types::U256, - receiver: ::ethers::core::types::Address, - owner: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([180, 96, 175, 148], (assets, receiver, owner)) - .expect("method not found (this should never happen)") - } - ///Gets the contract's `Approval` event - pub fn approval_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - ApprovalFilter, - > { - self.0.event() - } - ///Gets the contract's `Deposit` event - pub fn deposit_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, DepositFilter> { - self.0.event() - } - ///Gets the contract's `Transfer` event - pub fn transfer_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - TransferFilter, - > { - self.0.event() - } - ///Gets the contract's `Withdraw` event - pub fn withdraw_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - WithdrawFilter, - > { - self.0.event() - } - /// Returns an `Event` builder for all the events of this contract. - pub fn events( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - IERC4626Events, - > { - self.0.event_with_filter(::core::default::Default::default()) - } - } - impl From<::ethers::contract::Contract> - for IERC4626 { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "Approval", abi = "Approval(address,address,uint256)")] - pub struct ApprovalFilter { - #[ethevent(indexed)] - pub owner: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub spender: ::ethers::core::types::Address, - pub value: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "Deposit", abi = "Deposit(address,address,uint256,uint256)")] - pub struct DepositFilter { - #[ethevent(indexed)] - pub sender: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub owner: ::ethers::core::types::Address, - pub assets: ::ethers::core::types::U256, - pub shares: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "Transfer", abi = "Transfer(address,address,uint256)")] - pub struct TransferFilter { - #[ethevent(indexed)] - pub from: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub to: ::ethers::core::types::Address, - pub value: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent( - name = "Withdraw", - abi = "Withdraw(address,address,address,uint256,uint256)" - )] - pub struct WithdrawFilter { - #[ethevent(indexed)] - pub sender: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub receiver: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub owner: ::ethers::core::types::Address, - pub assets: ::ethers::core::types::U256, - pub shares: ::ethers::core::types::U256, - } - ///Container type for all of the contract's events - #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] - pub enum IERC4626Events { - ApprovalFilter(ApprovalFilter), - DepositFilter(DepositFilter), - TransferFilter(TransferFilter), - WithdrawFilter(WithdrawFilter), - } - impl ::ethers::contract::EthLogDecode for IERC4626Events { - fn decode_log( - log: &::ethers::core::abi::RawLog, - ) -> ::core::result::Result { - if let Ok(decoded) = ApprovalFilter::decode_log(log) { - return Ok(IERC4626Events::ApprovalFilter(decoded)); - } - if let Ok(decoded) = DepositFilter::decode_log(log) { - return Ok(IERC4626Events::DepositFilter(decoded)); - } - if let Ok(decoded) = TransferFilter::decode_log(log) { - return Ok(IERC4626Events::TransferFilter(decoded)); - } - if let Ok(decoded) = WithdrawFilter::decode_log(log) { - return Ok(IERC4626Events::WithdrawFilter(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData) - } - } - impl ::core::fmt::Display for IERC4626Events { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::ApprovalFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::DepositFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::TransferFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::WithdrawFilter(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for IERC4626Events { - fn from(value: ApprovalFilter) -> Self { - Self::ApprovalFilter(value) - } - } - impl ::core::convert::From for IERC4626Events { - fn from(value: DepositFilter) -> Self { - Self::DepositFilter(value) - } - } - impl ::core::convert::From for IERC4626Events { - fn from(value: TransferFilter) -> Self { - Self::TransferFilter(value) - } - } - impl ::core::convert::From for IERC4626Events { - fn from(value: WithdrawFilter) -> Self { - Self::WithdrawFilter(value) - } - } - ///Container type for all input parameters for the `allowance` function with signature `allowance(address,address)` and selector `0xdd62ed3e` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "allowance", abi = "allowance(address,address)")] - pub struct AllowanceCall { - pub owner: ::ethers::core::types::Address, - pub spender: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "approve", abi = "approve(address,uint256)")] - pub struct ApproveCall { - pub spender: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `asset` function with signature `asset()` and selector `0x38d52e0f` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "asset", abi = "asset()")] - pub struct AssetCall; - ///Container type for all input parameters for the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "balanceOf", abi = "balanceOf(address)")] - pub struct BalanceOfCall { - pub account: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `convertToAssets` function with signature `convertToAssets(uint256)` and selector `0x07a2d13a` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "convertToAssets", abi = "convertToAssets(uint256)")] - pub struct ConvertToAssetsCall { - pub shares: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `convertToShares` function with signature `convertToShares(uint256)` and selector `0xc6e6f592` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "convertToShares", abi = "convertToShares(uint256)")] - pub struct ConvertToSharesCall { - pub assets: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `decimals` function with signature `decimals()` and selector `0x313ce567` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "decimals", abi = "decimals()")] - pub struct DecimalsCall; - ///Container type for all input parameters for the `deposit` function with signature `deposit(uint256,address)` and selector `0x6e553f65` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "deposit", abi = "deposit(uint256,address)")] - pub struct DepositCall { - pub assets: ::ethers::core::types::U256, - pub receiver: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `maxDeposit` function with signature `maxDeposit(address)` and selector `0x402d267d` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "maxDeposit", abi = "maxDeposit(address)")] - pub struct MaxDepositCall { - pub receiver: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `maxMint` function with signature `maxMint(address)` and selector `0xc63d75b6` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "maxMint", abi = "maxMint(address)")] - pub struct MaxMintCall { - pub receiver: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `maxRedeem` function with signature `maxRedeem(address)` and selector `0xd905777e` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "maxRedeem", abi = "maxRedeem(address)")] - pub struct MaxRedeemCall { - pub owner: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `maxWithdraw` function with signature `maxWithdraw(address)` and selector `0xce96cb77` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "maxWithdraw", abi = "maxWithdraw(address)")] - pub struct MaxWithdrawCall { - pub owner: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `mint` function with signature `mint(uint256,address)` and selector `0x94bf804d` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "mint", abi = "mint(uint256,address)")] - pub struct MintCall { - pub shares: ::ethers::core::types::U256, - pub receiver: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `name` function with signature `name()` and selector `0x06fdde03` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "name", abi = "name()")] - pub struct NameCall; - ///Container type for all input parameters for the `previewDeposit` function with signature `previewDeposit(uint256)` and selector `0xef8b30f7` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "previewDeposit", abi = "previewDeposit(uint256)")] - pub struct PreviewDepositCall { - pub assets: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `previewMint` function with signature `previewMint(uint256)` and selector `0xb3d7f6b9` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "previewMint", abi = "previewMint(uint256)")] - pub struct PreviewMintCall { - pub shares: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `previewRedeem` function with signature `previewRedeem(uint256)` and selector `0x4cdad506` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "previewRedeem", abi = "previewRedeem(uint256)")] - pub struct PreviewRedeemCall { - pub shares: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `previewWithdraw` function with signature `previewWithdraw(uint256)` and selector `0x0a28a477` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "previewWithdraw", abi = "previewWithdraw(uint256)")] - pub struct PreviewWithdrawCall { - pub assets: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `redeem` function with signature `redeem(uint256,address,address)` and selector `0xba087652` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "redeem", abi = "redeem(uint256,address,address)")] - pub struct RedeemCall { - pub shares: ::ethers::core::types::U256, - pub receiver: ::ethers::core::types::Address, - pub owner: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `symbol` function with signature `symbol()` and selector `0x95d89b41` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "symbol", abi = "symbol()")] - pub struct SymbolCall; - ///Container type for all input parameters for the `totalAssets` function with signature `totalAssets()` and selector `0x01e1d114` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "totalAssets", abi = "totalAssets()")] - pub struct TotalAssetsCall; - ///Container type for all input parameters for the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "totalSupply", abi = "totalSupply()")] - pub struct TotalSupplyCall; - ///Container type for all input parameters for the `transfer` function with signature `transfer(address,uint256)` and selector `0xa9059cbb` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "transfer", abi = "transfer(address,uint256)")] - pub struct TransferCall { - pub to: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "transferFrom", abi = "transferFrom(address,address,uint256)")] - pub struct TransferFromCall { - pub from: ::ethers::core::types::Address, - pub to: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `withdraw` function with signature `withdraw(uint256,address,address)` and selector `0xb460af94` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "withdraw", abi = "withdraw(uint256,address,address)")] - pub struct WithdrawCall { - pub assets: ::ethers::core::types::U256, - pub receiver: ::ethers::core::types::Address, - pub owner: ::ethers::core::types::Address, - } - ///Container type for all of the contract's call - #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] - pub enum IERC4626Calls { - Allowance(AllowanceCall), - Approve(ApproveCall), - Asset(AssetCall), - BalanceOf(BalanceOfCall), - ConvertToAssets(ConvertToAssetsCall), - ConvertToShares(ConvertToSharesCall), - Decimals(DecimalsCall), - Deposit(DepositCall), - MaxDeposit(MaxDepositCall), - MaxMint(MaxMintCall), - MaxRedeem(MaxRedeemCall), - MaxWithdraw(MaxWithdrawCall), - Mint(MintCall), - Name(NameCall), - PreviewDeposit(PreviewDepositCall), - PreviewMint(PreviewMintCall), - PreviewRedeem(PreviewRedeemCall), - PreviewWithdraw(PreviewWithdrawCall), - Redeem(RedeemCall), - Symbol(SymbolCall), - TotalAssets(TotalAssetsCall), - TotalSupply(TotalSupplyCall), - Transfer(TransferCall), - TransferFrom(TransferFromCall), - Withdraw(WithdrawCall), - } - impl ::ethers::core::abi::AbiDecode for IERC4626Calls { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Allowance(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Approve(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Asset(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::BalanceOf(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::ConvertToAssets(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::ConvertToShares(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Decimals(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Deposit(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::MaxDeposit(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::MaxMint(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::MaxRedeem(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::MaxWithdraw(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Mint(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Name(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::PreviewDeposit(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::PreviewMint(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::PreviewRedeem(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::PreviewWithdraw(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Redeem(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Symbol(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::TotalAssets(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::TotalSupply(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Transfer(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::TransferFrom(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Withdraw(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for IERC4626Calls { - fn encode(self) -> Vec { - match self { - Self::Allowance(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Approve(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Asset(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::BalanceOf(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::ConvertToAssets(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::ConvertToShares(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Decimals(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Deposit(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::MaxDeposit(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::MaxMint(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::MaxRedeem(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::MaxWithdraw(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Mint(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Name(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::PreviewDeposit(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::PreviewMint(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::PreviewRedeem(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::PreviewWithdraw(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Redeem(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Symbol(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::TotalAssets(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::TotalSupply(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Transfer(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::TransferFrom(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Withdraw(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - } - } - } - impl ::core::fmt::Display for IERC4626Calls { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::Allowance(element) => ::core::fmt::Display::fmt(element, f), - Self::Approve(element) => ::core::fmt::Display::fmt(element, f), - Self::Asset(element) => ::core::fmt::Display::fmt(element, f), - Self::BalanceOf(element) => ::core::fmt::Display::fmt(element, f), - Self::ConvertToAssets(element) => ::core::fmt::Display::fmt(element, f), - Self::ConvertToShares(element) => ::core::fmt::Display::fmt(element, f), - Self::Decimals(element) => ::core::fmt::Display::fmt(element, f), - Self::Deposit(element) => ::core::fmt::Display::fmt(element, f), - Self::MaxDeposit(element) => ::core::fmt::Display::fmt(element, f), - Self::MaxMint(element) => ::core::fmt::Display::fmt(element, f), - Self::MaxRedeem(element) => ::core::fmt::Display::fmt(element, f), - Self::MaxWithdraw(element) => ::core::fmt::Display::fmt(element, f), - Self::Mint(element) => ::core::fmt::Display::fmt(element, f), - Self::Name(element) => ::core::fmt::Display::fmt(element, f), - Self::PreviewDeposit(element) => ::core::fmt::Display::fmt(element, f), - Self::PreviewMint(element) => ::core::fmt::Display::fmt(element, f), - Self::PreviewRedeem(element) => ::core::fmt::Display::fmt(element, f), - Self::PreviewWithdraw(element) => ::core::fmt::Display::fmt(element, f), - Self::Redeem(element) => ::core::fmt::Display::fmt(element, f), - Self::Symbol(element) => ::core::fmt::Display::fmt(element, f), - Self::TotalAssets(element) => ::core::fmt::Display::fmt(element, f), - Self::TotalSupply(element) => ::core::fmt::Display::fmt(element, f), - Self::Transfer(element) => ::core::fmt::Display::fmt(element, f), - Self::TransferFrom(element) => ::core::fmt::Display::fmt(element, f), - Self::Withdraw(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for IERC4626Calls { - fn from(value: AllowanceCall) -> Self { - Self::Allowance(value) - } - } - impl ::core::convert::From for IERC4626Calls { - fn from(value: ApproveCall) -> Self { - Self::Approve(value) - } - } - impl ::core::convert::From for IERC4626Calls { - fn from(value: AssetCall) -> Self { - Self::Asset(value) - } - } - impl ::core::convert::From for IERC4626Calls { - fn from(value: BalanceOfCall) -> Self { - Self::BalanceOf(value) - } - } - impl ::core::convert::From for IERC4626Calls { - fn from(value: ConvertToAssetsCall) -> Self { - Self::ConvertToAssets(value) - } - } - impl ::core::convert::From for IERC4626Calls { - fn from(value: ConvertToSharesCall) -> Self { - Self::ConvertToShares(value) - } - } - impl ::core::convert::From for IERC4626Calls { - fn from(value: DecimalsCall) -> Self { - Self::Decimals(value) - } - } - impl ::core::convert::From for IERC4626Calls { - fn from(value: DepositCall) -> Self { - Self::Deposit(value) - } - } - impl ::core::convert::From for IERC4626Calls { - fn from(value: MaxDepositCall) -> Self { - Self::MaxDeposit(value) - } - } - impl ::core::convert::From for IERC4626Calls { - fn from(value: MaxMintCall) -> Self { - Self::MaxMint(value) - } - } - impl ::core::convert::From for IERC4626Calls { - fn from(value: MaxRedeemCall) -> Self { - Self::MaxRedeem(value) - } - } - impl ::core::convert::From for IERC4626Calls { - fn from(value: MaxWithdrawCall) -> Self { - Self::MaxWithdraw(value) - } - } - impl ::core::convert::From for IERC4626Calls { - fn from(value: MintCall) -> Self { - Self::Mint(value) - } - } - impl ::core::convert::From for IERC4626Calls { - fn from(value: NameCall) -> Self { - Self::Name(value) - } - } - impl ::core::convert::From for IERC4626Calls { - fn from(value: PreviewDepositCall) -> Self { - Self::PreviewDeposit(value) - } - } - impl ::core::convert::From for IERC4626Calls { - fn from(value: PreviewMintCall) -> Self { - Self::PreviewMint(value) - } - } - impl ::core::convert::From for IERC4626Calls { - fn from(value: PreviewRedeemCall) -> Self { - Self::PreviewRedeem(value) - } - } - impl ::core::convert::From for IERC4626Calls { - fn from(value: PreviewWithdrawCall) -> Self { - Self::PreviewWithdraw(value) - } - } - impl ::core::convert::From for IERC4626Calls { - fn from(value: RedeemCall) -> Self { - Self::Redeem(value) - } - } - impl ::core::convert::From for IERC4626Calls { - fn from(value: SymbolCall) -> Self { - Self::Symbol(value) - } - } - impl ::core::convert::From for IERC4626Calls { - fn from(value: TotalAssetsCall) -> Self { - Self::TotalAssets(value) - } - } - impl ::core::convert::From for IERC4626Calls { - fn from(value: TotalSupplyCall) -> Self { - Self::TotalSupply(value) - } - } - impl ::core::convert::From for IERC4626Calls { - fn from(value: TransferCall) -> Self { - Self::Transfer(value) - } - } - impl ::core::convert::From for IERC4626Calls { - fn from(value: TransferFromCall) -> Self { - Self::TransferFrom(value) - } - } - impl ::core::convert::From for IERC4626Calls { - fn from(value: WithdrawCall) -> Self { - Self::Withdraw(value) - } - } - ///Container type for all return fields from the `allowance` function with signature `allowance(address,address)` and selector `0xdd62ed3e` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct AllowanceReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct ApproveReturn(pub bool); - ///Container type for all return fields from the `asset` function with signature `asset()` and selector `0x38d52e0f` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct AssetReturn { - pub asset_token_address: ::ethers::core::types::Address, - } - ///Container type for all return fields from the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct BalanceOfReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `convertToAssets` function with signature `convertToAssets(uint256)` and selector `0x07a2d13a` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct ConvertToAssetsReturn { - pub assets: ::ethers::core::types::U256, - } - ///Container type for all return fields from the `convertToShares` function with signature `convertToShares(uint256)` and selector `0xc6e6f592` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct ConvertToSharesReturn { - pub shares: ::ethers::core::types::U256, - } - ///Container type for all return fields from the `decimals` function with signature `decimals()` and selector `0x313ce567` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct DecimalsReturn(pub u8); - ///Container type for all return fields from the `deposit` function with signature `deposit(uint256,address)` and selector `0x6e553f65` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct DepositReturn { - pub shares: ::ethers::core::types::U256, - } - ///Container type for all return fields from the `maxDeposit` function with signature `maxDeposit(address)` and selector `0x402d267d` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct MaxDepositReturn { - pub max_assets: ::ethers::core::types::U256, - } - ///Container type for all return fields from the `maxMint` function with signature `maxMint(address)` and selector `0xc63d75b6` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct MaxMintReturn { - pub max_shares: ::ethers::core::types::U256, - } - ///Container type for all return fields from the `maxRedeem` function with signature `maxRedeem(address)` and selector `0xd905777e` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct MaxRedeemReturn { - pub max_shares: ::ethers::core::types::U256, - } - ///Container type for all return fields from the `maxWithdraw` function with signature `maxWithdraw(address)` and selector `0xce96cb77` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct MaxWithdrawReturn { - pub max_assets: ::ethers::core::types::U256, - } - ///Container type for all return fields from the `mint` function with signature `mint(uint256,address)` and selector `0x94bf804d` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct MintReturn { - pub assets: ::ethers::core::types::U256, - } - ///Container type for all return fields from the `name` function with signature `name()` and selector `0x06fdde03` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct NameReturn(pub ::std::string::String); - ///Container type for all return fields from the `previewDeposit` function with signature `previewDeposit(uint256)` and selector `0xef8b30f7` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct PreviewDepositReturn { - pub shares: ::ethers::core::types::U256, - } - ///Container type for all return fields from the `previewMint` function with signature `previewMint(uint256)` and selector `0xb3d7f6b9` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct PreviewMintReturn { - pub assets: ::ethers::core::types::U256, - } - ///Container type for all return fields from the `previewRedeem` function with signature `previewRedeem(uint256)` and selector `0x4cdad506` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct PreviewRedeemReturn { - pub assets: ::ethers::core::types::U256, - } - ///Container type for all return fields from the `previewWithdraw` function with signature `previewWithdraw(uint256)` and selector `0x0a28a477` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct PreviewWithdrawReturn { - pub shares: ::ethers::core::types::U256, - } - ///Container type for all return fields from the `redeem` function with signature `redeem(uint256,address,address)` and selector `0xba087652` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct RedeemReturn { - pub assets: ::ethers::core::types::U256, - } - ///Container type for all return fields from the `symbol` function with signature `symbol()` and selector `0x95d89b41` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct SymbolReturn(pub ::std::string::String); - ///Container type for all return fields from the `totalAssets` function with signature `totalAssets()` and selector `0x01e1d114` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct TotalAssetsReturn { - pub total_managed_assets: ::ethers::core::types::U256, - } - ///Container type for all return fields from the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct TotalSupplyReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `transfer` function with signature `transfer(address,uint256)` and selector `0xa9059cbb` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct TransferReturn(pub bool); - ///Container type for all return fields from the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct TransferFromReturn(pub bool); - ///Container type for all return fields from the `withdraw` function with signature `withdraw(uint256,address,address)` and selector `0xb460af94` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct WithdrawReturn { - pub shares: ::ethers::core::types::U256, - } -} diff --git a/crates/bindings/src/ierc721.rs b/crates/bindings/src/ierc721.rs deleted file mode 100644 index 510b7476..00000000 --- a/crates/bindings/src/ierc721.rs +++ /dev/null @@ -1,708 +0,0 @@ -pub use ierc721::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types, -)] -pub mod ierc721 { - #[rustfmt::skip] - const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"_approved\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\",\"components\":[],\"indexed\":true}],\"type\":\"event\",\"name\":\"Approval\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"_operator\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"bool\",\"name\":\"_approved\",\"type\":\"bool\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"ApprovalForAll\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\",\"components\":[],\"indexed\":true}],\"type\":\"event\",\"name\":\"Transfer\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_approved\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"approve\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"_operator\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"safeTransferFrom\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\",\"components\":[]}],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"safeTransferFrom\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_operator\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"bool\",\"name\":\"_approved\",\"type\":\"bool\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"setApprovalForAll\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceID\",\"type\":\"bytes4\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"transferFrom\",\"outputs\":[]}]"; - ///The parsed JSON ABI of the contract. - pub static IERC721_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| - ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); - pub struct IERC721(::ethers::contract::Contract); - impl ::core::clone::Clone for IERC721 { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for IERC721 { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for IERC721 { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for IERC721 { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(stringify!(IERC721)).field(&self.address()).finish() - } - } - impl IERC721 { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self( - ::ethers::contract::Contract::new( - address.into(), - IERC721_ABI.clone(), - client, - ), - ) - } - ///Calls the contract's `approve` (0x095ea7b3) function - pub fn approve( - &self, - approved: ::ethers::core::types::Address, - token_id: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([9, 94, 167, 179], (approved, token_id)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `balanceOf` (0x70a08231) function - pub fn balance_of( - &self, - owner: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([112, 160, 130, 49], owner) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getApproved` (0x081812fc) function - pub fn get_approved( - &self, - token_id: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::ethers::core::types::Address, - > { - self.0 - .method_hash([8, 24, 18, 252], token_id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `isApprovedForAll` (0xe985e9c5) function - pub fn is_approved_for_all( - &self, - owner: ::ethers::core::types::Address, - operator: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([233, 133, 233, 197], (owner, operator)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `ownerOf` (0x6352211e) function - pub fn owner_of( - &self, - token_id: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::ethers::core::types::Address, - > { - self.0 - .method_hash([99, 82, 33, 30], token_id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `safeTransferFrom` (0x42842e0e) function - pub fn safe_transfer_from( - &self, - from: ::ethers::core::types::Address, - to: ::ethers::core::types::Address, - token_id: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([66, 132, 46, 14], (from, to, token_id)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `safeTransferFrom` (0xb88d4fde) function - pub fn safe_transfer_from_with_from_and_to_and_data( - &self, - from: ::ethers::core::types::Address, - to: ::ethers::core::types::Address, - token_id: ::ethers::core::types::U256, - data: ::ethers::core::types::Bytes, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([184, 141, 79, 222], (from, to, token_id, data)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `setApprovalForAll` (0xa22cb465) function - pub fn set_approval_for_all( - &self, - operator: ::ethers::core::types::Address, - approved: bool, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([162, 44, 180, 101], (operator, approved)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `supportsInterface` (0x01ffc9a7) function - pub fn supports_interface( - &self, - interface_id: [u8; 4], - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([1, 255, 201, 167], interface_id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `transferFrom` (0x23b872dd) function - pub fn transfer_from( - &self, - from: ::ethers::core::types::Address, - to: ::ethers::core::types::Address, - token_id: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([35, 184, 114, 221], (from, to, token_id)) - .expect("method not found (this should never happen)") - } - ///Gets the contract's `Approval` event - pub fn approval_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - ApprovalFilter, - > { - self.0.event() - } - ///Gets the contract's `ApprovalForAll` event - pub fn approval_for_all_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - ApprovalForAllFilter, - > { - self.0.event() - } - ///Gets the contract's `Transfer` event - pub fn transfer_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - TransferFilter, - > { - self.0.event() - } - /// Returns an `Event` builder for all the events of this contract. - pub fn events( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, IERC721Events> { - self.0.event_with_filter(::core::default::Default::default()) - } - } - impl From<::ethers::contract::Contract> - for IERC721 { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "Approval", abi = "Approval(address,address,uint256)")] - pub struct ApprovalFilter { - #[ethevent(indexed)] - pub owner: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub approved: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub token_id: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "ApprovalForAll", abi = "ApprovalForAll(address,address,bool)")] - pub struct ApprovalForAllFilter { - #[ethevent(indexed)] - pub owner: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub operator: ::ethers::core::types::Address, - pub approved: bool, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "Transfer", abi = "Transfer(address,address,uint256)")] - pub struct TransferFilter { - #[ethevent(indexed)] - pub from: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub to: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub token_id: ::ethers::core::types::U256, - } - ///Container type for all of the contract's events - #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] - pub enum IERC721Events { - ApprovalFilter(ApprovalFilter), - ApprovalForAllFilter(ApprovalForAllFilter), - TransferFilter(TransferFilter), - } - impl ::ethers::contract::EthLogDecode for IERC721Events { - fn decode_log( - log: &::ethers::core::abi::RawLog, - ) -> ::core::result::Result { - if let Ok(decoded) = ApprovalFilter::decode_log(log) { - return Ok(IERC721Events::ApprovalFilter(decoded)); - } - if let Ok(decoded) = ApprovalForAllFilter::decode_log(log) { - return Ok(IERC721Events::ApprovalForAllFilter(decoded)); - } - if let Ok(decoded) = TransferFilter::decode_log(log) { - return Ok(IERC721Events::TransferFilter(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData) - } - } - impl ::core::fmt::Display for IERC721Events { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::ApprovalFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::ApprovalForAllFilter(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::TransferFilter(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for IERC721Events { - fn from(value: ApprovalFilter) -> Self { - Self::ApprovalFilter(value) - } - } - impl ::core::convert::From for IERC721Events { - fn from(value: ApprovalForAllFilter) -> Self { - Self::ApprovalForAllFilter(value) - } - } - impl ::core::convert::From for IERC721Events { - fn from(value: TransferFilter) -> Self { - Self::TransferFilter(value) - } - } - ///Container type for all input parameters for the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "approve", abi = "approve(address,uint256)")] - pub struct ApproveCall { - pub approved: ::ethers::core::types::Address, - pub token_id: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "balanceOf", abi = "balanceOf(address)")] - pub struct BalanceOfCall { - pub owner: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `getApproved` function with signature `getApproved(uint256)` and selector `0x081812fc` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "getApproved", abi = "getApproved(uint256)")] - pub struct GetApprovedCall { - pub token_id: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `isApprovedForAll` function with signature `isApprovedForAll(address,address)` and selector `0xe985e9c5` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "isApprovedForAll", abi = "isApprovedForAll(address,address)")] - pub struct IsApprovedForAllCall { - pub owner: ::ethers::core::types::Address, - pub operator: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `ownerOf` function with signature `ownerOf(uint256)` and selector `0x6352211e` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "ownerOf", abi = "ownerOf(uint256)")] - pub struct OwnerOfCall { - pub token_id: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `safeTransferFrom` function with signature `safeTransferFrom(address,address,uint256)` and selector `0x42842e0e` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall( - name = "safeTransferFrom", - abi = "safeTransferFrom(address,address,uint256)" - )] - pub struct SafeTransferFromCall { - pub from: ::ethers::core::types::Address, - pub to: ::ethers::core::types::Address, - pub token_id: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `safeTransferFrom` function with signature `safeTransferFrom(address,address,uint256,bytes)` and selector `0xb88d4fde` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall( - name = "safeTransferFrom", - abi = "safeTransferFrom(address,address,uint256,bytes)" - )] - pub struct SafeTransferFromWithFromAndToAndDataCall { - pub from: ::ethers::core::types::Address, - pub to: ::ethers::core::types::Address, - pub token_id: ::ethers::core::types::U256, - pub data: ::ethers::core::types::Bytes, - } - ///Container type for all input parameters for the `setApprovalForAll` function with signature `setApprovalForAll(address,bool)` and selector `0xa22cb465` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "setApprovalForAll", abi = "setApprovalForAll(address,bool)")] - pub struct SetApprovalForAllCall { - pub operator: ::ethers::core::types::Address, - pub approved: bool, - } - ///Container type for all input parameters for the `supportsInterface` function with signature `supportsInterface(bytes4)` and selector `0x01ffc9a7` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "supportsInterface", abi = "supportsInterface(bytes4)")] - pub struct SupportsInterfaceCall { - pub interface_id: [u8; 4], - } - ///Container type for all input parameters for the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "transferFrom", abi = "transferFrom(address,address,uint256)")] - pub struct TransferFromCall { - pub from: ::ethers::core::types::Address, - pub to: ::ethers::core::types::Address, - pub token_id: ::ethers::core::types::U256, - } - ///Container type for all of the contract's call - #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] - pub enum IERC721Calls { - Approve(ApproveCall), - BalanceOf(BalanceOfCall), - GetApproved(GetApprovedCall), - IsApprovedForAll(IsApprovedForAllCall), - OwnerOf(OwnerOfCall), - SafeTransferFrom(SafeTransferFromCall), - SafeTransferFromWithFromAndToAndData(SafeTransferFromWithFromAndToAndDataCall), - SetApprovalForAll(SetApprovalForAllCall), - SupportsInterface(SupportsInterfaceCall), - TransferFrom(TransferFromCall), - } - impl ::ethers::core::abi::AbiDecode for IERC721Calls { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Approve(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::BalanceOf(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::GetApproved(decoded)); - } - if let Ok(decoded) - = ::decode( - data, - ) { - return Ok(Self::IsApprovedForAll(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::OwnerOf(decoded)); - } - if let Ok(decoded) - = ::decode( - data, - ) { - return Ok(Self::SafeTransferFrom(decoded)); - } - if let Ok(decoded) - = ::decode( - data, - ) { - return Ok(Self::SafeTransferFromWithFromAndToAndData(decoded)); - } - if let Ok(decoded) - = ::decode( - data, - ) { - return Ok(Self::SetApprovalForAll(decoded)); - } - if let Ok(decoded) - = ::decode( - data, - ) { - return Ok(Self::SupportsInterface(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::TransferFrom(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for IERC721Calls { - fn encode(self) -> Vec { - match self { - Self::Approve(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::BalanceOf(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::GetApproved(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::IsApprovedForAll(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::OwnerOf(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::SafeTransferFrom(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::SafeTransferFromWithFromAndToAndData(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::SetApprovalForAll(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::SupportsInterface(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::TransferFrom(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - } - } - } - impl ::core::fmt::Display for IERC721Calls { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::Approve(element) => ::core::fmt::Display::fmt(element, f), - Self::BalanceOf(element) => ::core::fmt::Display::fmt(element, f), - Self::GetApproved(element) => ::core::fmt::Display::fmt(element, f), - Self::IsApprovedForAll(element) => ::core::fmt::Display::fmt(element, f), - Self::OwnerOf(element) => ::core::fmt::Display::fmt(element, f), - Self::SafeTransferFrom(element) => ::core::fmt::Display::fmt(element, f), - Self::SafeTransferFromWithFromAndToAndData(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::SetApprovalForAll(element) => ::core::fmt::Display::fmt(element, f), - Self::SupportsInterface(element) => ::core::fmt::Display::fmt(element, f), - Self::TransferFrom(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for IERC721Calls { - fn from(value: ApproveCall) -> Self { - Self::Approve(value) - } - } - impl ::core::convert::From for IERC721Calls { - fn from(value: BalanceOfCall) -> Self { - Self::BalanceOf(value) - } - } - impl ::core::convert::From for IERC721Calls { - fn from(value: GetApprovedCall) -> Self { - Self::GetApproved(value) - } - } - impl ::core::convert::From for IERC721Calls { - fn from(value: IsApprovedForAllCall) -> Self { - Self::IsApprovedForAll(value) - } - } - impl ::core::convert::From for IERC721Calls { - fn from(value: OwnerOfCall) -> Self { - Self::OwnerOf(value) - } - } - impl ::core::convert::From for IERC721Calls { - fn from(value: SafeTransferFromCall) -> Self { - Self::SafeTransferFrom(value) - } - } - impl ::core::convert::From - for IERC721Calls { - fn from(value: SafeTransferFromWithFromAndToAndDataCall) -> Self { - Self::SafeTransferFromWithFromAndToAndData(value) - } - } - impl ::core::convert::From for IERC721Calls { - fn from(value: SetApprovalForAllCall) -> Self { - Self::SetApprovalForAll(value) - } - } - impl ::core::convert::From for IERC721Calls { - fn from(value: SupportsInterfaceCall) -> Self { - Self::SupportsInterface(value) - } - } - impl ::core::convert::From for IERC721Calls { - fn from(value: TransferFromCall) -> Self { - Self::TransferFrom(value) - } - } - ///Container type for all return fields from the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct BalanceOfReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `getApproved` function with signature `getApproved(uint256)` and selector `0x081812fc` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct GetApprovedReturn(pub ::ethers::core::types::Address); - ///Container type for all return fields from the `isApprovedForAll` function with signature `isApprovedForAll(address,address)` and selector `0xe985e9c5` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct IsApprovedForAllReturn(pub bool); - ///Container type for all return fields from the `ownerOf` function with signature `ownerOf(uint256)` and selector `0x6352211e` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct OwnerOfReturn(pub ::ethers::core::types::Address); - ///Container type for all return fields from the `supportsInterface` function with signature `supportsInterface(bytes4)` and selector `0x01ffc9a7` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct SupportsInterfaceReturn(pub bool); -} diff --git a/crates/bindings/src/ierc721_enumerable.rs b/crates/bindings/src/ierc721_enumerable.rs deleted file mode 100644 index 7e321823..00000000 --- a/crates/bindings/src/ierc721_enumerable.rs +++ /dev/null @@ -1,872 +0,0 @@ -pub use ierc721_enumerable::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types, -)] -pub mod ierc721_enumerable { - #[rustfmt::skip] - const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"_approved\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\",\"components\":[],\"indexed\":true}],\"type\":\"event\",\"name\":\"Approval\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"_operator\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"bool\",\"name\":\"_approved\",\"type\":\"bool\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"ApprovalForAll\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\",\"components\":[],\"indexed\":true}],\"type\":\"event\",\"name\":\"Transfer\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_approved\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"approve\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"_operator\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"safeTransferFrom\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\",\"components\":[]}],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"safeTransferFrom\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_operator\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"bool\",\"name\":\"_approved\",\"type\":\"bool\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"setApprovalForAll\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceID\",\"type\":\"bytes4\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_index\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"tokenByIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"_index\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"tokenOfOwnerByIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"transferFrom\",\"outputs\":[]}]"; - ///The parsed JSON ABI of the contract. - pub static IERC721ENUMERABLE_ABI: ::ethers::contract::Lazy< - ::ethers::core::abi::Abi, - > = ::ethers::contract::Lazy::new(|| { - ::ethers::core::utils::__serde_json::from_str(__ABI) - .expect("ABI is always valid") - }); - pub struct IERC721Enumerable(::ethers::contract::Contract); - impl ::core::clone::Clone for IERC721Enumerable { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for IERC721Enumerable { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for IERC721Enumerable { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for IERC721Enumerable { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(stringify!(IERC721Enumerable)).field(&self.address()).finish() - } - } - impl IERC721Enumerable { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self( - ::ethers::contract::Contract::new( - address.into(), - IERC721ENUMERABLE_ABI.clone(), - client, - ), - ) - } - ///Calls the contract's `approve` (0x095ea7b3) function - pub fn approve( - &self, - approved: ::ethers::core::types::Address, - token_id: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([9, 94, 167, 179], (approved, token_id)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `balanceOf` (0x70a08231) function - pub fn balance_of( - &self, - owner: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([112, 160, 130, 49], owner) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getApproved` (0x081812fc) function - pub fn get_approved( - &self, - token_id: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::ethers::core::types::Address, - > { - self.0 - .method_hash([8, 24, 18, 252], token_id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `isApprovedForAll` (0xe985e9c5) function - pub fn is_approved_for_all( - &self, - owner: ::ethers::core::types::Address, - operator: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([233, 133, 233, 197], (owner, operator)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `ownerOf` (0x6352211e) function - pub fn owner_of( - &self, - token_id: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::ethers::core::types::Address, - > { - self.0 - .method_hash([99, 82, 33, 30], token_id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `safeTransferFrom` (0x42842e0e) function - pub fn safe_transfer_from( - &self, - from: ::ethers::core::types::Address, - to: ::ethers::core::types::Address, - token_id: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([66, 132, 46, 14], (from, to, token_id)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `safeTransferFrom` (0xb88d4fde) function - pub fn safe_transfer_from_with_from_and_to_and_data( - &self, - from: ::ethers::core::types::Address, - to: ::ethers::core::types::Address, - token_id: ::ethers::core::types::U256, - data: ::ethers::core::types::Bytes, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([184, 141, 79, 222], (from, to, token_id, data)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `setApprovalForAll` (0xa22cb465) function - pub fn set_approval_for_all( - &self, - operator: ::ethers::core::types::Address, - approved: bool, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([162, 44, 180, 101], (operator, approved)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `supportsInterface` (0x01ffc9a7) function - pub fn supports_interface( - &self, - interface_id: [u8; 4], - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([1, 255, 201, 167], interface_id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `tokenByIndex` (0x4f6ccce7) function - pub fn token_by_index( - &self, - index: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([79, 108, 204, 231], index) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `tokenOfOwnerByIndex` (0x2f745c59) function - pub fn token_of_owner_by_index( - &self, - owner: ::ethers::core::types::Address, - index: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([47, 116, 92, 89], (owner, index)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `totalSupply` (0x18160ddd) function - pub fn total_supply( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([24, 22, 13, 221], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `transferFrom` (0x23b872dd) function - pub fn transfer_from( - &self, - from: ::ethers::core::types::Address, - to: ::ethers::core::types::Address, - token_id: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([35, 184, 114, 221], (from, to, token_id)) - .expect("method not found (this should never happen)") - } - ///Gets the contract's `Approval` event - pub fn approval_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - ApprovalFilter, - > { - self.0.event() - } - ///Gets the contract's `ApprovalForAll` event - pub fn approval_for_all_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - ApprovalForAllFilter, - > { - self.0.event() - } - ///Gets the contract's `Transfer` event - pub fn transfer_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - TransferFilter, - > { - self.0.event() - } - /// Returns an `Event` builder for all the events of this contract. - pub fn events( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - IERC721EnumerableEvents, - > { - self.0.event_with_filter(::core::default::Default::default()) - } - } - impl From<::ethers::contract::Contract> - for IERC721Enumerable { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "Approval", abi = "Approval(address,address,uint256)")] - pub struct ApprovalFilter { - #[ethevent(indexed)] - pub owner: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub approved: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub token_id: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "ApprovalForAll", abi = "ApprovalForAll(address,address,bool)")] - pub struct ApprovalForAllFilter { - #[ethevent(indexed)] - pub owner: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub operator: ::ethers::core::types::Address, - pub approved: bool, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "Transfer", abi = "Transfer(address,address,uint256)")] - pub struct TransferFilter { - #[ethevent(indexed)] - pub from: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub to: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub token_id: ::ethers::core::types::U256, - } - ///Container type for all of the contract's events - #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] - pub enum IERC721EnumerableEvents { - ApprovalFilter(ApprovalFilter), - ApprovalForAllFilter(ApprovalForAllFilter), - TransferFilter(TransferFilter), - } - impl ::ethers::contract::EthLogDecode for IERC721EnumerableEvents { - fn decode_log( - log: &::ethers::core::abi::RawLog, - ) -> ::core::result::Result { - if let Ok(decoded) = ApprovalFilter::decode_log(log) { - return Ok(IERC721EnumerableEvents::ApprovalFilter(decoded)); - } - if let Ok(decoded) = ApprovalForAllFilter::decode_log(log) { - return Ok(IERC721EnumerableEvents::ApprovalForAllFilter(decoded)); - } - if let Ok(decoded) = TransferFilter::decode_log(log) { - return Ok(IERC721EnumerableEvents::TransferFilter(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData) - } - } - impl ::core::fmt::Display for IERC721EnumerableEvents { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::ApprovalFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::ApprovalForAllFilter(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::TransferFilter(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for IERC721EnumerableEvents { - fn from(value: ApprovalFilter) -> Self { - Self::ApprovalFilter(value) - } - } - impl ::core::convert::From for IERC721EnumerableEvents { - fn from(value: ApprovalForAllFilter) -> Self { - Self::ApprovalForAllFilter(value) - } - } - impl ::core::convert::From for IERC721EnumerableEvents { - fn from(value: TransferFilter) -> Self { - Self::TransferFilter(value) - } - } - ///Container type for all input parameters for the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "approve", abi = "approve(address,uint256)")] - pub struct ApproveCall { - pub approved: ::ethers::core::types::Address, - pub token_id: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "balanceOf", abi = "balanceOf(address)")] - pub struct BalanceOfCall { - pub owner: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `getApproved` function with signature `getApproved(uint256)` and selector `0x081812fc` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "getApproved", abi = "getApproved(uint256)")] - pub struct GetApprovedCall { - pub token_id: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `isApprovedForAll` function with signature `isApprovedForAll(address,address)` and selector `0xe985e9c5` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "isApprovedForAll", abi = "isApprovedForAll(address,address)")] - pub struct IsApprovedForAllCall { - pub owner: ::ethers::core::types::Address, - pub operator: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `ownerOf` function with signature `ownerOf(uint256)` and selector `0x6352211e` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "ownerOf", abi = "ownerOf(uint256)")] - pub struct OwnerOfCall { - pub token_id: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `safeTransferFrom` function with signature `safeTransferFrom(address,address,uint256)` and selector `0x42842e0e` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall( - name = "safeTransferFrom", - abi = "safeTransferFrom(address,address,uint256)" - )] - pub struct SafeTransferFromCall { - pub from: ::ethers::core::types::Address, - pub to: ::ethers::core::types::Address, - pub token_id: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `safeTransferFrom` function with signature `safeTransferFrom(address,address,uint256,bytes)` and selector `0xb88d4fde` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall( - name = "safeTransferFrom", - abi = "safeTransferFrom(address,address,uint256,bytes)" - )] - pub struct SafeTransferFromWithFromAndToAndDataCall { - pub from: ::ethers::core::types::Address, - pub to: ::ethers::core::types::Address, - pub token_id: ::ethers::core::types::U256, - pub data: ::ethers::core::types::Bytes, - } - ///Container type for all input parameters for the `setApprovalForAll` function with signature `setApprovalForAll(address,bool)` and selector `0xa22cb465` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "setApprovalForAll", abi = "setApprovalForAll(address,bool)")] - pub struct SetApprovalForAllCall { - pub operator: ::ethers::core::types::Address, - pub approved: bool, - } - ///Container type for all input parameters for the `supportsInterface` function with signature `supportsInterface(bytes4)` and selector `0x01ffc9a7` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "supportsInterface", abi = "supportsInterface(bytes4)")] - pub struct SupportsInterfaceCall { - pub interface_id: [u8; 4], - } - ///Container type for all input parameters for the `tokenByIndex` function with signature `tokenByIndex(uint256)` and selector `0x4f6ccce7` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "tokenByIndex", abi = "tokenByIndex(uint256)")] - pub struct TokenByIndexCall { - pub index: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `tokenOfOwnerByIndex` function with signature `tokenOfOwnerByIndex(address,uint256)` and selector `0x2f745c59` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall( - name = "tokenOfOwnerByIndex", - abi = "tokenOfOwnerByIndex(address,uint256)" - )] - pub struct TokenOfOwnerByIndexCall { - pub owner: ::ethers::core::types::Address, - pub index: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "totalSupply", abi = "totalSupply()")] - pub struct TotalSupplyCall; - ///Container type for all input parameters for the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "transferFrom", abi = "transferFrom(address,address,uint256)")] - pub struct TransferFromCall { - pub from: ::ethers::core::types::Address, - pub to: ::ethers::core::types::Address, - pub token_id: ::ethers::core::types::U256, - } - ///Container type for all of the contract's call - #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] - pub enum IERC721EnumerableCalls { - Approve(ApproveCall), - BalanceOf(BalanceOfCall), - GetApproved(GetApprovedCall), - IsApprovedForAll(IsApprovedForAllCall), - OwnerOf(OwnerOfCall), - SafeTransferFrom(SafeTransferFromCall), - SafeTransferFromWithFromAndToAndData(SafeTransferFromWithFromAndToAndDataCall), - SetApprovalForAll(SetApprovalForAllCall), - SupportsInterface(SupportsInterfaceCall), - TokenByIndex(TokenByIndexCall), - TokenOfOwnerByIndex(TokenOfOwnerByIndexCall), - TotalSupply(TotalSupplyCall), - TransferFrom(TransferFromCall), - } - impl ::ethers::core::abi::AbiDecode for IERC721EnumerableCalls { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Approve(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::BalanceOf(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::GetApproved(decoded)); - } - if let Ok(decoded) - = ::decode( - data, - ) { - return Ok(Self::IsApprovedForAll(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::OwnerOf(decoded)); - } - if let Ok(decoded) - = ::decode( - data, - ) { - return Ok(Self::SafeTransferFrom(decoded)); - } - if let Ok(decoded) - = ::decode( - data, - ) { - return Ok(Self::SafeTransferFromWithFromAndToAndData(decoded)); - } - if let Ok(decoded) - = ::decode( - data, - ) { - return Ok(Self::SetApprovalForAll(decoded)); - } - if let Ok(decoded) - = ::decode( - data, - ) { - return Ok(Self::SupportsInterface(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::TokenByIndex(decoded)); - } - if let Ok(decoded) - = ::decode( - data, - ) { - return Ok(Self::TokenOfOwnerByIndex(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::TotalSupply(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::TransferFrom(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for IERC721EnumerableCalls { - fn encode(self) -> Vec { - match self { - Self::Approve(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::BalanceOf(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::GetApproved(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::IsApprovedForAll(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::OwnerOf(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::SafeTransferFrom(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::SafeTransferFromWithFromAndToAndData(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::SetApprovalForAll(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::SupportsInterface(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::TokenByIndex(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::TokenOfOwnerByIndex(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::TotalSupply(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::TransferFrom(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - } - } - } - impl ::core::fmt::Display for IERC721EnumerableCalls { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::Approve(element) => ::core::fmt::Display::fmt(element, f), - Self::BalanceOf(element) => ::core::fmt::Display::fmt(element, f), - Self::GetApproved(element) => ::core::fmt::Display::fmt(element, f), - Self::IsApprovedForAll(element) => ::core::fmt::Display::fmt(element, f), - Self::OwnerOf(element) => ::core::fmt::Display::fmt(element, f), - Self::SafeTransferFrom(element) => ::core::fmt::Display::fmt(element, f), - Self::SafeTransferFromWithFromAndToAndData(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::SetApprovalForAll(element) => ::core::fmt::Display::fmt(element, f), - Self::SupportsInterface(element) => ::core::fmt::Display::fmt(element, f), - Self::TokenByIndex(element) => ::core::fmt::Display::fmt(element, f), - Self::TokenOfOwnerByIndex(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::TotalSupply(element) => ::core::fmt::Display::fmt(element, f), - Self::TransferFrom(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for IERC721EnumerableCalls { - fn from(value: ApproveCall) -> Self { - Self::Approve(value) - } - } - impl ::core::convert::From for IERC721EnumerableCalls { - fn from(value: BalanceOfCall) -> Self { - Self::BalanceOf(value) - } - } - impl ::core::convert::From for IERC721EnumerableCalls { - fn from(value: GetApprovedCall) -> Self { - Self::GetApproved(value) - } - } - impl ::core::convert::From for IERC721EnumerableCalls { - fn from(value: IsApprovedForAllCall) -> Self { - Self::IsApprovedForAll(value) - } - } - impl ::core::convert::From for IERC721EnumerableCalls { - fn from(value: OwnerOfCall) -> Self { - Self::OwnerOf(value) - } - } - impl ::core::convert::From for IERC721EnumerableCalls { - fn from(value: SafeTransferFromCall) -> Self { - Self::SafeTransferFrom(value) - } - } - impl ::core::convert::From - for IERC721EnumerableCalls { - fn from(value: SafeTransferFromWithFromAndToAndDataCall) -> Self { - Self::SafeTransferFromWithFromAndToAndData(value) - } - } - impl ::core::convert::From for IERC721EnumerableCalls { - fn from(value: SetApprovalForAllCall) -> Self { - Self::SetApprovalForAll(value) - } - } - impl ::core::convert::From for IERC721EnumerableCalls { - fn from(value: SupportsInterfaceCall) -> Self { - Self::SupportsInterface(value) - } - } - impl ::core::convert::From for IERC721EnumerableCalls { - fn from(value: TokenByIndexCall) -> Self { - Self::TokenByIndex(value) - } - } - impl ::core::convert::From for IERC721EnumerableCalls { - fn from(value: TokenOfOwnerByIndexCall) -> Self { - Self::TokenOfOwnerByIndex(value) - } - } - impl ::core::convert::From for IERC721EnumerableCalls { - fn from(value: TotalSupplyCall) -> Self { - Self::TotalSupply(value) - } - } - impl ::core::convert::From for IERC721EnumerableCalls { - fn from(value: TransferFromCall) -> Self { - Self::TransferFrom(value) - } - } - ///Container type for all return fields from the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct BalanceOfReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `getApproved` function with signature `getApproved(uint256)` and selector `0x081812fc` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct GetApprovedReturn(pub ::ethers::core::types::Address); - ///Container type for all return fields from the `isApprovedForAll` function with signature `isApprovedForAll(address,address)` and selector `0xe985e9c5` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct IsApprovedForAllReturn(pub bool); - ///Container type for all return fields from the `ownerOf` function with signature `ownerOf(uint256)` and selector `0x6352211e` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct OwnerOfReturn(pub ::ethers::core::types::Address); - ///Container type for all return fields from the `supportsInterface` function with signature `supportsInterface(bytes4)` and selector `0x01ffc9a7` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct SupportsInterfaceReturn(pub bool); - ///Container type for all return fields from the `tokenByIndex` function with signature `tokenByIndex(uint256)` and selector `0x4f6ccce7` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct TokenByIndexReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `tokenOfOwnerByIndex` function with signature `tokenOfOwnerByIndex(address,uint256)` and selector `0x2f745c59` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct TokenOfOwnerByIndexReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct TotalSupplyReturn(pub ::ethers::core::types::U256); -} diff --git a/crates/bindings/src/ierc721_metadata.rs b/crates/bindings/src/ierc721_metadata.rs deleted file mode 100644 index f3819176..00000000 --- a/crates/bindings/src/ierc721_metadata.rs +++ /dev/null @@ -1,856 +0,0 @@ -pub use ierc721_metadata::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types, -)] -pub mod ierc721_metadata { - #[rustfmt::skip] - const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"_approved\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\",\"components\":[],\"indexed\":true}],\"type\":\"event\",\"name\":\"Approval\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"_operator\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"bool\",\"name\":\"_approved\",\"type\":\"bool\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"ApprovalForAll\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\",\"components\":[],\"indexed\":true}],\"type\":\"event\",\"name\":\"Transfer\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_approved\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"approve\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"_operator\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"safeTransferFrom\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\",\"components\":[]}],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"safeTransferFrom\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_operator\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"bool\",\"name\":\"_approved\",\"type\":\"bool\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"setApprovalForAll\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceID\",\"type\":\"bytes4\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"_symbol\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"transferFrom\",\"outputs\":[]}]"; - ///The parsed JSON ABI of the contract. - pub static IERC721METADATA_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| - ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); - pub struct IERC721Metadata(::ethers::contract::Contract); - impl ::core::clone::Clone for IERC721Metadata { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for IERC721Metadata { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for IERC721Metadata { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for IERC721Metadata { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(stringify!(IERC721Metadata)).field(&self.address()).finish() - } - } - impl IERC721Metadata { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self( - ::ethers::contract::Contract::new( - address.into(), - IERC721METADATA_ABI.clone(), - client, - ), - ) - } - ///Calls the contract's `approve` (0x095ea7b3) function - pub fn approve( - &self, - approved: ::ethers::core::types::Address, - token_id: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([9, 94, 167, 179], (approved, token_id)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `balanceOf` (0x70a08231) function - pub fn balance_of( - &self, - owner: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([112, 160, 130, 49], owner) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getApproved` (0x081812fc) function - pub fn get_approved( - &self, - token_id: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::ethers::core::types::Address, - > { - self.0 - .method_hash([8, 24, 18, 252], token_id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `isApprovedForAll` (0xe985e9c5) function - pub fn is_approved_for_all( - &self, - owner: ::ethers::core::types::Address, - operator: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([233, 133, 233, 197], (owner, operator)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `name` (0x06fdde03) function - pub fn name( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([6, 253, 222, 3], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `ownerOf` (0x6352211e) function - pub fn owner_of( - &self, - token_id: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::ethers::core::types::Address, - > { - self.0 - .method_hash([99, 82, 33, 30], token_id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `safeTransferFrom` (0x42842e0e) function - pub fn safe_transfer_from( - &self, - from: ::ethers::core::types::Address, - to: ::ethers::core::types::Address, - token_id: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([66, 132, 46, 14], (from, to, token_id)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `safeTransferFrom` (0xb88d4fde) function - pub fn safe_transfer_from_with_from_and_to_and_data( - &self, - from: ::ethers::core::types::Address, - to: ::ethers::core::types::Address, - token_id: ::ethers::core::types::U256, - data: ::ethers::core::types::Bytes, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([184, 141, 79, 222], (from, to, token_id, data)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `setApprovalForAll` (0xa22cb465) function - pub fn set_approval_for_all( - &self, - operator: ::ethers::core::types::Address, - approved: bool, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([162, 44, 180, 101], (operator, approved)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `supportsInterface` (0x01ffc9a7) function - pub fn supports_interface( - &self, - interface_id: [u8; 4], - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([1, 255, 201, 167], interface_id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `symbol` (0x95d89b41) function - pub fn symbol( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([149, 216, 155, 65], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `tokenURI` (0xc87b56dd) function - pub fn token_uri( - &self, - token_id: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([200, 123, 86, 221], token_id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `transferFrom` (0x23b872dd) function - pub fn transfer_from( - &self, - from: ::ethers::core::types::Address, - to: ::ethers::core::types::Address, - token_id: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([35, 184, 114, 221], (from, to, token_id)) - .expect("method not found (this should never happen)") - } - ///Gets the contract's `Approval` event - pub fn approval_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - ApprovalFilter, - > { - self.0.event() - } - ///Gets the contract's `ApprovalForAll` event - pub fn approval_for_all_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - ApprovalForAllFilter, - > { - self.0.event() - } - ///Gets the contract's `Transfer` event - pub fn transfer_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - TransferFilter, - > { - self.0.event() - } - /// Returns an `Event` builder for all the events of this contract. - pub fn events( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - IERC721MetadataEvents, - > { - self.0.event_with_filter(::core::default::Default::default()) - } - } - impl From<::ethers::contract::Contract> - for IERC721Metadata { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "Approval", abi = "Approval(address,address,uint256)")] - pub struct ApprovalFilter { - #[ethevent(indexed)] - pub owner: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub approved: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub token_id: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "ApprovalForAll", abi = "ApprovalForAll(address,address,bool)")] - pub struct ApprovalForAllFilter { - #[ethevent(indexed)] - pub owner: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub operator: ::ethers::core::types::Address, - pub approved: bool, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "Transfer", abi = "Transfer(address,address,uint256)")] - pub struct TransferFilter { - #[ethevent(indexed)] - pub from: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub to: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub token_id: ::ethers::core::types::U256, - } - ///Container type for all of the contract's events - #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] - pub enum IERC721MetadataEvents { - ApprovalFilter(ApprovalFilter), - ApprovalForAllFilter(ApprovalForAllFilter), - TransferFilter(TransferFilter), - } - impl ::ethers::contract::EthLogDecode for IERC721MetadataEvents { - fn decode_log( - log: &::ethers::core::abi::RawLog, - ) -> ::core::result::Result { - if let Ok(decoded) = ApprovalFilter::decode_log(log) { - return Ok(IERC721MetadataEvents::ApprovalFilter(decoded)); - } - if let Ok(decoded) = ApprovalForAllFilter::decode_log(log) { - return Ok(IERC721MetadataEvents::ApprovalForAllFilter(decoded)); - } - if let Ok(decoded) = TransferFilter::decode_log(log) { - return Ok(IERC721MetadataEvents::TransferFilter(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData) - } - } - impl ::core::fmt::Display for IERC721MetadataEvents { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::ApprovalFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::ApprovalForAllFilter(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::TransferFilter(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for IERC721MetadataEvents { - fn from(value: ApprovalFilter) -> Self { - Self::ApprovalFilter(value) - } - } - impl ::core::convert::From for IERC721MetadataEvents { - fn from(value: ApprovalForAllFilter) -> Self { - Self::ApprovalForAllFilter(value) - } - } - impl ::core::convert::From for IERC721MetadataEvents { - fn from(value: TransferFilter) -> Self { - Self::TransferFilter(value) - } - } - ///Container type for all input parameters for the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "approve", abi = "approve(address,uint256)")] - pub struct ApproveCall { - pub approved: ::ethers::core::types::Address, - pub token_id: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "balanceOf", abi = "balanceOf(address)")] - pub struct BalanceOfCall { - pub owner: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `getApproved` function with signature `getApproved(uint256)` and selector `0x081812fc` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "getApproved", abi = "getApproved(uint256)")] - pub struct GetApprovedCall { - pub token_id: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `isApprovedForAll` function with signature `isApprovedForAll(address,address)` and selector `0xe985e9c5` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "isApprovedForAll", abi = "isApprovedForAll(address,address)")] - pub struct IsApprovedForAllCall { - pub owner: ::ethers::core::types::Address, - pub operator: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `name` function with signature `name()` and selector `0x06fdde03` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "name", abi = "name()")] - pub struct NameCall; - ///Container type for all input parameters for the `ownerOf` function with signature `ownerOf(uint256)` and selector `0x6352211e` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "ownerOf", abi = "ownerOf(uint256)")] - pub struct OwnerOfCall { - pub token_id: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `safeTransferFrom` function with signature `safeTransferFrom(address,address,uint256)` and selector `0x42842e0e` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall( - name = "safeTransferFrom", - abi = "safeTransferFrom(address,address,uint256)" - )] - pub struct SafeTransferFromCall { - pub from: ::ethers::core::types::Address, - pub to: ::ethers::core::types::Address, - pub token_id: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `safeTransferFrom` function with signature `safeTransferFrom(address,address,uint256,bytes)` and selector `0xb88d4fde` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall( - name = "safeTransferFrom", - abi = "safeTransferFrom(address,address,uint256,bytes)" - )] - pub struct SafeTransferFromWithFromAndToAndDataCall { - pub from: ::ethers::core::types::Address, - pub to: ::ethers::core::types::Address, - pub token_id: ::ethers::core::types::U256, - pub data: ::ethers::core::types::Bytes, - } - ///Container type for all input parameters for the `setApprovalForAll` function with signature `setApprovalForAll(address,bool)` and selector `0xa22cb465` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "setApprovalForAll", abi = "setApprovalForAll(address,bool)")] - pub struct SetApprovalForAllCall { - pub operator: ::ethers::core::types::Address, - pub approved: bool, - } - ///Container type for all input parameters for the `supportsInterface` function with signature `supportsInterface(bytes4)` and selector `0x01ffc9a7` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "supportsInterface", abi = "supportsInterface(bytes4)")] - pub struct SupportsInterfaceCall { - pub interface_id: [u8; 4], - } - ///Container type for all input parameters for the `symbol` function with signature `symbol()` and selector `0x95d89b41` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "symbol", abi = "symbol()")] - pub struct SymbolCall; - ///Container type for all input parameters for the `tokenURI` function with signature `tokenURI(uint256)` and selector `0xc87b56dd` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "tokenURI", abi = "tokenURI(uint256)")] - pub struct TokenURICall { - pub token_id: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "transferFrom", abi = "transferFrom(address,address,uint256)")] - pub struct TransferFromCall { - pub from: ::ethers::core::types::Address, - pub to: ::ethers::core::types::Address, - pub token_id: ::ethers::core::types::U256, - } - ///Container type for all of the contract's call - #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] - pub enum IERC721MetadataCalls { - Approve(ApproveCall), - BalanceOf(BalanceOfCall), - GetApproved(GetApprovedCall), - IsApprovedForAll(IsApprovedForAllCall), - Name(NameCall), - OwnerOf(OwnerOfCall), - SafeTransferFrom(SafeTransferFromCall), - SafeTransferFromWithFromAndToAndData(SafeTransferFromWithFromAndToAndDataCall), - SetApprovalForAll(SetApprovalForAllCall), - SupportsInterface(SupportsInterfaceCall), - Symbol(SymbolCall), - TokenURI(TokenURICall), - TransferFrom(TransferFromCall), - } - impl ::ethers::core::abi::AbiDecode for IERC721MetadataCalls { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Approve(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::BalanceOf(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::GetApproved(decoded)); - } - if let Ok(decoded) - = ::decode( - data, - ) { - return Ok(Self::IsApprovedForAll(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Name(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::OwnerOf(decoded)); - } - if let Ok(decoded) - = ::decode( - data, - ) { - return Ok(Self::SafeTransferFrom(decoded)); - } - if let Ok(decoded) - = ::decode( - data, - ) { - return Ok(Self::SafeTransferFromWithFromAndToAndData(decoded)); - } - if let Ok(decoded) - = ::decode( - data, - ) { - return Ok(Self::SetApprovalForAll(decoded)); - } - if let Ok(decoded) - = ::decode( - data, - ) { - return Ok(Self::SupportsInterface(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Symbol(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::TokenURI(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::TransferFrom(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for IERC721MetadataCalls { - fn encode(self) -> Vec { - match self { - Self::Approve(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::BalanceOf(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::GetApproved(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::IsApprovedForAll(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Name(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::OwnerOf(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::SafeTransferFrom(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::SafeTransferFromWithFromAndToAndData(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::SetApprovalForAll(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::SupportsInterface(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Symbol(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::TokenURI(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::TransferFrom(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - } - } - } - impl ::core::fmt::Display for IERC721MetadataCalls { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::Approve(element) => ::core::fmt::Display::fmt(element, f), - Self::BalanceOf(element) => ::core::fmt::Display::fmt(element, f), - Self::GetApproved(element) => ::core::fmt::Display::fmt(element, f), - Self::IsApprovedForAll(element) => ::core::fmt::Display::fmt(element, f), - Self::Name(element) => ::core::fmt::Display::fmt(element, f), - Self::OwnerOf(element) => ::core::fmt::Display::fmt(element, f), - Self::SafeTransferFrom(element) => ::core::fmt::Display::fmt(element, f), - Self::SafeTransferFromWithFromAndToAndData(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::SetApprovalForAll(element) => ::core::fmt::Display::fmt(element, f), - Self::SupportsInterface(element) => ::core::fmt::Display::fmt(element, f), - Self::Symbol(element) => ::core::fmt::Display::fmt(element, f), - Self::TokenURI(element) => ::core::fmt::Display::fmt(element, f), - Self::TransferFrom(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for IERC721MetadataCalls { - fn from(value: ApproveCall) -> Self { - Self::Approve(value) - } - } - impl ::core::convert::From for IERC721MetadataCalls { - fn from(value: BalanceOfCall) -> Self { - Self::BalanceOf(value) - } - } - impl ::core::convert::From for IERC721MetadataCalls { - fn from(value: GetApprovedCall) -> Self { - Self::GetApproved(value) - } - } - impl ::core::convert::From for IERC721MetadataCalls { - fn from(value: IsApprovedForAllCall) -> Self { - Self::IsApprovedForAll(value) - } - } - impl ::core::convert::From for IERC721MetadataCalls { - fn from(value: NameCall) -> Self { - Self::Name(value) - } - } - impl ::core::convert::From for IERC721MetadataCalls { - fn from(value: OwnerOfCall) -> Self { - Self::OwnerOf(value) - } - } - impl ::core::convert::From for IERC721MetadataCalls { - fn from(value: SafeTransferFromCall) -> Self { - Self::SafeTransferFrom(value) - } - } - impl ::core::convert::From - for IERC721MetadataCalls { - fn from(value: SafeTransferFromWithFromAndToAndDataCall) -> Self { - Self::SafeTransferFromWithFromAndToAndData(value) - } - } - impl ::core::convert::From for IERC721MetadataCalls { - fn from(value: SetApprovalForAllCall) -> Self { - Self::SetApprovalForAll(value) - } - } - impl ::core::convert::From for IERC721MetadataCalls { - fn from(value: SupportsInterfaceCall) -> Self { - Self::SupportsInterface(value) - } - } - impl ::core::convert::From for IERC721MetadataCalls { - fn from(value: SymbolCall) -> Self { - Self::Symbol(value) - } - } - impl ::core::convert::From for IERC721MetadataCalls { - fn from(value: TokenURICall) -> Self { - Self::TokenURI(value) - } - } - impl ::core::convert::From for IERC721MetadataCalls { - fn from(value: TransferFromCall) -> Self { - Self::TransferFrom(value) - } - } - ///Container type for all return fields from the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct BalanceOfReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `getApproved` function with signature `getApproved(uint256)` and selector `0x081812fc` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct GetApprovedReturn(pub ::ethers::core::types::Address); - ///Container type for all return fields from the `isApprovedForAll` function with signature `isApprovedForAll(address,address)` and selector `0xe985e9c5` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct IsApprovedForAllReturn(pub bool); - ///Container type for all return fields from the `name` function with signature `name()` and selector `0x06fdde03` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct NameReturn { - pub name: ::std::string::String, - } - ///Container type for all return fields from the `ownerOf` function with signature `ownerOf(uint256)` and selector `0x6352211e` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct OwnerOfReturn(pub ::ethers::core::types::Address); - ///Container type for all return fields from the `supportsInterface` function with signature `supportsInterface(bytes4)` and selector `0x01ffc9a7` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct SupportsInterfaceReturn(pub bool); - ///Container type for all return fields from the `symbol` function with signature `symbol()` and selector `0x95d89b41` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct SymbolReturn { - pub symbol: ::std::string::String, - } - ///Container type for all return fields from the `tokenURI` function with signature `tokenURI(uint256)` and selector `0xc87b56dd` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct TokenURIReturn(pub ::std::string::String); -} diff --git a/crates/bindings/src/ierc721_token_receiver.rs b/crates/bindings/src/ierc721_token_receiver.rs deleted file mode 100644 index ff111652..00000000 --- a/crates/bindings/src/ierc721_token_receiver.rs +++ /dev/null @@ -1,113 +0,0 @@ -pub use ierc721_token_receiver::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types, -)] -pub mod ierc721_token_receiver { - #[rustfmt::skip] - const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_operator\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\",\"components\":[]}]}]"; - ///The parsed JSON ABI of the contract. - pub static IERC721TOKENRECEIVER_ABI: ::ethers::contract::Lazy< - ::ethers::core::abi::Abi, - > = ::ethers::contract::Lazy::new(|| { - ::ethers::core::utils::__serde_json::from_str(__ABI) - .expect("ABI is always valid") - }); - pub struct IERC721TokenReceiver(::ethers::contract::Contract); - impl ::core::clone::Clone for IERC721TokenReceiver { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for IERC721TokenReceiver { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for IERC721TokenReceiver { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for IERC721TokenReceiver { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(stringify!(IERC721TokenReceiver)) - .field(&self.address()) - .finish() - } - } - impl IERC721TokenReceiver { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self( - ::ethers::contract::Contract::new( - address.into(), - IERC721TOKENRECEIVER_ABI.clone(), - client, - ), - ) - } - ///Calls the contract's `onERC721Received` (0x150b7a02) function - pub fn on_erc721_received( - &self, - operator: ::ethers::core::types::Address, - from: ::ethers::core::types::Address, - token_id: ::ethers::core::types::U256, - data: ::ethers::core::types::Bytes, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([21, 11, 122, 2], (operator, from, token_id, data)) - .expect("method not found (this should never happen)") - } - } - impl From<::ethers::contract::Contract> - for IERC721TokenReceiver { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - ///Container type for all input parameters for the `onERC721Received` function with signature `onERC721Received(address,address,uint256,bytes)` and selector `0x150b7a02` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall( - name = "onERC721Received", - abi = "onERC721Received(address,address,uint256,bytes)" - )] - pub struct OnERC721ReceivedCall { - pub operator: ::ethers::core::types::Address, - pub from: ::ethers::core::types::Address, - pub token_id: ::ethers::core::types::U256, - pub data: ::ethers::core::types::Bytes, - } - ///Container type for all return fields from the `onERC721Received` function with signature `onERC721Received(address,address,uint256,bytes)` and selector `0x150b7a02` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct OnERC721ReceivedReturn(pub [u8; 4]); -} diff --git a/crates/bindings/src/infinitely_liquid_market.rs b/crates/bindings/src/infinitely_liquid_market.rs index 80a6499d..2441e5d7 100644 --- a/crates/bindings/src/infinitely_liquid_market.rs +++ b/crates/bindings/src/infinitely_liquid_market.rs @@ -208,38 +208,38 @@ pub mod infinitely_liquid_market { 34, 18, 32, - 141, - 39, - 135, - 241, + 183, + 99, + 151, + 58, + 223, + 239, + 2, + 31, + 46, + 216, + 67, + 90, 26, - 152, - 136, - 80, - 118, - 232, - 231, - 16, - 168, - 142, - 11, - 188, - 234, - 121, - 43, - 180, - 145, - 23, - 211, - 233, - 242, - 167, - 100, - 164, + 8, + 215, + 150, + 216, + 200, + 24, + 48, + 241, + 153, + 184, + 176, + 227, + 44, + 185, + 69, 178, - 91, - 46, - 29, + 54, + 60, + 229, 100, 115, 111, @@ -414,38 +414,38 @@ pub mod infinitely_liquid_market { 34, 18, 32, - 141, - 39, - 135, - 241, + 183, + 99, + 151, + 58, + 223, + 239, + 2, + 31, + 46, + 216, + 67, + 90, 26, - 152, - 136, - 80, - 118, - 232, - 231, - 16, - 168, - 142, - 11, - 188, - 234, - 121, - 43, - 180, - 145, - 23, - 211, - 233, - 242, - 167, - 100, - 164, + 8, + 215, + 150, + 216, + 200, + 24, + 48, + 241, + 153, + 184, + 176, + 227, + 44, + 185, + 69, 178, - 91, - 46, - 29, + 54, + 60, + 229, 100, 115, 111, diff --git a/crates/bindings/src/invariant.rs b/crates/bindings/src/invariant.rs new file mode 100644 index 00000000..b3c464e4 --- /dev/null +++ b/crates/bindings/src/invariant.rs @@ -0,0 +1,355 @@ +pub use invariant::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod invariant { + #[rustfmt::skip] + const __ABI: &str = "[{\"inputs\":[],\"type\":\"error\",\"name\":\"OOB\",\"outputs\":[]}]"; + ///The parsed JSON ABI of the contract. + pub static INVARIANT_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| + ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); + #[rustfmt::skip] + const __BYTECODE: &[u8] = &[ + 96, + 86, + 96, + 55, + 96, + 11, + 130, + 130, + 130, + 57, + 128, + 81, + 96, + 0, + 26, + 96, + 115, + 20, + 96, + 42, + 87, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 0, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 48, + 96, + 0, + 82, + 96, + 115, + 129, + 83, + 130, + 129, + 243, + 254, + 115, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 48, + 20, + 96, + 128, + 96, + 64, + 82, + 96, + 0, + 128, + 253, + 254, + 162, + 100, + 105, + 112, + 102, + 115, + 88, + 34, + 18, + 32, + 189, + 239, + 105, + 23, + 165, + 88, + 99, + 249, + 36, + 241, + 163, + 47, + 142, + 141, + 233, + 79, + 215, + 40, + 34, + 141, + 184, + 194, + 30, + 78, + 181, + 188, + 126, + 18, + 124, + 162, + 45, + 139, + 100, + 115, + 111, + 108, + 99, + 67, + 0, + 8, + 13, + 0, + 51, + ]; + ///The bytecode of the contract. + pub static INVARIANT_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __BYTECODE, + ); + #[rustfmt::skip] + const __DEPLOYED_BYTECODE: &[u8] = &[ + 115, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 48, + 20, + 96, + 128, + 96, + 64, + 82, + 96, + 0, + 128, + 253, + 254, + 162, + 100, + 105, + 112, + 102, + 115, + 88, + 34, + 18, + 32, + 189, + 239, + 105, + 23, + 165, + 88, + 99, + 249, + 36, + 241, + 163, + 47, + 142, + 141, + 233, + 79, + 215, + 40, + 34, + 141, + 184, + 194, + 30, + 78, + 181, + 188, + 126, + 18, + 124, + 162, + 45, + 139, + 100, + 115, + 111, + 108, + 99, + 67, + 0, + 8, + 13, + 0, + 51, + ]; + ///The deployed bytecode of the contract. + pub static INVARIANT_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __DEPLOYED_BYTECODE, + ); + pub struct Invariant(::ethers::contract::Contract); + impl ::core::clone::Clone for Invariant { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for Invariant { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for Invariant { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for Invariant { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(stringify!(Invariant)).field(&self.address()).finish() + } + } + impl Invariant { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + INVARIANT_ABI.clone(), + client, + ), + ) + } + /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. + /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction + /// + /// Notes: + /// - If there are no constructor arguments, you should pass `()` as the argument. + /// - The default poll duration is 7 seconds. + /// - The default number of confirmations is 1 block. + /// + /// + /// # Example + /// + /// Generate contract bindings with `abigen!` and deploy a new contract instance. + /// + /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. + /// + /// ```ignore + /// # async fn deploy(client: ::std::sync::Arc) { + /// abigen!(Greeter, "../greeter.json"); + /// + /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); + /// let msg = greeter_contract.greet().call().await.unwrap(); + /// # } + /// ``` + pub fn deploy( + client: ::std::sync::Arc, + constructor_args: T, + ) -> ::core::result::Result< + ::ethers::contract::builders::ContractDeployer, + ::ethers::contract::ContractError, + > { + let factory = ::ethers::contract::ContractFactory::new( + INVARIANT_ABI.clone(), + INVARIANT_BYTECODE.clone().into(), + client, + ); + let deployer = factory.deploy(constructor_args)?; + let deployer = ::ethers::contract::ContractDeployer::new(deployer); + Ok(deployer) + } + } + impl From<::ethers::contract::Contract> + for Invariant { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } + ///Custom Error type `OOB` with signature `OOB()` and selector `0xaaf3956f` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "OOB", abi = "OOB()")] + pub struct OOB; +} diff --git a/crates/bindings/src/iweth.rs b/crates/bindings/src/iweth.rs new file mode 100644 index 00000000..a944f3c7 --- /dev/null +++ b/crates/bindings/src/iweth.rs @@ -0,0 +1,155 @@ +pub use iweth::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod iweth { + #[rustfmt::skip] + const __ABI: &str = "[{\"inputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"deposit\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"withdraw\",\"outputs\":[]}]"; + ///The parsed JSON ABI of the contract. + pub static IWETH_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| + ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); + pub struct IWETH(::ethers::contract::Contract); + impl ::core::clone::Clone for IWETH { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for IWETH { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for IWETH { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for IWETH { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(stringify!(IWETH)).field(&self.address()).finish() + } + } + impl IWETH { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + IWETH_ABI.clone(), + client, + ), + ) + } + ///Calls the contract's `deposit` (0xd0e30db0) function + pub fn deposit(&self) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([208, 227, 13, 176], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `withdraw` (0x2e1a7d4d) function + pub fn withdraw( + &self, + wad: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([46, 26, 125, 77], wad) + .expect("method not found (this should never happen)") + } + } + impl From<::ethers::contract::Contract> + for IWETH { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } + ///Container type for all input parameters for the `deposit` function with signature `deposit()` and selector `0xd0e30db0` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "deposit", abi = "deposit()")] + pub struct DepositCall; + ///Container type for all input parameters for the `withdraw` function with signature `withdraw(uint256)` and selector `0x2e1a7d4d` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "withdraw", abi = "withdraw(uint256)")] + pub struct WithdrawCall { + pub wad: ::ethers::core::types::U256, + } + ///Container type for all of the contract's call + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum IWETHCalls { + Deposit(DepositCall), + Withdraw(WithdrawCall), + } + impl ::ethers::core::abi::AbiDecode for IWETHCalls { + fn decode( + data: impl AsRef<[u8]>, + ) -> ::core::result::Result { + let data = data.as_ref(); + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Deposit(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Withdraw(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData.into()) + } + } + impl ::ethers::core::abi::AbiEncode for IWETHCalls { + fn encode(self) -> Vec { + match self { + Self::Deposit(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Withdraw(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + } + } + } + impl ::core::fmt::Display for IWETHCalls { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::Deposit(element) => ::core::fmt::Display::fmt(element, f), + Self::Withdraw(element) => ::core::fmt::Display::fmt(element, f), + } + } + } + impl ::core::convert::From for IWETHCalls { + fn from(value: DepositCall) -> Self { + Self::Deposit(value) + } + } + impl ::core::convert::From for IWETHCalls { + fn from(value: WithdrawCall) -> Self { + Self::Withdraw(value) + } + } +} diff --git a/crates/bindings/src/lib.rs b/crates/bindings/src/lib.rs index 4049b0bc..c4958f59 100644 --- a/crates/bindings/src/lib.rs +++ b/crates/bindings/src/lib.rs @@ -3,24 +3,38 @@ //! This is autogenerated code. //! Do not manually edit these files. //! These files may be overwritten by the codegen system at any time. +pub mod account_lib; pub mod arbiter_token; -pub mod bar; -pub mod bar_erc1155; -pub mod bar_erc721; +pub mod assembly_lib; pub mod context; +pub mod echidna_erc20; pub mod erc20; -pub mod ierc1155; -pub mod ierc165; +pub mod fee_on_transfer_token; +pub mod fixed_point_math_lib; +pub mod fvm_lib; +pub mod gaussian; +pub mod i_portfolio; +pub mod i_portfolio_actions; +pub mod i_portfolio_events; +pub mod i_portfolio_getters; +pub mod i_portfolio_registry; pub mod ierc20; pub mod ierc20_metadata; -pub mod ierc4626; -pub mod ierc721; -pub mod ierc721_enumerable; -pub mod ierc721_metadata; -pub mod ierc721_token_receiver; pub mod infinitely_liquid_market; -pub mod reverting_contract; -pub mod std_invariant; -pub mod std_style; +pub mod invariant; +pub mod iweth; +pub mod mock_erc20; +pub mod objective; +pub mod portfolio_lib; +pub mod portfolio_like; +pub mod portfolio_virtual; +pub mod rmm01_extended_lib; +pub mod rmm01_lib; +pub mod rmm01_portfolio; +pub mod safe_cast_lib; +pub mod safe_transfer_lib; +pub mod shared_types; +pub mod simple_registry; +pub mod units; pub mod weth9; pub mod writer; diff --git a/crates/bindings/src/mock_erc20.rs b/crates/bindings/src/mock_erc20.rs new file mode 100644 index 00000000..7807c0b2 --- /dev/null +++ b/crates/bindings/src/mock_erc20.rs @@ -0,0 +1,8009 @@ +pub use mock_erc20::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod mock_erc20 { + #[rustfmt::skip] + const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\",\"components\":[]},{\"internalType\":\"string\",\"name\":\"_symbol\",\"type\":\"string\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"_decimals\",\"type\":\"uint8\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Approval\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Transfer\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"burn\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"mint\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\",\"components\":[]},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\",\"components\":[]},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"permit\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]}]"; + ///The parsed JSON ABI of the contract. + pub static MOCKERC20_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| + ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); + #[rustfmt::skip] + const __BYTECODE: &[u8] = &[ + 96, + 224, + 96, + 64, + 82, + 52, + 128, + 21, + 98, + 0, + 0, + 17, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 96, + 64, + 81, + 98, + 0, + 15, + 248, + 56, + 3, + 128, + 98, + 0, + 15, + 248, + 131, + 57, + 129, + 1, + 96, + 64, + 129, + 144, + 82, + 98, + 0, + 0, + 52, + 145, + 98, + 0, + 2, + 154, + 86, + 91, + 130, + 130, + 130, + 130, + 96, + 0, + 144, + 128, + 81, + 144, + 96, + 32, + 1, + 144, + 98, + 0, + 0, + 79, + 146, + 145, + 144, + 98, + 0, + 1, + 39, + 86, + 91, + 80, + 129, + 81, + 98, + 0, + 0, + 101, + 144, + 96, + 1, + 144, + 96, + 32, + 133, + 1, + 144, + 98, + 0, + 1, + 39, + 86, + 91, + 80, + 96, + 255, + 129, + 22, + 96, + 128, + 82, + 70, + 96, + 160, + 82, + 98, + 0, + 0, + 123, + 98, + 0, + 0, + 139, + 86, + 91, + 96, + 192, + 82, + 80, + 98, + 0, + 3, + 254, + 148, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 127, + 139, + 115, + 195, + 198, + 155, + 184, + 254, + 61, + 81, + 46, + 204, + 76, + 247, + 89, + 204, + 121, + 35, + 159, + 123, + 23, + 155, + 15, + 250, + 202, + 169, + 167, + 93, + 82, + 43, + 57, + 64, + 15, + 96, + 0, + 96, + 64, + 81, + 98, + 0, + 0, + 191, + 145, + 144, + 98, + 0, + 3, + 91, + 86, + 91, + 96, + 64, + 128, + 81, + 145, + 130, + 144, + 3, + 130, + 32, + 96, + 32, + 131, + 1, + 147, + 144, + 147, + 82, + 129, + 1, + 145, + 144, + 145, + 82, + 127, + 200, + 158, + 253, + 170, + 84, + 192, + 242, + 12, + 122, + 223, + 97, + 40, + 130, + 223, + 9, + 80, + 245, + 169, + 81, + 99, + 126, + 3, + 7, + 205, + 203, + 76, + 103, + 47, + 41, + 139, + 139, + 198, + 96, + 96, + 130, + 1, + 82, + 70, + 96, + 128, + 130, + 1, + 82, + 48, + 96, + 160, + 130, + 1, + 82, + 96, + 192, + 1, + 96, + 64, + 81, + 96, + 32, + 129, + 131, + 3, + 3, + 129, + 82, + 144, + 96, + 64, + 82, + 128, + 81, + 144, + 96, + 32, + 1, + 32, + 144, + 80, + 144, + 86, + 91, + 130, + 128, + 84, + 98, + 0, + 1, + 53, + 144, + 98, + 0, + 3, + 31, + 86, + 91, + 144, + 96, + 0, + 82, + 96, + 32, + 96, + 0, + 32, + 144, + 96, + 31, + 1, + 96, + 32, + 144, + 4, + 129, + 1, + 146, + 130, + 98, + 0, + 1, + 89, + 87, + 96, + 0, + 133, + 85, + 98, + 0, + 1, + 164, + 86, + 91, + 130, + 96, + 31, + 16, + 98, + 0, + 1, + 116, + 87, + 128, + 81, + 96, + 255, + 25, + 22, + 131, + 128, + 1, + 23, + 133, + 85, + 98, + 0, + 1, + 164, + 86, + 91, + 130, + 128, + 1, + 96, + 1, + 1, + 133, + 85, + 130, + 21, + 98, + 0, + 1, + 164, + 87, + 145, + 130, + 1, + 91, + 130, + 129, + 17, + 21, + 98, + 0, + 1, + 164, + 87, + 130, + 81, + 130, + 85, + 145, + 96, + 32, + 1, + 145, + 144, + 96, + 1, + 1, + 144, + 98, + 0, + 1, + 135, + 86, + 91, + 80, + 98, + 0, + 1, + 178, + 146, + 145, + 80, + 98, + 0, + 1, + 182, + 86, + 91, + 80, + 144, + 86, + 91, + 91, + 128, + 130, + 17, + 21, + 98, + 0, + 1, + 178, + 87, + 96, + 0, + 129, + 85, + 96, + 1, + 1, + 98, + 0, + 1, + 183, + 86, + 91, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 65, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 96, + 0, + 130, + 96, + 31, + 131, + 1, + 18, + 98, + 0, + 1, + 245, + 87, + 96, + 0, + 128, + 253, + 91, + 129, + 81, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 128, + 130, + 17, + 21, + 98, + 0, + 2, + 18, + 87, + 98, + 0, + 2, + 18, + 98, + 0, + 1, + 205, + 86, + 91, + 96, + 64, + 81, + 96, + 31, + 131, + 1, + 96, + 31, + 25, + 144, + 129, + 22, + 96, + 63, + 1, + 22, + 129, + 1, + 144, + 130, + 130, + 17, + 129, + 131, + 16, + 23, + 21, + 98, + 0, + 2, + 61, + 87, + 98, + 0, + 2, + 61, + 98, + 0, + 1, + 205, + 86, + 91, + 129, + 96, + 64, + 82, + 131, + 129, + 82, + 96, + 32, + 146, + 80, + 134, + 131, + 133, + 136, + 1, + 1, + 17, + 21, + 98, + 0, + 2, + 90, + 87, + 96, + 0, + 128, + 253, + 91, + 96, + 0, + 145, + 80, + 91, + 131, + 130, + 16, + 21, + 98, + 0, + 2, + 126, + 87, + 133, + 130, + 1, + 131, + 1, + 81, + 129, + 131, + 1, + 132, + 1, + 82, + 144, + 130, + 1, + 144, + 98, + 0, + 2, + 95, + 86, + 91, + 131, + 130, + 17, + 21, + 98, + 0, + 2, + 144, + 87, + 96, + 0, + 131, + 133, + 131, + 1, + 1, + 82, + 91, + 150, + 149, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 96, + 96, + 132, + 134, + 3, + 18, + 21, + 98, + 0, + 2, + 176, + 87, + 96, + 0, + 128, + 253, + 91, + 131, + 81, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 128, + 130, + 17, + 21, + 98, + 0, + 2, + 200, + 87, + 96, + 0, + 128, + 253, + 91, + 98, + 0, + 2, + 214, + 135, + 131, + 136, + 1, + 98, + 0, + 1, + 227, + 86, + 91, + 148, + 80, + 96, + 32, + 134, + 1, + 81, + 145, + 80, + 128, + 130, + 17, + 21, + 98, + 0, + 2, + 237, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 98, + 0, + 2, + 252, + 134, + 130, + 135, + 1, + 98, + 0, + 1, + 227, + 86, + 91, + 146, + 80, + 80, + 96, + 64, + 132, + 1, + 81, + 96, + 255, + 129, + 22, + 129, + 20, + 98, + 0, + 3, + 20, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 145, + 80, + 80, + 146, + 80, + 146, + 80, + 146, + 86, + 91, + 96, + 1, + 129, + 129, + 28, + 144, + 130, + 22, + 128, + 98, + 0, + 3, + 52, + 87, + 96, + 127, + 130, + 22, + 145, + 80, + 91, + 96, + 32, + 130, + 16, + 129, + 3, + 98, + 0, + 3, + 85, + 87, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 34, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 80, + 145, + 144, + 80, + 86, + 91, + 96, + 0, + 128, + 131, + 84, + 129, + 96, + 1, + 130, + 129, + 28, + 145, + 80, + 128, + 131, + 22, + 128, + 98, + 0, + 3, + 120, + 87, + 96, + 127, + 131, + 22, + 146, + 80, + 91, + 96, + 32, + 128, + 132, + 16, + 130, + 3, + 98, + 0, + 3, + 152, + 87, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 134, + 82, + 96, + 34, + 96, + 4, + 82, + 96, + 36, + 134, + 253, + 91, + 129, + 128, + 21, + 98, + 0, + 3, + 175, + 87, + 96, + 1, + 129, + 20, + 98, + 0, + 3, + 193, + 87, + 98, + 0, + 3, + 240, + 86, + 91, + 96, + 255, + 25, + 134, + 22, + 137, + 82, + 132, + 137, + 1, + 150, + 80, + 98, + 0, + 3, + 240, + 86, + 91, + 96, + 0, + 138, + 129, + 82, + 96, + 32, + 144, + 32, + 96, + 0, + 91, + 134, + 129, + 16, + 21, + 98, + 0, + 3, + 232, + 87, + 129, + 84, + 139, + 130, + 1, + 82, + 144, + 133, + 1, + 144, + 131, + 1, + 98, + 0, + 3, + 205, + 86, + 91, + 80, + 80, + 132, + 137, + 1, + 150, + 80, + 91, + 80, + 148, + 152, + 151, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 128, + 81, + 96, + 160, + 81, + 96, + 192, + 81, + 97, + 11, + 202, + 98, + 0, + 4, + 46, + 96, + 0, + 57, + 96, + 0, + 97, + 4, + 111, + 1, + 82, + 96, + 0, + 97, + 4, + 58, + 1, + 82, + 96, + 0, + 97, + 1, + 95, + 1, + 82, + 97, + 11, + 202, + 96, + 0, + 243, + 254, + 96, + 128, + 96, + 64, + 82, + 52, + 128, + 21, + 97, + 0, + 16, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 96, + 4, + 54, + 16, + 97, + 0, + 234, + 87, + 96, + 0, + 53, + 96, + 224, + 28, + 128, + 99, + 112, + 160, + 130, + 49, + 17, + 97, + 0, + 140, + 87, + 128, + 99, + 157, + 194, + 159, + 172, + 17, + 97, + 0, + 102, + 87, + 128, + 99, + 157, + 194, + 159, + 172, + 20, + 97, + 1, + 248, + 87, + 128, + 99, + 169, + 5, + 156, + 187, + 20, + 97, + 2, + 11, + 87, + 128, + 99, + 213, + 5, + 172, + 207, + 20, + 97, + 2, + 30, + 87, + 128, + 99, + 221, + 98, + 237, + 62, + 20, + 97, + 2, + 49, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 112, + 160, + 130, + 49, + 20, + 97, + 1, + 176, + 87, + 128, + 99, + 126, + 206, + 190, + 0, + 20, + 97, + 1, + 208, + 87, + 128, + 99, + 149, + 216, + 155, + 65, + 20, + 97, + 1, + 240, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 35, + 184, + 114, + 221, + 17, + 97, + 0, + 200, + 87, + 128, + 99, + 35, + 184, + 114, + 221, + 20, + 97, + 1, + 71, + 87, + 128, + 99, + 49, + 60, + 229, + 103, + 20, + 97, + 1, + 90, + 87, + 128, + 99, + 54, + 68, + 229, + 21, + 20, + 97, + 1, + 147, + 87, + 128, + 99, + 64, + 193, + 15, + 25, + 20, + 97, + 1, + 155, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 6, + 253, + 222, + 3, + 20, + 97, + 0, + 239, + 87, + 128, + 99, + 9, + 94, + 167, + 179, + 20, + 97, + 1, + 13, + 87, + 128, + 99, + 24, + 22, + 13, + 221, + 20, + 97, + 1, + 48, + 87, + 91, + 96, + 0, + 128, + 253, + 91, + 97, + 0, + 247, + 97, + 2, + 92, + 86, + 91, + 96, + 64, + 81, + 97, + 1, + 4, + 145, + 144, + 97, + 8, + 187, + 86, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 243, + 91, + 97, + 1, + 32, + 97, + 1, + 27, + 54, + 96, + 4, + 97, + 9, + 44, + 86, + 91, + 97, + 2, + 234, + 86, + 91, + 96, + 64, + 81, + 144, + 21, + 21, + 129, + 82, + 96, + 32, + 1, + 97, + 1, + 4, + 86, + 91, + 97, + 1, + 57, + 96, + 2, + 84, + 129, + 86, + 91, + 96, + 64, + 81, + 144, + 129, + 82, + 96, + 32, + 1, + 97, + 1, + 4, + 86, + 91, + 97, + 1, + 32, + 97, + 1, + 85, + 54, + 96, + 4, + 97, + 9, + 86, + 86, + 91, + 97, + 3, + 86, + 86, + 91, + 97, + 1, + 129, + 127, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 129, + 86, + 91, + 96, + 64, + 81, + 96, + 255, + 144, + 145, + 22, + 129, + 82, + 96, + 32, + 1, + 97, + 1, + 4, + 86, + 91, + 97, + 1, + 57, + 97, + 4, + 54, + 86, + 91, + 97, + 1, + 174, + 97, + 1, + 169, + 54, + 96, + 4, + 97, + 9, + 44, + 86, + 91, + 97, + 4, + 145, + 86, + 91, + 0, + 91, + 97, + 1, + 57, + 97, + 1, + 190, + 54, + 96, + 4, + 97, + 9, + 146, + 86, + 91, + 96, + 3, + 96, + 32, + 82, + 96, + 0, + 144, + 129, + 82, + 96, + 64, + 144, + 32, + 84, + 129, + 86, + 91, + 97, + 1, + 57, + 97, + 1, + 222, + 54, + 96, + 4, + 97, + 9, + 146, + 86, + 91, + 96, + 5, + 96, + 32, + 82, + 96, + 0, + 144, + 129, + 82, + 96, + 64, + 144, + 32, + 84, + 129, + 86, + 91, + 97, + 0, + 247, + 97, + 4, + 159, + 86, + 91, + 97, + 1, + 174, + 97, + 2, + 6, + 54, + 96, + 4, + 97, + 9, + 44, + 86, + 91, + 97, + 4, + 172, + 86, + 91, + 97, + 1, + 32, + 97, + 2, + 25, + 54, + 96, + 4, + 97, + 9, + 44, + 86, + 91, + 97, + 4, + 182, + 86, + 91, + 97, + 1, + 174, + 97, + 2, + 44, + 54, + 96, + 4, + 97, + 9, + 180, + 86, + 91, + 97, + 5, + 28, + 86, + 91, + 97, + 1, + 57, + 97, + 2, + 63, + 54, + 96, + 4, + 97, + 10, + 39, + 86, + 91, + 96, + 4, + 96, + 32, + 144, + 129, + 82, + 96, + 0, + 146, + 131, + 82, + 96, + 64, + 128, + 132, + 32, + 144, + 145, + 82, + 144, + 130, + 82, + 144, + 32, + 84, + 129, + 86, + 91, + 96, + 0, + 128, + 84, + 97, + 2, + 105, + 144, + 97, + 10, + 90, + 86, + 91, + 128, + 96, + 31, + 1, + 96, + 32, + 128, + 145, + 4, + 2, + 96, + 32, + 1, + 96, + 64, + 81, + 144, + 129, + 1, + 96, + 64, + 82, + 128, + 146, + 145, + 144, + 129, + 129, + 82, + 96, + 32, + 1, + 130, + 128, + 84, + 97, + 2, + 149, + 144, + 97, + 10, + 90, + 86, + 91, + 128, + 21, + 97, + 2, + 226, + 87, + 128, + 96, + 31, + 16, + 97, + 2, + 183, + 87, + 97, + 1, + 0, + 128, + 131, + 84, + 4, + 2, + 131, + 82, + 145, + 96, + 32, + 1, + 145, + 97, + 2, + 226, + 86, + 91, + 130, + 1, + 145, + 144, + 96, + 0, + 82, + 96, + 32, + 96, + 0, + 32, + 144, + 91, + 129, + 84, + 129, + 82, + 144, + 96, + 1, + 1, + 144, + 96, + 32, + 1, + 128, + 131, + 17, + 97, + 2, + 197, + 87, + 130, + 144, + 3, + 96, + 31, + 22, + 130, + 1, + 145, + 91, + 80, + 80, + 80, + 80, + 80, + 129, + 86, + 91, + 51, + 96, + 0, + 129, + 129, + 82, + 96, + 4, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 135, + 22, + 128, + 133, + 82, + 146, + 82, + 128, + 131, + 32, + 133, + 144, + 85, + 81, + 145, + 146, + 144, + 145, + 127, + 140, + 91, + 225, + 229, + 235, + 236, + 125, + 91, + 209, + 79, + 113, + 66, + 125, + 30, + 132, + 243, + 221, + 3, + 20, + 192, + 247, + 178, + 41, + 30, + 91, + 32, + 10, + 200, + 199, + 195, + 185, + 37, + 144, + 97, + 3, + 69, + 144, + 134, + 129, + 82, + 96, + 32, + 1, + 144, + 86, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 80, + 96, + 1, + 146, + 145, + 80, + 80, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 4, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 51, + 132, + 82, + 144, + 145, + 82, + 129, + 32, + 84, + 96, + 0, + 25, + 129, + 20, + 97, + 3, + 178, + 87, + 97, + 3, + 141, + 131, + 130, + 97, + 10, + 170, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 134, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 4, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 51, + 132, + 82, + 144, + 145, + 82, + 144, + 32, + 85, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 133, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 3, + 96, + 32, + 82, + 96, + 64, + 129, + 32, + 128, + 84, + 133, + 146, + 144, + 97, + 3, + 218, + 144, + 132, + 144, + 97, + 10, + 170, + 86, + 91, + 144, + 145, + 85, + 80, + 80, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 128, + 133, + 22, + 96, + 0, + 129, + 129, + 82, + 96, + 3, + 96, + 32, + 82, + 96, + 64, + 144, + 129, + 144, + 32, + 128, + 84, + 135, + 1, + 144, + 85, + 81, + 144, + 145, + 135, + 22, + 144, + 96, + 0, + 128, + 81, + 96, + 32, + 97, + 11, + 117, + 131, + 57, + 129, + 81, + 145, + 82, + 144, + 97, + 4, + 35, + 144, + 135, + 129, + 82, + 96, + 32, + 1, + 144, + 86, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 80, + 96, + 1, + 148, + 147, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 127, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 70, + 20, + 97, + 4, + 108, + 87, + 97, + 4, + 103, + 97, + 7, + 101, + 86, + 91, + 144, + 80, + 144, + 86, + 91, + 80, + 127, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 144, + 86, + 91, + 97, + 4, + 155, + 130, + 130, + 97, + 7, + 255, + 86, + 91, + 80, + 80, + 86, + 91, + 96, + 1, + 128, + 84, + 97, + 2, + 105, + 144, + 97, + 10, + 90, + 86, + 91, + 97, + 4, + 155, + 130, + 130, + 97, + 8, + 89, + 86, + 91, + 51, + 96, + 0, + 144, + 129, + 82, + 96, + 3, + 96, + 32, + 82, + 96, + 64, + 129, + 32, + 128, + 84, + 131, + 145, + 144, + 131, + 144, + 97, + 4, + 215, + 144, + 132, + 144, + 97, + 10, + 170, + 86, + 91, + 144, + 145, + 85, + 80, + 80, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 22, + 96, + 0, + 129, + 129, + 82, + 96, + 3, + 96, + 32, + 82, + 96, + 64, + 144, + 129, + 144, + 32, + 128, + 84, + 133, + 1, + 144, + 85, + 81, + 51, + 144, + 96, + 0, + 128, + 81, + 96, + 32, + 97, + 11, + 117, + 131, + 57, + 129, + 81, + 145, + 82, + 144, + 97, + 3, + 69, + 144, + 134, + 129, + 82, + 96, + 32, + 1, + 144, + 86, + 91, + 66, + 132, + 16, + 21, + 97, + 5, + 113, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 23, + 96, + 36, + 130, + 1, + 82, + 127, + 80, + 69, + 82, + 77, + 73, + 84, + 95, + 68, + 69, + 65, + 68, + 76, + 73, + 78, + 69, + 95, + 69, + 88, + 80, + 73, + 82, + 69, + 68, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 96, + 68, + 130, + 1, + 82, + 96, + 100, + 1, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 0, + 96, + 1, + 97, + 5, + 125, + 97, + 4, + 54, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 138, + 129, + 22, + 96, + 0, + 129, + 129, + 82, + 96, + 5, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 145, + 130, + 144, + 32, + 128, + 84, + 96, + 1, + 129, + 1, + 144, + 145, + 85, + 130, + 81, + 127, + 110, + 113, + 237, + 174, + 18, + 177, + 185, + 127, + 77, + 31, + 96, + 55, + 15, + 239, + 16, + 16, + 95, + 162, + 250, + 174, + 1, + 38, + 17, + 74, + 22, + 156, + 100, + 132, + 93, + 97, + 38, + 201, + 129, + 132, + 1, + 82, + 128, + 132, + 1, + 148, + 144, + 148, + 82, + 147, + 141, + 22, + 96, + 96, + 132, + 1, + 82, + 96, + 128, + 131, + 1, + 140, + 144, + 82, + 96, + 160, + 131, + 1, + 147, + 144, + 147, + 82, + 96, + 192, + 128, + 131, + 1, + 139, + 144, + 82, + 129, + 81, + 128, + 132, + 3, + 144, + 145, + 1, + 129, + 82, + 96, + 224, + 131, + 1, + 144, + 145, + 82, + 128, + 81, + 146, + 1, + 145, + 144, + 145, + 32, + 97, + 25, + 1, + 96, + 240, + 27, + 97, + 1, + 0, + 131, + 1, + 82, + 97, + 1, + 2, + 130, + 1, + 146, + 144, + 146, + 82, + 97, + 1, + 34, + 129, + 1, + 145, + 144, + 145, + 82, + 97, + 1, + 66, + 1, + 96, + 64, + 128, + 81, + 96, + 31, + 25, + 129, + 132, + 3, + 1, + 129, + 82, + 130, + 130, + 82, + 128, + 81, + 96, + 32, + 145, + 130, + 1, + 32, + 96, + 0, + 132, + 82, + 144, + 131, + 1, + 128, + 131, + 82, + 82, + 96, + 255, + 135, + 22, + 144, + 130, + 1, + 82, + 96, + 96, + 129, + 1, + 133, + 144, + 82, + 96, + 128, + 129, + 1, + 132, + 144, + 82, + 96, + 160, + 1, + 96, + 32, + 96, + 64, + 81, + 96, + 32, + 129, + 3, + 144, + 128, + 132, + 3, + 144, + 133, + 90, + 250, + 21, + 128, + 21, + 97, + 6, + 137, + 87, + 61, + 96, + 0, + 128, + 62, + 61, + 96, + 0, + 253, + 91, + 80, + 80, + 96, + 64, + 81, + 96, + 31, + 25, + 1, + 81, + 145, + 80, + 80, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 129, + 22, + 21, + 128, + 21, + 144, + 97, + 6, + 191, + 87, + 80, + 135, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 20, + 91, + 97, + 6, + 252, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 14, + 96, + 36, + 130, + 1, + 82, + 109, + 36, + 167, + 43, + 32, + 166, + 36, + 162, + 47, + 169, + 164, + 163, + 167, + 34, + 169, + 96, + 145, + 27, + 96, + 68, + 130, + 1, + 82, + 96, + 100, + 1, + 97, + 5, + 104, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 144, + 129, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 4, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 138, + 133, + 22, + 128, + 133, + 82, + 144, + 131, + 82, + 146, + 129, + 144, + 32, + 137, + 144, + 85, + 81, + 136, + 129, + 82, + 145, + 146, + 138, + 22, + 145, + 127, + 140, + 91, + 225, + 229, + 235, + 236, + 125, + 91, + 209, + 79, + 113, + 66, + 125, + 30, + 132, + 243, + 221, + 3, + 20, + 192, + 247, + 178, + 41, + 30, + 91, + 32, + 10, + 200, + 199, + 195, + 185, + 37, + 145, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 127, + 139, + 115, + 195, + 198, + 155, + 184, + 254, + 61, + 81, + 46, + 204, + 76, + 247, + 89, + 204, + 121, + 35, + 159, + 123, + 23, + 155, + 15, + 250, + 202, + 169, + 167, + 93, + 82, + 43, + 57, + 64, + 15, + 96, + 0, + 96, + 64, + 81, + 97, + 7, + 151, + 145, + 144, + 97, + 10, + 193, + 86, + 91, + 96, + 64, + 128, + 81, + 145, + 130, + 144, + 3, + 130, + 32, + 96, + 32, + 131, + 1, + 147, + 144, + 147, + 82, + 129, + 1, + 145, + 144, + 145, + 82, + 127, + 200, + 158, + 253, + 170, + 84, + 192, + 242, + 12, + 122, + 223, + 97, + 40, + 130, + 223, + 9, + 80, + 245, + 169, + 81, + 99, + 126, + 3, + 7, + 205, + 203, + 76, + 103, + 47, + 41, + 139, + 139, + 198, + 96, + 96, + 130, + 1, + 82, + 70, + 96, + 128, + 130, + 1, + 82, + 48, + 96, + 160, + 130, + 1, + 82, + 96, + 192, + 1, + 96, + 64, + 81, + 96, + 32, + 129, + 131, + 3, + 3, + 129, + 82, + 144, + 96, + 64, + 82, + 128, + 81, + 144, + 96, + 32, + 1, + 32, + 144, + 80, + 144, + 86, + 91, + 128, + 96, + 2, + 96, + 0, + 130, + 130, + 84, + 97, + 8, + 17, + 145, + 144, + 97, + 11, + 92, + 86, + 91, + 144, + 145, + 85, + 80, + 80, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 96, + 0, + 129, + 129, + 82, + 96, + 3, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 128, + 84, + 134, + 1, + 144, + 85, + 81, + 132, + 129, + 82, + 96, + 0, + 128, + 81, + 96, + 32, + 97, + 11, + 117, + 131, + 57, + 129, + 81, + 145, + 82, + 145, + 1, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 80, + 80, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 3, + 96, + 32, + 82, + 96, + 64, + 129, + 32, + 128, + 84, + 131, + 146, + 144, + 97, + 8, + 129, + 144, + 132, + 144, + 97, + 10, + 170, + 86, + 91, + 144, + 145, + 85, + 80, + 80, + 96, + 2, + 128, + 84, + 130, + 144, + 3, + 144, + 85, + 96, + 64, + 81, + 129, + 129, + 82, + 96, + 0, + 144, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 132, + 22, + 144, + 96, + 0, + 128, + 81, + 96, + 32, + 97, + 11, + 117, + 131, + 57, + 129, + 81, + 145, + 82, + 144, + 96, + 32, + 1, + 97, + 8, + 77, + 86, + 91, + 96, + 0, + 96, + 32, + 128, + 131, + 82, + 131, + 81, + 128, + 130, + 133, + 1, + 82, + 96, + 0, + 91, + 129, + 129, + 16, + 21, + 97, + 8, + 232, + 87, + 133, + 129, + 1, + 131, + 1, + 81, + 133, + 130, + 1, + 96, + 64, + 1, + 82, + 130, + 1, + 97, + 8, + 204, + 86, + 91, + 129, + 129, + 17, + 21, + 97, + 8, + 250, + 87, + 96, + 0, + 96, + 64, + 131, + 135, + 1, + 1, + 82, + 91, + 80, + 96, + 31, + 1, + 96, + 31, + 25, + 22, + 146, + 144, + 146, + 1, + 96, + 64, + 1, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 128, + 53, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 129, + 22, + 129, + 20, + 97, + 9, + 39, + 87, + 96, + 0, + 128, + 253, + 91, + 145, + 144, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 64, + 131, + 133, + 3, + 18, + 21, + 97, + 9, + 63, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 9, + 72, + 131, + 97, + 9, + 16, + 86, + 91, + 148, + 96, + 32, + 147, + 144, + 147, + 1, + 53, + 147, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 96, + 96, + 132, + 134, + 3, + 18, + 21, + 97, + 9, + 107, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 9, + 116, + 132, + 97, + 9, + 16, + 86, + 91, + 146, + 80, + 97, + 9, + 130, + 96, + 32, + 133, + 1, + 97, + 9, + 16, + 86, + 91, + 145, + 80, + 96, + 64, + 132, + 1, + 53, + 144, + 80, + 146, + 80, + 146, + 80, + 146, + 86, + 91, + 96, + 0, + 96, + 32, + 130, + 132, + 3, + 18, + 21, + 97, + 9, + 164, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 9, + 173, + 130, + 97, + 9, + 16, + 86, + 91, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 128, + 96, + 0, + 128, + 96, + 0, + 96, + 224, + 136, + 138, + 3, + 18, + 21, + 97, + 9, + 207, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 9, + 216, + 136, + 97, + 9, + 16, + 86, + 91, + 150, + 80, + 97, + 9, + 230, + 96, + 32, + 137, + 1, + 97, + 9, + 16, + 86, + 91, + 149, + 80, + 96, + 64, + 136, + 1, + 53, + 148, + 80, + 96, + 96, + 136, + 1, + 53, + 147, + 80, + 96, + 128, + 136, + 1, + 53, + 96, + 255, + 129, + 22, + 129, + 20, + 97, + 10, + 10, + 87, + 96, + 0, + 128, + 253, + 91, + 150, + 153, + 149, + 152, + 80, + 147, + 150, + 146, + 149, + 148, + 96, + 160, + 132, + 1, + 53, + 148, + 80, + 96, + 192, + 144, + 147, + 1, + 53, + 146, + 145, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 64, + 131, + 133, + 3, + 18, + 21, + 97, + 10, + 58, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 10, + 67, + 131, + 97, + 9, + 16, + 86, + 91, + 145, + 80, + 97, + 10, + 81, + 96, + 32, + 132, + 1, + 97, + 9, + 16, + 86, + 91, + 144, + 80, + 146, + 80, + 146, + 144, + 80, + 86, + 91, + 96, + 1, + 129, + 129, + 28, + 144, + 130, + 22, + 128, + 97, + 10, + 110, + 87, + 96, + 127, + 130, + 22, + 145, + 80, + 91, + 96, + 32, + 130, + 16, + 129, + 3, + 97, + 10, + 142, + 87, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 34, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 80, + 145, + 144, + 80, + 86, + 91, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 17, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 96, + 0, + 130, + 130, + 16, + 21, + 97, + 10, + 188, + 87, + 97, + 10, + 188, + 97, + 10, + 148, + 86, + 91, + 80, + 3, + 144, + 86, + 91, + 96, + 0, + 128, + 131, + 84, + 129, + 96, + 1, + 130, + 129, + 28, + 145, + 80, + 128, + 131, + 22, + 128, + 97, + 10, + 221, + 87, + 96, + 127, + 131, + 22, + 146, + 80, + 91, + 96, + 32, + 128, + 132, + 16, + 130, + 3, + 97, + 10, + 252, + 87, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 134, + 82, + 96, + 34, + 96, + 4, + 82, + 96, + 36, + 134, + 253, + 91, + 129, + 128, + 21, + 97, + 11, + 16, + 87, + 96, + 1, + 129, + 20, + 97, + 11, + 33, + 87, + 97, + 11, + 78, + 86, + 91, + 96, + 255, + 25, + 134, + 22, + 137, + 82, + 132, + 137, + 1, + 150, + 80, + 97, + 11, + 78, + 86, + 91, + 96, + 0, + 138, + 129, + 82, + 96, + 32, + 144, + 32, + 96, + 0, + 91, + 134, + 129, + 16, + 21, + 97, + 11, + 70, + 87, + 129, + 84, + 139, + 130, + 1, + 82, + 144, + 133, + 1, + 144, + 131, + 1, + 97, + 11, + 45, + 86, + 91, + 80, + 80, + 132, + 137, + 1, + 150, + 80, + 91, + 80, + 148, + 152, + 151, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 130, + 25, + 130, + 17, + 21, + 97, + 11, + 111, + 87, + 97, + 11, + 111, + 97, + 10, + 148, + 86, + 91, + 80, + 1, + 144, + 86, + 254, + 221, + 242, + 82, + 173, + 27, + 226, + 200, + 155, + 105, + 194, + 176, + 104, + 252, + 55, + 141, + 170, + 149, + 43, + 167, + 241, + 99, + 196, + 161, + 22, + 40, + 245, + 90, + 77, + 245, + 35, + 179, + 239, + 162, + 100, + 105, + 112, + 102, + 115, + 88, + 34, + 18, + 32, + 167, + 204, + 69, + 157, + 95, + 42, + 45, + 14, + 55, + 178, + 98, + 77, + 194, + 152, + 205, + 97, + 76, + 17, + 180, + 234, + 89, + 175, + 84, + 65, + 126, + 136, + 222, + 142, + 67, + 135, + 229, + 127, + 100, + 115, + 111, + 108, + 99, + 67, + 0, + 8, + 13, + 0, + 51, + ]; + ///The bytecode of the contract. + pub static MOCKERC20_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __BYTECODE, + ); + #[rustfmt::skip] + const __DEPLOYED_BYTECODE: &[u8] = &[ + 96, + 128, + 96, + 64, + 82, + 52, + 128, + 21, + 97, + 0, + 16, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 96, + 4, + 54, + 16, + 97, + 0, + 234, + 87, + 96, + 0, + 53, + 96, + 224, + 28, + 128, + 99, + 112, + 160, + 130, + 49, + 17, + 97, + 0, + 140, + 87, + 128, + 99, + 157, + 194, + 159, + 172, + 17, + 97, + 0, + 102, + 87, + 128, + 99, + 157, + 194, + 159, + 172, + 20, + 97, + 1, + 248, + 87, + 128, + 99, + 169, + 5, + 156, + 187, + 20, + 97, + 2, + 11, + 87, + 128, + 99, + 213, + 5, + 172, + 207, + 20, + 97, + 2, + 30, + 87, + 128, + 99, + 221, + 98, + 237, + 62, + 20, + 97, + 2, + 49, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 112, + 160, + 130, + 49, + 20, + 97, + 1, + 176, + 87, + 128, + 99, + 126, + 206, + 190, + 0, + 20, + 97, + 1, + 208, + 87, + 128, + 99, + 149, + 216, + 155, + 65, + 20, + 97, + 1, + 240, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 35, + 184, + 114, + 221, + 17, + 97, + 0, + 200, + 87, + 128, + 99, + 35, + 184, + 114, + 221, + 20, + 97, + 1, + 71, + 87, + 128, + 99, + 49, + 60, + 229, + 103, + 20, + 97, + 1, + 90, + 87, + 128, + 99, + 54, + 68, + 229, + 21, + 20, + 97, + 1, + 147, + 87, + 128, + 99, + 64, + 193, + 15, + 25, + 20, + 97, + 1, + 155, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 6, + 253, + 222, + 3, + 20, + 97, + 0, + 239, + 87, + 128, + 99, + 9, + 94, + 167, + 179, + 20, + 97, + 1, + 13, + 87, + 128, + 99, + 24, + 22, + 13, + 221, + 20, + 97, + 1, + 48, + 87, + 91, + 96, + 0, + 128, + 253, + 91, + 97, + 0, + 247, + 97, + 2, + 92, + 86, + 91, + 96, + 64, + 81, + 97, + 1, + 4, + 145, + 144, + 97, + 8, + 187, + 86, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 243, + 91, + 97, + 1, + 32, + 97, + 1, + 27, + 54, + 96, + 4, + 97, + 9, + 44, + 86, + 91, + 97, + 2, + 234, + 86, + 91, + 96, + 64, + 81, + 144, + 21, + 21, + 129, + 82, + 96, + 32, + 1, + 97, + 1, + 4, + 86, + 91, + 97, + 1, + 57, + 96, + 2, + 84, + 129, + 86, + 91, + 96, + 64, + 81, + 144, + 129, + 82, + 96, + 32, + 1, + 97, + 1, + 4, + 86, + 91, + 97, + 1, + 32, + 97, + 1, + 85, + 54, + 96, + 4, + 97, + 9, + 86, + 86, + 91, + 97, + 3, + 86, + 86, + 91, + 97, + 1, + 129, + 127, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 129, + 86, + 91, + 96, + 64, + 81, + 96, + 255, + 144, + 145, + 22, + 129, + 82, + 96, + 32, + 1, + 97, + 1, + 4, + 86, + 91, + 97, + 1, + 57, + 97, + 4, + 54, + 86, + 91, + 97, + 1, + 174, + 97, + 1, + 169, + 54, + 96, + 4, + 97, + 9, + 44, + 86, + 91, + 97, + 4, + 145, + 86, + 91, + 0, + 91, + 97, + 1, + 57, + 97, + 1, + 190, + 54, + 96, + 4, + 97, + 9, + 146, + 86, + 91, + 96, + 3, + 96, + 32, + 82, + 96, + 0, + 144, + 129, + 82, + 96, + 64, + 144, + 32, + 84, + 129, + 86, + 91, + 97, + 1, + 57, + 97, + 1, + 222, + 54, + 96, + 4, + 97, + 9, + 146, + 86, + 91, + 96, + 5, + 96, + 32, + 82, + 96, + 0, + 144, + 129, + 82, + 96, + 64, + 144, + 32, + 84, + 129, + 86, + 91, + 97, + 0, + 247, + 97, + 4, + 159, + 86, + 91, + 97, + 1, + 174, + 97, + 2, + 6, + 54, + 96, + 4, + 97, + 9, + 44, + 86, + 91, + 97, + 4, + 172, + 86, + 91, + 97, + 1, + 32, + 97, + 2, + 25, + 54, + 96, + 4, + 97, + 9, + 44, + 86, + 91, + 97, + 4, + 182, + 86, + 91, + 97, + 1, + 174, + 97, + 2, + 44, + 54, + 96, + 4, + 97, + 9, + 180, + 86, + 91, + 97, + 5, + 28, + 86, + 91, + 97, + 1, + 57, + 97, + 2, + 63, + 54, + 96, + 4, + 97, + 10, + 39, + 86, + 91, + 96, + 4, + 96, + 32, + 144, + 129, + 82, + 96, + 0, + 146, + 131, + 82, + 96, + 64, + 128, + 132, + 32, + 144, + 145, + 82, + 144, + 130, + 82, + 144, + 32, + 84, + 129, + 86, + 91, + 96, + 0, + 128, + 84, + 97, + 2, + 105, + 144, + 97, + 10, + 90, + 86, + 91, + 128, + 96, + 31, + 1, + 96, + 32, + 128, + 145, + 4, + 2, + 96, + 32, + 1, + 96, + 64, + 81, + 144, + 129, + 1, + 96, + 64, + 82, + 128, + 146, + 145, + 144, + 129, + 129, + 82, + 96, + 32, + 1, + 130, + 128, + 84, + 97, + 2, + 149, + 144, + 97, + 10, + 90, + 86, + 91, + 128, + 21, + 97, + 2, + 226, + 87, + 128, + 96, + 31, + 16, + 97, + 2, + 183, + 87, + 97, + 1, + 0, + 128, + 131, + 84, + 4, + 2, + 131, + 82, + 145, + 96, + 32, + 1, + 145, + 97, + 2, + 226, + 86, + 91, + 130, + 1, + 145, + 144, + 96, + 0, + 82, + 96, + 32, + 96, + 0, + 32, + 144, + 91, + 129, + 84, + 129, + 82, + 144, + 96, + 1, + 1, + 144, + 96, + 32, + 1, + 128, + 131, + 17, + 97, + 2, + 197, + 87, + 130, + 144, + 3, + 96, + 31, + 22, + 130, + 1, + 145, + 91, + 80, + 80, + 80, + 80, + 80, + 129, + 86, + 91, + 51, + 96, + 0, + 129, + 129, + 82, + 96, + 4, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 135, + 22, + 128, + 133, + 82, + 146, + 82, + 128, + 131, + 32, + 133, + 144, + 85, + 81, + 145, + 146, + 144, + 145, + 127, + 140, + 91, + 225, + 229, + 235, + 236, + 125, + 91, + 209, + 79, + 113, + 66, + 125, + 30, + 132, + 243, + 221, + 3, + 20, + 192, + 247, + 178, + 41, + 30, + 91, + 32, + 10, + 200, + 199, + 195, + 185, + 37, + 144, + 97, + 3, + 69, + 144, + 134, + 129, + 82, + 96, + 32, + 1, + 144, + 86, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 80, + 96, + 1, + 146, + 145, + 80, + 80, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 4, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 51, + 132, + 82, + 144, + 145, + 82, + 129, + 32, + 84, + 96, + 0, + 25, + 129, + 20, + 97, + 3, + 178, + 87, + 97, + 3, + 141, + 131, + 130, + 97, + 10, + 170, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 134, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 4, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 51, + 132, + 82, + 144, + 145, + 82, + 144, + 32, + 85, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 133, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 3, + 96, + 32, + 82, + 96, + 64, + 129, + 32, + 128, + 84, + 133, + 146, + 144, + 97, + 3, + 218, + 144, + 132, + 144, + 97, + 10, + 170, + 86, + 91, + 144, + 145, + 85, + 80, + 80, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 128, + 133, + 22, + 96, + 0, + 129, + 129, + 82, + 96, + 3, + 96, + 32, + 82, + 96, + 64, + 144, + 129, + 144, + 32, + 128, + 84, + 135, + 1, + 144, + 85, + 81, + 144, + 145, + 135, + 22, + 144, + 96, + 0, + 128, + 81, + 96, + 32, + 97, + 11, + 117, + 131, + 57, + 129, + 81, + 145, + 82, + 144, + 97, + 4, + 35, + 144, + 135, + 129, + 82, + 96, + 32, + 1, + 144, + 86, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 80, + 96, + 1, + 148, + 147, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 127, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 70, + 20, + 97, + 4, + 108, + 87, + 97, + 4, + 103, + 97, + 7, + 101, + 86, + 91, + 144, + 80, + 144, + 86, + 91, + 80, + 127, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 144, + 86, + 91, + 97, + 4, + 155, + 130, + 130, + 97, + 7, + 255, + 86, + 91, + 80, + 80, + 86, + 91, + 96, + 1, + 128, + 84, + 97, + 2, + 105, + 144, + 97, + 10, + 90, + 86, + 91, + 97, + 4, + 155, + 130, + 130, + 97, + 8, + 89, + 86, + 91, + 51, + 96, + 0, + 144, + 129, + 82, + 96, + 3, + 96, + 32, + 82, + 96, + 64, + 129, + 32, + 128, + 84, + 131, + 145, + 144, + 131, + 144, + 97, + 4, + 215, + 144, + 132, + 144, + 97, + 10, + 170, + 86, + 91, + 144, + 145, + 85, + 80, + 80, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 22, + 96, + 0, + 129, + 129, + 82, + 96, + 3, + 96, + 32, + 82, + 96, + 64, + 144, + 129, + 144, + 32, + 128, + 84, + 133, + 1, + 144, + 85, + 81, + 51, + 144, + 96, + 0, + 128, + 81, + 96, + 32, + 97, + 11, + 117, + 131, + 57, + 129, + 81, + 145, + 82, + 144, + 97, + 3, + 69, + 144, + 134, + 129, + 82, + 96, + 32, + 1, + 144, + 86, + 91, + 66, + 132, + 16, + 21, + 97, + 5, + 113, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 23, + 96, + 36, + 130, + 1, + 82, + 127, + 80, + 69, + 82, + 77, + 73, + 84, + 95, + 68, + 69, + 65, + 68, + 76, + 73, + 78, + 69, + 95, + 69, + 88, + 80, + 73, + 82, + 69, + 68, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 96, + 68, + 130, + 1, + 82, + 96, + 100, + 1, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 0, + 96, + 1, + 97, + 5, + 125, + 97, + 4, + 54, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 138, + 129, + 22, + 96, + 0, + 129, + 129, + 82, + 96, + 5, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 145, + 130, + 144, + 32, + 128, + 84, + 96, + 1, + 129, + 1, + 144, + 145, + 85, + 130, + 81, + 127, + 110, + 113, + 237, + 174, + 18, + 177, + 185, + 127, + 77, + 31, + 96, + 55, + 15, + 239, + 16, + 16, + 95, + 162, + 250, + 174, + 1, + 38, + 17, + 74, + 22, + 156, + 100, + 132, + 93, + 97, + 38, + 201, + 129, + 132, + 1, + 82, + 128, + 132, + 1, + 148, + 144, + 148, + 82, + 147, + 141, + 22, + 96, + 96, + 132, + 1, + 82, + 96, + 128, + 131, + 1, + 140, + 144, + 82, + 96, + 160, + 131, + 1, + 147, + 144, + 147, + 82, + 96, + 192, + 128, + 131, + 1, + 139, + 144, + 82, + 129, + 81, + 128, + 132, + 3, + 144, + 145, + 1, + 129, + 82, + 96, + 224, + 131, + 1, + 144, + 145, + 82, + 128, + 81, + 146, + 1, + 145, + 144, + 145, + 32, + 97, + 25, + 1, + 96, + 240, + 27, + 97, + 1, + 0, + 131, + 1, + 82, + 97, + 1, + 2, + 130, + 1, + 146, + 144, + 146, + 82, + 97, + 1, + 34, + 129, + 1, + 145, + 144, + 145, + 82, + 97, + 1, + 66, + 1, + 96, + 64, + 128, + 81, + 96, + 31, + 25, + 129, + 132, + 3, + 1, + 129, + 82, + 130, + 130, + 82, + 128, + 81, + 96, + 32, + 145, + 130, + 1, + 32, + 96, + 0, + 132, + 82, + 144, + 131, + 1, + 128, + 131, + 82, + 82, + 96, + 255, + 135, + 22, + 144, + 130, + 1, + 82, + 96, + 96, + 129, + 1, + 133, + 144, + 82, + 96, + 128, + 129, + 1, + 132, + 144, + 82, + 96, + 160, + 1, + 96, + 32, + 96, + 64, + 81, + 96, + 32, + 129, + 3, + 144, + 128, + 132, + 3, + 144, + 133, + 90, + 250, + 21, + 128, + 21, + 97, + 6, + 137, + 87, + 61, + 96, + 0, + 128, + 62, + 61, + 96, + 0, + 253, + 91, + 80, + 80, + 96, + 64, + 81, + 96, + 31, + 25, + 1, + 81, + 145, + 80, + 80, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 129, + 22, + 21, + 128, + 21, + 144, + 97, + 6, + 191, + 87, + 80, + 135, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 20, + 91, + 97, + 6, + 252, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 14, + 96, + 36, + 130, + 1, + 82, + 109, + 36, + 167, + 43, + 32, + 166, + 36, + 162, + 47, + 169, + 164, + 163, + 167, + 34, + 169, + 96, + 145, + 27, + 96, + 68, + 130, + 1, + 82, + 96, + 100, + 1, + 97, + 5, + 104, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 144, + 129, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 4, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 138, + 133, + 22, + 128, + 133, + 82, + 144, + 131, + 82, + 146, + 129, + 144, + 32, + 137, + 144, + 85, + 81, + 136, + 129, + 82, + 145, + 146, + 138, + 22, + 145, + 127, + 140, + 91, + 225, + 229, + 235, + 236, + 125, + 91, + 209, + 79, + 113, + 66, + 125, + 30, + 132, + 243, + 221, + 3, + 20, + 192, + 247, + 178, + 41, + 30, + 91, + 32, + 10, + 200, + 199, + 195, + 185, + 37, + 145, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 127, + 139, + 115, + 195, + 198, + 155, + 184, + 254, + 61, + 81, + 46, + 204, + 76, + 247, + 89, + 204, + 121, + 35, + 159, + 123, + 23, + 155, + 15, + 250, + 202, + 169, + 167, + 93, + 82, + 43, + 57, + 64, + 15, + 96, + 0, + 96, + 64, + 81, + 97, + 7, + 151, + 145, + 144, + 97, + 10, + 193, + 86, + 91, + 96, + 64, + 128, + 81, + 145, + 130, + 144, + 3, + 130, + 32, + 96, + 32, + 131, + 1, + 147, + 144, + 147, + 82, + 129, + 1, + 145, + 144, + 145, + 82, + 127, + 200, + 158, + 253, + 170, + 84, + 192, + 242, + 12, + 122, + 223, + 97, + 40, + 130, + 223, + 9, + 80, + 245, + 169, + 81, + 99, + 126, + 3, + 7, + 205, + 203, + 76, + 103, + 47, + 41, + 139, + 139, + 198, + 96, + 96, + 130, + 1, + 82, + 70, + 96, + 128, + 130, + 1, + 82, + 48, + 96, + 160, + 130, + 1, + 82, + 96, + 192, + 1, + 96, + 64, + 81, + 96, + 32, + 129, + 131, + 3, + 3, + 129, + 82, + 144, + 96, + 64, + 82, + 128, + 81, + 144, + 96, + 32, + 1, + 32, + 144, + 80, + 144, + 86, + 91, + 128, + 96, + 2, + 96, + 0, + 130, + 130, + 84, + 97, + 8, + 17, + 145, + 144, + 97, + 11, + 92, + 86, + 91, + 144, + 145, + 85, + 80, + 80, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 96, + 0, + 129, + 129, + 82, + 96, + 3, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 128, + 84, + 134, + 1, + 144, + 85, + 81, + 132, + 129, + 82, + 96, + 0, + 128, + 81, + 96, + 32, + 97, + 11, + 117, + 131, + 57, + 129, + 81, + 145, + 82, + 145, + 1, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 80, + 80, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 3, + 96, + 32, + 82, + 96, + 64, + 129, + 32, + 128, + 84, + 131, + 146, + 144, + 97, + 8, + 129, + 144, + 132, + 144, + 97, + 10, + 170, + 86, + 91, + 144, + 145, + 85, + 80, + 80, + 96, + 2, + 128, + 84, + 130, + 144, + 3, + 144, + 85, + 96, + 64, + 81, + 129, + 129, + 82, + 96, + 0, + 144, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 132, + 22, + 144, + 96, + 0, + 128, + 81, + 96, + 32, + 97, + 11, + 117, + 131, + 57, + 129, + 81, + 145, + 82, + 144, + 96, + 32, + 1, + 97, + 8, + 77, + 86, + 91, + 96, + 0, + 96, + 32, + 128, + 131, + 82, + 131, + 81, + 128, + 130, + 133, + 1, + 82, + 96, + 0, + 91, + 129, + 129, + 16, + 21, + 97, + 8, + 232, + 87, + 133, + 129, + 1, + 131, + 1, + 81, + 133, + 130, + 1, + 96, + 64, + 1, + 82, + 130, + 1, + 97, + 8, + 204, + 86, + 91, + 129, + 129, + 17, + 21, + 97, + 8, + 250, + 87, + 96, + 0, + 96, + 64, + 131, + 135, + 1, + 1, + 82, + 91, + 80, + 96, + 31, + 1, + 96, + 31, + 25, + 22, + 146, + 144, + 146, + 1, + 96, + 64, + 1, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 128, + 53, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 129, + 22, + 129, + 20, + 97, + 9, + 39, + 87, + 96, + 0, + 128, + 253, + 91, + 145, + 144, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 64, + 131, + 133, + 3, + 18, + 21, + 97, + 9, + 63, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 9, + 72, + 131, + 97, + 9, + 16, + 86, + 91, + 148, + 96, + 32, + 147, + 144, + 147, + 1, + 53, + 147, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 96, + 96, + 132, + 134, + 3, + 18, + 21, + 97, + 9, + 107, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 9, + 116, + 132, + 97, + 9, + 16, + 86, + 91, + 146, + 80, + 97, + 9, + 130, + 96, + 32, + 133, + 1, + 97, + 9, + 16, + 86, + 91, + 145, + 80, + 96, + 64, + 132, + 1, + 53, + 144, + 80, + 146, + 80, + 146, + 80, + 146, + 86, + 91, + 96, + 0, + 96, + 32, + 130, + 132, + 3, + 18, + 21, + 97, + 9, + 164, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 9, + 173, + 130, + 97, + 9, + 16, + 86, + 91, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 128, + 96, + 0, + 128, + 96, + 0, + 96, + 224, + 136, + 138, + 3, + 18, + 21, + 97, + 9, + 207, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 9, + 216, + 136, + 97, + 9, + 16, + 86, + 91, + 150, + 80, + 97, + 9, + 230, + 96, + 32, + 137, + 1, + 97, + 9, + 16, + 86, + 91, + 149, + 80, + 96, + 64, + 136, + 1, + 53, + 148, + 80, + 96, + 96, + 136, + 1, + 53, + 147, + 80, + 96, + 128, + 136, + 1, + 53, + 96, + 255, + 129, + 22, + 129, + 20, + 97, + 10, + 10, + 87, + 96, + 0, + 128, + 253, + 91, + 150, + 153, + 149, + 152, + 80, + 147, + 150, + 146, + 149, + 148, + 96, + 160, + 132, + 1, + 53, + 148, + 80, + 96, + 192, + 144, + 147, + 1, + 53, + 146, + 145, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 64, + 131, + 133, + 3, + 18, + 21, + 97, + 10, + 58, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 10, + 67, + 131, + 97, + 9, + 16, + 86, + 91, + 145, + 80, + 97, + 10, + 81, + 96, + 32, + 132, + 1, + 97, + 9, + 16, + 86, + 91, + 144, + 80, + 146, + 80, + 146, + 144, + 80, + 86, + 91, + 96, + 1, + 129, + 129, + 28, + 144, + 130, + 22, + 128, + 97, + 10, + 110, + 87, + 96, + 127, + 130, + 22, + 145, + 80, + 91, + 96, + 32, + 130, + 16, + 129, + 3, + 97, + 10, + 142, + 87, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 34, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 80, + 145, + 144, + 80, + 86, + 91, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 17, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 96, + 0, + 130, + 130, + 16, + 21, + 97, + 10, + 188, + 87, + 97, + 10, + 188, + 97, + 10, + 148, + 86, + 91, + 80, + 3, + 144, + 86, + 91, + 96, + 0, + 128, + 131, + 84, + 129, + 96, + 1, + 130, + 129, + 28, + 145, + 80, + 128, + 131, + 22, + 128, + 97, + 10, + 221, + 87, + 96, + 127, + 131, + 22, + 146, + 80, + 91, + 96, + 32, + 128, + 132, + 16, + 130, + 3, + 97, + 10, + 252, + 87, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 134, + 82, + 96, + 34, + 96, + 4, + 82, + 96, + 36, + 134, + 253, + 91, + 129, + 128, + 21, + 97, + 11, + 16, + 87, + 96, + 1, + 129, + 20, + 97, + 11, + 33, + 87, + 97, + 11, + 78, + 86, + 91, + 96, + 255, + 25, + 134, + 22, + 137, + 82, + 132, + 137, + 1, + 150, + 80, + 97, + 11, + 78, + 86, + 91, + 96, + 0, + 138, + 129, + 82, + 96, + 32, + 144, + 32, + 96, + 0, + 91, + 134, + 129, + 16, + 21, + 97, + 11, + 70, + 87, + 129, + 84, + 139, + 130, + 1, + 82, + 144, + 133, + 1, + 144, + 131, + 1, + 97, + 11, + 45, + 86, + 91, + 80, + 80, + 132, + 137, + 1, + 150, + 80, + 91, + 80, + 148, + 152, + 151, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 130, + 25, + 130, + 17, + 21, + 97, + 11, + 111, + 87, + 97, + 11, + 111, + 97, + 10, + 148, + 86, + 91, + 80, + 1, + 144, + 86, + 254, + 221, + 242, + 82, + 173, + 27, + 226, + 200, + 155, + 105, + 194, + 176, + 104, + 252, + 55, + 141, + 170, + 149, + 43, + 167, + 241, + 99, + 196, + 161, + 22, + 40, + 245, + 90, + 77, + 245, + 35, + 179, + 239, + 162, + 100, + 105, + 112, + 102, + 115, + 88, + 34, + 18, + 32, + 167, + 204, + 69, + 157, + 95, + 42, + 45, + 14, + 55, + 178, + 98, + 77, + 194, + 152, + 205, + 97, + 76, + 17, + 180, + 234, + 89, + 175, + 84, + 65, + 126, + 136, + 222, + 142, + 67, + 135, + 229, + 127, + 100, + 115, + 111, + 108, + 99, + 67, + 0, + 8, + 13, + 0, + 51, + ]; + ///The deployed bytecode of the contract. + pub static MOCKERC20_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __DEPLOYED_BYTECODE, + ); + pub struct MockERC20(::ethers::contract::Contract); + impl ::core::clone::Clone for MockERC20 { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for MockERC20 { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for MockERC20 { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for MockERC20 { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(stringify!(MockERC20)).field(&self.address()).finish() + } + } + impl MockERC20 { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + MOCKERC20_ABI.clone(), + client, + ), + ) + } + /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. + /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction + /// + /// Notes: + /// - If there are no constructor arguments, you should pass `()` as the argument. + /// - The default poll duration is 7 seconds. + /// - The default number of confirmations is 1 block. + /// + /// + /// # Example + /// + /// Generate contract bindings with `abigen!` and deploy a new contract instance. + /// + /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. + /// + /// ```ignore + /// # async fn deploy(client: ::std::sync::Arc) { + /// abigen!(Greeter, "../greeter.json"); + /// + /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); + /// let msg = greeter_contract.greet().call().await.unwrap(); + /// # } + /// ``` + pub fn deploy( + client: ::std::sync::Arc, + constructor_args: T, + ) -> ::core::result::Result< + ::ethers::contract::builders::ContractDeployer, + ::ethers::contract::ContractError, + > { + let factory = ::ethers::contract::ContractFactory::new( + MOCKERC20_ABI.clone(), + MOCKERC20_BYTECODE.clone().into(), + client, + ); + let deployer = factory.deploy(constructor_args)?; + let deployer = ::ethers::contract::ContractDeployer::new(deployer); + Ok(deployer) + } + ///Calls the contract's `DOMAIN_SEPARATOR` (0x3644e515) function + pub fn domain_separator( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([54, 68, 229, 21], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `allowance` (0xdd62ed3e) function + pub fn allowance( + &self, + p0: ::ethers::core::types::Address, + p1: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([221, 98, 237, 62], (p0, p1)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `approve` (0x095ea7b3) function + pub fn approve( + &self, + spender: ::ethers::core::types::Address, + amount: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([9, 94, 167, 179], (spender, amount)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `balanceOf` (0x70a08231) function + pub fn balance_of( + &self, + p0: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([112, 160, 130, 49], p0) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `burn` (0x9dc29fac) function + pub fn burn( + &self, + from: ::ethers::core::types::Address, + value: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([157, 194, 159, 172], (from, value)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `decimals` (0x313ce567) function + pub fn decimals(&self) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([49, 60, 229, 103], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `mint` (0x40c10f19) function + pub fn mint( + &self, + to: ::ethers::core::types::Address, + value: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([64, 193, 15, 25], (to, value)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `name` (0x06fdde03) function + pub fn name( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([6, 253, 222, 3], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `nonces` (0x7ecebe00) function + pub fn nonces( + &self, + p0: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([126, 206, 190, 0], p0) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `permit` (0xd505accf) function + pub fn permit( + &self, + owner: ::ethers::core::types::Address, + spender: ::ethers::core::types::Address, + value: ::ethers::core::types::U256, + deadline: ::ethers::core::types::U256, + v: u8, + r: [u8; 32], + s: [u8; 32], + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash( + [213, 5, 172, 207], + (owner, spender, value, deadline, v, r, s), + ) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `symbol` (0x95d89b41) function + pub fn symbol( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([149, 216, 155, 65], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `totalSupply` (0x18160ddd) function + pub fn total_supply( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([24, 22, 13, 221], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `transfer` (0xa9059cbb) function + pub fn transfer( + &self, + to: ::ethers::core::types::Address, + amount: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([169, 5, 156, 187], (to, amount)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `transferFrom` (0x23b872dd) function + pub fn transfer_from( + &self, + from: ::ethers::core::types::Address, + to: ::ethers::core::types::Address, + amount: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([35, 184, 114, 221], (from, to, amount)) + .expect("method not found (this should never happen)") + } + ///Gets the contract's `Approval` event + pub fn approval_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + ApprovalFilter, + > { + self.0.event() + } + ///Gets the contract's `Transfer` event + pub fn transfer_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + TransferFilter, + > { + self.0.event() + } + /// Returns an `Event` builder for all the events of this contract. + pub fn events( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + MockERC20Events, + > { + self.0.event_with_filter(::core::default::Default::default()) + } + } + impl From<::ethers::contract::Contract> + for MockERC20 { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "Approval", abi = "Approval(address,address,uint256)")] + pub struct ApprovalFilter { + #[ethevent(indexed)] + pub owner: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub spender: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "Transfer", abi = "Transfer(address,address,uint256)")] + pub struct TransferFilter { + #[ethevent(indexed)] + pub from: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub to: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + ///Container type for all of the contract's events + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum MockERC20Events { + ApprovalFilter(ApprovalFilter), + TransferFilter(TransferFilter), + } + impl ::ethers::contract::EthLogDecode for MockERC20Events { + fn decode_log( + log: &::ethers::core::abi::RawLog, + ) -> ::core::result::Result { + if let Ok(decoded) = ApprovalFilter::decode_log(log) { + return Ok(MockERC20Events::ApprovalFilter(decoded)); + } + if let Ok(decoded) = TransferFilter::decode_log(log) { + return Ok(MockERC20Events::TransferFilter(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData) + } + } + impl ::core::fmt::Display for MockERC20Events { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::ApprovalFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::TransferFilter(element) => ::core::fmt::Display::fmt(element, f), + } + } + } + impl ::core::convert::From for MockERC20Events { + fn from(value: ApprovalFilter) -> Self { + Self::ApprovalFilter(value) + } + } + impl ::core::convert::From for MockERC20Events { + fn from(value: TransferFilter) -> Self { + Self::TransferFilter(value) + } + } + ///Container type for all input parameters for the `DOMAIN_SEPARATOR` function with signature `DOMAIN_SEPARATOR()` and selector `0x3644e515` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "DOMAIN_SEPARATOR", abi = "DOMAIN_SEPARATOR()")] + pub struct DomainSeparatorCall; + ///Container type for all input parameters for the `allowance` function with signature `allowance(address,address)` and selector `0xdd62ed3e` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "allowance", abi = "allowance(address,address)")] + pub struct AllowanceCall( + pub ::ethers::core::types::Address, + pub ::ethers::core::types::Address, + ); + ///Container type for all input parameters for the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "approve", abi = "approve(address,uint256)")] + pub struct ApproveCall { + pub spender: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "balanceOf", abi = "balanceOf(address)")] + pub struct BalanceOfCall(pub ::ethers::core::types::Address); + ///Container type for all input parameters for the `burn` function with signature `burn(address,uint256)` and selector `0x9dc29fac` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "burn", abi = "burn(address,uint256)")] + pub struct BurnCall { + pub from: ::ethers::core::types::Address, + pub value: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `decimals` function with signature `decimals()` and selector `0x313ce567` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "decimals", abi = "decimals()")] + pub struct DecimalsCall; + ///Container type for all input parameters for the `mint` function with signature `mint(address,uint256)` and selector `0x40c10f19` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "mint", abi = "mint(address,uint256)")] + pub struct MintCall { + pub to: ::ethers::core::types::Address, + pub value: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `name` function with signature `name()` and selector `0x06fdde03` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "name", abi = "name()")] + pub struct NameCall; + ///Container type for all input parameters for the `nonces` function with signature `nonces(address)` and selector `0x7ecebe00` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "nonces", abi = "nonces(address)")] + pub struct NoncesCall(pub ::ethers::core::types::Address); + ///Container type for all input parameters for the `permit` function with signature `permit(address,address,uint256,uint256,uint8,bytes32,bytes32)` and selector `0xd505accf` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall( + name = "permit", + abi = "permit(address,address,uint256,uint256,uint8,bytes32,bytes32)" + )] + pub struct PermitCall { + pub owner: ::ethers::core::types::Address, + pub spender: ::ethers::core::types::Address, + pub value: ::ethers::core::types::U256, + pub deadline: ::ethers::core::types::U256, + pub v: u8, + pub r: [u8; 32], + pub s: [u8; 32], + } + ///Container type for all input parameters for the `symbol` function with signature `symbol()` and selector `0x95d89b41` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "symbol", abi = "symbol()")] + pub struct SymbolCall; + ///Container type for all input parameters for the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "totalSupply", abi = "totalSupply()")] + pub struct TotalSupplyCall; + ///Container type for all input parameters for the `transfer` function with signature `transfer(address,uint256)` and selector `0xa9059cbb` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "transfer", abi = "transfer(address,uint256)")] + pub struct TransferCall { + pub to: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "transferFrom", abi = "transferFrom(address,address,uint256)")] + pub struct TransferFromCall { + pub from: ::ethers::core::types::Address, + pub to: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + ///Container type for all of the contract's call + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum MockERC20Calls { + DomainSeparator(DomainSeparatorCall), + Allowance(AllowanceCall), + Approve(ApproveCall), + BalanceOf(BalanceOfCall), + Burn(BurnCall), + Decimals(DecimalsCall), + Mint(MintCall), + Name(NameCall), + Nonces(NoncesCall), + Permit(PermitCall), + Symbol(SymbolCall), + TotalSupply(TotalSupplyCall), + Transfer(TransferCall), + TransferFrom(TransferFromCall), + } + impl ::ethers::core::abi::AbiDecode for MockERC20Calls { + fn decode( + data: impl AsRef<[u8]>, + ) -> ::core::result::Result { + let data = data.as_ref(); + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::DomainSeparator(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Allowance(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Approve(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::BalanceOf(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Burn(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Decimals(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Mint(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Name(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Nonces(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Permit(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Symbol(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::TotalSupply(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Transfer(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::TransferFrom(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData.into()) + } + } + impl ::ethers::core::abi::AbiEncode for MockERC20Calls { + fn encode(self) -> Vec { + match self { + Self::DomainSeparator(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Allowance(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Approve(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::BalanceOf(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Burn(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Decimals(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Mint(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Name(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Nonces(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Permit(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Symbol(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::TotalSupply(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Transfer(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::TransferFrom(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + } + } + } + impl ::core::fmt::Display for MockERC20Calls { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::DomainSeparator(element) => ::core::fmt::Display::fmt(element, f), + Self::Allowance(element) => ::core::fmt::Display::fmt(element, f), + Self::Approve(element) => ::core::fmt::Display::fmt(element, f), + Self::BalanceOf(element) => ::core::fmt::Display::fmt(element, f), + Self::Burn(element) => ::core::fmt::Display::fmt(element, f), + Self::Decimals(element) => ::core::fmt::Display::fmt(element, f), + Self::Mint(element) => ::core::fmt::Display::fmt(element, f), + Self::Name(element) => ::core::fmt::Display::fmt(element, f), + Self::Nonces(element) => ::core::fmt::Display::fmt(element, f), + Self::Permit(element) => ::core::fmt::Display::fmt(element, f), + Self::Symbol(element) => ::core::fmt::Display::fmt(element, f), + Self::TotalSupply(element) => ::core::fmt::Display::fmt(element, f), + Self::Transfer(element) => ::core::fmt::Display::fmt(element, f), + Self::TransferFrom(element) => ::core::fmt::Display::fmt(element, f), + } + } + } + impl ::core::convert::From for MockERC20Calls { + fn from(value: DomainSeparatorCall) -> Self { + Self::DomainSeparator(value) + } + } + impl ::core::convert::From for MockERC20Calls { + fn from(value: AllowanceCall) -> Self { + Self::Allowance(value) + } + } + impl ::core::convert::From for MockERC20Calls { + fn from(value: ApproveCall) -> Self { + Self::Approve(value) + } + } + impl ::core::convert::From for MockERC20Calls { + fn from(value: BalanceOfCall) -> Self { + Self::BalanceOf(value) + } + } + impl ::core::convert::From for MockERC20Calls { + fn from(value: BurnCall) -> Self { + Self::Burn(value) + } + } + impl ::core::convert::From for MockERC20Calls { + fn from(value: DecimalsCall) -> Self { + Self::Decimals(value) + } + } + impl ::core::convert::From for MockERC20Calls { + fn from(value: MintCall) -> Self { + Self::Mint(value) + } + } + impl ::core::convert::From for MockERC20Calls { + fn from(value: NameCall) -> Self { + Self::Name(value) + } + } + impl ::core::convert::From for MockERC20Calls { + fn from(value: NoncesCall) -> Self { + Self::Nonces(value) + } + } + impl ::core::convert::From for MockERC20Calls { + fn from(value: PermitCall) -> Self { + Self::Permit(value) + } + } + impl ::core::convert::From for MockERC20Calls { + fn from(value: SymbolCall) -> Self { + Self::Symbol(value) + } + } + impl ::core::convert::From for MockERC20Calls { + fn from(value: TotalSupplyCall) -> Self { + Self::TotalSupply(value) + } + } + impl ::core::convert::From for MockERC20Calls { + fn from(value: TransferCall) -> Self { + Self::Transfer(value) + } + } + impl ::core::convert::From for MockERC20Calls { + fn from(value: TransferFromCall) -> Self { + Self::TransferFrom(value) + } + } + ///Container type for all return fields from the `DOMAIN_SEPARATOR` function with signature `DOMAIN_SEPARATOR()` and selector `0x3644e515` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct DomainSeparatorReturn(pub [u8; 32]); + ///Container type for all return fields from the `allowance` function with signature `allowance(address,address)` and selector `0xdd62ed3e` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct AllowanceReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct ApproveReturn(pub bool); + ///Container type for all return fields from the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct BalanceOfReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `decimals` function with signature `decimals()` and selector `0x313ce567` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct DecimalsReturn(pub u8); + ///Container type for all return fields from the `name` function with signature `name()` and selector `0x06fdde03` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct NameReturn(pub ::std::string::String); + ///Container type for all return fields from the `nonces` function with signature `nonces(address)` and selector `0x7ecebe00` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct NoncesReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `symbol` function with signature `symbol()` and selector `0x95d89b41` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct SymbolReturn(pub ::std::string::String); + ///Container type for all return fields from the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct TotalSupplyReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `transfer` function with signature `transfer(address,uint256)` and selector `0xa9059cbb` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct TransferReturn(pub bool); + ///Container type for all return fields from the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct TransferFromReturn(pub bool); +} diff --git a/crates/bindings/src/objective.rs b/crates/bindings/src/objective.rs new file mode 100644 index 00000000..4f8720bf --- /dev/null +++ b/crates/bindings/src/objective.rs @@ -0,0 +1,2180 @@ +pub use objective::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod objective { + pub use super::super::shared_types::*; + #[rustfmt::skip] + const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaLiquidity\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Allocate\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint16\",\"name\":\"priorityFee\",\"type\":\"uint16\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint16\",\"name\":\"fee\",\"type\":\"uint16\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint16\",\"name\":\"jit\",\"type\":\"uint16\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"ChangeParameters\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"feeAssetDec\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"feeQuoteDec\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true}],\"type\":\"event\",\"name\":\"Collect\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"pairId\",\"type\":\"uint24\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint8\",\"name\":\"decimalsAsset\",\"type\":\"uint8\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint8\",\"name\":\"decimalsQuote\",\"type\":\"uint8\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"CreatePair\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"bool\",\"name\":\"isMutable\",\"type\":\"bool\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"CreatePool\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaLiquidity\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Deallocate\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"DecreaseReserveBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"DecreaseUserBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Deposit\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"IncreaseReserveBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"IncreaseUserBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"sellAsset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"input\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"tokenOut\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"output\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"feeAmountDec\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"int256\",\"name\":\"invariantWad\",\"type\":\"int256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Swap\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"prevFee\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"nextFee\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"UpdateProtocolFee\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\",\"name\":\"VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"WETH\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"priorityFee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"fee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"jit\",\"type\":\"uint16\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"changeParameters\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"int256\",\"name\":\"invariant\",\"type\":\"int256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"reserveX\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"reserveY\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"checkInvariant\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\",\"components\":[]},{\"internalType\":\"int256\",\"name\":\"nextInvariant\",\"type\":\"int256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"checkPool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"int256\",\"name\":\"delta\",\"type\":\"int256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"checkPosition\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"bool\",\"name\":\"sellAsset\",\"type\":\"bool\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"reserveIn\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"computeMaxInput\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"computeReservesFromPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"reserveX\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"reserveY\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"deposit\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"draw\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"fund\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"bool\",\"name\":\"sellAsset\",\"type\":\"bool\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getAmountOut\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"output\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"int128\",\"name\":\"deltaLiquidity\",\"type\":\"int128\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getLiquidityDeltas\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"deltaAsset\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"deltaQuote\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getMaxLiquidity\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"deltaLiquidity\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getNetBalance\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPairId\",\"outputs\":[{\"internalType\":\"uint24\",\"name\":\"pairId\",\"type\":\"uint24\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPairNonce\",\"outputs\":[{\"internalType\":\"uint24\",\"name\":\"\",\"type\":\"uint24\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"pairNonce\",\"type\":\"uint24\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPoolNonce\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPoolReserves\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getReserve\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getVirtualPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getVirtualReservesPerLiquidity\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"deltaAsset\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"deltaQuote\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\",\"components\":[]}],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"multiprocess\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"pairId\",\"type\":\"uint24\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"pairs\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"tokenAsset\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsAsset\",\"type\":\"uint8\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"tokenQuote\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsQuote\",\"type\":\"uint8\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"pools\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"virtualX\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"virtualY\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"liquidity\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint32\",\"name\":\"lastTimestamp\",\"type\":\"uint32\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"controller\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"invariantGrowthGlobal\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthGlobalAsset\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthGlobalQuote\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"struct PortfolioCurve\",\"name\":\"\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"uint128\",\"name\":\"maxPrice\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"jit\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"fee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"duration\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"volatility\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"priorityFee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint32\",\"name\":\"createdAt\",\"type\":\"uint32\",\"components\":[]},{\"internalType\":\"bool\",\"name\":\"perpetual\",\"type\":\"bool\",\"components\":[]}]},{\"internalType\":\"struct PortfolioPair\",\"name\":\"\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"address\",\"name\":\"tokenAsset\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsAsset\",\"type\":\"uint8\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"tokenQuote\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsQuote\",\"type\":\"uint8\",\"components\":[]}]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"positions\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"freeLiquidity\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint32\",\"name\":\"lastTimestamp\",\"type\":\"uint32\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"invariantGrowthLast\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthAssetLast\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthQuoteLast\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"tokensOwedAsset\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"tokensOwedQuote\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"invariantOwed\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"setProtocolFee\",\"outputs\":[]}]"; + ///The parsed JSON ABI of the contract. + pub static OBJECTIVE_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| + ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); + pub struct Objective(::ethers::contract::Contract); + impl ::core::clone::Clone for Objective { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for Objective { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for Objective { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for Objective { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(stringify!(Objective)).field(&self.address()).finish() + } + } + impl Objective { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + OBJECTIVE_ABI.clone(), + client, + ), + ) + } + ///Calls the contract's `REGISTRY` (0x06433b1b) function + pub fn registry( + &self, + ) -> ::ethers::contract::builders::ContractCall< + M, + ::ethers::core::types::Address, + > { + self.0 + .method_hash([6, 67, 59, 27], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `VERSION` (0xffa1ad74) function + pub fn version( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([255, 161, 173, 116], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `WETH` (0xad5c4648) function + pub fn weth( + &self, + ) -> ::ethers::contract::builders::ContractCall< + M, + ::ethers::core::types::Address, + > { + self.0 + .method_hash([173, 92, 70, 72], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `changeParameters` (0xaf777855) function + pub fn change_parameters( + &self, + pool_id: u64, + priority_fee: u16, + fee: u16, + jit: u16, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([175, 119, 120, 85], (pool_id, priority_fee, fee, jit)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `checkInvariant` (0x2f337da5) function + pub fn check_invariant( + &self, + pool_id: u64, + invariant: ::ethers::core::types::I256, + reserve_x: ::ethers::core::types::U256, + reserve_y: ::ethers::core::types::U256, + timestamp: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall< + M, + (bool, ::ethers::core::types::I256), + > { + self.0 + .method_hash( + [47, 51, 125, 165], + (pool_id, invariant, reserve_x, reserve_y, timestamp), + ) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `checkPool` (0xa68aaa41) function + pub fn check_pool( + &self, + pool_id: u64, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([166, 138, 170, 65], pool_id) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `checkPosition` (0x2cc6641e) function + pub fn check_position( + &self, + pool_id: u64, + owner: ::ethers::core::types::Address, + delta: ::ethers::core::types::I256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([44, 198, 100, 30], (pool_id, owner, delta)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `computeMaxInput` (0x989bafba) function + pub fn compute_max_input( + &self, + pool_id: u64, + sell_asset: bool, + reserve_in: ::ethers::core::types::U256, + liquidity: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash( + [152, 155, 175, 186], + (pool_id, sell_asset, reserve_in, liquidity), + ) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `computeReservesFromPrice` (0xc48d887a) function + pub fn compute_reserves_from_price( + &self, + pool_id: u64, + price: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall< + M, + (::ethers::core::types::U256, ::ethers::core::types::U256), + > { + self.0 + .method_hash([196, 141, 136, 122], (pool_id, price)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `deposit` (0xd0e30db0) function + pub fn deposit(&self) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([208, 227, 13, 176], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `draw` (0xad24d6a0) function + pub fn draw( + &self, + token: ::ethers::core::types::Address, + amount: ::ethers::core::types::U256, + to: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([173, 36, 214, 160], (token, amount, to)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `fund` (0x7b1837de) function + pub fn fund( + &self, + token: ::ethers::core::types::Address, + amount: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([123, 24, 55, 222], (token, amount)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getAmountOut` (0x7dae4890) function + pub fn get_amount_out( + &self, + pool_id: u64, + sell_asset: bool, + amount_in: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([125, 174, 72, 144], (pool_id, sell_asset, amount_in)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getBalance` (0xd4fac45d) function + pub fn get_balance( + &self, + owner: ::ethers::core::types::Address, + token: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([212, 250, 196, 93], (owner, token)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getLiquidityDeltas` (0x8992f20a) function + pub fn get_liquidity_deltas( + &self, + pool_id: u64, + delta_liquidity: i128, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([137, 146, 242, 10], (pool_id, delta_liquidity)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getMaxLiquidity` (0xd6b7dec5) function + pub fn get_max_liquidity( + &self, + pool_id: u64, + delta_asset: ::ethers::core::types::U256, + delta_quote: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([214, 183, 222, 197], (pool_id, delta_asset, delta_quote)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getNetBalance` (0x4dc68a90) function + pub fn get_net_balance( + &self, + token: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([77, 198, 138, 144], token) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getPairId` (0x3f92a339) function + pub fn get_pair_id( + &self, + asset: ::ethers::core::types::Address, + quote: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([63, 146, 163, 57], (asset, quote)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getPairNonce` (0x078888d6) function + pub fn get_pair_nonce( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([7, 136, 136, 214], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getPoolNonce` (0xa5cd8a49) function + pub fn get_pool_nonce( + &self, + pair_nonce: u32, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([165, 205, 138, 73], pair_nonce) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getPoolReserves` (0x2afb9df8) function + pub fn get_pool_reserves( + &self, + pool_id: u64, + ) -> ::ethers::contract::builders::ContractCall< + M, + (::ethers::core::types::U256, ::ethers::core::types::U256), + > { + self.0 + .method_hash([42, 251, 157, 248], pool_id) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getReserve` (0xc9a396e9) function + pub fn get_reserve( + &self, + token: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([201, 163, 150, 233], token) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getVirtualPrice` (0x61b7ea6a) function + pub fn get_virtual_price( + &self, + pool_id: u64, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([97, 183, 234, 106], pool_id) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getVirtualReservesPerLiquidity` (0x1a4b905b) function + pub fn get_virtual_reserves_per_liquidity( + &self, + pool_id: u64, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([26, 75, 144, 91], pool_id) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `multiprocess` (0xa0fdf413) function + pub fn multiprocess( + &self, + data: ::ethers::core::types::Bytes, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([160, 253, 244, 19], data) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `pairs` (0x5e47663c) function + pub fn pairs( + &self, + pair_id: u32, + ) -> ::ethers::contract::builders::ContractCall< + M, + (::ethers::core::types::Address, u8, ::ethers::core::types::Address, u8), + > { + self.0 + .method_hash([94, 71, 102, 60], pair_id) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `pools` (0x89a5f084) function + pub fn pools( + &self, + pool_id: u64, + ) -> ::ethers::contract::builders::ContractCall< + M, + ( + u128, + u128, + u128, + u32, + ::ethers::core::types::Address, + ::ethers::core::types::U256, + ::ethers::core::types::U256, + ::ethers::core::types::U256, + PortfolioCurve, + PortfolioPair, + ), + > { + self.0 + .method_hash([137, 165, 240, 132], pool_id) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `positions` (0xb68513ea) function + pub fn positions( + &self, + owner: ::ethers::core::types::Address, + pool_id: u64, + ) -> ::ethers::contract::builders::ContractCall< + M, + ( + u128, + u32, + ::ethers::core::types::U256, + ::ethers::core::types::U256, + ::ethers::core::types::U256, + u128, + u128, + u128, + ), + > { + self.0 + .method_hash([182, 133, 19, 234], (owner, pool_id)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `setProtocolFee` (0x787dce3d) function + pub fn set_protocol_fee( + &self, + fee: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([120, 125, 206, 61], fee) + .expect("method not found (this should never happen)") + } + ///Gets the contract's `Allocate` event + pub fn allocate_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + AllocateFilter, + > { + self.0.event() + } + ///Gets the contract's `ChangeParameters` event + pub fn change_parameters_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + ChangeParametersFilter, + > { + self.0.event() + } + ///Gets the contract's `Collect` event + pub fn collect_filter( + &self, + ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, CollectFilter> { + self.0.event() + } + ///Gets the contract's `CreatePair` event + pub fn create_pair_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + CreatePairFilter, + > { + self.0.event() + } + ///Gets the contract's `CreatePool` event + pub fn create_pool_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + CreatePoolFilter, + > { + self.0.event() + } + ///Gets the contract's `Deallocate` event + pub fn deallocate_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + DeallocateFilter, + > { + self.0.event() + } + ///Gets the contract's `DecreaseReserveBalance` event + pub fn decrease_reserve_balance_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + DecreaseReserveBalanceFilter, + > { + self.0.event() + } + ///Gets the contract's `DecreaseUserBalance` event + pub fn decrease_user_balance_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + DecreaseUserBalanceFilter, + > { + self.0.event() + } + ///Gets the contract's `Deposit` event + pub fn deposit_filter( + &self, + ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, DepositFilter> { + self.0.event() + } + ///Gets the contract's `IncreaseReserveBalance` event + pub fn increase_reserve_balance_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + IncreaseReserveBalanceFilter, + > { + self.0.event() + } + ///Gets the contract's `IncreaseUserBalance` event + pub fn increase_user_balance_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + IncreaseUserBalanceFilter, + > { + self.0.event() + } + ///Gets the contract's `Swap` event + pub fn swap_filter( + &self, + ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, SwapFilter> { + self.0.event() + } + ///Gets the contract's `UpdateProtocolFee` event + pub fn update_protocol_fee_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + UpdateProtocolFeeFilter, + > { + self.0.event() + } + /// Returns an `Event` builder for all the events of this contract. + pub fn events( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + ObjectiveEvents, + > { + self.0.event_with_filter(::core::default::Default::default()) + } + } + impl From<::ethers::contract::Contract> + for Objective { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "Allocate", + abi = "Allocate(uint64,address,address,uint256,uint256,uint256)" + )] + pub struct AllocateFilter { + #[ethevent(indexed)] + pub pool_id: u64, + #[ethevent(indexed)] + pub asset: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub quote: ::ethers::core::types::Address, + pub delta_asset: ::ethers::core::types::U256, + pub delta_quote: ::ethers::core::types::U256, + pub delta_liquidity: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "ChangeParameters", + abi = "ChangeParameters(uint64,uint16,uint16,uint16)" + )] + pub struct ChangeParametersFilter { + #[ethevent(indexed)] + pub pool_id: u64, + #[ethevent(indexed)] + pub priority_fee: u16, + #[ethevent(indexed)] + pub fee: u16, + pub jit: u16, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "Collect", + abi = "Collect(uint64,address,uint256,address,uint256,address)" + )] + pub struct CollectFilter { + pub pool_id: u64, + #[ethevent(indexed)] + pub account: ::ethers::core::types::Address, + pub fee_asset_dec: ::ethers::core::types::U256, + #[ethevent(indexed)] + pub asset: ::ethers::core::types::Address, + pub fee_quote_dec: ::ethers::core::types::U256, + #[ethevent(indexed)] + pub quote: ::ethers::core::types::Address, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "CreatePair", + abi = "CreatePair(uint24,address,address,uint8,uint8)" + )] + pub struct CreatePairFilter { + #[ethevent(indexed)] + pub pair_id: u32, + #[ethevent(indexed)] + pub asset: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub quote: ::ethers::core::types::Address, + pub decimals_asset: u8, + pub decimals_quote: u8, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "CreatePool", + abi = "CreatePool(uint64,bool,address,address,uint256)" + )] + pub struct CreatePoolFilter { + #[ethevent(indexed)] + pub pool_id: u64, + pub is_mutable: bool, + #[ethevent(indexed)] + pub asset: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub quote: ::ethers::core::types::Address, + pub price: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "Deallocate", + abi = "Deallocate(uint64,address,address,uint256,uint256,uint256)" + )] + pub struct DeallocateFilter { + #[ethevent(indexed)] + pub pool_id: u64, + #[ethevent(indexed)] + pub asset: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub quote: ::ethers::core::types::Address, + pub delta_asset: ::ethers::core::types::U256, + pub delta_quote: ::ethers::core::types::U256, + pub delta_liquidity: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "DecreaseReserveBalance", + abi = "DecreaseReserveBalance(address,uint256)" + )] + pub struct DecreaseReserveBalanceFilter { + #[ethevent(indexed)] + pub token: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "DecreaseUserBalance", + abi = "DecreaseUserBalance(address,address,uint256)" + )] + pub struct DecreaseUserBalanceFilter { + #[ethevent(indexed)] + pub account: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub token: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "Deposit", abi = "Deposit(address,uint256)")] + pub struct DepositFilter { + #[ethevent(indexed)] + pub account: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "IncreaseReserveBalance", + abi = "IncreaseReserveBalance(address,uint256)" + )] + pub struct IncreaseReserveBalanceFilter { + #[ethevent(indexed)] + pub token: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "IncreaseUserBalance", + abi = "IncreaseUserBalance(address,address,uint256)" + )] + pub struct IncreaseUserBalanceFilter { + #[ethevent(indexed)] + pub account: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub token: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "Swap", + abi = "Swap(uint64,uint256,address,uint256,address,uint256,uint256,int256)" + )] + pub struct SwapFilter { + #[ethevent(indexed)] + pub pool_id: u64, + pub price: ::ethers::core::types::U256, + #[ethevent(indexed)] + pub sell_asset: ::ethers::core::types::Address, + pub input: ::ethers::core::types::U256, + #[ethevent(indexed)] + pub token_out: ::ethers::core::types::Address, + pub output: ::ethers::core::types::U256, + pub fee_amount_dec: ::ethers::core::types::U256, + pub invariant_wad: ::ethers::core::types::I256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "UpdateProtocolFee", abi = "UpdateProtocolFee(uint256,uint256)")] + pub struct UpdateProtocolFeeFilter { + pub prev_fee: ::ethers::core::types::U256, + pub next_fee: ::ethers::core::types::U256, + } + ///Container type for all of the contract's events + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum ObjectiveEvents { + AllocateFilter(AllocateFilter), + ChangeParametersFilter(ChangeParametersFilter), + CollectFilter(CollectFilter), + CreatePairFilter(CreatePairFilter), + CreatePoolFilter(CreatePoolFilter), + DeallocateFilter(DeallocateFilter), + DecreaseReserveBalanceFilter(DecreaseReserveBalanceFilter), + DecreaseUserBalanceFilter(DecreaseUserBalanceFilter), + DepositFilter(DepositFilter), + IncreaseReserveBalanceFilter(IncreaseReserveBalanceFilter), + IncreaseUserBalanceFilter(IncreaseUserBalanceFilter), + SwapFilter(SwapFilter), + UpdateProtocolFeeFilter(UpdateProtocolFeeFilter), + } + impl ::ethers::contract::EthLogDecode for ObjectiveEvents { + fn decode_log( + log: &::ethers::core::abi::RawLog, + ) -> ::core::result::Result { + if let Ok(decoded) = AllocateFilter::decode_log(log) { + return Ok(ObjectiveEvents::AllocateFilter(decoded)); + } + if let Ok(decoded) = ChangeParametersFilter::decode_log(log) { + return Ok(ObjectiveEvents::ChangeParametersFilter(decoded)); + } + if let Ok(decoded) = CollectFilter::decode_log(log) { + return Ok(ObjectiveEvents::CollectFilter(decoded)); + } + if let Ok(decoded) = CreatePairFilter::decode_log(log) { + return Ok(ObjectiveEvents::CreatePairFilter(decoded)); + } + if let Ok(decoded) = CreatePoolFilter::decode_log(log) { + return Ok(ObjectiveEvents::CreatePoolFilter(decoded)); + } + if let Ok(decoded) = DeallocateFilter::decode_log(log) { + return Ok(ObjectiveEvents::DeallocateFilter(decoded)); + } + if let Ok(decoded) = DecreaseReserveBalanceFilter::decode_log(log) { + return Ok(ObjectiveEvents::DecreaseReserveBalanceFilter(decoded)); + } + if let Ok(decoded) = DecreaseUserBalanceFilter::decode_log(log) { + return Ok(ObjectiveEvents::DecreaseUserBalanceFilter(decoded)); + } + if let Ok(decoded) = DepositFilter::decode_log(log) { + return Ok(ObjectiveEvents::DepositFilter(decoded)); + } + if let Ok(decoded) = IncreaseReserveBalanceFilter::decode_log(log) { + return Ok(ObjectiveEvents::IncreaseReserveBalanceFilter(decoded)); + } + if let Ok(decoded) = IncreaseUserBalanceFilter::decode_log(log) { + return Ok(ObjectiveEvents::IncreaseUserBalanceFilter(decoded)); + } + if let Ok(decoded) = SwapFilter::decode_log(log) { + return Ok(ObjectiveEvents::SwapFilter(decoded)); + } + if let Ok(decoded) = UpdateProtocolFeeFilter::decode_log(log) { + return Ok(ObjectiveEvents::UpdateProtocolFeeFilter(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData) + } + } + impl ::core::fmt::Display for ObjectiveEvents { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::AllocateFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::ChangeParametersFilter(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::CollectFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::CreatePairFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::CreatePoolFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::DeallocateFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::DecreaseReserveBalanceFilter(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::DecreaseUserBalanceFilter(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::DepositFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::IncreaseReserveBalanceFilter(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::IncreaseUserBalanceFilter(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::SwapFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::UpdateProtocolFeeFilter(element) => { + ::core::fmt::Display::fmt(element, f) + } + } + } + } + impl ::core::convert::From for ObjectiveEvents { + fn from(value: AllocateFilter) -> Self { + Self::AllocateFilter(value) + } + } + impl ::core::convert::From for ObjectiveEvents { + fn from(value: ChangeParametersFilter) -> Self { + Self::ChangeParametersFilter(value) + } + } + impl ::core::convert::From for ObjectiveEvents { + fn from(value: CollectFilter) -> Self { + Self::CollectFilter(value) + } + } + impl ::core::convert::From for ObjectiveEvents { + fn from(value: CreatePairFilter) -> Self { + Self::CreatePairFilter(value) + } + } + impl ::core::convert::From for ObjectiveEvents { + fn from(value: CreatePoolFilter) -> Self { + Self::CreatePoolFilter(value) + } + } + impl ::core::convert::From for ObjectiveEvents { + fn from(value: DeallocateFilter) -> Self { + Self::DeallocateFilter(value) + } + } + impl ::core::convert::From for ObjectiveEvents { + fn from(value: DecreaseReserveBalanceFilter) -> Self { + Self::DecreaseReserveBalanceFilter(value) + } + } + impl ::core::convert::From for ObjectiveEvents { + fn from(value: DecreaseUserBalanceFilter) -> Self { + Self::DecreaseUserBalanceFilter(value) + } + } + impl ::core::convert::From for ObjectiveEvents { + fn from(value: DepositFilter) -> Self { + Self::DepositFilter(value) + } + } + impl ::core::convert::From for ObjectiveEvents { + fn from(value: IncreaseReserveBalanceFilter) -> Self { + Self::IncreaseReserveBalanceFilter(value) + } + } + impl ::core::convert::From for ObjectiveEvents { + fn from(value: IncreaseUserBalanceFilter) -> Self { + Self::IncreaseUserBalanceFilter(value) + } + } + impl ::core::convert::From for ObjectiveEvents { + fn from(value: SwapFilter) -> Self { + Self::SwapFilter(value) + } + } + impl ::core::convert::From for ObjectiveEvents { + fn from(value: UpdateProtocolFeeFilter) -> Self { + Self::UpdateProtocolFeeFilter(value) + } + } + ///Container type for all input parameters for the `REGISTRY` function with signature `REGISTRY()` and selector `0x06433b1b` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "REGISTRY", abi = "REGISTRY()")] + pub struct RegistryCall; + ///Container type for all input parameters for the `VERSION` function with signature `VERSION()` and selector `0xffa1ad74` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "VERSION", abi = "VERSION()")] + pub struct VersionCall; + ///Container type for all input parameters for the `WETH` function with signature `WETH()` and selector `0xad5c4648` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "WETH", abi = "WETH()")] + pub struct WethCall; + ///Container type for all input parameters for the `changeParameters` function with signature `changeParameters(uint64,uint16,uint16,uint16)` and selector `0xaf777855` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall( + name = "changeParameters", + abi = "changeParameters(uint64,uint16,uint16,uint16)" + )] + pub struct ChangeParametersCall { + pub pool_id: u64, + pub priority_fee: u16, + pub fee: u16, + pub jit: u16, + } + ///Container type for all input parameters for the `checkInvariant` function with signature `checkInvariant(uint64,int256,uint256,uint256,uint256)` and selector `0x2f337da5` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall( + name = "checkInvariant", + abi = "checkInvariant(uint64,int256,uint256,uint256,uint256)" + )] + pub struct CheckInvariantCall { + pub pool_id: u64, + pub invariant: ::ethers::core::types::I256, + pub reserve_x: ::ethers::core::types::U256, + pub reserve_y: ::ethers::core::types::U256, + pub timestamp: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `checkPool` function with signature `checkPool(uint64)` and selector `0xa68aaa41` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "checkPool", abi = "checkPool(uint64)")] + pub struct CheckPoolCall { + pub pool_id: u64, + } + ///Container type for all input parameters for the `checkPosition` function with signature `checkPosition(uint64,address,int256)` and selector `0x2cc6641e` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "checkPosition", abi = "checkPosition(uint64,address,int256)")] + pub struct CheckPositionCall { + pub pool_id: u64, + pub owner: ::ethers::core::types::Address, + pub delta: ::ethers::core::types::I256, + } + ///Container type for all input parameters for the `computeMaxInput` function with signature `computeMaxInput(uint64,bool,uint256,uint256)` and selector `0x989bafba` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall( + name = "computeMaxInput", + abi = "computeMaxInput(uint64,bool,uint256,uint256)" + )] + pub struct ComputeMaxInputCall { + pub pool_id: u64, + pub sell_asset: bool, + pub reserve_in: ::ethers::core::types::U256, + pub liquidity: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `computeReservesFromPrice` function with signature `computeReservesFromPrice(uint64,uint256)` and selector `0xc48d887a` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall( + name = "computeReservesFromPrice", + abi = "computeReservesFromPrice(uint64,uint256)" + )] + pub struct ComputeReservesFromPriceCall { + pub pool_id: u64, + pub price: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `deposit` function with signature `deposit()` and selector `0xd0e30db0` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "deposit", abi = "deposit()")] + pub struct DepositCall; + ///Container type for all input parameters for the `draw` function with signature `draw(address,uint256,address)` and selector `0xad24d6a0` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "draw", abi = "draw(address,uint256,address)")] + pub struct DrawCall { + pub token: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + pub to: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `fund` function with signature `fund(address,uint256)` and selector `0x7b1837de` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "fund", abi = "fund(address,uint256)")] + pub struct FundCall { + pub token: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `getAmountOut` function with signature `getAmountOut(uint64,bool,uint256)` and selector `0x7dae4890` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getAmountOut", abi = "getAmountOut(uint64,bool,uint256)")] + pub struct GetAmountOutCall { + pub pool_id: u64, + pub sell_asset: bool, + pub amount_in: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `getBalance` function with signature `getBalance(address,address)` and selector `0xd4fac45d` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getBalance", abi = "getBalance(address,address)")] + pub struct GetBalanceCall { + pub owner: ::ethers::core::types::Address, + pub token: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `getLiquidityDeltas` function with signature `getLiquidityDeltas(uint64,int128)` and selector `0x8992f20a` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getLiquidityDeltas", abi = "getLiquidityDeltas(uint64,int128)")] + pub struct GetLiquidityDeltasCall { + pub pool_id: u64, + pub delta_liquidity: i128, + } + ///Container type for all input parameters for the `getMaxLiquidity` function with signature `getMaxLiquidity(uint64,uint256,uint256)` and selector `0xd6b7dec5` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getMaxLiquidity", abi = "getMaxLiquidity(uint64,uint256,uint256)")] + pub struct GetMaxLiquidityCall { + pub pool_id: u64, + pub delta_asset: ::ethers::core::types::U256, + pub delta_quote: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `getNetBalance` function with signature `getNetBalance(address)` and selector `0x4dc68a90` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getNetBalance", abi = "getNetBalance(address)")] + pub struct GetNetBalanceCall { + pub token: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `getPairId` function with signature `getPairId(address,address)` and selector `0x3f92a339` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getPairId", abi = "getPairId(address,address)")] + pub struct GetPairIdCall { + pub asset: ::ethers::core::types::Address, + pub quote: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `getPairNonce` function with signature `getPairNonce()` and selector `0x078888d6` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getPairNonce", abi = "getPairNonce()")] + pub struct GetPairNonceCall; + ///Container type for all input parameters for the `getPoolNonce` function with signature `getPoolNonce(uint24)` and selector `0xa5cd8a49` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getPoolNonce", abi = "getPoolNonce(uint24)")] + pub struct GetPoolNonceCall { + pub pair_nonce: u32, + } + ///Container type for all input parameters for the `getPoolReserves` function with signature `getPoolReserves(uint64)` and selector `0x2afb9df8` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getPoolReserves", abi = "getPoolReserves(uint64)")] + pub struct GetPoolReservesCall { + pub pool_id: u64, + } + ///Container type for all input parameters for the `getReserve` function with signature `getReserve(address)` and selector `0xc9a396e9` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getReserve", abi = "getReserve(address)")] + pub struct GetReserveCall { + pub token: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `getVirtualPrice` function with signature `getVirtualPrice(uint64)` and selector `0x61b7ea6a` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getVirtualPrice", abi = "getVirtualPrice(uint64)")] + pub struct GetVirtualPriceCall { + pub pool_id: u64, + } + ///Container type for all input parameters for the `getVirtualReservesPerLiquidity` function with signature `getVirtualReservesPerLiquidity(uint64)` and selector `0x1a4b905b` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall( + name = "getVirtualReservesPerLiquidity", + abi = "getVirtualReservesPerLiquidity(uint64)" + )] + pub struct GetVirtualReservesPerLiquidityCall { + pub pool_id: u64, + } + ///Container type for all input parameters for the `multiprocess` function with signature `multiprocess(bytes)` and selector `0xa0fdf413` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "multiprocess", abi = "multiprocess(bytes)")] + pub struct MultiprocessCall { + pub data: ::ethers::core::types::Bytes, + } + ///Container type for all input parameters for the `pairs` function with signature `pairs(uint24)` and selector `0x5e47663c` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "pairs", abi = "pairs(uint24)")] + pub struct PairsCall { + pub pair_id: u32, + } + ///Container type for all input parameters for the `pools` function with signature `pools(uint64)` and selector `0x89a5f084` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "pools", abi = "pools(uint64)")] + pub struct PoolsCall { + pub pool_id: u64, + } + ///Container type for all input parameters for the `positions` function with signature `positions(address,uint64)` and selector `0xb68513ea` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "positions", abi = "positions(address,uint64)")] + pub struct PositionsCall { + pub owner: ::ethers::core::types::Address, + pub pool_id: u64, + } + ///Container type for all input parameters for the `setProtocolFee` function with signature `setProtocolFee(uint256)` and selector `0x787dce3d` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "setProtocolFee", abi = "setProtocolFee(uint256)")] + pub struct SetProtocolFeeCall { + pub fee: ::ethers::core::types::U256, + } + ///Container type for all of the contract's call + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum ObjectiveCalls { + Registry(RegistryCall), + Version(VersionCall), + Weth(WethCall), + ChangeParameters(ChangeParametersCall), + CheckInvariant(CheckInvariantCall), + CheckPool(CheckPoolCall), + CheckPosition(CheckPositionCall), + ComputeMaxInput(ComputeMaxInputCall), + ComputeReservesFromPrice(ComputeReservesFromPriceCall), + Deposit(DepositCall), + Draw(DrawCall), + Fund(FundCall), + GetAmountOut(GetAmountOutCall), + GetBalance(GetBalanceCall), + GetLiquidityDeltas(GetLiquidityDeltasCall), + GetMaxLiquidity(GetMaxLiquidityCall), + GetNetBalance(GetNetBalanceCall), + GetPairId(GetPairIdCall), + GetPairNonce(GetPairNonceCall), + GetPoolNonce(GetPoolNonceCall), + GetPoolReserves(GetPoolReservesCall), + GetReserve(GetReserveCall), + GetVirtualPrice(GetVirtualPriceCall), + GetVirtualReservesPerLiquidity(GetVirtualReservesPerLiquidityCall), + Multiprocess(MultiprocessCall), + Pairs(PairsCall), + Pools(PoolsCall), + Positions(PositionsCall), + SetProtocolFee(SetProtocolFeeCall), + } + impl ::ethers::core::abi::AbiDecode for ObjectiveCalls { + fn decode( + data: impl AsRef<[u8]>, + ) -> ::core::result::Result { + let data = data.as_ref(); + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Registry(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Version(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Weth(decoded)); + } + if let Ok(decoded) + = ::decode( + data, + ) { + return Ok(Self::ChangeParameters(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::CheckInvariant(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::CheckPool(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::CheckPosition(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::ComputeMaxInput(decoded)); + } + if let Ok(decoded) + = ::decode( + data, + ) { + return Ok(Self::ComputeReservesFromPrice(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Deposit(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Draw(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Fund(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetAmountOut(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetBalance(decoded)); + } + if let Ok(decoded) + = ::decode( + data, + ) { + return Ok(Self::GetLiquidityDeltas(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetMaxLiquidity(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetNetBalance(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetPairId(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetPairNonce(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetPoolNonce(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetPoolReserves(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetReserve(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetVirtualPrice(decoded)); + } + if let Ok(decoded) + = ::decode( + data, + ) { + return Ok(Self::GetVirtualReservesPerLiquidity(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Multiprocess(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Pairs(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Pools(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Positions(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::SetProtocolFee(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData.into()) + } + } + impl ::ethers::core::abi::AbiEncode for ObjectiveCalls { + fn encode(self) -> Vec { + match self { + Self::Registry(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Version(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Weth(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::ChangeParameters(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::CheckInvariant(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::CheckPool(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::CheckPosition(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::ComputeMaxInput(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::ComputeReservesFromPrice(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Deposit(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Draw(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Fund(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::GetAmountOut(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetBalance(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetLiquidityDeltas(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetMaxLiquidity(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetNetBalance(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetPairId(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetPairNonce(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetPoolNonce(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetPoolReserves(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetReserve(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetVirtualPrice(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetVirtualReservesPerLiquidity(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Multiprocess(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Pairs(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Pools(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Positions(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::SetProtocolFee(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + } + } + } + impl ::core::fmt::Display for ObjectiveCalls { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::Registry(element) => ::core::fmt::Display::fmt(element, f), + Self::Version(element) => ::core::fmt::Display::fmt(element, f), + Self::Weth(element) => ::core::fmt::Display::fmt(element, f), + Self::ChangeParameters(element) => ::core::fmt::Display::fmt(element, f), + Self::CheckInvariant(element) => ::core::fmt::Display::fmt(element, f), + Self::CheckPool(element) => ::core::fmt::Display::fmt(element, f), + Self::CheckPosition(element) => ::core::fmt::Display::fmt(element, f), + Self::ComputeMaxInput(element) => ::core::fmt::Display::fmt(element, f), + Self::ComputeReservesFromPrice(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::Deposit(element) => ::core::fmt::Display::fmt(element, f), + Self::Draw(element) => ::core::fmt::Display::fmt(element, f), + Self::Fund(element) => ::core::fmt::Display::fmt(element, f), + Self::GetAmountOut(element) => ::core::fmt::Display::fmt(element, f), + Self::GetBalance(element) => ::core::fmt::Display::fmt(element, f), + Self::GetLiquidityDeltas(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::GetMaxLiquidity(element) => ::core::fmt::Display::fmt(element, f), + Self::GetNetBalance(element) => ::core::fmt::Display::fmt(element, f), + Self::GetPairId(element) => ::core::fmt::Display::fmt(element, f), + Self::GetPairNonce(element) => ::core::fmt::Display::fmt(element, f), + Self::GetPoolNonce(element) => ::core::fmt::Display::fmt(element, f), + Self::GetPoolReserves(element) => ::core::fmt::Display::fmt(element, f), + Self::GetReserve(element) => ::core::fmt::Display::fmt(element, f), + Self::GetVirtualPrice(element) => ::core::fmt::Display::fmt(element, f), + Self::GetVirtualReservesPerLiquidity(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::Multiprocess(element) => ::core::fmt::Display::fmt(element, f), + Self::Pairs(element) => ::core::fmt::Display::fmt(element, f), + Self::Pools(element) => ::core::fmt::Display::fmt(element, f), + Self::Positions(element) => ::core::fmt::Display::fmt(element, f), + Self::SetProtocolFee(element) => ::core::fmt::Display::fmt(element, f), + } + } + } + impl ::core::convert::From for ObjectiveCalls { + fn from(value: RegistryCall) -> Self { + Self::Registry(value) + } + } + impl ::core::convert::From for ObjectiveCalls { + fn from(value: VersionCall) -> Self { + Self::Version(value) + } + } + impl ::core::convert::From for ObjectiveCalls { + fn from(value: WethCall) -> Self { + Self::Weth(value) + } + } + impl ::core::convert::From for ObjectiveCalls { + fn from(value: ChangeParametersCall) -> Self { + Self::ChangeParameters(value) + } + } + impl ::core::convert::From for ObjectiveCalls { + fn from(value: CheckInvariantCall) -> Self { + Self::CheckInvariant(value) + } + } + impl ::core::convert::From for ObjectiveCalls { + fn from(value: CheckPoolCall) -> Self { + Self::CheckPool(value) + } + } + impl ::core::convert::From for ObjectiveCalls { + fn from(value: CheckPositionCall) -> Self { + Self::CheckPosition(value) + } + } + impl ::core::convert::From for ObjectiveCalls { + fn from(value: ComputeMaxInputCall) -> Self { + Self::ComputeMaxInput(value) + } + } + impl ::core::convert::From for ObjectiveCalls { + fn from(value: ComputeReservesFromPriceCall) -> Self { + Self::ComputeReservesFromPrice(value) + } + } + impl ::core::convert::From for ObjectiveCalls { + fn from(value: DepositCall) -> Self { + Self::Deposit(value) + } + } + impl ::core::convert::From for ObjectiveCalls { + fn from(value: DrawCall) -> Self { + Self::Draw(value) + } + } + impl ::core::convert::From for ObjectiveCalls { + fn from(value: FundCall) -> Self { + Self::Fund(value) + } + } + impl ::core::convert::From for ObjectiveCalls { + fn from(value: GetAmountOutCall) -> Self { + Self::GetAmountOut(value) + } + } + impl ::core::convert::From for ObjectiveCalls { + fn from(value: GetBalanceCall) -> Self { + Self::GetBalance(value) + } + } + impl ::core::convert::From for ObjectiveCalls { + fn from(value: GetLiquidityDeltasCall) -> Self { + Self::GetLiquidityDeltas(value) + } + } + impl ::core::convert::From for ObjectiveCalls { + fn from(value: GetMaxLiquidityCall) -> Self { + Self::GetMaxLiquidity(value) + } + } + impl ::core::convert::From for ObjectiveCalls { + fn from(value: GetNetBalanceCall) -> Self { + Self::GetNetBalance(value) + } + } + impl ::core::convert::From for ObjectiveCalls { + fn from(value: GetPairIdCall) -> Self { + Self::GetPairId(value) + } + } + impl ::core::convert::From for ObjectiveCalls { + fn from(value: GetPairNonceCall) -> Self { + Self::GetPairNonce(value) + } + } + impl ::core::convert::From for ObjectiveCalls { + fn from(value: GetPoolNonceCall) -> Self { + Self::GetPoolNonce(value) + } + } + impl ::core::convert::From for ObjectiveCalls { + fn from(value: GetPoolReservesCall) -> Self { + Self::GetPoolReserves(value) + } + } + impl ::core::convert::From for ObjectiveCalls { + fn from(value: GetReserveCall) -> Self { + Self::GetReserve(value) + } + } + impl ::core::convert::From for ObjectiveCalls { + fn from(value: GetVirtualPriceCall) -> Self { + Self::GetVirtualPrice(value) + } + } + impl ::core::convert::From for ObjectiveCalls { + fn from(value: GetVirtualReservesPerLiquidityCall) -> Self { + Self::GetVirtualReservesPerLiquidity(value) + } + } + impl ::core::convert::From for ObjectiveCalls { + fn from(value: MultiprocessCall) -> Self { + Self::Multiprocess(value) + } + } + impl ::core::convert::From for ObjectiveCalls { + fn from(value: PairsCall) -> Self { + Self::Pairs(value) + } + } + impl ::core::convert::From for ObjectiveCalls { + fn from(value: PoolsCall) -> Self { + Self::Pools(value) + } + } + impl ::core::convert::From for ObjectiveCalls { + fn from(value: PositionsCall) -> Self { + Self::Positions(value) + } + } + impl ::core::convert::From for ObjectiveCalls { + fn from(value: SetProtocolFeeCall) -> Self { + Self::SetProtocolFee(value) + } + } + ///Container type for all return fields from the `REGISTRY` function with signature `REGISTRY()` and selector `0x06433b1b` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct RegistryReturn(pub ::ethers::core::types::Address); + ///Container type for all return fields from the `VERSION` function with signature `VERSION()` and selector `0xffa1ad74` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct VersionReturn(pub ::std::string::String); + ///Container type for all return fields from the `WETH` function with signature `WETH()` and selector `0xad5c4648` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct WethReturn(pub ::ethers::core::types::Address); + ///Container type for all return fields from the `checkInvariant` function with signature `checkInvariant(uint64,int256,uint256,uint256,uint256)` and selector `0x2f337da5` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct CheckInvariantReturn { + pub success: bool, + pub next_invariant: ::ethers::core::types::I256, + } + ///Container type for all return fields from the `checkPool` function with signature `checkPool(uint64)` and selector `0xa68aaa41` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct CheckPoolReturn(pub bool); + ///Container type for all return fields from the `checkPosition` function with signature `checkPosition(uint64,address,int256)` and selector `0x2cc6641e` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct CheckPositionReturn(pub bool); + ///Container type for all return fields from the `computeMaxInput` function with signature `computeMaxInput(uint64,bool,uint256,uint256)` and selector `0x989bafba` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct ComputeMaxInputReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `computeReservesFromPrice` function with signature `computeReservesFromPrice(uint64,uint256)` and selector `0xc48d887a` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct ComputeReservesFromPriceReturn { + pub reserve_x: ::ethers::core::types::U256, + pub reserve_y: ::ethers::core::types::U256, + } + ///Container type for all return fields from the `getAmountOut` function with signature `getAmountOut(uint64,bool,uint256)` and selector `0x7dae4890` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetAmountOutReturn { + pub output: ::ethers::core::types::U256, + } + ///Container type for all return fields from the `getBalance` function with signature `getBalance(address,address)` and selector `0xd4fac45d` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetBalanceReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `getLiquidityDeltas` function with signature `getLiquidityDeltas(uint64,int128)` and selector `0x8992f20a` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetLiquidityDeltasReturn { + pub delta_asset: u128, + pub delta_quote: u128, + } + ///Container type for all return fields from the `getMaxLiquidity` function with signature `getMaxLiquidity(uint64,uint256,uint256)` and selector `0xd6b7dec5` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetMaxLiquidityReturn { + pub delta_liquidity: u128, + } + ///Container type for all return fields from the `getNetBalance` function with signature `getNetBalance(address)` and selector `0x4dc68a90` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetNetBalanceReturn(pub ::ethers::core::types::I256); + ///Container type for all return fields from the `getPairId` function with signature `getPairId(address,address)` and selector `0x3f92a339` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetPairIdReturn { + pub pair_id: u32, + } + ///Container type for all return fields from the `getPairNonce` function with signature `getPairNonce()` and selector `0x078888d6` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetPairNonceReturn(pub u32); + ///Container type for all return fields from the `getPoolNonce` function with signature `getPoolNonce(uint24)` and selector `0xa5cd8a49` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetPoolNonceReturn(pub u32); + ///Container type for all return fields from the `getPoolReserves` function with signature `getPoolReserves(uint64)` and selector `0x2afb9df8` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetPoolReservesReturn { + pub delta_asset: ::ethers::core::types::U256, + pub delta_quote: ::ethers::core::types::U256, + } + ///Container type for all return fields from the `getReserve` function with signature `getReserve(address)` and selector `0xc9a396e9` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetReserveReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `getVirtualPrice` function with signature `getVirtualPrice(uint64)` and selector `0x61b7ea6a` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetVirtualPriceReturn { + pub price: ::ethers::core::types::U256, + } + ///Container type for all return fields from the `getVirtualReservesPerLiquidity` function with signature `getVirtualReservesPerLiquidity(uint64)` and selector `0x1a4b905b` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetVirtualReservesPerLiquidityReturn { + pub delta_asset: u128, + pub delta_quote: u128, + } + ///Container type for all return fields from the `pairs` function with signature `pairs(uint24)` and selector `0x5e47663c` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct PairsReturn { + pub token_asset: ::ethers::core::types::Address, + pub decimals_asset: u8, + pub token_quote: ::ethers::core::types::Address, + pub decimals_quote: u8, + } + ///Container type for all return fields from the `pools` function with signature `pools(uint64)` and selector `0x89a5f084` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct PoolsReturn { + pub virtual_x: u128, + pub virtual_y: u128, + pub liquidity: u128, + pub last_timestamp: u32, + pub controller: ::ethers::core::types::Address, + pub invariant_growth_global: ::ethers::core::types::U256, + pub fee_growth_global_asset: ::ethers::core::types::U256, + pub fee_growth_global_quote: ::ethers::core::types::U256, + pub p8: PortfolioCurve, + pub p9: PortfolioPair, + } + ///Container type for all return fields from the `positions` function with signature `positions(address,uint64)` and selector `0xb68513ea` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct PositionsReturn { + pub free_liquidity: u128, + pub last_timestamp: u32, + pub invariant_growth_last: ::ethers::core::types::U256, + pub fee_growth_asset_last: ::ethers::core::types::U256, + pub fee_growth_quote_last: ::ethers::core::types::U256, + pub tokens_owed_asset: u128, + pub tokens_owed_quote: u128, + pub invariant_owed: u128, + } +} diff --git a/crates/bindings/src/portfolio_lib.rs b/crates/bindings/src/portfolio_lib.rs new file mode 100644 index 00000000..127518ec --- /dev/null +++ b/crates/bindings/src/portfolio_lib.rs @@ -0,0 +1,62 @@ +pub use portfolio_lib::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod portfolio_lib { + #[rustfmt::skip] + const __ABI: &str = "[]"; + ///The parsed JSON ABI of the contract. + pub static PORTFOLIOLIB_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| + ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); + pub struct PortfolioLib(::ethers::contract::Contract); + impl ::core::clone::Clone for PortfolioLib { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for PortfolioLib { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for PortfolioLib { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for PortfolioLib { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(stringify!(PortfolioLib)).field(&self.address()).finish() + } + } + impl PortfolioLib { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + PORTFOLIOLIB_ABI.clone(), + client, + ), + ) + } + } + impl From<::ethers::contract::Contract> + for PortfolioLib { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } +} diff --git a/crates/bindings/src/portfolio_like.rs b/crates/bindings/src/portfolio_like.rs new file mode 100644 index 00000000..2b92bfb2 --- /dev/null +++ b/crates/bindings/src/portfolio_like.rs @@ -0,0 +1,162 @@ +pub use portfolio_like::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod portfolio_like { + #[rustfmt::skip] + const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"draw\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"setProtocolFee\",\"outputs\":[]}]"; + ///The parsed JSON ABI of the contract. + pub static PORTFOLIOLIKE_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| + ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); + pub struct PortfolioLike(::ethers::contract::Contract); + impl ::core::clone::Clone for PortfolioLike { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for PortfolioLike { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for PortfolioLike { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for PortfolioLike { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(stringify!(PortfolioLike)).field(&self.address()).finish() + } + } + impl PortfolioLike { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + PORTFOLIOLIKE_ABI.clone(), + client, + ), + ) + } + ///Calls the contract's `draw` (0xad24d6a0) function + pub fn draw( + &self, + p0: ::ethers::core::types::Address, + p1: ::ethers::core::types::U256, + p2: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([173, 36, 214, 160], (p0, p1, p2)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `setProtocolFee` (0x787dce3d) function + pub fn set_protocol_fee( + &self, + p0: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([120, 125, 206, 61], p0) + .expect("method not found (this should never happen)") + } + } + impl From<::ethers::contract::Contract> + for PortfolioLike { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } + ///Container type for all input parameters for the `draw` function with signature `draw(address,uint256,address)` and selector `0xad24d6a0` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "draw", abi = "draw(address,uint256,address)")] + pub struct DrawCall( + pub ::ethers::core::types::Address, + pub ::ethers::core::types::U256, + pub ::ethers::core::types::Address, + ); + ///Container type for all input parameters for the `setProtocolFee` function with signature `setProtocolFee(uint256)` and selector `0x787dce3d` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "setProtocolFee", abi = "setProtocolFee(uint256)")] + pub struct SetProtocolFeeCall(pub ::ethers::core::types::U256); + ///Container type for all of the contract's call + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum PortfolioLikeCalls { + Draw(DrawCall), + SetProtocolFee(SetProtocolFeeCall), + } + impl ::ethers::core::abi::AbiDecode for PortfolioLikeCalls { + fn decode( + data: impl AsRef<[u8]>, + ) -> ::core::result::Result { + let data = data.as_ref(); + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Draw(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::SetProtocolFee(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData.into()) + } + } + impl ::ethers::core::abi::AbiEncode for PortfolioLikeCalls { + fn encode(self) -> Vec { + match self { + Self::Draw(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::SetProtocolFee(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + } + } + } + impl ::core::fmt::Display for PortfolioLikeCalls { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::Draw(element) => ::core::fmt::Display::fmt(element, f), + Self::SetProtocolFee(element) => ::core::fmt::Display::fmt(element, f), + } + } + } + impl ::core::convert::From for PortfolioLikeCalls { + fn from(value: DrawCall) -> Self { + Self::Draw(value) + } + } + impl ::core::convert::From for PortfolioLikeCalls { + fn from(value: SetProtocolFeeCall) -> Self { + Self::SetProtocolFee(value) + } + } +} diff --git a/crates/bindings/src/portfolio_virtual.rs b/crates/bindings/src/portfolio_virtual.rs new file mode 100644 index 00000000..1cfd01ee --- /dev/null +++ b/crates/bindings/src/portfolio_virtual.rs @@ -0,0 +1,3152 @@ +pub use portfolio_virtual::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod portfolio_virtual { + pub use super::super::shared_types::*; + #[rustfmt::skip] + const __ABI: &str = "[{\"inputs\":[],\"type\":\"error\",\"name\":\"DrawBalance\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"EtherTransferFail\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"delta\",\"type\":\"uint256\",\"components\":[]}],\"type\":\"error\",\"name\":\"InsufficientReserve\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"InvalidBalance\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\",\"components\":[]}],\"type\":\"error\",\"name\":\"InvalidBytesLength\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\",\"components\":[]}],\"type\":\"error\",\"name\":\"InvalidDecimals\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"fee\",\"type\":\"uint16\",\"components\":[]}],\"type\":\"error\",\"name\":\"InvalidFee\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"InvalidInstruction\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"prev\",\"type\":\"int256\",\"components\":[]},{\"internalType\":\"int256\",\"name\":\"next\",\"type\":\"int256\",\"components\":[]}],\"type\":\"error\",\"name\":\"InvalidInvariant\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"pointer\",\"type\":\"uint256\",\"components\":[]}],\"type\":\"error\",\"name\":\"InvalidJump\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"InvalidPair\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"InvalidReentrancy\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"InvalidSettlement\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"InvalidTransfer\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"distance\",\"type\":\"uint256\",\"components\":[]}],\"type\":\"error\",\"name\":\"JitLiquidity\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"int256\",\"name\":\"net\",\"type\":\"int256\",\"components\":[]}],\"type\":\"error\",\"name\":\"NegativeBalance\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"type\":\"error\",\"name\":\"NonExistentPool\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"type\":\"error\",\"name\":\"NonExistentPosition\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"NotController\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"pairId\",\"type\":\"uint24\",\"components\":[]}],\"type\":\"error\",\"name\":\"PairExists\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"PoolExpired\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"SameTokenError\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"ZeroAmounts\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"ZeroInput\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"ZeroLiquidity\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"ZeroOutput\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"ZeroPrice\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"ZeroValue\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaLiquidity\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Allocate\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint16\",\"name\":\"priorityFee\",\"type\":\"uint16\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint16\",\"name\":\"fee\",\"type\":\"uint16\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint16\",\"name\":\"jit\",\"type\":\"uint16\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"ChangeParameters\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"feeAssetDec\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"feeQuoteDec\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true}],\"type\":\"event\",\"name\":\"Collect\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"pairId\",\"type\":\"uint24\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint8\",\"name\":\"decimalsAsset\",\"type\":\"uint8\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint8\",\"name\":\"decimalsQuote\",\"type\":\"uint8\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"CreatePair\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"bool\",\"name\":\"isMutable\",\"type\":\"bool\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"CreatePool\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaLiquidity\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Deallocate\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"DecreaseReserveBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"DecreaseUserBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Deposit\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"IncreaseReserveBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"IncreaseUserBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"sellAsset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"input\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"tokenOut\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"output\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"feeAmountDec\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"int256\",\"name\":\"invariantWad\",\"type\":\"int256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Swap\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"prevFee\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"nextFee\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"UpdateProtocolFee\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\",\"name\":\"VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"WETH\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"__account__\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"settled\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"priorityFee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"fee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"jit\",\"type\":\"uint16\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"changeParameters\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"int256\",\"name\":\"invariant\",\"type\":\"int256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"reserveX\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"reserveY\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"checkInvariant\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\",\"components\":[]},{\"internalType\":\"int256\",\"name\":\"nextInvariant\",\"type\":\"int256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"checkPool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"int256\",\"name\":\"delta\",\"type\":\"int256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"checkPosition\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"bool\",\"name\":\"sellAsset\",\"type\":\"bool\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"reserveIn\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"computeMaxInput\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"computeReservesFromPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"reserveX\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"reserveY\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"deposit\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"draw\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"fund\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"bool\",\"name\":\"sellAsset\",\"type\":\"bool\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getAmountOut\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"output\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"int128\",\"name\":\"deltaLiquidity\",\"type\":\"int128\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getLiquidityDeltas\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"deltaAsset\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"deltaQuote\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getMaxLiquidity\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"deltaLiquidity\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getNetBalance\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPairId\",\"outputs\":[{\"internalType\":\"uint24\",\"name\":\"\",\"type\":\"uint24\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPairNonce\",\"outputs\":[{\"internalType\":\"uint24\",\"name\":\"\",\"type\":\"uint24\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"\",\"type\":\"uint24\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPoolNonce\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPoolReserves\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getReserve\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getVirtualPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getVirtualReservesPerLiquidity\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"deltaAsset\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"deltaQuote\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\",\"components\":[]}],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"multiprocess\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"\",\"type\":\"uint24\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"pairs\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"tokenAsset\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsAsset\",\"type\":\"uint8\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"tokenQuote\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsQuote\",\"type\":\"uint8\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"pools\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"virtualX\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"virtualY\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"liquidity\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint32\",\"name\":\"lastTimestamp\",\"type\":\"uint32\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"controller\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"invariantGrowthGlobal\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthGlobalAsset\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthGlobalQuote\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"struct PortfolioCurve\",\"name\":\"params\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"uint128\",\"name\":\"maxPrice\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"jit\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"fee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"duration\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"volatility\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"priorityFee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint32\",\"name\":\"createdAt\",\"type\":\"uint32\",\"components\":[]},{\"internalType\":\"bool\",\"name\":\"perpetual\",\"type\":\"bool\",\"components\":[]}]},{\"internalType\":\"struct PortfolioPair\",\"name\":\"pair\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"address\",\"name\":\"tokenAsset\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsAsset\",\"type\":\"uint8\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"tokenQuote\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsQuote\",\"type\":\"uint8\",\"components\":[]}]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"positions\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"freeLiquidity\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint32\",\"name\":\"lastTimestamp\",\"type\":\"uint32\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"invariantGrowthLast\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthAssetLast\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthQuoteLast\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"tokensOwedAsset\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"tokensOwedQuote\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"invariantOwed\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"setProtocolFee\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"payable\",\"type\":\"receive\",\"outputs\":[]}]"; + ///The parsed JSON ABI of the contract. + pub static PORTFOLIOVIRTUAL_ABI: ::ethers::contract::Lazy< + ::ethers::core::abi::Abi, + > = ::ethers::contract::Lazy::new(|| { + ::ethers::core::utils::__serde_json::from_str(__ABI) + .expect("ABI is always valid") + }); + pub struct PortfolioVirtual(::ethers::contract::Contract); + impl ::core::clone::Clone for PortfolioVirtual { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for PortfolioVirtual { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for PortfolioVirtual { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for PortfolioVirtual { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(stringify!(PortfolioVirtual)).field(&self.address()).finish() + } + } + impl PortfolioVirtual { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + PORTFOLIOVIRTUAL_ABI.clone(), + client, + ), + ) + } + ///Calls the contract's `REGISTRY` (0x06433b1b) function + pub fn registry( + &self, + ) -> ::ethers::contract::builders::ContractCall< + M, + ::ethers::core::types::Address, + > { + self.0 + .method_hash([6, 67, 59, 27], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `VERSION` (0xffa1ad74) function + pub fn version( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([255, 161, 173, 116], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `WETH` (0xad5c4648) function + pub fn weth( + &self, + ) -> ::ethers::contract::builders::ContractCall< + M, + ::ethers::core::types::Address, + > { + self.0 + .method_hash([173, 92, 70, 72], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `__account__` (0xda31ee54) function + pub fn account(&self) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([218, 49, 238, 84], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `changeParameters` (0xaf777855) function + pub fn change_parameters( + &self, + pool_id: u64, + priority_fee: u16, + fee: u16, + jit: u16, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([175, 119, 120, 85], (pool_id, priority_fee, fee, jit)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `checkInvariant` (0x2f337da5) function + pub fn check_invariant( + &self, + pool_id: u64, + invariant: ::ethers::core::types::I256, + reserve_x: ::ethers::core::types::U256, + reserve_y: ::ethers::core::types::U256, + timestamp: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall< + M, + (bool, ::ethers::core::types::I256), + > { + self.0 + .method_hash( + [47, 51, 125, 165], + (pool_id, invariant, reserve_x, reserve_y, timestamp), + ) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `checkPool` (0xa68aaa41) function + pub fn check_pool( + &self, + pool_id: u64, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([166, 138, 170, 65], pool_id) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `checkPosition` (0x2cc6641e) function + pub fn check_position( + &self, + pool_id: u64, + owner: ::ethers::core::types::Address, + delta: ::ethers::core::types::I256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([44, 198, 100, 30], (pool_id, owner, delta)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `computeMaxInput` (0x989bafba) function + pub fn compute_max_input( + &self, + pool_id: u64, + sell_asset: bool, + reserve_in: ::ethers::core::types::U256, + liquidity: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash( + [152, 155, 175, 186], + (pool_id, sell_asset, reserve_in, liquidity), + ) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `computeReservesFromPrice` (0xc48d887a) function + pub fn compute_reserves_from_price( + &self, + pool_id: u64, + price: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall< + M, + (::ethers::core::types::U256, ::ethers::core::types::U256), + > { + self.0 + .method_hash([196, 141, 136, 122], (pool_id, price)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `deposit` (0xd0e30db0) function + pub fn deposit(&self) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([208, 227, 13, 176], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `draw` (0xad24d6a0) function + pub fn draw( + &self, + token: ::ethers::core::types::Address, + amount: ::ethers::core::types::U256, + to: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([173, 36, 214, 160], (token, amount, to)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `fund` (0x7b1837de) function + pub fn fund( + &self, + token: ::ethers::core::types::Address, + amount: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([123, 24, 55, 222], (token, amount)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getAmountOut` (0x7dae4890) function + pub fn get_amount_out( + &self, + pool_id: u64, + sell_asset: bool, + amount_in: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([125, 174, 72, 144], (pool_id, sell_asset, amount_in)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getBalance` (0xd4fac45d) function + pub fn get_balance( + &self, + owner: ::ethers::core::types::Address, + token: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([212, 250, 196, 93], (owner, token)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getLiquidityDeltas` (0x8992f20a) function + pub fn get_liquidity_deltas( + &self, + pool_id: u64, + delta_liquidity: i128, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([137, 146, 242, 10], (pool_id, delta_liquidity)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getMaxLiquidity` (0xd6b7dec5) function + pub fn get_max_liquidity( + &self, + pool_id: u64, + amount_0: ::ethers::core::types::U256, + amount_1: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([214, 183, 222, 197], (pool_id, amount_0, amount_1)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getNetBalance` (0x4dc68a90) function + pub fn get_net_balance( + &self, + token: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([77, 198, 138, 144], token) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getPairId` (0x3f92a339) function + pub fn get_pair_id( + &self, + p0: ::ethers::core::types::Address, + p1: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([63, 146, 163, 57], (p0, p1)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getPairNonce` (0x078888d6) function + pub fn get_pair_nonce( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([7, 136, 136, 214], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getPoolNonce` (0xa5cd8a49) function + pub fn get_pool_nonce( + &self, + p0: u32, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([165, 205, 138, 73], p0) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getPoolReserves` (0x2afb9df8) function + pub fn get_pool_reserves( + &self, + pool_id: u64, + ) -> ::ethers::contract::builders::ContractCall< + M, + (::ethers::core::types::U256, ::ethers::core::types::U256), + > { + self.0 + .method_hash([42, 251, 157, 248], pool_id) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getReserve` (0xc9a396e9) function + pub fn get_reserve( + &self, + token: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([201, 163, 150, 233], token) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getVirtualPrice` (0x61b7ea6a) function + pub fn get_virtual_price( + &self, + pool_id: u64, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([97, 183, 234, 106], pool_id) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getVirtualReservesPerLiquidity` (0x1a4b905b) function + pub fn get_virtual_reserves_per_liquidity( + &self, + pool_id: u64, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([26, 75, 144, 91], pool_id) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `multiprocess` (0xa0fdf413) function + pub fn multiprocess( + &self, + data: ::ethers::core::types::Bytes, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([160, 253, 244, 19], data) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `pairs` (0x5e47663c) function + pub fn pairs( + &self, + p0: u32, + ) -> ::ethers::contract::builders::ContractCall< + M, + (::ethers::core::types::Address, u8, ::ethers::core::types::Address, u8), + > { + self.0 + .method_hash([94, 71, 102, 60], p0) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `pools` (0x89a5f084) function + pub fn pools( + &self, + p0: u64, + ) -> ::ethers::contract::builders::ContractCall< + M, + ( + u128, + u128, + u128, + u32, + ::ethers::core::types::Address, + ::ethers::core::types::U256, + ::ethers::core::types::U256, + ::ethers::core::types::U256, + PortfolioCurve, + PortfolioPair, + ), + > { + self.0 + .method_hash([137, 165, 240, 132], p0) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `positions` (0xb68513ea) function + pub fn positions( + &self, + p0: ::ethers::core::types::Address, + p1: u64, + ) -> ::ethers::contract::builders::ContractCall< + M, + ( + u128, + u32, + ::ethers::core::types::U256, + ::ethers::core::types::U256, + ::ethers::core::types::U256, + u128, + u128, + u128, + ), + > { + self.0 + .method_hash([182, 133, 19, 234], (p0, p1)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `setProtocolFee` (0x787dce3d) function + pub fn set_protocol_fee( + &self, + fee: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([120, 125, 206, 61], fee) + .expect("method not found (this should never happen)") + } + ///Gets the contract's `Allocate` event + pub fn allocate_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + AllocateFilter, + > { + self.0.event() + } + ///Gets the contract's `ChangeParameters` event + pub fn change_parameters_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + ChangeParametersFilter, + > { + self.0.event() + } + ///Gets the contract's `Collect` event + pub fn collect_filter( + &self, + ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, CollectFilter> { + self.0.event() + } + ///Gets the contract's `CreatePair` event + pub fn create_pair_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + CreatePairFilter, + > { + self.0.event() + } + ///Gets the contract's `CreatePool` event + pub fn create_pool_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + CreatePoolFilter, + > { + self.0.event() + } + ///Gets the contract's `Deallocate` event + pub fn deallocate_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + DeallocateFilter, + > { + self.0.event() + } + ///Gets the contract's `DecreaseReserveBalance` event + pub fn decrease_reserve_balance_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + DecreaseReserveBalanceFilter, + > { + self.0.event() + } + ///Gets the contract's `DecreaseUserBalance` event + pub fn decrease_user_balance_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + DecreaseUserBalanceFilter, + > { + self.0.event() + } + ///Gets the contract's `Deposit` event + pub fn deposit_filter( + &self, + ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, DepositFilter> { + self.0.event() + } + ///Gets the contract's `IncreaseReserveBalance` event + pub fn increase_reserve_balance_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + IncreaseReserveBalanceFilter, + > { + self.0.event() + } + ///Gets the contract's `IncreaseUserBalance` event + pub fn increase_user_balance_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + IncreaseUserBalanceFilter, + > { + self.0.event() + } + ///Gets the contract's `Swap` event + pub fn swap_filter( + &self, + ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, SwapFilter> { + self.0.event() + } + ///Gets the contract's `UpdateProtocolFee` event + pub fn update_protocol_fee_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + UpdateProtocolFeeFilter, + > { + self.0.event() + } + /// Returns an `Event` builder for all the events of this contract. + pub fn events( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + PortfolioVirtualEvents, + > { + self.0.event_with_filter(::core::default::Default::default()) + } + } + impl From<::ethers::contract::Contract> + for PortfolioVirtual { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } + ///Custom Error type `DrawBalance` with signature `DrawBalance()` and selector `0xc9f2f26c` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "DrawBalance", abi = "DrawBalance()")] + pub struct DrawBalance; + ///Custom Error type `EtherTransferFail` with signature `EtherTransferFail()` and selector `0x75f42683` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "EtherTransferFail", abi = "EtherTransferFail()")] + pub struct EtherTransferFail; + ///Custom Error type `InsufficientReserve` with signature `InsufficientReserve(uint256,uint256)` and selector `0x315276c9` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror( + name = "InsufficientReserve", + abi = "InsufficientReserve(uint256,uint256)" + )] + pub struct InsufficientReserve { + pub amount: ::ethers::core::types::U256, + pub delta: ::ethers::core::types::U256, + } + ///Custom Error type `InvalidBalance` with signature `InvalidBalance()` and selector `0xc52e3eff` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "InvalidBalance", abi = "InvalidBalance()")] + pub struct InvalidBalance; + ///Custom Error type `InvalidBytesLength` with signature `InvalidBytesLength(uint256,uint256)` and selector `0xe19dc95e` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "InvalidBytesLength", abi = "InvalidBytesLength(uint256,uint256)")] + pub struct InvalidBytesLength { + pub expected: ::ethers::core::types::U256, + pub length: ::ethers::core::types::U256, + } + ///Custom Error type `InvalidDecimals` with signature `InvalidDecimals(uint8)` and selector `0xca950391` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "InvalidDecimals", abi = "InvalidDecimals(uint8)")] + pub struct InvalidDecimals { + pub decimals: u8, + } + ///Custom Error type `InvalidFee` with signature `InvalidFee(uint16)` and selector `0xf6f4a38f` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "InvalidFee", abi = "InvalidFee(uint16)")] + pub struct InvalidFee { + pub fee: u16, + } + ///Custom Error type `InvalidInstruction` with signature `InvalidInstruction()` and selector `0xd8c48f68` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "InvalidInstruction", abi = "InvalidInstruction()")] + pub struct InvalidInstruction; + ///Custom Error type `InvalidInvariant` with signature `InvalidInvariant(int256,int256)` and selector `0x2125a168` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "InvalidInvariant", abi = "InvalidInvariant(int256,int256)")] + pub struct InvalidInvariant { + pub prev: ::ethers::core::types::I256, + pub next: ::ethers::core::types::I256, + } + ///Custom Error type `InvalidJump` with signature `InvalidJump(uint256)` and selector `0x80f63bd1` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "InvalidJump", abi = "InvalidJump(uint256)")] + pub struct InvalidJump { + pub pointer: ::ethers::core::types::U256, + } + ///Custom Error type `InvalidPair` with signature `InvalidPair()` and selector `0x1e4f7d8c` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "InvalidPair", abi = "InvalidPair()")] + pub struct InvalidPair; + ///Custom Error type `InvalidReentrancy` with signature `InvalidReentrancy()` and selector `0xffc72209` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "InvalidReentrancy", abi = "InvalidReentrancy()")] + pub struct InvalidReentrancy; + ///Custom Error type `InvalidSettlement` with signature `InvalidSettlement()` and selector `0x115931c4` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "InvalidSettlement", abi = "InvalidSettlement()")] + pub struct InvalidSettlement; + ///Custom Error type `InvalidTransfer` with signature `InvalidTransfer()` and selector `0x2f352531` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "InvalidTransfer", abi = "InvalidTransfer()")] + pub struct InvalidTransfer; + ///Custom Error type `JitLiquidity` with signature `JitLiquidity(uint256)` and selector `0x9a231b2c` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "JitLiquidity", abi = "JitLiquidity(uint256)")] + pub struct JitLiquidity { + pub distance: ::ethers::core::types::U256, + } + ///Custom Error type `NegativeBalance` with signature `NegativeBalance(address,int256)` and selector `0xfe239baa` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "NegativeBalance", abi = "NegativeBalance(address,int256)")] + pub struct NegativeBalance { + pub token: ::ethers::core::types::Address, + pub net: ::ethers::core::types::I256, + } + ///Custom Error type `NonExistentPool` with signature `NonExistentPool(uint64)` and selector `0xd4480d46` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "NonExistentPool", abi = "NonExistentPool(uint64)")] + pub struct NonExistentPool { + pub pool_id: u64, + } + ///Custom Error type `NonExistentPosition` with signature `NonExistentPosition(address,uint64)` and selector `0x5f3605b6` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror( + name = "NonExistentPosition", + abi = "NonExistentPosition(address,uint64)" + )] + pub struct NonExistentPosition { + pub owner: ::ethers::core::types::Address, + pub pool_id: u64, + } + ///Custom Error type `NotController` with signature `NotController()` and selector `0x23019e67` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "NotController", abi = "NotController()")] + pub struct NotController; + ///Custom Error type `PairExists` with signature `PairExists(uint24)` and selector `0x3325fa77` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "PairExists", abi = "PairExists(uint24)")] + pub struct PairExists { + pub pair_id: u32, + } + ///Custom Error type `PoolExpired` with signature `PoolExpired()` and selector `0x398b36db` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "PoolExpired", abi = "PoolExpired()")] + pub struct PoolExpired; + ///Custom Error type `SameTokenError` with signature `SameTokenError()` and selector `0xec38b794` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "SameTokenError", abi = "SameTokenError()")] + pub struct SameTokenError; + ///Custom Error type `ZeroAmounts` with signature `ZeroAmounts()` and selector `0x213c7cc5` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "ZeroAmounts", abi = "ZeroAmounts()")] + pub struct ZeroAmounts; + ///Custom Error type `ZeroInput` with signature `ZeroInput()` and selector `0xaf458c07` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "ZeroInput", abi = "ZeroInput()")] + pub struct ZeroInput; + ///Custom Error type `ZeroLiquidity` with signature `ZeroLiquidity()` and selector `0x10074548` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "ZeroLiquidity", abi = "ZeroLiquidity()")] + pub struct ZeroLiquidity; + ///Custom Error type `ZeroOutput` with signature `ZeroOutput()` and selector `0xe618637e` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "ZeroOutput", abi = "ZeroOutput()")] + pub struct ZeroOutput; + ///Custom Error type `ZeroPrice` with signature `ZeroPrice()` and selector `0x4dfba023` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "ZeroPrice", abi = "ZeroPrice()")] + pub struct ZeroPrice; + ///Custom Error type `ZeroValue` with signature `ZeroValue()` and selector `0x7c946ed7` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "ZeroValue", abi = "ZeroValue()")] + pub struct ZeroValue; + ///Container type for all of the contract's custom errors + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum PortfolioVirtualErrors { + DrawBalance(DrawBalance), + EtherTransferFail(EtherTransferFail), + InsufficientReserve(InsufficientReserve), + InvalidBalance(InvalidBalance), + InvalidBytesLength(InvalidBytesLength), + InvalidDecimals(InvalidDecimals), + InvalidFee(InvalidFee), + InvalidInstruction(InvalidInstruction), + InvalidInvariant(InvalidInvariant), + InvalidJump(InvalidJump), + InvalidPair(InvalidPair), + InvalidReentrancy(InvalidReentrancy), + InvalidSettlement(InvalidSettlement), + InvalidTransfer(InvalidTransfer), + JitLiquidity(JitLiquidity), + NegativeBalance(NegativeBalance), + NonExistentPool(NonExistentPool), + NonExistentPosition(NonExistentPosition), + NotController(NotController), + PairExists(PairExists), + PoolExpired(PoolExpired), + SameTokenError(SameTokenError), + ZeroAmounts(ZeroAmounts), + ZeroInput(ZeroInput), + ZeroLiquidity(ZeroLiquidity), + ZeroOutput(ZeroOutput), + ZeroPrice(ZeroPrice), + ZeroValue(ZeroValue), + /// The standard solidity revert string, with selector + /// Error(string) -- 0x08c379a0 + RevertString(::std::string::String), + } + impl ::ethers::core::abi::AbiDecode for PortfolioVirtualErrors { + fn decode( + data: impl AsRef<[u8]>, + ) -> ::core::result::Result { + let data = data.as_ref(); + if let Ok(decoded) + = <::std::string::String as ::ethers::core::abi::AbiDecode>::decode( + data, + ) { + return Ok(Self::RevertString(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::DrawBalance(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::EtherTransferFail(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::InsufficientReserve(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::InvalidBalance(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::InvalidBytesLength(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::InvalidDecimals(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::InvalidFee(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::InvalidInstruction(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::InvalidInvariant(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::InvalidJump(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::InvalidPair(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::InvalidReentrancy(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::InvalidSettlement(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::InvalidTransfer(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::JitLiquidity(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::NegativeBalance(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::NonExistentPool(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::NonExistentPosition(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::NotController(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::PairExists(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::PoolExpired(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::SameTokenError(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::ZeroAmounts(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::ZeroInput(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::ZeroLiquidity(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::ZeroOutput(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::ZeroPrice(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::ZeroValue(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData.into()) + } + } + impl ::ethers::core::abi::AbiEncode for PortfolioVirtualErrors { + fn encode(self) -> ::std::vec::Vec { + match self { + Self::DrawBalance(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::EtherTransferFail(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::InsufficientReserve(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::InvalidBalance(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::InvalidBytesLength(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::InvalidDecimals(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::InvalidFee(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::InvalidInstruction(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::InvalidInvariant(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::InvalidJump(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::InvalidPair(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::InvalidReentrancy(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::InvalidSettlement(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::InvalidTransfer(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::JitLiquidity(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::NegativeBalance(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::NonExistentPool(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::NonExistentPosition(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::NotController(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::PairExists(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::PoolExpired(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::SameTokenError(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::ZeroAmounts(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::ZeroInput(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::ZeroLiquidity(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::ZeroOutput(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::ZeroPrice(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::ZeroValue(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::RevertString(s) => ::ethers::core::abi::AbiEncode::encode(s), + } + } + } + impl ::ethers::contract::ContractRevert for PortfolioVirtualErrors { + fn valid_selector(selector: [u8; 4]) -> bool { + match selector { + [0x08, 0xc3, 0x79, 0xa0] => true, + _ if selector + == ::selector() => true, + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => true, + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => true, + _ if selector + == ::selector() => true, + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => true, + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => true, + _ if selector + == ::selector() => true, + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => true, + _ if selector + == ::selector() => true, + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => true, + _ if selector + == ::selector() => true, + _ if selector + == ::selector() => true, + _ => false, + } + } + } + impl ::core::fmt::Display for PortfolioVirtualErrors { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::DrawBalance(element) => ::core::fmt::Display::fmt(element, f), + Self::EtherTransferFail(element) => ::core::fmt::Display::fmt(element, f), + Self::InsufficientReserve(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::InvalidBalance(element) => ::core::fmt::Display::fmt(element, f), + Self::InvalidBytesLength(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::InvalidDecimals(element) => ::core::fmt::Display::fmt(element, f), + Self::InvalidFee(element) => ::core::fmt::Display::fmt(element, f), + Self::InvalidInstruction(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::InvalidInvariant(element) => ::core::fmt::Display::fmt(element, f), + Self::InvalidJump(element) => ::core::fmt::Display::fmt(element, f), + Self::InvalidPair(element) => ::core::fmt::Display::fmt(element, f), + Self::InvalidReentrancy(element) => ::core::fmt::Display::fmt(element, f), + Self::InvalidSettlement(element) => ::core::fmt::Display::fmt(element, f), + Self::InvalidTransfer(element) => ::core::fmt::Display::fmt(element, f), + Self::JitLiquidity(element) => ::core::fmt::Display::fmt(element, f), + Self::NegativeBalance(element) => ::core::fmt::Display::fmt(element, f), + Self::NonExistentPool(element) => ::core::fmt::Display::fmt(element, f), + Self::NonExistentPosition(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::NotController(element) => ::core::fmt::Display::fmt(element, f), + Self::PairExists(element) => ::core::fmt::Display::fmt(element, f), + Self::PoolExpired(element) => ::core::fmt::Display::fmt(element, f), + Self::SameTokenError(element) => ::core::fmt::Display::fmt(element, f), + Self::ZeroAmounts(element) => ::core::fmt::Display::fmt(element, f), + Self::ZeroInput(element) => ::core::fmt::Display::fmt(element, f), + Self::ZeroLiquidity(element) => ::core::fmt::Display::fmt(element, f), + Self::ZeroOutput(element) => ::core::fmt::Display::fmt(element, f), + Self::ZeroPrice(element) => ::core::fmt::Display::fmt(element, f), + Self::ZeroValue(element) => ::core::fmt::Display::fmt(element, f), + Self::RevertString(s) => ::core::fmt::Display::fmt(s, f), + } + } + } + impl ::core::convert::From<::std::string::String> for PortfolioVirtualErrors { + fn from(value: String) -> Self { + Self::RevertString(value) + } + } + impl ::core::convert::From for PortfolioVirtualErrors { + fn from(value: DrawBalance) -> Self { + Self::DrawBalance(value) + } + } + impl ::core::convert::From for PortfolioVirtualErrors { + fn from(value: EtherTransferFail) -> Self { + Self::EtherTransferFail(value) + } + } + impl ::core::convert::From for PortfolioVirtualErrors { + fn from(value: InsufficientReserve) -> Self { + Self::InsufficientReserve(value) + } + } + impl ::core::convert::From for PortfolioVirtualErrors { + fn from(value: InvalidBalance) -> Self { + Self::InvalidBalance(value) + } + } + impl ::core::convert::From for PortfolioVirtualErrors { + fn from(value: InvalidBytesLength) -> Self { + Self::InvalidBytesLength(value) + } + } + impl ::core::convert::From for PortfolioVirtualErrors { + fn from(value: InvalidDecimals) -> Self { + Self::InvalidDecimals(value) + } + } + impl ::core::convert::From for PortfolioVirtualErrors { + fn from(value: InvalidFee) -> Self { + Self::InvalidFee(value) + } + } + impl ::core::convert::From for PortfolioVirtualErrors { + fn from(value: InvalidInstruction) -> Self { + Self::InvalidInstruction(value) + } + } + impl ::core::convert::From for PortfolioVirtualErrors { + fn from(value: InvalidInvariant) -> Self { + Self::InvalidInvariant(value) + } + } + impl ::core::convert::From for PortfolioVirtualErrors { + fn from(value: InvalidJump) -> Self { + Self::InvalidJump(value) + } + } + impl ::core::convert::From for PortfolioVirtualErrors { + fn from(value: InvalidPair) -> Self { + Self::InvalidPair(value) + } + } + impl ::core::convert::From for PortfolioVirtualErrors { + fn from(value: InvalidReentrancy) -> Self { + Self::InvalidReentrancy(value) + } + } + impl ::core::convert::From for PortfolioVirtualErrors { + fn from(value: InvalidSettlement) -> Self { + Self::InvalidSettlement(value) + } + } + impl ::core::convert::From for PortfolioVirtualErrors { + fn from(value: InvalidTransfer) -> Self { + Self::InvalidTransfer(value) + } + } + impl ::core::convert::From for PortfolioVirtualErrors { + fn from(value: JitLiquidity) -> Self { + Self::JitLiquidity(value) + } + } + impl ::core::convert::From for PortfolioVirtualErrors { + fn from(value: NegativeBalance) -> Self { + Self::NegativeBalance(value) + } + } + impl ::core::convert::From for PortfolioVirtualErrors { + fn from(value: NonExistentPool) -> Self { + Self::NonExistentPool(value) + } + } + impl ::core::convert::From for PortfolioVirtualErrors { + fn from(value: NonExistentPosition) -> Self { + Self::NonExistentPosition(value) + } + } + impl ::core::convert::From for PortfolioVirtualErrors { + fn from(value: NotController) -> Self { + Self::NotController(value) + } + } + impl ::core::convert::From for PortfolioVirtualErrors { + fn from(value: PairExists) -> Self { + Self::PairExists(value) + } + } + impl ::core::convert::From for PortfolioVirtualErrors { + fn from(value: PoolExpired) -> Self { + Self::PoolExpired(value) + } + } + impl ::core::convert::From for PortfolioVirtualErrors { + fn from(value: SameTokenError) -> Self { + Self::SameTokenError(value) + } + } + impl ::core::convert::From for PortfolioVirtualErrors { + fn from(value: ZeroAmounts) -> Self { + Self::ZeroAmounts(value) + } + } + impl ::core::convert::From for PortfolioVirtualErrors { + fn from(value: ZeroInput) -> Self { + Self::ZeroInput(value) + } + } + impl ::core::convert::From for PortfolioVirtualErrors { + fn from(value: ZeroLiquidity) -> Self { + Self::ZeroLiquidity(value) + } + } + impl ::core::convert::From for PortfolioVirtualErrors { + fn from(value: ZeroOutput) -> Self { + Self::ZeroOutput(value) + } + } + impl ::core::convert::From for PortfolioVirtualErrors { + fn from(value: ZeroPrice) -> Self { + Self::ZeroPrice(value) + } + } + impl ::core::convert::From for PortfolioVirtualErrors { + fn from(value: ZeroValue) -> Self { + Self::ZeroValue(value) + } + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "Allocate", + abi = "Allocate(uint64,address,address,uint256,uint256,uint256)" + )] + pub struct AllocateFilter { + #[ethevent(indexed)] + pub pool_id: u64, + #[ethevent(indexed)] + pub asset: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub quote: ::ethers::core::types::Address, + pub delta_asset: ::ethers::core::types::U256, + pub delta_quote: ::ethers::core::types::U256, + pub delta_liquidity: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "ChangeParameters", + abi = "ChangeParameters(uint64,uint16,uint16,uint16)" + )] + pub struct ChangeParametersFilter { + #[ethevent(indexed)] + pub pool_id: u64, + #[ethevent(indexed)] + pub priority_fee: u16, + #[ethevent(indexed)] + pub fee: u16, + pub jit: u16, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "Collect", + abi = "Collect(uint64,address,uint256,address,uint256,address)" + )] + pub struct CollectFilter { + pub pool_id: u64, + #[ethevent(indexed)] + pub account: ::ethers::core::types::Address, + pub fee_asset_dec: ::ethers::core::types::U256, + #[ethevent(indexed)] + pub asset: ::ethers::core::types::Address, + pub fee_quote_dec: ::ethers::core::types::U256, + #[ethevent(indexed)] + pub quote: ::ethers::core::types::Address, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "CreatePair", + abi = "CreatePair(uint24,address,address,uint8,uint8)" + )] + pub struct CreatePairFilter { + #[ethevent(indexed)] + pub pair_id: u32, + #[ethevent(indexed)] + pub asset: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub quote: ::ethers::core::types::Address, + pub decimals_asset: u8, + pub decimals_quote: u8, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "CreatePool", + abi = "CreatePool(uint64,bool,address,address,uint256)" + )] + pub struct CreatePoolFilter { + #[ethevent(indexed)] + pub pool_id: u64, + pub is_mutable: bool, + #[ethevent(indexed)] + pub asset: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub quote: ::ethers::core::types::Address, + pub price: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "Deallocate", + abi = "Deallocate(uint64,address,address,uint256,uint256,uint256)" + )] + pub struct DeallocateFilter { + #[ethevent(indexed)] + pub pool_id: u64, + #[ethevent(indexed)] + pub asset: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub quote: ::ethers::core::types::Address, + pub delta_asset: ::ethers::core::types::U256, + pub delta_quote: ::ethers::core::types::U256, + pub delta_liquidity: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "DecreaseReserveBalance", + abi = "DecreaseReserveBalance(address,uint256)" + )] + pub struct DecreaseReserveBalanceFilter { + #[ethevent(indexed)] + pub token: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "DecreaseUserBalance", + abi = "DecreaseUserBalance(address,address,uint256)" + )] + pub struct DecreaseUserBalanceFilter { + #[ethevent(indexed)] + pub account: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub token: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "Deposit", abi = "Deposit(address,uint256)")] + pub struct DepositFilter { + #[ethevent(indexed)] + pub account: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "IncreaseReserveBalance", + abi = "IncreaseReserveBalance(address,uint256)" + )] + pub struct IncreaseReserveBalanceFilter { + #[ethevent(indexed)] + pub token: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "IncreaseUserBalance", + abi = "IncreaseUserBalance(address,address,uint256)" + )] + pub struct IncreaseUserBalanceFilter { + #[ethevent(indexed)] + pub account: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub token: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "Swap", + abi = "Swap(uint64,uint256,address,uint256,address,uint256,uint256,int256)" + )] + pub struct SwapFilter { + #[ethevent(indexed)] + pub pool_id: u64, + pub price: ::ethers::core::types::U256, + #[ethevent(indexed)] + pub sell_asset: ::ethers::core::types::Address, + pub input: ::ethers::core::types::U256, + #[ethevent(indexed)] + pub token_out: ::ethers::core::types::Address, + pub output: ::ethers::core::types::U256, + pub fee_amount_dec: ::ethers::core::types::U256, + pub invariant_wad: ::ethers::core::types::I256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "UpdateProtocolFee", abi = "UpdateProtocolFee(uint256,uint256)")] + pub struct UpdateProtocolFeeFilter { + pub prev_fee: ::ethers::core::types::U256, + pub next_fee: ::ethers::core::types::U256, + } + ///Container type for all of the contract's events + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum PortfolioVirtualEvents { + AllocateFilter(AllocateFilter), + ChangeParametersFilter(ChangeParametersFilter), + CollectFilter(CollectFilter), + CreatePairFilter(CreatePairFilter), + CreatePoolFilter(CreatePoolFilter), + DeallocateFilter(DeallocateFilter), + DecreaseReserveBalanceFilter(DecreaseReserveBalanceFilter), + DecreaseUserBalanceFilter(DecreaseUserBalanceFilter), + DepositFilter(DepositFilter), + IncreaseReserveBalanceFilter(IncreaseReserveBalanceFilter), + IncreaseUserBalanceFilter(IncreaseUserBalanceFilter), + SwapFilter(SwapFilter), + UpdateProtocolFeeFilter(UpdateProtocolFeeFilter), + } + impl ::ethers::contract::EthLogDecode for PortfolioVirtualEvents { + fn decode_log( + log: &::ethers::core::abi::RawLog, + ) -> ::core::result::Result { + if let Ok(decoded) = AllocateFilter::decode_log(log) { + return Ok(PortfolioVirtualEvents::AllocateFilter(decoded)); + } + if let Ok(decoded) = ChangeParametersFilter::decode_log(log) { + return Ok(PortfolioVirtualEvents::ChangeParametersFilter(decoded)); + } + if let Ok(decoded) = CollectFilter::decode_log(log) { + return Ok(PortfolioVirtualEvents::CollectFilter(decoded)); + } + if let Ok(decoded) = CreatePairFilter::decode_log(log) { + return Ok(PortfolioVirtualEvents::CreatePairFilter(decoded)); + } + if let Ok(decoded) = CreatePoolFilter::decode_log(log) { + return Ok(PortfolioVirtualEvents::CreatePoolFilter(decoded)); + } + if let Ok(decoded) = DeallocateFilter::decode_log(log) { + return Ok(PortfolioVirtualEvents::DeallocateFilter(decoded)); + } + if let Ok(decoded) = DecreaseReserveBalanceFilter::decode_log(log) { + return Ok(PortfolioVirtualEvents::DecreaseReserveBalanceFilter(decoded)); + } + if let Ok(decoded) = DecreaseUserBalanceFilter::decode_log(log) { + return Ok(PortfolioVirtualEvents::DecreaseUserBalanceFilter(decoded)); + } + if let Ok(decoded) = DepositFilter::decode_log(log) { + return Ok(PortfolioVirtualEvents::DepositFilter(decoded)); + } + if let Ok(decoded) = IncreaseReserveBalanceFilter::decode_log(log) { + return Ok(PortfolioVirtualEvents::IncreaseReserveBalanceFilter(decoded)); + } + if let Ok(decoded) = IncreaseUserBalanceFilter::decode_log(log) { + return Ok(PortfolioVirtualEvents::IncreaseUserBalanceFilter(decoded)); + } + if let Ok(decoded) = SwapFilter::decode_log(log) { + return Ok(PortfolioVirtualEvents::SwapFilter(decoded)); + } + if let Ok(decoded) = UpdateProtocolFeeFilter::decode_log(log) { + return Ok(PortfolioVirtualEvents::UpdateProtocolFeeFilter(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData) + } + } + impl ::core::fmt::Display for PortfolioVirtualEvents { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::AllocateFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::ChangeParametersFilter(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::CollectFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::CreatePairFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::CreatePoolFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::DeallocateFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::DecreaseReserveBalanceFilter(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::DecreaseUserBalanceFilter(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::DepositFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::IncreaseReserveBalanceFilter(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::IncreaseUserBalanceFilter(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::SwapFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::UpdateProtocolFeeFilter(element) => { + ::core::fmt::Display::fmt(element, f) + } + } + } + } + impl ::core::convert::From for PortfolioVirtualEvents { + fn from(value: AllocateFilter) -> Self { + Self::AllocateFilter(value) + } + } + impl ::core::convert::From for PortfolioVirtualEvents { + fn from(value: ChangeParametersFilter) -> Self { + Self::ChangeParametersFilter(value) + } + } + impl ::core::convert::From for PortfolioVirtualEvents { + fn from(value: CollectFilter) -> Self { + Self::CollectFilter(value) + } + } + impl ::core::convert::From for PortfolioVirtualEvents { + fn from(value: CreatePairFilter) -> Self { + Self::CreatePairFilter(value) + } + } + impl ::core::convert::From for PortfolioVirtualEvents { + fn from(value: CreatePoolFilter) -> Self { + Self::CreatePoolFilter(value) + } + } + impl ::core::convert::From for PortfolioVirtualEvents { + fn from(value: DeallocateFilter) -> Self { + Self::DeallocateFilter(value) + } + } + impl ::core::convert::From for PortfolioVirtualEvents { + fn from(value: DecreaseReserveBalanceFilter) -> Self { + Self::DecreaseReserveBalanceFilter(value) + } + } + impl ::core::convert::From for PortfolioVirtualEvents { + fn from(value: DecreaseUserBalanceFilter) -> Self { + Self::DecreaseUserBalanceFilter(value) + } + } + impl ::core::convert::From for PortfolioVirtualEvents { + fn from(value: DepositFilter) -> Self { + Self::DepositFilter(value) + } + } + impl ::core::convert::From for PortfolioVirtualEvents { + fn from(value: IncreaseReserveBalanceFilter) -> Self { + Self::IncreaseReserveBalanceFilter(value) + } + } + impl ::core::convert::From for PortfolioVirtualEvents { + fn from(value: IncreaseUserBalanceFilter) -> Self { + Self::IncreaseUserBalanceFilter(value) + } + } + impl ::core::convert::From for PortfolioVirtualEvents { + fn from(value: SwapFilter) -> Self { + Self::SwapFilter(value) + } + } + impl ::core::convert::From for PortfolioVirtualEvents { + fn from(value: UpdateProtocolFeeFilter) -> Self { + Self::UpdateProtocolFeeFilter(value) + } + } + ///Container type for all input parameters for the `REGISTRY` function with signature `REGISTRY()` and selector `0x06433b1b` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "REGISTRY", abi = "REGISTRY()")] + pub struct RegistryCall; + ///Container type for all input parameters for the `VERSION` function with signature `VERSION()` and selector `0xffa1ad74` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "VERSION", abi = "VERSION()")] + pub struct VersionCall; + ///Container type for all input parameters for the `WETH` function with signature `WETH()` and selector `0xad5c4648` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "WETH", abi = "WETH()")] + pub struct WethCall; + ///Container type for all input parameters for the `__account__` function with signature `__account__()` and selector `0xda31ee54` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "__account__", abi = "__account__()")] + pub struct AccountCall; + ///Container type for all input parameters for the `changeParameters` function with signature `changeParameters(uint64,uint16,uint16,uint16)` and selector `0xaf777855` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall( + name = "changeParameters", + abi = "changeParameters(uint64,uint16,uint16,uint16)" + )] + pub struct ChangeParametersCall { + pub pool_id: u64, + pub priority_fee: u16, + pub fee: u16, + pub jit: u16, + } + ///Container type for all input parameters for the `checkInvariant` function with signature `checkInvariant(uint64,int256,uint256,uint256,uint256)` and selector `0x2f337da5` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall( + name = "checkInvariant", + abi = "checkInvariant(uint64,int256,uint256,uint256,uint256)" + )] + pub struct CheckInvariantCall { + pub pool_id: u64, + pub invariant: ::ethers::core::types::I256, + pub reserve_x: ::ethers::core::types::U256, + pub reserve_y: ::ethers::core::types::U256, + pub timestamp: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `checkPool` function with signature `checkPool(uint64)` and selector `0xa68aaa41` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "checkPool", abi = "checkPool(uint64)")] + pub struct CheckPoolCall { + pub pool_id: u64, + } + ///Container type for all input parameters for the `checkPosition` function with signature `checkPosition(uint64,address,int256)` and selector `0x2cc6641e` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "checkPosition", abi = "checkPosition(uint64,address,int256)")] + pub struct CheckPositionCall { + pub pool_id: u64, + pub owner: ::ethers::core::types::Address, + pub delta: ::ethers::core::types::I256, + } + ///Container type for all input parameters for the `computeMaxInput` function with signature `computeMaxInput(uint64,bool,uint256,uint256)` and selector `0x989bafba` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall( + name = "computeMaxInput", + abi = "computeMaxInput(uint64,bool,uint256,uint256)" + )] + pub struct ComputeMaxInputCall { + pub pool_id: u64, + pub sell_asset: bool, + pub reserve_in: ::ethers::core::types::U256, + pub liquidity: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `computeReservesFromPrice` function with signature `computeReservesFromPrice(uint64,uint256)` and selector `0xc48d887a` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall( + name = "computeReservesFromPrice", + abi = "computeReservesFromPrice(uint64,uint256)" + )] + pub struct ComputeReservesFromPriceCall { + pub pool_id: u64, + pub price: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `deposit` function with signature `deposit()` and selector `0xd0e30db0` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "deposit", abi = "deposit()")] + pub struct DepositCall; + ///Container type for all input parameters for the `draw` function with signature `draw(address,uint256,address)` and selector `0xad24d6a0` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "draw", abi = "draw(address,uint256,address)")] + pub struct DrawCall { + pub token: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + pub to: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `fund` function with signature `fund(address,uint256)` and selector `0x7b1837de` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "fund", abi = "fund(address,uint256)")] + pub struct FundCall { + pub token: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `getAmountOut` function with signature `getAmountOut(uint64,bool,uint256)` and selector `0x7dae4890` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getAmountOut", abi = "getAmountOut(uint64,bool,uint256)")] + pub struct GetAmountOutCall { + pub pool_id: u64, + pub sell_asset: bool, + pub amount_in: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `getBalance` function with signature `getBalance(address,address)` and selector `0xd4fac45d` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getBalance", abi = "getBalance(address,address)")] + pub struct GetBalanceCall { + pub owner: ::ethers::core::types::Address, + pub token: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `getLiquidityDeltas` function with signature `getLiquidityDeltas(uint64,int128)` and selector `0x8992f20a` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getLiquidityDeltas", abi = "getLiquidityDeltas(uint64,int128)")] + pub struct GetLiquidityDeltasCall { + pub pool_id: u64, + pub delta_liquidity: i128, + } + ///Container type for all input parameters for the `getMaxLiquidity` function with signature `getMaxLiquidity(uint64,uint256,uint256)` and selector `0xd6b7dec5` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getMaxLiquidity", abi = "getMaxLiquidity(uint64,uint256,uint256)")] + pub struct GetMaxLiquidityCall { + pub pool_id: u64, + pub amount_0: ::ethers::core::types::U256, + pub amount_1: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `getNetBalance` function with signature `getNetBalance(address)` and selector `0x4dc68a90` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getNetBalance", abi = "getNetBalance(address)")] + pub struct GetNetBalanceCall { + pub token: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `getPairId` function with signature `getPairId(address,address)` and selector `0x3f92a339` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getPairId", abi = "getPairId(address,address)")] + pub struct GetPairIdCall( + pub ::ethers::core::types::Address, + pub ::ethers::core::types::Address, + ); + ///Container type for all input parameters for the `getPairNonce` function with signature `getPairNonce()` and selector `0x078888d6` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getPairNonce", abi = "getPairNonce()")] + pub struct GetPairNonceCall; + ///Container type for all input parameters for the `getPoolNonce` function with signature `getPoolNonce(uint24)` and selector `0xa5cd8a49` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getPoolNonce", abi = "getPoolNonce(uint24)")] + pub struct GetPoolNonceCall(pub u32); + ///Container type for all input parameters for the `getPoolReserves` function with signature `getPoolReserves(uint64)` and selector `0x2afb9df8` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getPoolReserves", abi = "getPoolReserves(uint64)")] + pub struct GetPoolReservesCall { + pub pool_id: u64, + } + ///Container type for all input parameters for the `getReserve` function with signature `getReserve(address)` and selector `0xc9a396e9` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getReserve", abi = "getReserve(address)")] + pub struct GetReserveCall { + pub token: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `getVirtualPrice` function with signature `getVirtualPrice(uint64)` and selector `0x61b7ea6a` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getVirtualPrice", abi = "getVirtualPrice(uint64)")] + pub struct GetVirtualPriceCall { + pub pool_id: u64, + } + ///Container type for all input parameters for the `getVirtualReservesPerLiquidity` function with signature `getVirtualReservesPerLiquidity(uint64)` and selector `0x1a4b905b` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall( + name = "getVirtualReservesPerLiquidity", + abi = "getVirtualReservesPerLiquidity(uint64)" + )] + pub struct GetVirtualReservesPerLiquidityCall { + pub pool_id: u64, + } + ///Container type for all input parameters for the `multiprocess` function with signature `multiprocess(bytes)` and selector `0xa0fdf413` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "multiprocess", abi = "multiprocess(bytes)")] + pub struct MultiprocessCall { + pub data: ::ethers::core::types::Bytes, + } + ///Container type for all input parameters for the `pairs` function with signature `pairs(uint24)` and selector `0x5e47663c` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "pairs", abi = "pairs(uint24)")] + pub struct PairsCall(pub u32); + ///Container type for all input parameters for the `pools` function with signature `pools(uint64)` and selector `0x89a5f084` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "pools", abi = "pools(uint64)")] + pub struct PoolsCall(pub u64); + ///Container type for all input parameters for the `positions` function with signature `positions(address,uint64)` and selector `0xb68513ea` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "positions", abi = "positions(address,uint64)")] + pub struct PositionsCall(pub ::ethers::core::types::Address, pub u64); + ///Container type for all input parameters for the `setProtocolFee` function with signature `setProtocolFee(uint256)` and selector `0x787dce3d` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "setProtocolFee", abi = "setProtocolFee(uint256)")] + pub struct SetProtocolFeeCall { + pub fee: ::ethers::core::types::U256, + } + ///Container type for all of the contract's call + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum PortfolioVirtualCalls { + Registry(RegistryCall), + Version(VersionCall), + Weth(WethCall), + Account(AccountCall), + ChangeParameters(ChangeParametersCall), + CheckInvariant(CheckInvariantCall), + CheckPool(CheckPoolCall), + CheckPosition(CheckPositionCall), + ComputeMaxInput(ComputeMaxInputCall), + ComputeReservesFromPrice(ComputeReservesFromPriceCall), + Deposit(DepositCall), + Draw(DrawCall), + Fund(FundCall), + GetAmountOut(GetAmountOutCall), + GetBalance(GetBalanceCall), + GetLiquidityDeltas(GetLiquidityDeltasCall), + GetMaxLiquidity(GetMaxLiquidityCall), + GetNetBalance(GetNetBalanceCall), + GetPairId(GetPairIdCall), + GetPairNonce(GetPairNonceCall), + GetPoolNonce(GetPoolNonceCall), + GetPoolReserves(GetPoolReservesCall), + GetReserve(GetReserveCall), + GetVirtualPrice(GetVirtualPriceCall), + GetVirtualReservesPerLiquidity(GetVirtualReservesPerLiquidityCall), + Multiprocess(MultiprocessCall), + Pairs(PairsCall), + Pools(PoolsCall), + Positions(PositionsCall), + SetProtocolFee(SetProtocolFeeCall), + } + impl ::ethers::core::abi::AbiDecode for PortfolioVirtualCalls { + fn decode( + data: impl AsRef<[u8]>, + ) -> ::core::result::Result { + let data = data.as_ref(); + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Registry(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Version(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Weth(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Account(decoded)); + } + if let Ok(decoded) + = ::decode( + data, + ) { + return Ok(Self::ChangeParameters(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::CheckInvariant(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::CheckPool(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::CheckPosition(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::ComputeMaxInput(decoded)); + } + if let Ok(decoded) + = ::decode( + data, + ) { + return Ok(Self::ComputeReservesFromPrice(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Deposit(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Draw(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Fund(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetAmountOut(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetBalance(decoded)); + } + if let Ok(decoded) + = ::decode( + data, + ) { + return Ok(Self::GetLiquidityDeltas(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetMaxLiquidity(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetNetBalance(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetPairId(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetPairNonce(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetPoolNonce(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetPoolReserves(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetReserve(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetVirtualPrice(decoded)); + } + if let Ok(decoded) + = ::decode( + data, + ) { + return Ok(Self::GetVirtualReservesPerLiquidity(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Multiprocess(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Pairs(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Pools(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Positions(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::SetProtocolFee(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData.into()) + } + } + impl ::ethers::core::abi::AbiEncode for PortfolioVirtualCalls { + fn encode(self) -> Vec { + match self { + Self::Registry(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Version(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Weth(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Account(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::ChangeParameters(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::CheckInvariant(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::CheckPool(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::CheckPosition(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::ComputeMaxInput(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::ComputeReservesFromPrice(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Deposit(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Draw(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Fund(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::GetAmountOut(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetBalance(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetLiquidityDeltas(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetMaxLiquidity(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetNetBalance(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetPairId(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetPairNonce(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetPoolNonce(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetPoolReserves(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetReserve(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetVirtualPrice(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetVirtualReservesPerLiquidity(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Multiprocess(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Pairs(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Pools(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Positions(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::SetProtocolFee(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + } + } + } + impl ::core::fmt::Display for PortfolioVirtualCalls { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::Registry(element) => ::core::fmt::Display::fmt(element, f), + Self::Version(element) => ::core::fmt::Display::fmt(element, f), + Self::Weth(element) => ::core::fmt::Display::fmt(element, f), + Self::Account(element) => ::core::fmt::Display::fmt(element, f), + Self::ChangeParameters(element) => ::core::fmt::Display::fmt(element, f), + Self::CheckInvariant(element) => ::core::fmt::Display::fmt(element, f), + Self::CheckPool(element) => ::core::fmt::Display::fmt(element, f), + Self::CheckPosition(element) => ::core::fmt::Display::fmt(element, f), + Self::ComputeMaxInput(element) => ::core::fmt::Display::fmt(element, f), + Self::ComputeReservesFromPrice(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::Deposit(element) => ::core::fmt::Display::fmt(element, f), + Self::Draw(element) => ::core::fmt::Display::fmt(element, f), + Self::Fund(element) => ::core::fmt::Display::fmt(element, f), + Self::GetAmountOut(element) => ::core::fmt::Display::fmt(element, f), + Self::GetBalance(element) => ::core::fmt::Display::fmt(element, f), + Self::GetLiquidityDeltas(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::GetMaxLiquidity(element) => ::core::fmt::Display::fmt(element, f), + Self::GetNetBalance(element) => ::core::fmt::Display::fmt(element, f), + Self::GetPairId(element) => ::core::fmt::Display::fmt(element, f), + Self::GetPairNonce(element) => ::core::fmt::Display::fmt(element, f), + Self::GetPoolNonce(element) => ::core::fmt::Display::fmt(element, f), + Self::GetPoolReserves(element) => ::core::fmt::Display::fmt(element, f), + Self::GetReserve(element) => ::core::fmt::Display::fmt(element, f), + Self::GetVirtualPrice(element) => ::core::fmt::Display::fmt(element, f), + Self::GetVirtualReservesPerLiquidity(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::Multiprocess(element) => ::core::fmt::Display::fmt(element, f), + Self::Pairs(element) => ::core::fmt::Display::fmt(element, f), + Self::Pools(element) => ::core::fmt::Display::fmt(element, f), + Self::Positions(element) => ::core::fmt::Display::fmt(element, f), + Self::SetProtocolFee(element) => ::core::fmt::Display::fmt(element, f), + } + } + } + impl ::core::convert::From for PortfolioVirtualCalls { + fn from(value: RegistryCall) -> Self { + Self::Registry(value) + } + } + impl ::core::convert::From for PortfolioVirtualCalls { + fn from(value: VersionCall) -> Self { + Self::Version(value) + } + } + impl ::core::convert::From for PortfolioVirtualCalls { + fn from(value: WethCall) -> Self { + Self::Weth(value) + } + } + impl ::core::convert::From for PortfolioVirtualCalls { + fn from(value: AccountCall) -> Self { + Self::Account(value) + } + } + impl ::core::convert::From for PortfolioVirtualCalls { + fn from(value: ChangeParametersCall) -> Self { + Self::ChangeParameters(value) + } + } + impl ::core::convert::From for PortfolioVirtualCalls { + fn from(value: CheckInvariantCall) -> Self { + Self::CheckInvariant(value) + } + } + impl ::core::convert::From for PortfolioVirtualCalls { + fn from(value: CheckPoolCall) -> Self { + Self::CheckPool(value) + } + } + impl ::core::convert::From for PortfolioVirtualCalls { + fn from(value: CheckPositionCall) -> Self { + Self::CheckPosition(value) + } + } + impl ::core::convert::From for PortfolioVirtualCalls { + fn from(value: ComputeMaxInputCall) -> Self { + Self::ComputeMaxInput(value) + } + } + impl ::core::convert::From for PortfolioVirtualCalls { + fn from(value: ComputeReservesFromPriceCall) -> Self { + Self::ComputeReservesFromPrice(value) + } + } + impl ::core::convert::From for PortfolioVirtualCalls { + fn from(value: DepositCall) -> Self { + Self::Deposit(value) + } + } + impl ::core::convert::From for PortfolioVirtualCalls { + fn from(value: DrawCall) -> Self { + Self::Draw(value) + } + } + impl ::core::convert::From for PortfolioVirtualCalls { + fn from(value: FundCall) -> Self { + Self::Fund(value) + } + } + impl ::core::convert::From for PortfolioVirtualCalls { + fn from(value: GetAmountOutCall) -> Self { + Self::GetAmountOut(value) + } + } + impl ::core::convert::From for PortfolioVirtualCalls { + fn from(value: GetBalanceCall) -> Self { + Self::GetBalance(value) + } + } + impl ::core::convert::From for PortfolioVirtualCalls { + fn from(value: GetLiquidityDeltasCall) -> Self { + Self::GetLiquidityDeltas(value) + } + } + impl ::core::convert::From for PortfolioVirtualCalls { + fn from(value: GetMaxLiquidityCall) -> Self { + Self::GetMaxLiquidity(value) + } + } + impl ::core::convert::From for PortfolioVirtualCalls { + fn from(value: GetNetBalanceCall) -> Self { + Self::GetNetBalance(value) + } + } + impl ::core::convert::From for PortfolioVirtualCalls { + fn from(value: GetPairIdCall) -> Self { + Self::GetPairId(value) + } + } + impl ::core::convert::From for PortfolioVirtualCalls { + fn from(value: GetPairNonceCall) -> Self { + Self::GetPairNonce(value) + } + } + impl ::core::convert::From for PortfolioVirtualCalls { + fn from(value: GetPoolNonceCall) -> Self { + Self::GetPoolNonce(value) + } + } + impl ::core::convert::From for PortfolioVirtualCalls { + fn from(value: GetPoolReservesCall) -> Self { + Self::GetPoolReserves(value) + } + } + impl ::core::convert::From for PortfolioVirtualCalls { + fn from(value: GetReserveCall) -> Self { + Self::GetReserve(value) + } + } + impl ::core::convert::From for PortfolioVirtualCalls { + fn from(value: GetVirtualPriceCall) -> Self { + Self::GetVirtualPrice(value) + } + } + impl ::core::convert::From + for PortfolioVirtualCalls { + fn from(value: GetVirtualReservesPerLiquidityCall) -> Self { + Self::GetVirtualReservesPerLiquidity(value) + } + } + impl ::core::convert::From for PortfolioVirtualCalls { + fn from(value: MultiprocessCall) -> Self { + Self::Multiprocess(value) + } + } + impl ::core::convert::From for PortfolioVirtualCalls { + fn from(value: PairsCall) -> Self { + Self::Pairs(value) + } + } + impl ::core::convert::From for PortfolioVirtualCalls { + fn from(value: PoolsCall) -> Self { + Self::Pools(value) + } + } + impl ::core::convert::From for PortfolioVirtualCalls { + fn from(value: PositionsCall) -> Self { + Self::Positions(value) + } + } + impl ::core::convert::From for PortfolioVirtualCalls { + fn from(value: SetProtocolFeeCall) -> Self { + Self::SetProtocolFee(value) + } + } + ///Container type for all return fields from the `REGISTRY` function with signature `REGISTRY()` and selector `0x06433b1b` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct RegistryReturn(pub ::ethers::core::types::Address); + ///Container type for all return fields from the `VERSION` function with signature `VERSION()` and selector `0xffa1ad74` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct VersionReturn(pub ::std::string::String); + ///Container type for all return fields from the `WETH` function with signature `WETH()` and selector `0xad5c4648` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct WethReturn(pub ::ethers::core::types::Address); + ///Container type for all return fields from the `__account__` function with signature `__account__()` and selector `0xda31ee54` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct AccountReturn { + pub settled: bool, + } + ///Container type for all return fields from the `checkInvariant` function with signature `checkInvariant(uint64,int256,uint256,uint256,uint256)` and selector `0x2f337da5` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct CheckInvariantReturn { + pub success: bool, + pub next_invariant: ::ethers::core::types::I256, + } + ///Container type for all return fields from the `checkPool` function with signature `checkPool(uint64)` and selector `0xa68aaa41` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct CheckPoolReturn(pub bool); + ///Container type for all return fields from the `checkPosition` function with signature `checkPosition(uint64,address,int256)` and selector `0x2cc6641e` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct CheckPositionReturn(pub bool); + ///Container type for all return fields from the `computeMaxInput` function with signature `computeMaxInput(uint64,bool,uint256,uint256)` and selector `0x989bafba` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct ComputeMaxInputReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `computeReservesFromPrice` function with signature `computeReservesFromPrice(uint64,uint256)` and selector `0xc48d887a` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct ComputeReservesFromPriceReturn { + pub reserve_x: ::ethers::core::types::U256, + pub reserve_y: ::ethers::core::types::U256, + } + ///Container type for all return fields from the `getAmountOut` function with signature `getAmountOut(uint64,bool,uint256)` and selector `0x7dae4890` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetAmountOutReturn { + pub output: ::ethers::core::types::U256, + } + ///Container type for all return fields from the `getBalance` function with signature `getBalance(address,address)` and selector `0xd4fac45d` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetBalanceReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `getLiquidityDeltas` function with signature `getLiquidityDeltas(uint64,int128)` and selector `0x8992f20a` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetLiquidityDeltasReturn { + pub delta_asset: u128, + pub delta_quote: u128, + } + ///Container type for all return fields from the `getMaxLiquidity` function with signature `getMaxLiquidity(uint64,uint256,uint256)` and selector `0xd6b7dec5` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetMaxLiquidityReturn { + pub delta_liquidity: u128, + } + ///Container type for all return fields from the `getNetBalance` function with signature `getNetBalance(address)` and selector `0x4dc68a90` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetNetBalanceReturn(pub ::ethers::core::types::I256); + ///Container type for all return fields from the `getPairId` function with signature `getPairId(address,address)` and selector `0x3f92a339` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetPairIdReturn(pub u32); + ///Container type for all return fields from the `getPairNonce` function with signature `getPairNonce()` and selector `0x078888d6` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetPairNonceReturn(pub u32); + ///Container type for all return fields from the `getPoolNonce` function with signature `getPoolNonce(uint24)` and selector `0xa5cd8a49` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetPoolNonceReturn(pub u32); + ///Container type for all return fields from the `getPoolReserves` function with signature `getPoolReserves(uint64)` and selector `0x2afb9df8` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetPoolReservesReturn { + pub delta_asset: ::ethers::core::types::U256, + pub delta_quote: ::ethers::core::types::U256, + } + ///Container type for all return fields from the `getReserve` function with signature `getReserve(address)` and selector `0xc9a396e9` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetReserveReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `getVirtualPrice` function with signature `getVirtualPrice(uint64)` and selector `0x61b7ea6a` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetVirtualPriceReturn { + pub price: ::ethers::core::types::U256, + } + ///Container type for all return fields from the `getVirtualReservesPerLiquidity` function with signature `getVirtualReservesPerLiquidity(uint64)` and selector `0x1a4b905b` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetVirtualReservesPerLiquidityReturn { + pub delta_asset: u128, + pub delta_quote: u128, + } + ///Container type for all return fields from the `pairs` function with signature `pairs(uint24)` and selector `0x5e47663c` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct PairsReturn { + pub token_asset: ::ethers::core::types::Address, + pub decimals_asset: u8, + pub token_quote: ::ethers::core::types::Address, + pub decimals_quote: u8, + } + ///Container type for all return fields from the `pools` function with signature `pools(uint64)` and selector `0x89a5f084` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct PoolsReturn { + pub virtual_x: u128, + pub virtual_y: u128, + pub liquidity: u128, + pub last_timestamp: u32, + pub controller: ::ethers::core::types::Address, + pub invariant_growth_global: ::ethers::core::types::U256, + pub fee_growth_global_asset: ::ethers::core::types::U256, + pub fee_growth_global_quote: ::ethers::core::types::U256, + pub params: PortfolioCurve, + pub pair: PortfolioPair, + } + ///Container type for all return fields from the `positions` function with signature `positions(address,uint64)` and selector `0xb68513ea` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct PositionsReturn { + pub free_liquidity: u128, + pub last_timestamp: u32, + pub invariant_growth_last: ::ethers::core::types::U256, + pub fee_growth_asset_last: ::ethers::core::types::U256, + pub fee_growth_quote_last: ::ethers::core::types::U256, + pub tokens_owed_asset: u128, + pub tokens_owed_quote: u128, + pub invariant_owed: u128, + } +} diff --git a/crates/bindings/src/rmm01_extended_lib.rs b/crates/bindings/src/rmm01_extended_lib.rs new file mode 100644 index 00000000..55db910a --- /dev/null +++ b/crates/bindings/src/rmm01_extended_lib.rs @@ -0,0 +1,346 @@ +pub use rmm01_extended_lib::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod rmm01_extended_lib { + #[rustfmt::skip] + const __ABI: &str = "[]"; + ///The parsed JSON ABI of the contract. + pub static RMM01EXTENDEDLIB_ABI: ::ethers::contract::Lazy< + ::ethers::core::abi::Abi, + > = ::ethers::contract::Lazy::new(|| { + ::ethers::core::utils::__serde_json::from_str(__ABI) + .expect("ABI is always valid") + }); + #[rustfmt::skip] + const __BYTECODE: &[u8] = &[ + 96, + 86, + 96, + 55, + 96, + 11, + 130, + 130, + 130, + 57, + 128, + 81, + 96, + 0, + 26, + 96, + 115, + 20, + 96, + 42, + 87, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 0, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 48, + 96, + 0, + 82, + 96, + 115, + 129, + 83, + 130, + 129, + 243, + 254, + 115, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 48, + 20, + 96, + 128, + 96, + 64, + 82, + 96, + 0, + 128, + 253, + 254, + 162, + 100, + 105, + 112, + 102, + 115, + 88, + 34, + 18, + 32, + 3, + 58, + 70, + 213, + 162, + 55, + 206, + 12, + 107, + 43, + 161, + 254, + 242, + 37, + 151, + 0, + 125, + 156, + 202, + 149, + 9, + 193, + 2, + 177, + 246, + 156, + 97, + 161, + 89, + 115, + 29, + 85, + 100, + 115, + 111, + 108, + 99, + 67, + 0, + 8, + 13, + 0, + 51, + ]; + ///The bytecode of the contract. + pub static RMM01EXTENDEDLIB_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __BYTECODE, + ); + #[rustfmt::skip] + const __DEPLOYED_BYTECODE: &[u8] = &[ + 115, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 48, + 20, + 96, + 128, + 96, + 64, + 82, + 96, + 0, + 128, + 253, + 254, + 162, + 100, + 105, + 112, + 102, + 115, + 88, + 34, + 18, + 32, + 3, + 58, + 70, + 213, + 162, + 55, + 206, + 12, + 107, + 43, + 161, + 254, + 242, + 37, + 151, + 0, + 125, + 156, + 202, + 149, + 9, + 193, + 2, + 177, + 246, + 156, + 97, + 161, + 89, + 115, + 29, + 85, + 100, + 115, + 111, + 108, + 99, + 67, + 0, + 8, + 13, + 0, + 51, + ]; + ///The deployed bytecode of the contract. + pub static RMM01EXTENDEDLIB_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __DEPLOYED_BYTECODE, + ); + pub struct RMM01ExtendedLib(::ethers::contract::Contract); + impl ::core::clone::Clone for RMM01ExtendedLib { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for RMM01ExtendedLib { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for RMM01ExtendedLib { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for RMM01ExtendedLib { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(stringify!(RMM01ExtendedLib)).field(&self.address()).finish() + } + } + impl RMM01ExtendedLib { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + RMM01EXTENDEDLIB_ABI.clone(), + client, + ), + ) + } + /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. + /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction + /// + /// Notes: + /// - If there are no constructor arguments, you should pass `()` as the argument. + /// - The default poll duration is 7 seconds. + /// - The default number of confirmations is 1 block. + /// + /// + /// # Example + /// + /// Generate contract bindings with `abigen!` and deploy a new contract instance. + /// + /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. + /// + /// ```ignore + /// # async fn deploy(client: ::std::sync::Arc) { + /// abigen!(Greeter, "../greeter.json"); + /// + /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); + /// let msg = greeter_contract.greet().call().await.unwrap(); + /// # } + /// ``` + pub fn deploy( + client: ::std::sync::Arc, + constructor_args: T, + ) -> ::core::result::Result< + ::ethers::contract::builders::ContractDeployer, + ::ethers::contract::ContractError, + > { + let factory = ::ethers::contract::ContractFactory::new( + RMM01EXTENDEDLIB_ABI.clone(), + RMM01EXTENDEDLIB_BYTECODE.clone().into(), + client, + ); + let deployer = factory.deploy(constructor_args)?; + let deployer = ::ethers::contract::ContractDeployer::new(deployer); + Ok(deployer) + } + } + impl From<::ethers::contract::Contract> + for RMM01ExtendedLib { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } +} diff --git a/crates/bindings/src/rmm01_lib.rs b/crates/bindings/src/rmm01_lib.rs new file mode 100644 index 00000000..cfac585a --- /dev/null +++ b/crates/bindings/src/rmm01_lib.rs @@ -0,0 +1,452 @@ +pub use rmm01_lib::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod rmm01_lib { + #[rustfmt::skip] + const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"wad\",\"type\":\"int256\",\"components\":[]}],\"type\":\"error\",\"name\":\"OverflowWad\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"UndefinedPrice\",\"outputs\":[]}]"; + ///The parsed JSON ABI of the contract. + pub static RMM01LIB_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| + ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); + #[rustfmt::skip] + const __BYTECODE: &[u8] = &[ + 96, + 86, + 96, + 55, + 96, + 11, + 130, + 130, + 130, + 57, + 128, + 81, + 96, + 0, + 26, + 96, + 115, + 20, + 96, + 42, + 87, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 0, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 48, + 96, + 0, + 82, + 96, + 115, + 129, + 83, + 130, + 129, + 243, + 254, + 115, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 48, + 20, + 96, + 128, + 96, + 64, + 82, + 96, + 0, + 128, + 253, + 254, + 162, + 100, + 105, + 112, + 102, + 115, + 88, + 34, + 18, + 32, + 42, + 65, + 89, + 100, + 183, + 82, + 12, + 142, + 4, + 248, + 149, + 181, + 92, + 206, + 43, + 249, + 158, + 33, + 30, + 88, + 53, + 229, + 254, + 227, + 29, + 52, + 61, + 245, + 47, + 178, + 207, + 81, + 100, + 115, + 111, + 108, + 99, + 67, + 0, + 8, + 13, + 0, + 51, + ]; + ///The bytecode of the contract. + pub static RMM01LIB_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __BYTECODE, + ); + #[rustfmt::skip] + const __DEPLOYED_BYTECODE: &[u8] = &[ + 115, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 48, + 20, + 96, + 128, + 96, + 64, + 82, + 96, + 0, + 128, + 253, + 254, + 162, + 100, + 105, + 112, + 102, + 115, + 88, + 34, + 18, + 32, + 42, + 65, + 89, + 100, + 183, + 82, + 12, + 142, + 4, + 248, + 149, + 181, + 92, + 206, + 43, + 249, + 158, + 33, + 30, + 88, + 53, + 229, + 254, + 227, + 29, + 52, + 61, + 245, + 47, + 178, + 207, + 81, + 100, + 115, + 111, + 108, + 99, + 67, + 0, + 8, + 13, + 0, + 51, + ]; + ///The deployed bytecode of the contract. + pub static RMM01LIB_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __DEPLOYED_BYTECODE, + ); + pub struct RMM01Lib(::ethers::contract::Contract); + impl ::core::clone::Clone for RMM01Lib { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for RMM01Lib { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for RMM01Lib { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for RMM01Lib { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(stringify!(RMM01Lib)).field(&self.address()).finish() + } + } + impl RMM01Lib { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + RMM01LIB_ABI.clone(), + client, + ), + ) + } + /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. + /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction + /// + /// Notes: + /// - If there are no constructor arguments, you should pass `()` as the argument. + /// - The default poll duration is 7 seconds. + /// - The default number of confirmations is 1 block. + /// + /// + /// # Example + /// + /// Generate contract bindings with `abigen!` and deploy a new contract instance. + /// + /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. + /// + /// ```ignore + /// # async fn deploy(client: ::std::sync::Arc) { + /// abigen!(Greeter, "../greeter.json"); + /// + /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); + /// let msg = greeter_contract.greet().call().await.unwrap(); + /// # } + /// ``` + pub fn deploy( + client: ::std::sync::Arc, + constructor_args: T, + ) -> ::core::result::Result< + ::ethers::contract::builders::ContractDeployer, + ::ethers::contract::ContractError, + > { + let factory = ::ethers::contract::ContractFactory::new( + RMM01LIB_ABI.clone(), + RMM01LIB_BYTECODE.clone().into(), + client, + ); + let deployer = factory.deploy(constructor_args)?; + let deployer = ::ethers::contract::ContractDeployer::new(deployer); + Ok(deployer) + } + } + impl From<::ethers::contract::Contract> + for RMM01Lib { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } + ///Custom Error type `OverflowWad` with signature `OverflowWad(int256)` and selector `0xb11558df` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "OverflowWad", abi = "OverflowWad(int256)")] + pub struct OverflowWad { + pub wad: ::ethers::core::types::I256, + } + ///Custom Error type `UndefinedPrice` with signature `UndefinedPrice()` and selector `0x22053363` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "UndefinedPrice", abi = "UndefinedPrice()")] + pub struct UndefinedPrice; + ///Container type for all of the contract's custom errors + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum RMM01LibErrors { + OverflowWad(OverflowWad), + UndefinedPrice(UndefinedPrice), + /// The standard solidity revert string, with selector + /// Error(string) -- 0x08c379a0 + RevertString(::std::string::String), + } + impl ::ethers::core::abi::AbiDecode for RMM01LibErrors { + fn decode( + data: impl AsRef<[u8]>, + ) -> ::core::result::Result { + let data = data.as_ref(); + if let Ok(decoded) + = <::std::string::String as ::ethers::core::abi::AbiDecode>::decode( + data, + ) { + return Ok(Self::RevertString(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::OverflowWad(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::UndefinedPrice(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData.into()) + } + } + impl ::ethers::core::abi::AbiEncode for RMM01LibErrors { + fn encode(self) -> ::std::vec::Vec { + match self { + Self::OverflowWad(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::UndefinedPrice(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::RevertString(s) => ::ethers::core::abi::AbiEncode::encode(s), + } + } + } + impl ::ethers::contract::ContractRevert for RMM01LibErrors { + fn valid_selector(selector: [u8; 4]) -> bool { + match selector { + [0x08, 0xc3, 0x79, 0xa0] => true, + _ if selector + == ::selector() => true, + _ if selector + == ::selector() => { + true + } + _ => false, + } + } + } + impl ::core::fmt::Display for RMM01LibErrors { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::OverflowWad(element) => ::core::fmt::Display::fmt(element, f), + Self::UndefinedPrice(element) => ::core::fmt::Display::fmt(element, f), + Self::RevertString(s) => ::core::fmt::Display::fmt(s, f), + } + } + } + impl ::core::convert::From<::std::string::String> for RMM01LibErrors { + fn from(value: String) -> Self { + Self::RevertString(value) + } + } + impl ::core::convert::From for RMM01LibErrors { + fn from(value: OverflowWad) -> Self { + Self::OverflowWad(value) + } + } + impl ::core::convert::From for RMM01LibErrors { + fn from(value: UndefinedPrice) -> Self { + Self::UndefinedPrice(value) + } + } +} diff --git a/crates/bindings/src/rmm01_portfolio.rs b/crates/bindings/src/rmm01_portfolio.rs new file mode 100644 index 00000000..e901cf52 --- /dev/null +++ b/crates/bindings/src/rmm01_portfolio.rs @@ -0,0 +1,75797 @@ +pub use rmm01_portfolio::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod rmm01_portfolio { + pub use super::super::shared_types::*; + #[rustfmt::skip] + const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"weth\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"registry\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"DrawBalance\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"EtherTransferFail\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"Infinity\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"delta\",\"type\":\"uint256\",\"components\":[]}],\"type\":\"error\",\"name\":\"InsufficientReserve\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"InvalidBalance\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\",\"components\":[]}],\"type\":\"error\",\"name\":\"InvalidBytesLength\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\",\"components\":[]}],\"type\":\"error\",\"name\":\"InvalidDecimals\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"fee\",\"type\":\"uint16\",\"components\":[]}],\"type\":\"error\",\"name\":\"InvalidFee\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"InvalidInstruction\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"prev\",\"type\":\"int256\",\"components\":[]},{\"internalType\":\"int256\",\"name\":\"next\",\"type\":\"int256\",\"components\":[]}],\"type\":\"error\",\"name\":\"InvalidInvariant\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"pointer\",\"type\":\"uint256\",\"components\":[]}],\"type\":\"error\",\"name\":\"InvalidJump\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"InvalidPair\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"InvalidReentrancy\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"InvalidSettlement\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"InvalidTransfer\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"distance\",\"type\":\"uint256\",\"components\":[]}],\"type\":\"error\",\"name\":\"JitLiquidity\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"Min\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"int256\",\"name\":\"net\",\"type\":\"int256\",\"components\":[]}],\"type\":\"error\",\"name\":\"NegativeBalance\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"NegativeInfinity\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"type\":\"error\",\"name\":\"NonExistentPool\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"type\":\"error\",\"name\":\"NonExistentPosition\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"NotController\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"OOB\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"OutOfBounds\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"wad\",\"type\":\"int256\",\"components\":[]}],\"type\":\"error\",\"name\":\"OverflowWad\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"pairId\",\"type\":\"uint24\",\"components\":[]}],\"type\":\"error\",\"name\":\"PairExists\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"PoolExpired\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"SameTokenError\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"SwapInputTooSmall\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"UndefinedPrice\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"ZeroAmounts\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"ZeroInput\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"ZeroLiquidity\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"ZeroOutput\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"ZeroPrice\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"ZeroValue\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaLiquidity\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Allocate\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint16\",\"name\":\"priorityFee\",\"type\":\"uint16\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint16\",\"name\":\"fee\",\"type\":\"uint16\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint16\",\"name\":\"jit\",\"type\":\"uint16\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"ChangeParameters\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"feeAssetDec\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"feeQuoteDec\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true}],\"type\":\"event\",\"name\":\"Collect\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"pairId\",\"type\":\"uint24\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint8\",\"name\":\"decimalsAsset\",\"type\":\"uint8\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint8\",\"name\":\"decimalsQuote\",\"type\":\"uint8\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"CreatePair\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"bool\",\"name\":\"isMutable\",\"type\":\"bool\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"CreatePool\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaLiquidity\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Deallocate\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"DecreaseReserveBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"DecreaseUserBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Deposit\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"IncreaseReserveBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"IncreaseUserBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"sellAsset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"input\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"tokenOut\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"output\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"feeAmountDec\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"int256\",\"name\":\"invariantWad\",\"type\":\"int256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Swap\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"prevFee\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"nextFee\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"UpdateProtocolFee\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\",\"name\":\"VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"WETH\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"__account__\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"settled\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"priorityFee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"fee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"jit\",\"type\":\"uint16\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"changeParameters\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"int256\",\"name\":\"invariant\",\"type\":\"int256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"reserveX\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"reserveY\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"checkInvariant\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]},{\"internalType\":\"int256\",\"name\":\"nextInvariant\",\"type\":\"int256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"checkPool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"int256\",\"name\":\"delta\",\"type\":\"int256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"checkPosition\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"bool\",\"name\":\"sellAsset\",\"type\":\"bool\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"reserveIn\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"computeMaxInput\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"computeReservesFromPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"reserveX\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"reserveY\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"deposit\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"draw\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"fund\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"bool\",\"name\":\"sellAsset\",\"type\":\"bool\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getAmountOut\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"output\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"int128\",\"name\":\"deltaLiquidity\",\"type\":\"int128\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getLiquidityDeltas\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"deltaAsset\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"deltaQuote\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getMaxLiquidity\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"deltaLiquidity\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getNetBalance\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPairId\",\"outputs\":[{\"internalType\":\"uint24\",\"name\":\"\",\"type\":\"uint24\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPairNonce\",\"outputs\":[{\"internalType\":\"uint24\",\"name\":\"\",\"type\":\"uint24\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"\",\"type\":\"uint24\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPoolNonce\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPoolReserves\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getReserve\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getVirtualPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getVirtualReservesPerLiquidity\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"deltaAsset\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"deltaQuote\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\",\"components\":[]}],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"multiprocess\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"\",\"type\":\"uint24\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"pairs\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"tokenAsset\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsAsset\",\"type\":\"uint8\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"tokenQuote\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsQuote\",\"type\":\"uint8\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"pools\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"virtualX\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"virtualY\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"liquidity\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint32\",\"name\":\"lastTimestamp\",\"type\":\"uint32\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"controller\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"invariantGrowthGlobal\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthGlobalAsset\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthGlobalQuote\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"struct PortfolioCurve\",\"name\":\"params\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"uint128\",\"name\":\"maxPrice\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"jit\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"fee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"duration\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"volatility\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"priorityFee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint32\",\"name\":\"createdAt\",\"type\":\"uint32\",\"components\":[]},{\"internalType\":\"bool\",\"name\":\"perpetual\",\"type\":\"bool\",\"components\":[]}]},{\"internalType\":\"struct PortfolioPair\",\"name\":\"pair\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"address\",\"name\":\"tokenAsset\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsAsset\",\"type\":\"uint8\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"tokenQuote\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsQuote\",\"type\":\"uint8\",\"components\":[]}]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"positions\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"freeLiquidity\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint32\",\"name\":\"lastTimestamp\",\"type\":\"uint32\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"invariantGrowthLast\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthAssetLast\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthQuoteLast\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"tokensOwedAsset\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"tokensOwedQuote\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"invariantOwed\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"setProtocolFee\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"payable\",\"type\":\"receive\",\"outputs\":[]}]"; + ///The parsed JSON ABI of the contract. + pub static RMM01PORTFOLIO_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| + ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); + #[rustfmt::skip] + const __BYTECODE: &[u8] = &[ + 96, + 192, + 96, + 64, + 82, + 96, + 1, + 96, + 11, + 85, + 96, + 4, + 96, + 12, + 85, + 52, + 128, + 21, + 98, + 0, + 0, + 27, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 96, + 64, + 81, + 98, + 0, + 141, + 216, + 56, + 3, + 128, + 98, + 0, + 141, + 216, + 131, + 57, + 129, + 1, + 96, + 64, + 129, + 144, + 82, + 98, + 0, + 0, + 62, + 145, + 98, + 0, + 0, + 128, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 145, + 130, + 22, + 96, + 128, + 82, + 22, + 96, + 160, + 82, + 96, + 4, + 128, + 84, + 96, + 255, + 25, + 22, + 96, + 1, + 23, + 144, + 85, + 98, + 0, + 0, + 184, + 86, + 91, + 128, + 81, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 129, + 22, + 129, + 20, + 98, + 0, + 0, + 123, + 87, + 96, + 0, + 128, + 253, + 91, + 145, + 144, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 64, + 131, + 133, + 3, + 18, + 21, + 98, + 0, + 0, + 148, + 87, + 96, + 0, + 128, + 253, + 91, + 98, + 0, + 0, + 159, + 131, + 98, + 0, + 0, + 99, + 86, + 91, + 145, + 80, + 98, + 0, + 0, + 175, + 96, + 32, + 132, + 1, + 98, + 0, + 0, + 99, + 86, + 91, + 144, + 80, + 146, + 80, + 146, + 144, + 80, + 86, + 91, + 96, + 128, + 81, + 96, + 160, + 81, + 97, + 140, + 208, + 98, + 0, + 1, + 8, + 96, + 0, + 57, + 96, + 0, + 129, + 129, + 97, + 2, + 36, + 1, + 82, + 129, + 129, + 97, + 24, + 150, + 1, + 82, + 97, + 88, + 223, + 1, + 82, + 96, + 0, + 129, + 129, + 97, + 1, + 225, + 1, + 82, + 129, + 129, + 97, + 8, + 112, + 1, + 82, + 129, + 129, + 97, + 37, + 97, + 1, + 82, + 129, + 129, + 97, + 37, + 157, + 1, + 82, + 97, + 65, + 87, + 1, + 82, + 97, + 140, + 208, + 96, + 0, + 243, + 254, + 96, + 128, + 96, + 64, + 82, + 96, + 4, + 54, + 16, + 97, + 1, + 209, + 87, + 96, + 0, + 53, + 96, + 224, + 28, + 128, + 99, + 152, + 155, + 175, + 186, + 17, + 97, + 0, + 247, + 87, + 128, + 99, + 182, + 133, + 19, + 234, + 17, + 97, + 0, + 149, + 87, + 128, + 99, + 212, + 250, + 196, + 93, + 17, + 97, + 0, + 100, + 87, + 128, + 99, + 212, + 250, + 196, + 93, + 20, + 97, + 9, + 221, + 87, + 128, + 99, + 214, + 183, + 222, + 197, + 20, + 97, + 9, + 253, + 87, + 128, + 99, + 218, + 49, + 238, + 84, + 20, + 97, + 10, + 53, + 87, + 128, + 99, + 255, + 161, + 173, + 116, + 20, + 97, + 10, + 79, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 182, + 133, + 19, + 234, + 20, + 97, + 8, + 178, + 87, + 128, + 99, + 196, + 141, + 136, + 122, + 20, + 97, + 9, + 127, + 87, + 128, + 99, + 201, + 163, + 150, + 233, + 20, + 97, + 9, + 159, + 87, + 128, + 99, + 208, + 227, + 13, + 176, + 20, + 97, + 9, + 213, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 166, + 138, + 170, + 65, + 17, + 97, + 0, + 209, + 87, + 128, + 99, + 166, + 138, + 170, + 65, + 20, + 97, + 8, + 30, + 87, + 128, + 99, + 173, + 36, + 214, + 160, + 20, + 97, + 8, + 62, + 87, + 128, + 99, + 173, + 92, + 70, + 72, + 20, + 97, + 8, + 94, + 87, + 128, + 99, + 175, + 119, + 120, + 85, + 20, + 97, + 8, + 146, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 152, + 155, + 175, + 186, + 20, + 97, + 7, + 163, + 87, + 128, + 99, + 160, + 253, + 244, + 19, + 20, + 97, + 7, + 195, + 87, + 128, + 99, + 165, + 205, + 138, + 73, + 20, + 97, + 7, + 214, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 77, + 198, + 138, + 144, + 17, + 97, + 1, + 111, + 87, + 128, + 99, + 123, + 24, + 55, + 222, + 17, + 97, + 1, + 62, + 87, + 128, + 99, + 123, + 24, + 55, + 222, + 20, + 97, + 4, + 165, + 87, + 128, + 99, + 125, + 174, + 72, + 144, + 20, + 97, + 4, + 197, + 87, + 128, + 99, + 137, + 146, + 242, + 10, + 20, + 97, + 4, + 229, + 87, + 128, + 99, + 137, + 165, + 240, + 132, + 20, + 97, + 5, + 5, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 77, + 198, + 138, + 144, + 20, + 97, + 3, + 172, + 87, + 128, + 99, + 94, + 71, + 102, + 60, + 20, + 97, + 3, + 218, + 87, + 128, + 99, + 97, + 183, + 234, + 106, + 20, + 97, + 4, + 101, + 87, + 128, + 99, + 120, + 125, + 206, + 61, + 20, + 97, + 4, + 133, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 42, + 251, + 157, + 248, + 17, + 97, + 1, + 171, + 87, + 128, + 99, + 42, + 251, + 157, + 248, + 20, + 97, + 2, + 211, + 87, + 128, + 99, + 44, + 198, + 100, + 30, + 20, + 97, + 3, + 8, + 87, + 128, + 99, + 47, + 51, + 125, + 165, + 20, + 97, + 3, + 56, + 87, + 128, + 99, + 63, + 146, + 163, + 57, + 20, + 97, + 3, + 111, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 6, + 67, + 59, + 27, + 20, + 97, + 2, + 18, + 87, + 128, + 99, + 7, + 136, + 136, + 214, + 20, + 97, + 2, + 99, + 87, + 128, + 99, + 26, + 75, + 144, + 91, + 20, + 97, + 2, + 147, + 87, + 96, + 0, + 128, + 253, + 91, + 54, + 97, + 2, + 13, + 87, + 51, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 127, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 22, + 20, + 97, + 2, + 11, + 87, + 96, + 0, + 128, + 253, + 91, + 0, + 91, + 96, + 0, + 128, + 253, + 91, + 52, + 128, + 21, + 97, + 2, + 30, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 2, + 70, + 127, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 129, + 86, + 91, + 96, + 64, + 81, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 144, + 145, + 22, + 129, + 82, + 96, + 32, + 1, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 243, + 91, + 52, + 128, + 21, + 97, + 2, + 111, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 96, + 5, + 84, + 97, + 2, + 127, + 144, + 98, + 255, + 255, + 255, + 22, + 129, + 86, + 91, + 96, + 64, + 81, + 98, + 255, + 255, + 255, + 144, + 145, + 22, + 129, + 82, + 96, + 32, + 1, + 97, + 2, + 90, + 86, + 91, + 52, + 128, + 21, + 97, + 2, + 159, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 2, + 179, + 97, + 2, + 174, + 54, + 96, + 4, + 97, + 130, + 213, + 86, + 91, + 97, + 10, + 113, + 86, + 91, + 96, + 64, + 128, + 81, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 147, + 132, + 22, + 129, + 82, + 146, + 144, + 145, + 22, + 96, + 32, + 131, + 1, + 82, + 1, + 97, + 2, + 90, + 86, + 91, + 52, + 128, + 21, + 97, + 2, + 223, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 2, + 243, + 97, + 2, + 238, + 54, + 96, + 4, + 97, + 130, + 213, + 86, + 91, + 97, + 13, + 135, + 86, + 91, + 96, + 64, + 128, + 81, + 146, + 131, + 82, + 96, + 32, + 131, + 1, + 145, + 144, + 145, + 82, + 1, + 97, + 2, + 90, + 86, + 91, + 52, + 128, + 21, + 97, + 3, + 20, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 3, + 40, + 97, + 3, + 35, + 54, + 96, + 4, + 97, + 131, + 5, + 86, + 91, + 97, + 16, + 169, + 86, + 91, + 96, + 64, + 81, + 144, + 21, + 21, + 129, + 82, + 96, + 32, + 1, + 97, + 2, + 90, + 86, + 91, + 52, + 128, + 21, + 97, + 3, + 68, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 3, + 88, + 97, + 3, + 83, + 54, + 96, + 4, + 97, + 131, + 68, + 86, + 91, + 97, + 17, + 154, + 86, + 91, + 96, + 64, + 128, + 81, + 146, + 21, + 21, + 131, + 82, + 96, + 32, + 131, + 1, + 145, + 144, + 145, + 82, + 1, + 97, + 2, + 90, + 86, + 91, + 52, + 128, + 21, + 97, + 3, + 123, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 2, + 127, + 97, + 3, + 138, + 54, + 96, + 4, + 97, + 131, + 134, + 86, + 91, + 96, + 9, + 96, + 32, + 144, + 129, + 82, + 96, + 0, + 146, + 131, + 82, + 96, + 64, + 128, + 132, + 32, + 144, + 145, + 82, + 144, + 130, + 82, + 144, + 32, + 84, + 98, + 255, + 255, + 255, + 22, + 129, + 86, + 91, + 52, + 128, + 21, + 97, + 3, + 184, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 3, + 204, + 97, + 3, + 199, + 54, + 96, + 4, + 97, + 131, + 191, + 86, + 91, + 97, + 24, + 63, + 86, + 91, + 96, + 64, + 81, + 144, + 129, + 82, + 96, + 32, + 1, + 97, + 2, + 90, + 86, + 91, + 52, + 128, + 21, + 97, + 3, + 230, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 4, + 49, + 97, + 3, + 245, + 54, + 96, + 4, + 97, + 131, + 220, + 86, + 91, + 96, + 7, + 96, + 32, + 82, + 96, + 0, + 144, + 129, + 82, + 96, + 64, + 144, + 32, + 128, + 84, + 96, + 1, + 144, + 145, + 1, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 128, + 131, + 22, + 146, + 96, + 255, + 96, + 1, + 96, + 160, + 27, + 145, + 130, + 144, + 4, + 129, + 22, + 147, + 146, + 131, + 22, + 146, + 145, + 144, + 145, + 4, + 22, + 132, + 86, + 91, + 96, + 64, + 128, + 81, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 149, + 134, + 22, + 129, + 82, + 96, + 255, + 148, + 133, + 22, + 96, + 32, + 130, + 1, + 82, + 148, + 144, + 146, + 22, + 145, + 132, + 1, + 145, + 144, + 145, + 82, + 22, + 96, + 96, + 130, + 1, + 82, + 96, + 128, + 1, + 97, + 2, + 90, + 86, + 91, + 52, + 128, + 21, + 97, + 4, + 113, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 3, + 204, + 97, + 4, + 128, + 54, + 96, + 4, + 97, + 130, + 213, + 86, + 91, + 97, + 24, + 82, + 86, + 91, + 52, + 128, + 21, + 97, + 4, + 145, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 2, + 11, + 97, + 4, + 160, + 54, + 96, + 4, + 97, + 132, + 1, + 86, + 91, + 97, + 24, + 102, + 86, + 91, + 52, + 128, + 21, + 97, + 4, + 177, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 2, + 11, + 97, + 4, + 192, + 54, + 96, + 4, + 97, + 132, + 26, + 86, + 91, + 97, + 25, + 236, + 86, + 91, + 52, + 128, + 21, + 97, + 4, + 209, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 3, + 204, + 97, + 4, + 224, + 54, + 96, + 4, + 97, + 132, + 86, + 86, + 91, + 97, + 26, + 109, + 86, + 91, + 52, + 128, + 21, + 97, + 4, + 241, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 2, + 179, + 97, + 5, + 0, + 54, + 96, + 4, + 97, + 132, + 146, + 86, + 91, + 97, + 29, + 148, + 86, + 91, + 52, + 128, + 21, + 97, + 5, + 17, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 7, + 141, + 97, + 5, + 32, + 54, + 96, + 4, + 97, + 130, + 213, + 86, + 91, + 96, + 8, + 96, + 32, + 82, + 128, + 96, + 0, + 82, + 96, + 64, + 96, + 0, + 32, + 96, + 0, + 145, + 80, + 144, + 80, + 128, + 96, + 0, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 144, + 128, + 96, + 0, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 144, + 128, + 96, + 1, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 144, + 128, + 96, + 1, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 144, + 128, + 96, + 2, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 144, + 128, + 96, + 3, + 1, + 84, + 144, + 128, + 96, + 4, + 1, + 84, + 144, + 128, + 96, + 5, + 1, + 84, + 144, + 128, + 96, + 6, + 1, + 96, + 64, + 81, + 128, + 97, + 1, + 0, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 18, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 22, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 24, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 26, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 30, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 21, + 21, + 21, + 21, + 129, + 82, + 80, + 80, + 144, + 128, + 96, + 7, + 1, + 96, + 64, + 81, + 128, + 96, + 128, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 80, + 80, + 144, + 80, + 138, + 86, + 91, + 96, + 64, + 81, + 97, + 2, + 90, + 154, + 153, + 152, + 151, + 150, + 149, + 148, + 147, + 146, + 145, + 144, + 97, + 132, + 196, + 86, + 91, + 52, + 128, + 21, + 97, + 7, + 175, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 3, + 204, + 97, + 7, + 190, + 54, + 96, + 4, + 97, + 133, + 225, + 86, + 91, + 97, + 32, + 183, + 86, + 91, + 97, + 2, + 11, + 97, + 7, + 209, + 54, + 96, + 4, + 97, + 134, + 35, + 86, + 91, + 97, + 33, + 39, + 86, + 91, + 52, + 128, + 21, + 97, + 7, + 226, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 8, + 9, + 97, + 7, + 241, + 54, + 96, + 4, + 97, + 131, + 220, + 86, + 91, + 96, + 6, + 96, + 32, + 82, + 96, + 0, + 144, + 129, + 82, + 96, + 64, + 144, + 32, + 84, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 86, + 91, + 96, + 64, + 81, + 99, + 255, + 255, + 255, + 255, + 144, + 145, + 22, + 129, + 82, + 96, + 32, + 1, + 97, + 2, + 90, + 86, + 91, + 52, + 128, + 21, + 97, + 8, + 42, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 3, + 40, + 97, + 8, + 57, + 54, + 96, + 4, + 97, + 130, + 213, + 86, + 91, + 97, + 33, + 165, + 86, + 91, + 52, + 128, + 21, + 97, + 8, + 74, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 2, + 11, + 97, + 8, + 89, + 54, + 96, + 4, + 97, + 134, + 148, + 86, + 91, + 97, + 36, + 187, + 86, + 91, + 52, + 128, + 21, + 97, + 8, + 106, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 2, + 70, + 127, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 129, + 86, + 91, + 52, + 128, + 21, + 97, + 8, + 158, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 2, + 11, + 97, + 8, + 173, + 54, + 96, + 4, + 97, + 134, + 232, + 86, + 91, + 97, + 38, + 9, + 86, + 91, + 52, + 128, + 21, + 97, + 8, + 190, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 9, + 43, + 97, + 8, + 205, + 54, + 96, + 4, + 97, + 135, + 60, + 86, + 91, + 96, + 10, + 96, + 32, + 144, + 129, + 82, + 96, + 0, + 146, + 131, + 82, + 96, + 64, + 128, + 132, + 32, + 144, + 145, + 82, + 144, + 130, + 82, + 144, + 32, + 128, + 84, + 96, + 1, + 130, + 1, + 84, + 96, + 2, + 131, + 1, + 84, + 96, + 3, + 132, + 1, + 84, + 96, + 4, + 133, + 1, + 84, + 96, + 5, + 144, + 149, + 1, + 84, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 128, + 134, + 22, + 150, + 99, + 255, + 255, + 255, + 255, + 96, + 1, + 96, + 128, + 27, + 151, + 136, + 144, + 4, + 22, + 150, + 129, + 131, + 22, + 147, + 145, + 4, + 130, + 22, + 145, + 22, + 136, + 86, + 91, + 96, + 64, + 128, + 81, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 153, + 138, + 22, + 129, + 82, + 99, + 255, + 255, + 255, + 255, + 144, + 152, + 22, + 96, + 32, + 137, + 1, + 82, + 135, + 1, + 149, + 144, + 149, + 82, + 96, + 96, + 134, + 1, + 147, + 144, + 147, + 82, + 96, + 128, + 133, + 1, + 145, + 144, + 145, + 82, + 132, + 22, + 96, + 160, + 132, + 1, + 82, + 131, + 22, + 96, + 192, + 131, + 1, + 82, + 145, + 144, + 145, + 22, + 96, + 224, + 130, + 1, + 82, + 97, + 1, + 0, + 1, + 97, + 2, + 90, + 86, + 91, + 52, + 128, + 21, + 97, + 9, + 139, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 2, + 243, + 97, + 9, + 154, + 54, + 96, + 4, + 97, + 135, + 113, + 86, + 91, + 97, + 40, + 9, + 86, + 91, + 52, + 128, + 21, + 97, + 9, + 171, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 3, + 204, + 97, + 9, + 186, + 54, + 96, + 4, + 97, + 131, + 191, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 1, + 96, + 32, + 82, + 96, + 64, + 144, + 32, + 84, + 144, + 86, + 91, + 97, + 2, + 11, + 97, + 43, + 36, + 86, + 91, + 52, + 128, + 21, + 97, + 9, + 233, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 3, + 204, + 97, + 9, + 248, + 54, + 96, + 4, + 97, + 131, + 134, + 86, + 91, + 97, + 43, + 170, + 86, + 91, + 52, + 128, + 21, + 97, + 10, + 9, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 10, + 29, + 97, + 10, + 24, + 54, + 96, + 4, + 97, + 135, + 141, + 86, + 91, + 97, + 43, + 211, + 86, + 91, + 96, + 64, + 81, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 144, + 145, + 22, + 129, + 82, + 96, + 32, + 1, + 97, + 2, + 90, + 86, + 91, + 52, + 128, + 21, + 97, + 10, + 65, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 96, + 4, + 84, + 97, + 3, + 40, + 144, + 96, + 255, + 22, + 129, + 86, + 91, + 52, + 128, + 21, + 97, + 10, + 91, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 10, + 100, + 97, + 46, + 235, + 86, + 91, + 96, + 64, + 81, + 97, + 2, + 90, + 145, + 144, + 97, + 135, + 236, + 86, + 91, + 96, + 0, + 128, + 97, + 13, + 126, + 96, + 8, + 96, + 0, + 133, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 144, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 32, + 96, + 64, + 81, + 128, + 97, + 1, + 64, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 2, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 3, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 4, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 5, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 6, + 130, + 1, + 96, + 64, + 81, + 128, + 97, + 1, + 0, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 18, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 22, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 24, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 26, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 30, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 21, + 21, + 21, + 21, + 129, + 82, + 80, + 80, + 129, + 82, + 96, + 32, + 1, + 96, + 7, + 130, + 1, + 96, + 64, + 81, + 128, + 96, + 128, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 80, + 80, + 129, + 82, + 80, + 80, + 97, + 47, + 8, + 86, + 91, + 145, + 80, + 145, + 80, + 145, + 80, + 145, + 86, + 91, + 96, + 0, + 128, + 97, + 16, + 148, + 96, + 8, + 96, + 0, + 133, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 144, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 32, + 96, + 64, + 81, + 128, + 97, + 1, + 64, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 2, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 3, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 4, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 5, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 6, + 130, + 1, + 96, + 64, + 81, + 128, + 97, + 1, + 0, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 18, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 22, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 24, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 26, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 30, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 21, + 21, + 21, + 21, + 129, + 82, + 80, + 80, + 129, + 82, + 96, + 32, + 1, + 96, + 7, + 130, + 1, + 96, + 64, + 81, + 128, + 96, + 128, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 80, + 80, + 129, + 82, + 80, + 80, + 97, + 47, + 136, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 145, + 130, + 22, + 149, + 145, + 22, + 147, + 80, + 145, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 130, + 18, + 21, + 97, + 17, + 143, + 87, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 10, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 136, + 22, + 132, + 82, + 130, + 82, + 128, + 131, + 32, + 129, + 81, + 97, + 1, + 0, + 129, + 1, + 131, + 82, + 129, + 84, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 128, + 130, + 22, + 131, + 82, + 99, + 255, + 255, + 255, + 255, + 96, + 1, + 96, + 128, + 27, + 146, + 131, + 144, + 4, + 129, + 22, + 150, + 132, + 1, + 150, + 144, + 150, + 82, + 96, + 1, + 132, + 1, + 84, + 148, + 131, + 1, + 148, + 144, + 148, + 82, + 96, + 2, + 131, + 1, + 84, + 96, + 96, + 131, + 1, + 82, + 96, + 3, + 131, + 1, + 84, + 96, + 128, + 131, + 1, + 82, + 96, + 4, + 131, + 1, + 84, + 128, + 133, + 22, + 96, + 160, + 132, + 1, + 82, + 4, + 131, + 22, + 96, + 192, + 130, + 1, + 82, + 96, + 5, + 144, + 145, + 1, + 84, + 144, + 145, + 22, + 96, + 224, + 130, + 1, + 82, + 97, + 17, + 93, + 145, + 66, + 144, + 97, + 47, + 163, + 22, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 134, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 8, + 96, + 32, + 82, + 96, + 64, + 144, + 32, + 96, + 6, + 1, + 84, + 96, + 1, + 96, + 128, + 27, + 144, + 4, + 97, + 255, + 255, + 22, + 17, + 21, + 145, + 80, + 97, + 17, + 147, + 144, + 80, + 86, + 91, + 80, + 96, + 1, + 91, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 97, + 20, + 179, + 132, + 96, + 8, + 96, + 0, + 139, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 144, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 32, + 96, + 64, + 81, + 128, + 97, + 1, + 64, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 2, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 3, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 4, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 5, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 6, + 130, + 1, + 96, + 64, + 81, + 128, + 97, + 1, + 0, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 18, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 22, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 24, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 26, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 30, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 21, + 21, + 21, + 21, + 129, + 82, + 80, + 80, + 129, + 82, + 96, + 32, + 1, + 96, + 7, + 130, + 1, + 96, + 64, + 81, + 128, + 96, + 128, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 80, + 80, + 129, + 82, + 80, + 80, + 97, + 47, + 187, + 144, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 144, + 80, + 97, + 23, + 194, + 96, + 8, + 96, + 0, + 138, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 144, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 32, + 96, + 64, + 81, + 128, + 97, + 1, + 64, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 2, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 3, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 4, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 5, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 6, + 130, + 1, + 96, + 64, + 81, + 128, + 97, + 1, + 0, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 18, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 22, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 24, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 26, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 30, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 21, + 21, + 21, + 21, + 129, + 82, + 80, + 80, + 129, + 82, + 96, + 32, + 1, + 96, + 7, + 130, + 1, + 96, + 64, + 81, + 128, + 96, + 128, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 80, + 80, + 129, + 82, + 80, + 80, + 135, + 135, + 132, + 97, + 48, + 1, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 137, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 8, + 96, + 32, + 129, + 144, + 82, + 96, + 64, + 130, + 32, + 1, + 84, + 145, + 147, + 80, + 144, + 97, + 23, + 247, + 144, + 137, + 144, + 96, + 1, + 96, + 160, + 27, + 144, + 4, + 96, + 255, + 22, + 97, + 48, + 70, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 138, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 8, + 96, + 32, + 129, + 144, + 82, + 96, + 64, + 130, + 32, + 1, + 84, + 145, + 146, + 80, + 144, + 97, + 24, + 44, + 144, + 133, + 144, + 96, + 1, + 96, + 160, + 27, + 144, + 4, + 96, + 255, + 22, + 97, + 48, + 70, + 86, + 91, + 145, + 144, + 145, + 18, + 21, + 147, + 80, + 80, + 80, + 149, + 80, + 149, + 147, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 97, + 24, + 76, + 129, + 131, + 48, + 97, + 48, + 92, + 86, + 91, + 146, + 145, + 80, + 80, + 86, + 91, + 96, + 0, + 97, + 24, + 93, + 130, + 97, + 48, + 152, + 86, + 91, + 80, + 144, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 11, + 84, + 96, + 1, + 20, + 97, + 24, + 140, + 87, + 96, + 64, + 81, + 96, + 1, + 98, + 56, + 221, + 247, + 96, + 224, + 27, + 3, + 25, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 2, + 96, + 11, + 129, + 144, + 85, + 80, + 127, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 99, + 247, + 124, + 71, + 145, + 96, + 64, + 81, + 129, + 99, + 255, + 255, + 255, + 255, + 22, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 32, + 96, + 64, + 81, + 128, + 131, + 3, + 129, + 134, + 90, + 250, + 21, + 128, + 21, + 97, + 24, + 242, + 87, + 61, + 96, + 0, + 128, + 62, + 61, + 96, + 0, + 253, + 91, + 80, + 80, + 80, + 80, + 96, + 64, + 81, + 61, + 96, + 31, + 25, + 96, + 31, + 130, + 1, + 22, + 130, + 1, + 128, + 96, + 64, + 82, + 80, + 129, + 1, + 144, + 97, + 25, + 22, + 145, + 144, + 97, + 136, + 31, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 51, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 20, + 97, + 25, + 71, + 87, + 96, + 64, + 81, + 99, + 35, + 1, + 158, + 103, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 20, + 129, + 17, + 128, + 97, + 25, + 86, + 87, + 80, + 96, + 4, + 129, + 16, + 91, + 21, + 97, + 25, + 127, + 87, + 96, + 64, + 81, + 99, + 246, + 244, + 163, + 143, + 96, + 224, + 27, + 129, + 82, + 97, + 255, + 255, + 130, + 22, + 96, + 4, + 130, + 1, + 82, + 96, + 36, + 1, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 13, + 128, + 84, + 144, + 130, + 144, + 85, + 96, + 64, + 128, + 81, + 130, + 129, + 82, + 96, + 32, + 129, + 1, + 132, + 144, + 82, + 127, + 129, + 201, + 57, + 20, + 72, + 0, + 40, + 118, + 3, + 71, + 155, + 151, + 187, + 169, + 193, + 18, + 136, + 206, + 122, + 188, + 90, + 203, + 72, + 144, + 121, + 225, + 89, + 243, + 92, + 249, + 139, + 209, + 145, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 161, + 80, + 96, + 1, + 96, + 11, + 85, + 96, + 4, + 84, + 96, + 255, + 22, + 97, + 25, + 233, + 87, + 96, + 64, + 81, + 99, + 4, + 86, + 76, + 113, + 96, + 226, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 80, + 86, + 91, + 96, + 11, + 84, + 96, + 1, + 20, + 97, + 26, + 18, + 87, + 96, + 64, + 81, + 96, + 1, + 98, + 56, + 221, + 247, + 96, + 224, + 27, + 3, + 25, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 2, + 96, + 11, + 85, + 96, + 1, + 129, + 1, + 97, + 26, + 44, + 87, + 97, + 26, + 41, + 130, + 51, + 97, + 57, + 236, + 86, + 91, + 144, + 80, + 91, + 97, + 26, + 57, + 96, + 0, + 131, + 48, + 132, + 97, + 58, + 204, + 86, + 91, + 97, + 26, + 65, + 97, + 58, + 225, + 86, + 91, + 96, + 1, + 96, + 11, + 85, + 96, + 4, + 84, + 96, + 255, + 22, + 97, + 26, + 105, + 87, + 96, + 64, + 81, + 99, + 4, + 86, + 76, + 113, + 96, + 226, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 8, + 96, + 0, + 134, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 144, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 32, + 96, + 64, + 81, + 128, + 97, + 1, + 64, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 2, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 3, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 4, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 5, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 6, + 130, + 1, + 96, + 64, + 81, + 128, + 97, + 1, + 0, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 18, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 22, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 24, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 26, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 30, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 21, + 21, + 21, + 21, + 129, + 82, + 80, + 80, + 129, + 82, + 96, + 32, + 1, + 96, + 7, + 130, + 1, + 96, + 64, + 81, + 128, + 96, + 128, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 80, + 80, + 129, + 82, + 80, + 80, + 144, + 80, + 97, + 29, + 139, + 132, + 132, + 66, + 132, + 97, + 63, + 115, + 144, + 147, + 146, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 149, + 148, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 97, + 32, + 171, + 131, + 96, + 8, + 96, + 0, + 135, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 144, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 32, + 96, + 64, + 81, + 128, + 97, + 1, + 64, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 2, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 3, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 4, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 5, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 6, + 130, + 1, + 96, + 64, + 81, + 128, + 97, + 1, + 0, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 18, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 22, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 24, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 26, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 30, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 21, + 21, + 21, + 21, + 129, + 82, + 80, + 80, + 129, + 82, + 96, + 32, + 1, + 96, + 7, + 130, + 1, + 96, + 64, + 81, + 128, + 96, + 128, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 80, + 80, + 129, + 82, + 80, + 80, + 97, + 64, + 48, + 144, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 145, + 80, + 145, + 80, + 91, + 146, + 80, + 146, + 144, + 80, + 86, + 91, + 96, + 0, + 128, + 132, + 21, + 97, + 32, + 227, + 87, + 97, + 32, + 220, + 131, + 97, + 32, + 214, + 134, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 97, + 136, + 82, + 86, + 91, + 144, + 97, + 65, + 53, + 86, + 91, + 144, + 80, + 97, + 33, + 28, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 134, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 8, + 96, + 32, + 82, + 96, + 64, + 144, + 32, + 96, + 6, + 1, + 84, + 97, + 33, + 25, + 144, + 132, + 144, + 97, + 32, + 214, + 144, + 135, + 144, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 97, + 136, + 82, + 86, + 91, + 144, + 80, + 91, + 144, + 80, + 91, + 148, + 147, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 11, + 84, + 96, + 1, + 20, + 97, + 33, + 77, + 87, + 96, + 64, + 81, + 96, + 1, + 98, + 56, + 221, + 247, + 96, + 224, + 27, + 3, + 25, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 2, + 96, + 11, + 85, + 97, + 33, + 90, + 97, + 65, + 74, + 86, + 91, + 96, + 85, + 96, + 249, + 27, + 130, + 130, + 96, + 0, + 129, + 97, + 33, + 112, + 87, + 97, + 33, + 112, + 97, + 136, + 105, + 86, + 91, + 144, + 80, + 1, + 53, + 96, + 248, + 28, + 96, + 248, + 27, + 96, + 1, + 96, + 1, + 96, + 248, + 27, + 3, + 25, + 22, + 20, + 97, + 33, + 152, + 87, + 97, + 33, + 147, + 130, + 130, + 97, + 65, + 178, + 86, + 91, + 97, + 26, + 57, + 86, + 91, + 97, + 26, + 57, + 130, + 130, + 97, + 65, + 178, + 97, + 69, + 10, + 86, + 91, + 96, + 0, + 97, + 24, + 76, + 96, + 8, + 96, + 0, + 132, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 144, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 32, + 96, + 64, + 81, + 128, + 97, + 1, + 64, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 2, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 3, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 4, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 5, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 6, + 130, + 1, + 96, + 64, + 81, + 128, + 97, + 1, + 0, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 18, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 22, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 24, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 26, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 30, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 21, + 21, + 21, + 21, + 129, + 82, + 80, + 80, + 129, + 82, + 96, + 32, + 1, + 96, + 7, + 130, + 1, + 96, + 64, + 81, + 128, + 96, + 128, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 80, + 80, + 129, + 82, + 80, + 80, + 96, + 96, + 1, + 81, + 99, + 255, + 255, + 255, + 255, + 22, + 21, + 21, + 144, + 86, + 91, + 96, + 11, + 84, + 96, + 1, + 20, + 97, + 36, + 225, + 87, + 96, + 64, + 81, + 96, + 1, + 98, + 56, + 221, + 247, + 96, + 224, + 27, + 3, + 25, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 2, + 96, + 11, + 85, + 48, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 3, + 97, + 37, + 15, + 87, + 96, + 64, + 81, + 99, + 47, + 53, + 37, + 49, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 0, + 97, + 37, + 27, + 51, + 133, + 97, + 43, + 170, + 86, + 91, + 144, + 80, + 96, + 0, + 25, + 131, + 3, + 97, + 37, + 42, + 87, + 128, + 146, + 80, + 91, + 128, + 131, + 17, + 21, + 97, + 37, + 75, + 87, + 96, + 64, + 81, + 99, + 50, + 124, + 188, + 155, + 96, + 226, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 97, + 37, + 85, + 132, + 132, + 97, + 69, + 216, + 86, + 91, + 97, + 37, + 95, + 132, + 132, + 97, + 70, + 43, + 86, + 91, + 127, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 132, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 3, + 97, + 37, + 200, + 87, + 97, + 37, + 195, + 127, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 131, + 133, + 97, + 70, + 126, + 86, + 91, + 97, + 37, + 211, + 86, + 91, + 97, + 37, + 211, + 132, + 131, + 133, + 97, + 71, + 101, + 86, + 91, + 97, + 37, + 219, + 97, + 58, + 225, + 86, + 91, + 80, + 96, + 1, + 96, + 11, + 85, + 96, + 4, + 84, + 96, + 255, + 22, + 97, + 38, + 4, + 87, + 96, + 64, + 81, + 99, + 4, + 86, + 76, + 113, + 96, + 226, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 80, + 80, + 80, + 86, + 91, + 96, + 11, + 84, + 96, + 1, + 20, + 97, + 38, + 47, + 87, + 96, + 64, + 81, + 96, + 1, + 98, + 56, + 221, + 247, + 96, + 224, + 27, + 3, + 25, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 2, + 96, + 11, + 129, + 144, + 85, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 133, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 8, + 96, + 32, + 82, + 96, + 64, + 144, + 32, + 144, + 129, + 1, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 51, + 20, + 97, + 38, + 122, + 87, + 96, + 64, + 81, + 99, + 35, + 1, + 158, + 103, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 64, + 128, + 81, + 97, + 1, + 0, + 129, + 1, + 130, + 82, + 96, + 0, + 128, + 130, + 82, + 96, + 32, + 130, + 1, + 129, + 144, + 82, + 145, + 129, + 1, + 130, + 144, + 82, + 96, + 96, + 129, + 1, + 130, + 144, + 82, + 96, + 128, + 129, + 1, + 130, + 144, + 82, + 96, + 160, + 129, + 1, + 130, + 144, + 82, + 96, + 192, + 129, + 1, + 130, + 144, + 82, + 96, + 224, + 129, + 1, + 145, + 144, + 145, + 82, + 80, + 96, + 64, + 128, + 81, + 97, + 1, + 0, + 129, + 1, + 130, + 82, + 96, + 6, + 131, + 1, + 84, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 129, + 22, + 130, + 82, + 97, + 255, + 255, + 96, + 1, + 96, + 128, + 27, + 130, + 4, + 129, + 22, + 96, + 32, + 132, + 1, + 82, + 96, + 1, + 96, + 144, + 27, + 130, + 4, + 129, + 22, + 147, + 131, + 1, + 147, + 144, + 147, + 82, + 96, + 1, + 96, + 160, + 27, + 129, + 4, + 131, + 22, + 96, + 96, + 131, + 1, + 82, + 96, + 1, + 96, + 176, + 27, + 129, + 4, + 131, + 22, + 96, + 128, + 131, + 1, + 82, + 96, + 1, + 96, + 192, + 27, + 129, + 4, + 131, + 22, + 96, + 160, + 131, + 1, + 82, + 99, + 255, + 255, + 255, + 255, + 96, + 1, + 96, + 208, + 27, + 130, + 4, + 22, + 96, + 192, + 131, + 1, + 82, + 96, + 255, + 96, + 1, + 96, + 240, + 27, + 144, + 145, + 4, + 22, + 21, + 21, + 96, + 224, + 130, + 1, + 82, + 144, + 131, + 22, + 21, + 97, + 39, + 90, + 87, + 97, + 255, + 255, + 131, + 22, + 96, + 32, + 130, + 1, + 82, + 91, + 97, + 255, + 255, + 132, + 22, + 21, + 97, + 39, + 111, + 87, + 97, + 255, + 255, + 132, + 22, + 96, + 64, + 130, + 1, + 82, + 91, + 97, + 255, + 255, + 133, + 22, + 21, + 97, + 39, + 132, + 87, + 97, + 255, + 255, + 133, + 22, + 96, + 160, + 130, + 1, + 82, + 91, + 97, + 39, + 142, + 130, + 130, + 97, + 71, + 227, + 86, + 91, + 96, + 64, + 81, + 97, + 255, + 255, + 132, + 129, + 22, + 130, + 82, + 128, + 134, + 22, + 145, + 144, + 135, + 22, + 144, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 137, + 22, + 144, + 127, + 99, + 136, + 150, + 84, + 253, + 163, + 215, + 78, + 149, + 252, + 123, + 230, + 211, + 16, + 196, + 83, + 198, + 136, + 59, + 108, + 205, + 232, + 64, + 12, + 71, + 103, + 39, + 35, + 126, + 99, + 42, + 194, + 144, + 96, + 32, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 164, + 80, + 80, + 96, + 1, + 96, + 11, + 85, + 96, + 4, + 84, + 96, + 255, + 22, + 97, + 40, + 3, + 87, + 96, + 64, + 81, + 99, + 4, + 86, + 76, + 113, + 96, + 226, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 97, + 43, + 25, + 96, + 8, + 96, + 0, + 134, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 144, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 32, + 96, + 64, + 81, + 128, + 97, + 1, + 64, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 2, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 3, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 4, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 5, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 6, + 130, + 1, + 96, + 64, + 81, + 128, + 97, + 1, + 0, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 18, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 22, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 24, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 26, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 30, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 21, + 21, + 21, + 21, + 129, + 82, + 80, + 80, + 129, + 82, + 96, + 32, + 1, + 96, + 7, + 130, + 1, + 96, + 64, + 81, + 128, + 96, + 128, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 80, + 80, + 129, + 82, + 80, + 80, + 132, + 96, + 0, + 97, + 72, + 225, + 86, + 91, + 144, + 149, + 144, + 148, + 80, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 11, + 84, + 96, + 1, + 20, + 97, + 43, + 74, + 87, + 96, + 64, + 81, + 96, + 1, + 98, + 56, + 221, + 247, + 96, + 224, + 27, + 3, + 25, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 2, + 96, + 11, + 85, + 52, + 96, + 0, + 3, + 97, + 43, + 112, + 87, + 96, + 64, + 81, + 99, + 124, + 148, + 110, + 215, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 97, + 43, + 120, + 97, + 65, + 74, + 86, + 91, + 97, + 43, + 128, + 97, + 58, + 225, + 86, + 91, + 96, + 1, + 96, + 11, + 85, + 96, + 4, + 84, + 96, + 255, + 22, + 97, + 43, + 168, + 87, + 96, + 64, + 81, + 99, + 4, + 86, + 76, + 113, + 96, + 226, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 145, + 130, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 32, + 129, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 147, + 144, + 148, + 22, + 130, + 82, + 145, + 144, + 145, + 82, + 32, + 84, + 144, + 86, + 91, + 96, + 0, + 97, + 33, + 31, + 131, + 131, + 96, + 8, + 96, + 0, + 136, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 144, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 32, + 96, + 64, + 81, + 128, + 97, + 1, + 64, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 2, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 3, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 4, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 5, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 6, + 130, + 1, + 96, + 64, + 81, + 128, + 97, + 1, + 0, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 18, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 22, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 24, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 26, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 30, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 21, + 21, + 21, + 21, + 129, + 82, + 80, + 80, + 129, + 82, + 96, + 32, + 1, + 96, + 7, + 130, + 1, + 96, + 64, + 81, + 128, + 96, + 128, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 80, + 80, + 129, + 82, + 80, + 80, + 97, + 73, + 105, + 144, + 146, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 96, + 96, + 96, + 32, + 96, + 0, + 82, + 107, + 11, + 118, + 49, + 46, + 48, + 46, + 48, + 45, + 98, + 101, + 116, + 97, + 96, + 43, + 82, + 96, + 96, + 96, + 0, + 243, + 91, + 96, + 0, + 128, + 96, + 0, + 128, + 97, + 47, + 30, + 133, + 128, + 81, + 96, + 32, + 144, + 145, + 1, + 81, + 144, + 145, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 145, + 80, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 145, + 80, + 97, + 47, + 91, + 97, + 47, + 86, + 134, + 97, + 1, + 32, + 1, + 81, + 96, + 32, + 1, + 81, + 96, + 255, + 22, + 132, + 97, + 74, + 33, + 144, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 97, + 74, + 55, + 86, + 91, + 147, + 80, + 97, + 47, + 127, + 97, + 47, + 86, + 134, + 97, + 1, + 32, + 1, + 81, + 96, + 96, + 1, + 81, + 96, + 255, + 22, + 131, + 97, + 74, + 33, + 144, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 146, + 80, + 80, + 80, + 145, + 80, + 145, + 86, + 91, + 96, + 0, + 128, + 97, + 13, + 126, + 131, + 96, + 64, + 1, + 81, + 97, + 47, + 156, + 144, + 97, + 136, + 127, + 86, + 91, + 132, + 144, + 97, + 64, + 48, + 86, + 91, + 96, + 0, + 130, + 96, + 32, + 1, + 81, + 99, + 255, + 255, + 255, + 255, + 22, + 130, + 97, + 17, + 147, + 145, + 144, + 97, + 136, + 82, + 86, + 91, + 96, + 0, + 130, + 97, + 1, + 0, + 1, + 81, + 96, + 224, + 1, + 81, + 21, + 97, + 47, + 215, + 87, + 80, + 99, + 1, + 225, + 133, + 89, + 97, + 24, + 76, + 86, + 91, + 96, + 0, + 97, + 47, + 231, + 132, + 97, + 1, + 0, + 1, + 81, + 97, + 74, + 77, + 86, + 91, + 99, + 255, + 255, + 255, + 255, + 22, + 128, + 132, + 3, + 144, + 132, + 16, + 2, + 131, + 3, + 146, + 144, + 146, + 3, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 97, + 33, + 28, + 131, + 133, + 135, + 97, + 1, + 0, + 1, + 81, + 96, + 0, + 1, + 81, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 97, + 48, + 64, + 137, + 97, + 1, + 0, + 1, + 81, + 96, + 128, + 1, + 81, + 97, + 255, + 255, + 22, + 97, + 39, + 16, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 145, + 144, + 145, + 2, + 4, + 144, + 86, + 91, + 134, + 97, + 74, + 116, + 86, + 91, + 96, + 0, + 128, + 97, + 48, + 82, + 131, + 97, + 74, + 145, + 86, + 91, + 144, + 147, + 5, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 1, + 132, + 1, + 96, + 32, + 82, + 96, + 64, + 129, + 32, + 84, + 129, + 97, + 48, + 130, + 133, + 133, + 97, + 57, + 236, + 86, + 91, + 144, + 80, + 97, + 48, + 142, + 130, + 130, + 97, + 136, + 165, + 86, + 91, + 150, + 149, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 128, + 96, + 8, + 96, + 0, + 134, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 144, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 32, + 144, + 80, + 97, + 51, + 181, + 66, + 130, + 96, + 64, + 81, + 128, + 97, + 1, + 64, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 2, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 3, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 4, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 5, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 6, + 130, + 1, + 96, + 64, + 81, + 128, + 97, + 1, + 0, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 18, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 22, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 24, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 26, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 30, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 21, + 21, + 21, + 21, + 129, + 82, + 80, + 80, + 129, + 82, + 96, + 32, + 1, + 96, + 7, + 130, + 1, + 96, + 64, + 81, + 128, + 96, + 128, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 80, + 80, + 129, + 82, + 80, + 80, + 97, + 47, + 187, + 144, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 145, + 80, + 96, + 0, + 128, + 97, + 54, + 167, + 131, + 96, + 64, + 81, + 128, + 97, + 1, + 64, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 2, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 3, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 4, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 5, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 6, + 130, + 1, + 96, + 64, + 81, + 128, + 97, + 1, + 0, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 18, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 22, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 24, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 26, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 30, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 21, + 21, + 21, + 21, + 129, + 82, + 80, + 80, + 129, + 82, + 96, + 32, + 1, + 96, + 7, + 130, + 1, + 96, + 64, + 81, + 128, + 96, + 128, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 80, + 80, + 129, + 82, + 80, + 80, + 128, + 81, + 96, + 32, + 144, + 145, + 1, + 81, + 144, + 145, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 145, + 80, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 145, + 80, + 97, + 57, + 177, + 130, + 130, + 134, + 134, + 96, + 64, + 81, + 128, + 97, + 1, + 64, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 2, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 3, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 4, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 5, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 6, + 130, + 1, + 96, + 64, + 81, + 128, + 97, + 1, + 0, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 18, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 22, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 24, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 26, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 30, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 21, + 21, + 21, + 21, + 129, + 82, + 80, + 80, + 129, + 82, + 96, + 32, + 1, + 96, + 7, + 130, + 1, + 96, + 64, + 81, + 128, + 96, + 128, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 80, + 80, + 129, + 82, + 80, + 80, + 97, + 48, + 1, + 144, + 147, + 146, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 96, + 6, + 132, + 1, + 84, + 96, + 15, + 145, + 144, + 145, + 11, + 149, + 80, + 97, + 57, + 224, + 144, + 131, + 144, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 129, + 22, + 144, + 96, + 1, + 96, + 176, + 27, + 144, + 4, + 97, + 255, + 255, + 22, + 135, + 97, + 74, + 169, + 86, + 91, + 149, + 80, + 80, + 80, + 80, + 145, + 147, + 144, + 146, + 80, + 86, + 91, + 96, + 64, + 128, + 81, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 129, + 22, + 96, + 36, + 128, + 132, + 1, + 145, + 144, + 145, + 82, + 131, + 81, + 128, + 132, + 3, + 144, + 145, + 1, + 129, + 82, + 96, + 68, + 144, + 146, + 1, + 131, + 82, + 96, + 32, + 130, + 1, + 128, + 81, + 96, + 1, + 96, + 1, + 96, + 224, + 27, + 3, + 22, + 99, + 112, + 160, + 130, + 49, + 96, + 224, + 27, + 23, + 144, + 82, + 145, + 81, + 96, + 0, + 146, + 131, + 146, + 131, + 146, + 145, + 135, + 22, + 145, + 97, + 58, + 70, + 145, + 144, + 97, + 136, + 228, + 86, + 91, + 96, + 0, + 96, + 64, + 81, + 128, + 131, + 3, + 129, + 133, + 90, + 250, + 145, + 80, + 80, + 61, + 128, + 96, + 0, + 129, + 20, + 97, + 58, + 129, + 87, + 96, + 64, + 81, + 145, + 80, + 96, + 31, + 25, + 96, + 63, + 61, + 1, + 22, + 130, + 1, + 96, + 64, + 82, + 61, + 130, + 82, + 61, + 96, + 0, + 96, + 32, + 132, + 1, + 62, + 97, + 58, + 134, + 86, + 91, + 96, + 96, + 145, + 80, + 91, + 80, + 145, + 80, + 145, + 80, + 129, + 21, + 128, + 97, + 58, + 154, + 87, + 80, + 128, + 81, + 96, + 32, + 20, + 21, + 91, + 21, + 97, + 58, + 184, + 87, + 96, + 64, + 81, + 99, + 197, + 46, + 62, + 255, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 128, + 128, + 96, + 32, + 1, + 144, + 81, + 129, + 1, + 144, + 97, + 29, + 139, + 145, + 144, + 97, + 137, + 0, + 86, + 91, + 97, + 58, + 214, + 132, + 132, + 97, + 76, + 48, + 86, + 91, + 97, + 40, + 3, + 131, + 131, + 131, + 97, + 76, + 192, + 86, + 91, + 96, + 0, + 128, + 96, + 3, + 1, + 128, + 84, + 128, + 96, + 32, + 2, + 96, + 32, + 1, + 96, + 64, + 81, + 144, + 129, + 1, + 96, + 64, + 82, + 128, + 146, + 145, + 144, + 129, + 129, + 82, + 96, + 32, + 1, + 130, + 128, + 84, + 128, + 21, + 97, + 59, + 59, + 87, + 96, + 32, + 2, + 130, + 1, + 145, + 144, + 96, + 0, + 82, + 96, + 32, + 96, + 0, + 32, + 144, + 91, + 129, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 1, + 144, + 145, + 1, + 144, + 96, + 32, + 1, + 128, + 131, + 17, + 97, + 59, + 29, + 87, + 91, + 80, + 80, + 80, + 80, + 80, + 144, + 80, + 96, + 0, + 129, + 81, + 144, + 80, + 128, + 96, + 0, + 3, + 97, + 59, + 90, + 87, + 97, + 26, + 105, + 96, + 0, + 97, + 76, + 204, + 86, + 91, + 128, + 91, + 96, + 0, + 131, + 97, + 59, + 106, + 96, + 1, + 132, + 97, + 136, + 82, + 86, + 91, + 129, + 81, + 129, + 16, + 97, + 59, + 122, + 87, + 97, + 59, + 122, + 97, + 136, + 105, + 86, + 91, + 96, + 32, + 2, + 96, + 32, + 1, + 1, + 81, + 144, + 80, + 96, + 0, + 128, + 96, + 0, + 97, + 59, + 159, + 132, + 48, + 96, + 0, + 97, + 76, + 251, + 144, + 146, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 145, + 148, + 80, + 146, + 80, + 144, + 80, + 130, + 21, + 97, + 60, + 52, + 87, + 96, + 64, + 81, + 131, + 129, + 82, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 133, + 22, + 144, + 51, + 144, + 127, + 73, + 225, + 68, + 60, + 178, + 94, + 23, + 203, + 235, + 197, + 10, + 163, + 227, + 165, + 163, + 223, + 58, + 195, + 52, + 175, + 133, + 43, + 198, + 243, + 232, + 210, + 88, + 85, + 130, + 87, + 187, + 17, + 144, + 96, + 32, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 131, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 127, + 128, + 178, + 23, + 72, + 199, + 135, + 197, + 46, + 135, + 166, + 178, + 34, + 1, + 30, + 10, + 14, + 208, + 249, + 204, + 32, + 21, + 240, + 206, + 212, + 103, + 72, + 100, + 45, + 198, + 46, + 233, + 248, + 132, + 96, + 64, + 81, + 97, + 60, + 39, + 145, + 129, + 82, + 96, + 32, + 1, + 144, + 86, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 162, + 97, + 61, + 65, + 86, + 91, + 129, + 21, + 97, + 60, + 190, + 87, + 96, + 64, + 81, + 130, + 129, + 82, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 133, + 22, + 144, + 51, + 144, + 127, + 11, + 11, + 130, + 25, + 83, + 229, + 84, + 91, + 113, + 242, + 8, + 88, + 51, + 228, + 168, + 223, + 208, + 217, + 155, + 189, + 255, + 81, + 24, + 152, + 103, + 42, + 232, + 23, + 154, + 152, + 45, + 243, + 144, + 96, + 32, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 131, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 127, + 28, + 113, + 30, + 202, + 141, + 11, + 105, + 75, + 188, + 176, + 161, + 68, + 98, + 167, + 0, + 98, + 34, + 231, + 33, + 149, + 75, + 44, + 95, + 247, + 152, + 246, + 6, + 129, + 126, + 177, + 16, + 50, + 131, + 96, + 64, + 81, + 97, + 60, + 181, + 145, + 129, + 82, + 96, + 32, + 1, + 144, + 86, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 162, + 91, + 128, + 21, + 97, + 61, + 65, + 87, + 96, + 14, + 96, + 64, + 81, + 128, + 96, + 96, + 1, + 96, + 64, + 82, + 128, + 134, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 131, + 129, + 82, + 96, + 32, + 1, + 97, + 60, + 240, + 135, + 48, + 97, + 57, + 236, + 86, + 91, + 144, + 82, + 129, + 84, + 96, + 1, + 128, + 130, + 1, + 132, + 85, + 96, + 0, + 147, + 132, + 82, + 96, + 32, + 147, + 132, + 144, + 32, + 131, + 81, + 96, + 3, + 144, + 147, + 2, + 1, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 25, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 144, + 147, + 22, + 146, + 144, + 146, + 23, + 130, + 85, + 146, + 130, + 1, + 81, + 146, + 129, + 1, + 146, + 144, + 146, + 85, + 96, + 64, + 1, + 81, + 96, + 2, + 144, + 145, + 1, + 85, + 91, + 96, + 3, + 128, + 84, + 128, + 97, + 61, + 82, + 87, + 97, + 61, + 82, + 97, + 137, + 25, + 86, + 91, + 96, + 0, + 130, + 129, + 82, + 96, + 32, + 129, + 32, + 130, + 1, + 96, + 0, + 25, + 144, + 129, + 1, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 25, + 22, + 144, + 85, + 145, + 130, + 1, + 144, + 146, + 85, + 134, + 1, + 149, + 144, + 3, + 96, + 1, + 1, + 147, + 80, + 97, + 59, + 92, + 146, + 80, + 80, + 80, + 87, + 96, + 0, + 96, + 14, + 128, + 84, + 128, + 96, + 32, + 2, + 96, + 32, + 1, + 96, + 64, + 81, + 144, + 129, + 1, + 96, + 64, + 82, + 128, + 146, + 145, + 144, + 129, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 144, + 91, + 130, + 130, + 16, + 21, + 97, + 62, + 2, + 87, + 96, + 0, + 132, + 129, + 82, + 96, + 32, + 144, + 129, + 144, + 32, + 96, + 64, + 128, + 81, + 96, + 96, + 129, + 1, + 130, + 82, + 96, + 3, + 134, + 2, + 144, + 146, + 1, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 131, + 82, + 96, + 1, + 128, + 130, + 1, + 84, + 132, + 134, + 1, + 82, + 96, + 2, + 144, + 145, + 1, + 84, + 145, + 131, + 1, + 145, + 144, + 145, + 82, + 144, + 131, + 82, + 144, + 146, + 1, + 145, + 1, + 97, + 61, + 173, + 86, + 91, + 80, + 80, + 130, + 81, + 146, + 147, + 80, + 80, + 80, + 91, + 128, + 21, + 97, + 62, + 112, + 87, + 96, + 0, + 97, + 62, + 31, + 96, + 1, + 131, + 97, + 136, + 82, + 86, + 91, + 144, + 80, + 97, + 62, + 102, + 131, + 130, + 129, + 81, + 129, + 16, + 97, + 62, + 54, + 87, + 97, + 62, + 54, + 97, + 136, + 105, + 86, + 91, + 96, + 32, + 2, + 96, + 32, + 1, + 1, + 81, + 96, + 0, + 1, + 81, + 48, + 133, + 132, + 129, + 81, + 129, + 16, + 97, + 62, + 85, + 87, + 97, + 62, + 85, + 97, + 136, + 105, + 86, + 91, + 96, + 32, + 2, + 96, + 32, + 1, + 1, + 81, + 96, + 32, + 1, + 81, + 97, + 76, + 192, + 86, + 91, + 80, + 96, + 0, + 25, + 1, + 97, + 62, + 12, + 86, + 91, + 80, + 128, + 81, + 91, + 128, + 21, + 97, + 63, + 86, + 87, + 96, + 0, + 97, + 62, + 135, + 96, + 1, + 131, + 97, + 136, + 82, + 86, + 91, + 144, + 80, + 96, + 0, + 131, + 130, + 129, + 81, + 129, + 16, + 97, + 62, + 157, + 87, + 97, + 62, + 157, + 97, + 136, + 105, + 86, + 91, + 96, + 32, + 2, + 96, + 32, + 1, + 1, + 81, + 96, + 0, + 1, + 81, + 144, + 80, + 96, + 0, + 132, + 131, + 129, + 81, + 129, + 16, + 97, + 62, + 191, + 87, + 97, + 62, + 191, + 97, + 136, + 105, + 86, + 91, + 96, + 32, + 2, + 96, + 32, + 1, + 1, + 81, + 96, + 64, + 1, + 81, + 144, + 80, + 96, + 0, + 97, + 62, + 217, + 131, + 48, + 97, + 57, + 236, + 86, + 91, + 144, + 80, + 96, + 0, + 130, + 135, + 134, + 129, + 81, + 129, + 16, + 97, + 62, + 240, + 87, + 97, + 62, + 240, + 97, + 136, + 105, + 86, + 91, + 96, + 32, + 2, + 96, + 32, + 1, + 1, + 81, + 96, + 32, + 1, + 81, + 97, + 63, + 6, + 145, + 144, + 97, + 137, + 47, + 86, + 91, + 144, + 80, + 128, + 130, + 16, + 21, + 97, + 63, + 69, + 87, + 131, + 97, + 63, + 27, + 130, + 132, + 97, + 136, + 165, + 86, + 91, + 96, + 64, + 81, + 99, + 127, + 17, + 205, + 213, + 96, + 225, + 27, + 129, + 82, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 144, + 146, + 22, + 96, + 4, + 131, + 1, + 82, + 96, + 36, + 130, + 1, + 82, + 96, + 68, + 1, + 97, + 25, + 118, + 86, + 91, + 133, + 96, + 1, + 144, + 3, + 149, + 80, + 80, + 80, + 80, + 80, + 80, + 97, + 62, + 116, + 86, + 91, + 97, + 63, + 96, + 96, + 0, + 97, + 76, + 204, + 86, + 91, + 97, + 63, + 108, + 96, + 14, + 96, + 0, + 97, + 129, + 241, + 86, + 91, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 97, + 63, + 132, + 135, + 135, + 135, + 135, + 97, + 77, + 224, + 86, + 91, + 145, + 80, + 145, + 80, + 96, + 0, + 128, + 97, + 63, + 151, + 137, + 133, + 138, + 134, + 97, + 78, + 223, + 86, + 91, + 145, + 80, + 145, + 80, + 129, + 129, + 17, + 21, + 97, + 63, + 188, + 87, + 96, + 64, + 81, + 99, + 1, + 0, + 7, + 39, + 96, + 229, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 192, + 132, + 1, + 81, + 97, + 63, + 207, + 144, + 97, + 32, + 214, + 131, + 133, + 97, + 136, + 82, + 86, + 91, + 132, + 97, + 1, + 0, + 1, + 129, + 129, + 81, + 97, + 63, + 225, + 145, + 144, + 97, + 137, + 47, + 86, + 91, + 144, + 82, + 80, + 96, + 0, + 136, + 97, + 63, + 250, + 87, + 137, + 97, + 1, + 32, + 1, + 81, + 96, + 32, + 1, + 81, + 97, + 64, + 5, + 86, + 91, + 137, + 97, + 1, + 32, + 1, + 81, + 96, + 96, + 1, + 81, + 91, + 96, + 255, + 22, + 144, + 80, + 97, + 64, + 34, + 129, + 134, + 97, + 1, + 0, + 1, + 81, + 97, + 74, + 33, + 144, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 154, + 153, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 15, + 131, + 144, + 11, + 21, + 97, + 32, + 176, + 87, + 131, + 81, + 96, + 32, + 133, + 1, + 81, + 96, + 0, + 145, + 130, + 145, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 145, + 80, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 145, + 80, + 96, + 0, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 97, + 64, + 127, + 136, + 97, + 1, + 32, + 1, + 81, + 96, + 32, + 1, + 81, + 96, + 255, + 22, + 97, + 74, + 145, + 86, + 91, + 97, + 64, + 137, + 145, + 144, + 97, + 137, + 71, + 86, + 91, + 144, + 80, + 96, + 0, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 97, + 64, + 171, + 137, + 97, + 1, + 32, + 1, + 81, + 96, + 96, + 1, + 81, + 96, + 255, + 22, + 97, + 74, + 145, + 86, + 91, + 97, + 64, + 181, + 145, + 144, + 97, + 137, + 71, + 86, + 91, + 144, + 80, + 96, + 0, + 128, + 136, + 96, + 15, + 11, + 19, + 21, + 97, + 64, + 244, + 87, + 80, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 135, + 22, + 97, + 64, + 221, + 97, + 47, + 86, + 134, + 131, + 134, + 97, + 79, + 199, + 86, + 91, + 150, + 80, + 97, + 64, + 237, + 97, + 47, + 86, + 133, + 131, + 133, + 97, + 79, + 199, + 86, + 91, + 149, + 80, + 97, + 65, + 41, + 86, + 91, + 97, + 64, + 253, + 136, + 97, + 136, + 127, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 144, + 80, + 97, + 65, + 22, + 97, + 47, + 86, + 134, + 131, + 134, + 97, + 79, + 245, + 86, + 91, + 150, + 80, + 97, + 65, + 38, + 97, + 47, + 86, + 133, + 131, + 133, + 97, + 79, + 245, + 86, + 91, + 149, + 80, + 91, + 80, + 80, + 80, + 80, + 80, + 146, + 80, + 146, + 144, + 80, + 86, + 91, + 96, + 0, + 97, + 17, + 147, + 131, + 131, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 97, + 79, + 245, + 86, + 91, + 52, + 21, + 97, + 43, + 168, + 87, + 97, + 65, + 123, + 96, + 0, + 127, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 97, + 80, + 20, + 86, + 91, + 96, + 64, + 81, + 52, + 129, + 82, + 51, + 144, + 127, + 225, + 255, + 252, + 196, + 146, + 61, + 4, + 181, + 89, + 244, + 210, + 154, + 139, + 252, + 108, + 218, + 4, + 235, + 91, + 13, + 60, + 70, + 7, + 81, + 194, + 64, + 44, + 92, + 92, + 201, + 16, + 156, + 144, + 96, + 32, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 162, + 86, + 91, + 96, + 0, + 97, + 65, + 231, + 131, + 131, + 96, + 0, + 129, + 129, + 16, + 97, + 65, + 202, + 87, + 97, + 65, + 202, + 97, + 136, + 105, + 86, + 91, + 145, + 144, + 145, + 1, + 53, + 96, + 4, + 129, + 144, + 28, + 96, + 255, + 96, + 244, + 27, + 22, + 146, + 96, + 15, + 96, + 248, + 27, + 144, + 145, + 22, + 145, + 80, + 86, + 91, + 145, + 80, + 80, + 96, + 1, + 96, + 1, + 96, + 248, + 27, + 3, + 25, + 128, + 130, + 22, + 1, + 97, + 66, + 43, + 87, + 96, + 0, + 128, + 96, + 0, + 97, + 66, + 10, + 134, + 134, + 97, + 80, + 115, + 86, + 91, + 146, + 80, + 146, + 80, + 146, + 80, + 97, + 66, + 33, + 131, + 96, + 255, + 22, + 96, + 1, + 20, + 131, + 131, + 97, + 80, + 227, + 86, + 91, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 253, + 96, + 248, + 27, + 96, + 1, + 96, + 1, + 96, + 248, + 27, + 3, + 25, + 130, + 22, + 1, + 97, + 66, + 102, + 87, + 96, + 0, + 128, + 96, + 0, + 97, + 66, + 79, + 134, + 134, + 97, + 80, + 115, + 86, + 91, + 146, + 80, + 146, + 80, + 146, + 80, + 97, + 66, + 33, + 131, + 96, + 255, + 22, + 96, + 1, + 20, + 131, + 131, + 97, + 82, + 206, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 248, + 27, + 3, + 25, + 129, + 22, + 96, + 3, + 96, + 249, + 27, + 20, + 128, + 97, + 66, + 143, + 87, + 80, + 96, + 1, + 96, + 1, + 96, + 248, + 27, + 3, + 25, + 129, + 22, + 96, + 5, + 96, + 248, + 27, + 20, + 91, + 21, + 97, + 67, + 74, + 87, + 96, + 64, + 128, + 81, + 96, + 160, + 129, + 1, + 130, + 82, + 132, + 53, + 96, + 0, + 144, + 129, + 26, + 96, + 15, + 129, + 22, + 96, + 6, + 20, + 96, + 255, + 144, + 129, + 22, + 96, + 128, + 133, + 1, + 82, + 96, + 1, + 96, + 9, + 137, + 1, + 53, + 132, + 26, + 128, + 138, + 1, + 130, + 129, + 1, + 53, + 96, + 8, + 131, + 140, + 3, + 96, + 0, + 25, + 1, + 129, + 2, + 97, + 1, + 0, + 144, + 129, + 3, + 146, + 144, + 146, + 28, + 146, + 53, + 136, + 26, + 96, + 10, + 144, + 129, + 10, + 147, + 144, + 147, + 2, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 144, + 129, + 22, + 96, + 96, + 139, + 1, + 82, + 96, + 11, + 142, + 1, + 53, + 96, + 10, + 25, + 144, + 149, + 1, + 144, + 145, + 2, + 144, + 145, + 3, + 146, + 144, + 146, + 28, + 129, + 140, + 1, + 53, + 144, + 150, + 26, + 144, + 10, + 148, + 144, + 148, + 2, + 144, + 147, + 22, + 148, + 132, + 1, + 148, + 144, + 148, + 82, + 144, + 134, + 1, + 53, + 96, + 192, + 28, + 96, + 32, + 131, + 1, + 82, + 96, + 4, + 28, + 144, + 145, + 22, + 129, + 82, + 97, + 67, + 65, + 129, + 97, + 84, + 180, + 86, + 91, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 245, + 96, + 248, + 27, + 96, + 1, + 96, + 1, + 96, + 248, + 27, + 3, + 25, + 130, + 22, + 1, + 97, + 68, + 59, + 87, + 96, + 0, + 128, + 96, + 0, + 128, + 96, + 0, + 128, + 96, + 0, + 128, + 96, + 0, + 97, + 68, + 9, + 140, + 140, + 96, + 1, + 128, + 131, + 1, + 53, + 96, + 232, + 28, + 147, + 96, + 4, + 132, + 1, + 53, + 96, + 96, + 28, + 147, + 96, + 24, + 129, + 1, + 53, + 96, + 240, + 144, + 129, + 28, + 148, + 96, + 26, + 131, + 1, + 53, + 130, + 28, + 148, + 96, + 28, + 132, + 1, + 53, + 131, + 28, + 148, + 96, + 30, + 133, + 1, + 53, + 132, + 28, + 148, + 96, + 32, + 129, + 1, + 53, + 144, + 148, + 28, + 147, + 96, + 35, + 129, + 1, + 53, + 96, + 0, + 144, + 129, + 26, + 96, + 10, + 144, + 129, + 10, + 96, + 36, + 132, + 1, + 53, + 96, + 8, + 96, + 35, + 25, + 96, + 34, + 135, + 1, + 53, + 134, + 26, + 144, + 129, + 1, + 130, + 2, + 97, + 1, + 0, + 144, + 129, + 3, + 147, + 144, + 147, + 28, + 147, + 144, + 147, + 2, + 152, + 149, + 131, + 1, + 128, + 53, + 144, + 149, + 26, + 144, + 147, + 10, + 147, + 144, + 150, + 1, + 53, + 96, + 0, + 25, + 145, + 144, + 148, + 3, + 1, + 2, + 144, + 147, + 3, + 28, + 145, + 144, + 145, + 2, + 144, + 86, + 91, + 152, + 80, + 152, + 80, + 152, + 80, + 152, + 80, + 152, + 80, + 152, + 80, + 152, + 80, + 152, + 80, + 152, + 80, + 97, + 68, + 44, + 137, + 137, + 137, + 137, + 137, + 137, + 137, + 137, + 137, + 97, + 92, + 89, + 86, + 91, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 61, + 96, + 250, + 27, + 96, + 1, + 96, + 1, + 96, + 248, + 27, + 3, + 25, + 130, + 22, + 1, + 97, + 68, + 115, + 87, + 96, + 0, + 128, + 97, + 68, + 93, + 133, + 133, + 97, + 95, + 236, + 86, + 91, + 145, + 80, + 145, + 80, + 97, + 68, + 107, + 130, + 130, + 97, + 96, + 51, + 86, + 91, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 63, + 96, + 250, + 27, + 96, + 1, + 96, + 1, + 96, + 248, + 27, + 3, + 25, + 130, + 22, + 1, + 97, + 68, + 241, + 87, + 96, + 0, + 128, + 128, + 133, + 53, + 96, + 184, + 129, + 144, + 28, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 144, + 96, + 10, + 129, + 129, + 26, + 129, + 10, + 96, + 11, + 138, + 1, + 53, + 96, + 8, + 96, + 9, + 133, + 144, + 26, + 96, + 10, + 25, + 129, + 1, + 130, + 2, + 97, + 1, + 0, + 144, + 129, + 3, + 147, + 144, + 147, + 28, + 147, + 144, + 147, + 2, + 148, + 131, + 26, + 144, + 147, + 10, + 96, + 1, + 131, + 141, + 1, + 1, + 53, + 146, + 139, + 3, + 96, + 0, + 25, + 1, + 144, + 147, + 2, + 144, + 3, + 28, + 2, + 146, + 80, + 146, + 80, + 146, + 80, + 97, + 68, + 107, + 131, + 131, + 131, + 97, + 99, + 52, + 86, + 91, + 96, + 64, + 81, + 99, + 27, + 24, + 145, + 237, + 96, + 227, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 0, + 131, + 131, + 96, + 1, + 129, + 129, + 16, + 97, + 69, + 31, + 87, + 97, + 69, + 31, + 97, + 136, + 105, + 86, + 91, + 145, + 144, + 145, + 1, + 53, + 96, + 248, + 28, + 145, + 80, + 96, + 2, + 144, + 80, + 96, + 0, + 128, + 128, + 91, + 132, + 96, + 255, + 22, + 129, + 20, + 97, + 66, + 33, + 87, + 131, + 146, + 80, + 135, + 135, + 132, + 129, + 129, + 16, + 97, + 69, + 81, + 87, + 97, + 69, + 81, + 97, + 136, + 105, + 86, + 91, + 97, + 69, + 98, + 146, + 1, + 53, + 96, + 248, + 28, + 144, + 80, + 132, + 97, + 137, + 47, + 86, + 91, + 97, + 69, + 109, + 144, + 96, + 1, + 97, + 137, + 47, + 86, + 91, + 145, + 80, + 134, + 130, + 17, + 21, + 97, + 69, + 147, + 87, + 96, + 64, + 81, + 99, + 128, + 246, + 59, + 209, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 129, + 1, + 131, + 144, + 82, + 96, + 36, + 1, + 97, + 25, + 118, + 86, + 91, + 54, + 96, + 0, + 97, + 69, + 162, + 132, + 134, + 139, + 141, + 97, + 137, + 102, + 86, + 91, + 148, + 150, + 80, + 134, + 148, + 144, + 146, + 80, + 144, + 80, + 97, + 69, + 197, + 97, + 69, + 188, + 130, + 96, + 1, + 129, + 134, + 97, + 137, + 102, + 86, + 91, + 138, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 80, + 80, + 128, + 97, + 69, + 209, + 144, + 97, + 137, + 144, + 86, + 91, + 144, + 80, + 97, + 69, + 50, + 86, + 91, + 97, + 69, + 229, + 96, + 0, + 51, + 132, + 132, + 97, + 101, + 143, + 86, + 91, + 80, + 80, + 96, + 64, + 81, + 129, + 129, + 82, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 22, + 144, + 51, + 144, + 127, + 11, + 11, + 130, + 25, + 83, + 229, + 84, + 91, + 113, + 242, + 8, + 88, + 51, + 228, + 168, + 223, + 208, + 217, + 155, + 189, + 255, + 81, + 24, + 152, + 103, + 42, + 232, + 23, + 154, + 152, + 45, + 243, + 144, + 96, + 32, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 80, + 80, + 86, + 91, + 97, + 70, + 55, + 96, + 0, + 131, + 131, + 97, + 101, + 221, + 86, + 91, + 129, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 127, + 28, + 113, + 30, + 202, + 141, + 11, + 105, + 75, + 188, + 176, + 161, + 68, + 98, + 167, + 0, + 98, + 34, + 231, + 33, + 149, + 75, + 44, + 95, + 247, + 152, + 246, + 6, + 129, + 126, + 177, + 16, + 50, + 130, + 96, + 64, + 81, + 97, + 70, + 114, + 145, + 129, + 82, + 96, + 32, + 1, + 144, + 86, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 162, + 80, + 80, + 86, + 91, + 96, + 64, + 81, + 99, + 46, + 26, + 125, + 77, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 129, + 1, + 130, + 144, + 82, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 132, + 22, + 144, + 99, + 46, + 26, + 125, + 77, + 144, + 96, + 36, + 1, + 96, + 0, + 96, + 64, + 81, + 128, + 131, + 3, + 129, + 96, + 0, + 135, + 128, + 59, + 21, + 128, + 21, + 97, + 70, + 192, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 90, + 241, + 21, + 128, + 21, + 97, + 70, + 212, + 87, + 61, + 96, + 0, + 128, + 62, + 61, + 96, + 0, + 253, + 91, + 80, + 80, + 96, + 64, + 128, + 81, + 96, + 0, + 128, + 130, + 82, + 96, + 32, + 130, + 1, + 146, + 131, + 144, + 82, + 147, + 80, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 134, + 22, + 146, + 80, + 132, + 145, + 97, + 71, + 1, + 145, + 144, + 97, + 136, + 228, + 86, + 91, + 96, + 0, + 96, + 64, + 81, + 128, + 131, + 3, + 129, + 133, + 135, + 90, + 241, + 146, + 80, + 80, + 80, + 61, + 128, + 96, + 0, + 129, + 20, + 97, + 71, + 62, + 87, + 96, + 64, + 81, + 145, + 80, + 96, + 31, + 25, + 96, + 63, + 61, + 1, + 22, + 130, + 1, + 96, + 64, + 82, + 61, + 130, + 82, + 61, + 96, + 0, + 96, + 32, + 132, + 1, + 62, + 97, + 71, + 67, + 86, + 91, + 96, + 96, + 145, + 80, + 91, + 80, + 80, + 144, + 80, + 128, + 97, + 40, + 3, + 87, + 96, + 64, + 81, + 99, + 117, + 244, + 38, + 131, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 0, + 96, + 64, + 81, + 99, + 169, + 5, + 156, + 187, + 96, + 224, + 27, + 96, + 0, + 82, + 131, + 96, + 4, + 82, + 130, + 96, + 36, + 82, + 96, + 32, + 96, + 0, + 96, + 68, + 96, + 0, + 128, + 137, + 90, + 241, + 61, + 21, + 96, + 31, + 61, + 17, + 96, + 1, + 96, + 0, + 81, + 20, + 22, + 23, + 22, + 145, + 80, + 96, + 0, + 96, + 96, + 82, + 128, + 96, + 64, + 82, + 80, + 128, + 97, + 40, + 3, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 15, + 96, + 36, + 130, + 1, + 82, + 110, + 21, + 20, + 144, + 83, + 148, + 209, + 145, + 84, + 151, + 209, + 144, + 82, + 83, + 17, + 81, + 96, + 138, + 27, + 96, + 68, + 130, + 1, + 82, + 96, + 100, + 1, + 97, + 25, + 118, + 86, + 91, + 97, + 71, + 236, + 129, + 97, + 102, + 98, + 86, + 91, + 128, + 81, + 96, + 6, + 146, + 144, + 146, + 1, + 128, + 84, + 96, + 32, + 131, + 1, + 81, + 96, + 64, + 132, + 1, + 81, + 96, + 96, + 133, + 1, + 81, + 96, + 128, + 134, + 1, + 81, + 96, + 160, + 135, + 1, + 81, + 96, + 192, + 136, + 1, + 81, + 96, + 224, + 144, + 152, + 1, + 81, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 144, + 153, + 22, + 113, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 25, + 144, + 150, + 22, + 149, + 144, + 149, + 23, + 96, + 1, + 96, + 128, + 27, + 97, + 255, + 255, + 149, + 134, + 22, + 2, + 23, + 99, + 255, + 255, + 255, + 255, + 96, + 144, + 27, + 25, + 22, + 96, + 1, + 96, + 144, + 27, + 147, + 133, + 22, + 147, + 144, + 147, + 2, + 97, + 255, + 255, + 96, + 160, + 27, + 25, + 22, + 146, + 144, + 146, + 23, + 96, + 1, + 96, + 160, + 27, + 145, + 132, + 22, + 145, + 144, + 145, + 2, + 23, + 99, + 255, + 255, + 255, + 255, + 96, + 176, + 27, + 25, + 22, + 96, + 1, + 96, + 176, + 27, + 145, + 131, + 22, + 145, + 144, + 145, + 2, + 97, + 255, + 255, + 96, + 192, + 27, + 25, + 22, + 23, + 96, + 1, + 96, + 192, + 27, + 145, + 144, + 146, + 22, + 2, + 23, + 100, + 255, + 255, + 255, + 255, + 255, + 96, + 208, + 27, + 25, + 22, + 96, + 1, + 96, + 208, + 27, + 99, + 255, + 255, + 255, + 255, + 144, + 147, + 22, + 146, + 144, + 146, + 2, + 96, + 255, + 96, + 240, + 27, + 25, + 22, + 145, + 144, + 145, + 23, + 96, + 1, + 96, + 240, + 27, + 146, + 21, + 21, + 146, + 144, + 146, + 2, + 145, + 144, + 145, + 23, + 144, + 85, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 133, + 97, + 1, + 0, + 1, + 81, + 96, + 0, + 1, + 81, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 144, + 80, + 96, + 0, + 97, + 73, + 34, + 135, + 97, + 1, + 0, + 1, + 81, + 96, + 128, + 1, + 81, + 97, + 255, + 255, + 22, + 97, + 39, + 16, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 145, + 144, + 145, + 2, + 4, + 144, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 73, + 47, + 136, + 97, + 102, + 127, + 86, + 91, + 144, + 80, + 97, + 73, + 74, + 135, + 132, + 138, + 97, + 1, + 0, + 1, + 81, + 96, + 128, + 1, + 81, + 97, + 255, + 255, + 22, + 132, + 97, + 102, + 158, + 86, + 91, + 148, + 80, + 97, + 73, + 92, + 133, + 132, + 132, + 132, + 138, + 96, + 15, + 11, + 97, + 103, + 173, + 86, + 91, + 147, + 80, + 80, + 80, + 80, + 147, + 80, + 147, + 145, + 80, + 80, + 86, + 91, + 96, + 0, + 97, + 73, + 141, + 97, + 47, + 86, + 133, + 97, + 1, + 32, + 1, + 81, + 96, + 32, + 1, + 81, + 96, + 255, + 22, + 133, + 97, + 104, + 200, + 144, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 146, + 80, + 97, + 73, + 186, + 97, + 47, + 86, + 133, + 97, + 1, + 32, + 1, + 81, + 96, + 96, + 1, + 81, + 96, + 255, + 22, + 132, + 97, + 104, + 200, + 144, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 145, + 80, + 96, + 0, + 128, + 97, + 73, + 216, + 134, + 128, + 81, + 96, + 32, + 144, + 145, + 1, + 81, + 144, + 145, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 145, + 130, + 22, + 147, + 80, + 22, + 144, + 80, + 96, + 0, + 97, + 73, + 244, + 134, + 132, + 97, + 104, + 223, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 74, + 2, + 134, + 132, + 97, + 104, + 223, + 86, + 91, + 144, + 80, + 97, + 74, + 21, + 129, + 131, + 17, + 130, + 132, + 3, + 2, + 131, + 3, + 97, + 74, + 55, + 86, + 91, + 152, + 151, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 97, + 74, + 45, + 131, + 97, + 74, + 145, + 86, + 91, + 144, + 147, + 4, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 96, + 1, + 96, + 128, + 27, + 130, + 16, + 97, + 74, + 73, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 144, + 86, + 91, + 96, + 0, + 97, + 24, + 76, + 130, + 96, + 192, + 1, + 81, + 99, + 255, + 255, + 255, + 255, + 22, + 97, + 74, + 110, + 132, + 96, + 96, + 1, + 81, + 97, + 255, + 255, + 22, + 97, + 104, + 244, + 86, + 91, + 1, + 97, + 105, + 65, + 86, + 91, + 96, + 0, + 128, + 97, + 74, + 132, + 134, + 134, + 134, + 134, + 134, + 97, + 103, + 173, + 86, + 91, + 144, + 150, + 3, + 150, + 149, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 97, + 74, + 158, + 130, + 96, + 18, + 97, + 136, + 82, + 86, + 91, + 97, + 24, + 76, + 144, + 96, + 10, + 97, + 138, + 141, + 86, + 91, + 96, + 0, + 128, + 99, + 1, + 225, + 133, + 89, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 132, + 2, + 4, + 144, + 80, + 96, + 0, + 97, + 39, + 16, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 134, + 2, + 4, + 144, + 80, + 134, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 16, + 21, + 97, + 74, + 254, + 87, + 96, + 64, + 81, + 99, + 177, + 21, + 88, + 223, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 129, + 1, + 136, + 144, + 82, + 96, + 36, + 1, + 97, + 25, + 118, + 86, + 91, + 134, + 96, + 0, + 3, + 97, + 75, + 31, + 87, + 96, + 64, + 81, + 99, + 34, + 5, + 51, + 99, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 129, + 21, + 128, + 97, + 75, + 42, + 87, + 80, + 128, + 21, + 91, + 21, + 97, + 75, + 57, + 87, + 133, + 146, + 80, + 80, + 80, + 97, + 33, + 31, + 86, + 91, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 135, + 3, + 97, + 75, + 82, + 87, + 133, + 146, + 80, + 80, + 80, + 97, + 33, + 31, + 86, + 91, + 96, + 0, + 97, + 75, + 102, + 136, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 97, + 136, + 165, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 75, + 115, + 130, + 97, + 105, + 84, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 75, + 147, + 132, + 99, + 59, + 154, + 202, + 0, + 97, + 75, + 137, + 136, + 97, + 105, + 241, + 86, + 91, + 97, + 32, + 214, + 145, + 144, + 97, + 137, + 71, + 86, + 91, + 144, + 80, + 96, + 0, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 97, + 75, + 170, + 131, + 133, + 97, + 138, + 153, + 86, + 91, + 97, + 75, + 180, + 145, + 144, + 97, + 139, + 52, + 86, + 91, + 144, + 80, + 96, + 0, + 103, + 27, + 193, + 109, + 103, + 78, + 200, + 0, + 0, + 97, + 75, + 203, + 135, + 128, + 97, + 137, + 71, + 86, + 91, + 97, + 75, + 213, + 145, + 144, + 97, + 139, + 98, + 86, + 91, + 144, + 80, + 96, + 0, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 97, + 75, + 236, + 137, + 132, + 97, + 137, + 71, + 86, + 91, + 97, + 75, + 246, + 145, + 144, + 97, + 139, + 52, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 76, + 4, + 130, + 133, + 97, + 136, + 165, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 76, + 17, + 130, + 97, + 106, + 149, + 86, + 91, + 144, + 80, + 97, + 76, + 29, + 129, + 143, + 97, + 65, + 53, + 86, + 91, + 159, + 158, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 4, + 130, + 1, + 84, + 96, + 255, + 22, + 21, + 97, + 76, + 74, + 87, + 96, + 4, + 130, + 1, + 128, + 84, + 96, + 255, + 25, + 22, + 144, + 85, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 129, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 2, + 131, + 1, + 96, + 32, + 82, + 96, + 64, + 144, + 32, + 84, + 96, + 255, + 22, + 97, + 26, + 105, + 87, + 96, + 3, + 130, + 1, + 128, + 84, + 96, + 1, + 128, + 130, + 1, + 131, + 85, + 96, + 0, + 146, + 131, + 82, + 96, + 32, + 128, + 132, + 32, + 144, + 146, + 1, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 134, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 25, + 144, + 145, + 22, + 129, + 23, + 144, + 145, + 85, + 131, + 82, + 96, + 2, + 133, + 1, + 144, + 145, + 82, + 96, + 64, + 144, + 145, + 32, + 128, + 84, + 96, + 255, + 25, + 22, + 144, + 145, + 23, + 144, + 85, + 80, + 80, + 86, + 91, + 97, + 38, + 4, + 131, + 51, + 132, + 132, + 97, + 108, + 62, + 86, + 91, + 96, + 3, + 129, + 1, + 84, + 21, + 97, + 76, + 222, + 87, + 97, + 76, + 222, + 97, + 139, + 118, + 86, + 91, + 96, + 4, + 129, + 1, + 128, + 84, + 96, + 255, + 25, + 22, + 96, + 1, + 23, + 144, + 85, + 97, + 25, + 233, + 96, + 3, + 130, + 1, + 96, + 0, + 97, + 130, + 18, + 86, + 91, + 96, + 0, + 128, + 128, + 128, + 97, + 77, + 11, + 135, + 135, + 135, + 97, + 48, + 92, + 86, + 91, + 144, + 80, + 96, + 0, + 129, + 19, + 21, + 97, + 77, + 90, + 87, + 146, + 80, + 130, + 97, + 77, + 37, + 135, + 51, + 136, + 132, + 97, + 108, + 197, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 134, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 1, + 136, + 1, + 96, + 32, + 82, + 96, + 64, + 129, + 32, + 128, + 84, + 131, + 146, + 144, + 97, + 77, + 79, + 144, + 132, + 144, + 97, + 137, + 47, + 86, + 91, + 144, + 145, + 85, + 80, + 97, + 77, + 181, + 144, + 80, + 86, + 91, + 96, + 0, + 129, + 18, + 21, + 97, + 77, + 181, + 87, + 97, + 77, + 108, + 129, + 97, + 139, + 140, + 86, + 91, + 145, + 80, + 97, + 77, + 122, + 135, + 51, + 136, + 133, + 97, + 101, + 143, + 86, + 91, + 144, + 147, + 80, + 145, + 80, + 130, + 21, + 97, + 77, + 181, + 87, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 134, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 1, + 136, + 1, + 96, + 32, + 82, + 96, + 64, + 129, + 32, + 128, + 84, + 133, + 146, + 144, + 97, + 77, + 175, + 144, + 132, + 144, + 97, + 136, + 82, + 86, + 91, + 144, + 145, + 85, + 80, + 80, + 91, + 80, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 144, + 148, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 2, + 144, + 149, + 1, + 96, + 32, + 82, + 96, + 64, + 144, + 148, + 32, + 128, + 84, + 96, + 255, + 25, + 22, + 144, + 85, + 147, + 144, + 80, + 86, + 91, + 97, + 77, + 232, + 97, + 130, + 48, + 86, + 91, + 96, + 0, + 97, + 77, + 242, + 97, + 130, + 48, + 86, + 91, + 96, + 128, + 135, + 1, + 81, + 96, + 0, + 144, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 97, + 78, + 22, + 87, + 135, + 97, + 1, + 0, + 1, + 81, + 96, + 64, + 1, + 81, + 97, + 78, + 33, + 86, + 91, + 135, + 97, + 1, + 0, + 1, + 81, + 96, + 160, + 1, + 81, + 91, + 97, + 255, + 255, + 22, + 144, + 80, + 97, + 78, + 55, + 136, + 128, + 81, + 96, + 32, + 144, + 145, + 1, + 81, + 144, + 145, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 144, + 129, + 22, + 96, + 96, + 133, + 1, + 82, + 22, + 96, + 64, + 131, + 1, + 82, + 97, + 78, + 87, + 136, + 134, + 97, + 47, + 187, + 86, + 91, + 146, + 80, + 97, + 78, + 109, + 136, + 131, + 96, + 64, + 1, + 81, + 132, + 96, + 96, + 1, + 81, + 134, + 97, + 48, + 1, + 86, + 91, + 130, + 82, + 97, + 78, + 155, + 135, + 97, + 78, + 134, + 87, + 136, + 97, + 1, + 32, + 1, + 81, + 96, + 96, + 1, + 81, + 97, + 78, + 145, + 86, + 91, + 136, + 97, + 1, + 32, + 1, + 81, + 96, + 32, + 1, + 81, + 91, + 135, + 144, + 96, + 255, + 22, + 97, + 104, + 200, + 86, + 91, + 96, + 128, + 131, + 1, + 129, + 144, + 82, + 96, + 64, + 137, + 1, + 81, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 192, + 132, + 1, + 82, + 97, + 39, + 16, + 144, + 97, + 78, + 196, + 144, + 131, + 144, + 97, + 137, + 71, + 86, + 91, + 97, + 78, + 206, + 145, + 144, + 97, + 139, + 98, + 86, + 91, + 96, + 160, + 131, + 1, + 82, + 80, + 145, + 80, + 148, + 80, + 148, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 128, + 96, + 0, + 97, + 79, + 12, + 137, + 97, + 1, + 0, + 1, + 81, + 96, + 128, + 1, + 81, + 97, + 255, + 255, + 22, + 97, + 39, + 16, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 145, + 144, + 145, + 2, + 4, + 144, + 86, + 91, + 144, + 80, + 134, + 21, + 97, + 79, + 39, + 87, + 96, + 64, + 136, + 1, + 81, + 96, + 96, + 137, + 1, + 81, + 149, + 80, + 146, + 80, + 97, + 79, + 55, + 86, + 91, + 96, + 64, + 136, + 1, + 81, + 96, + 96, + 137, + 1, + 81, + 144, + 149, + 80, + 146, + 80, + 91, + 97, + 79, + 89, + 136, + 96, + 192, + 1, + 81, + 137, + 96, + 160, + 1, + 81, + 138, + 96, + 128, + 1, + 81, + 97, + 79, + 83, + 145, + 144, + 97, + 136, + 82, + 86, + 91, + 144, + 97, + 104, + 223, + 86, + 91, + 97, + 79, + 99, + 144, + 132, + 97, + 137, + 47, + 86, + 91, + 145, + 80, + 134, + 21, + 97, + 79, + 149, + 87, + 97, + 79, + 142, + 130, + 138, + 97, + 1, + 0, + 1, + 81, + 96, + 0, + 1, + 81, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 131, + 137, + 140, + 96, + 0, + 1, + 81, + 97, + 103, + 173, + 86, + 91, + 147, + 80, + 97, + 79, + 187, + 86, + 91, + 97, + 79, + 184, + 130, + 138, + 97, + 1, + 0, + 1, + 81, + 96, + 0, + 1, + 81, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 131, + 137, + 140, + 96, + 0, + 1, + 81, + 97, + 109, + 4, + 86, + 91, + 147, + 80, + 91, + 80, + 80, + 80, + 148, + 80, + 148, + 146, + 80, + 80, + 80, + 86, + 91, + 130, + 130, + 2, + 129, + 21, + 21, + 132, + 21, + 133, + 131, + 4, + 133, + 20, + 23, + 22, + 97, + 79, + 223, + 87, + 96, + 0, + 128, + 253, + 91, + 96, + 1, + 130, + 96, + 1, + 131, + 3, + 4, + 1, + 129, + 21, + 21, + 2, + 144, + 80, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 130, + 130, + 2, + 129, + 21, + 21, + 132, + 21, + 133, + 131, + 4, + 133, + 20, + 23, + 22, + 97, + 80, + 13, + 87, + 96, + 0, + 128, + 253, + 91, + 4, + 146, + 145, + 80, + 80, + 86, + 91, + 52, + 21, + 97, + 26, + 105, + 87, + 97, + 80, + 36, + 130, + 130, + 97, + 76, + 48, + 86, + 91, + 128, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 99, + 208, + 227, + 13, + 176, + 52, + 96, + 64, + 81, + 130, + 99, + 255, + 255, + 255, + 255, + 22, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 0, + 96, + 64, + 81, + 128, + 131, + 3, + 129, + 133, + 136, + 128, + 59, + 21, + 128, + 21, + 97, + 80, + 95, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 90, + 241, + 21, + 128, + 21, + 97, + 67, + 65, + 87, + 61, + 96, + 0, + 128, + 62, + 61, + 96, + 0, + 253, + 91, + 96, + 0, + 128, + 128, + 96, + 11, + 132, + 16, + 21, + 97, + 80, + 163, + 87, + 96, + 64, + 81, + 99, + 112, + 206, + 228, + 175, + 96, + 225, + 27, + 129, + 82, + 96, + 11, + 96, + 4, + 130, + 1, + 82, + 96, + 36, + 129, + 1, + 133, + 144, + 82, + 96, + 68, + 1, + 97, + 25, + 118, + 86, + 91, + 80, + 80, + 80, + 144, + 53, + 96, + 252, + 129, + 144, + 28, + 146, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 96, + 184, + 131, + 144, + 28, + 22, + 146, + 96, + 255, + 96, + 176, + 132, + 144, + 28, + 22, + 96, + 10, + 10, + 96, + 80, + 147, + 144, + 147, + 27, + 96, + 9, + 25, + 144, + 145, + 1, + 96, + 8, + 2, + 97, + 1, + 0, + 3, + 28, + 145, + 144, + 145, + 2, + 144, + 86, + 91, + 96, + 0, + 128, + 97, + 80, + 239, + 132, + 97, + 33, + 165, + 86, + 91, + 97, + 81, + 23, + 87, + 96, + 64, + 81, + 99, + 106, + 36, + 6, + 163, + 96, + 225, + 27, + 129, + 82, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 133, + 22, + 96, + 4, + 130, + 1, + 82, + 96, + 36, + 1, + 97, + 25, + 118, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 132, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 8, + 96, + 32, + 129, + 144, + 82, + 96, + 64, + 144, + 145, + 32, + 96, + 7, + 129, + 1, + 84, + 145, + 1, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 145, + 130, + 22, + 145, + 22, + 134, + 21, + 97, + 81, + 104, + 87, + 97, + 81, + 101, + 134, + 97, + 81, + 91, + 51, + 133, + 97, + 43, + 170, + 86, + 91, + 97, + 10, + 24, + 51, + 133, + 97, + 43, + 170, + 86, + 91, + 148, + 80, + 91, + 132, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 0, + 3, + 97, + 81, + 146, + 87, + 96, + 64, + 81, + 99, + 2, + 0, + 232, + 169, + 96, + 227, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 97, + 81, + 159, + 134, + 97, + 5, + 0, + 135, + 97, + 110, + 64, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 145, + 130, + 22, + 149, + 80, + 22, + 146, + 80, + 131, + 21, + 128, + 97, + 81, + 186, + 87, + 80, + 130, + 21, + 91, + 21, + 97, + 81, + 216, + 87, + 96, + 64, + 81, + 99, + 33, + 60, + 124, + 197, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 0, + 96, + 64, + 81, + 128, + 97, + 1, + 0, + 1, + 96, + 64, + 82, + 128, + 51, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 136, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 66, + 129, + 82, + 96, + 32, + 1, + 134, + 129, + 82, + 96, + 32, + 1, + 133, + 129, + 82, + 96, + 32, + 1, + 132, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 131, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 97, + 82, + 61, + 136, + 97, + 110, + 64, + 86, + 91, + 96, + 15, + 11, + 144, + 82, + 144, + 80, + 97, + 82, + 77, + 129, + 97, + 110, + 86, + 86, + 91, + 80, + 80, + 80, + 129, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 131, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 136, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 127, + 253, + 255, + 236, + 167, + 81, + 240, + 220, + 170, + 183, + 85, + 49, + 203, + 129, + 60, + 18, + 187, + 253, + 86, + 238, + 62, + 150, + 76, + 196, + 113, + 215, + 239, + 67, + 147, + 36, + 2, + 238, + 24, + 136, + 136, + 139, + 96, + 64, + 81, + 97, + 82, + 187, + 147, + 146, + 145, + 144, + 146, + 131, + 82, + 96, + 32, + 131, + 1, + 145, + 144, + 145, + 82, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 64, + 130, + 1, + 82, + 96, + 96, + 1, + 144, + 86, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 164, + 80, + 80, + 80, + 147, + 80, + 147, + 145, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 97, + 82, + 218, + 132, + 97, + 33, + 165, + 86, + 91, + 97, + 83, + 2, + 87, + 96, + 64, + 81, + 99, + 106, + 36, + 6, + 163, + 96, + 225, + 27, + 129, + 82, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 133, + 22, + 96, + 4, + 130, + 1, + 82, + 96, + 36, + 1, + 97, + 25, + 118, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 132, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 8, + 96, + 32, + 129, + 144, + 82, + 96, + 64, + 144, + 145, + 32, + 96, + 7, + 129, + 1, + 84, + 145, + 1, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 145, + 130, + 22, + 145, + 22, + 134, + 21, + 97, + 83, + 104, + 87, + 51, + 96, + 0, + 144, + 129, + 82, + 96, + 10, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 138, + 22, + 132, + 82, + 144, + 145, + 82, + 144, + 32, + 84, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 148, + 80, + 91, + 132, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 0, + 3, + 97, + 83, + 146, + 87, + 96, + 64, + 81, + 99, + 2, + 0, + 232, + 169, + 96, + 227, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 97, + 83, + 168, + 134, + 97, + 83, + 159, + 135, + 97, + 110, + 64, + 86, + 91, + 97, + 5, + 0, + 144, + 97, + 136, + 127, + 86, + 91, + 129, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 145, + 80, + 128, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 144, + 80, + 128, + 148, + 80, + 129, + 149, + 80, + 80, + 80, + 96, + 0, + 96, + 64, + 81, + 128, + 97, + 1, + 0, + 1, + 96, + 64, + 82, + 128, + 51, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 136, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 66, + 129, + 82, + 96, + 32, + 1, + 134, + 129, + 82, + 96, + 32, + 1, + 133, + 129, + 82, + 96, + 32, + 1, + 132, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 131, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 97, + 84, + 45, + 136, + 97, + 110, + 64, + 86, + 91, + 97, + 84, + 54, + 144, + 97, + 136, + 127, + 86, + 91, + 96, + 15, + 11, + 144, + 82, + 144, + 80, + 97, + 84, + 70, + 129, + 97, + 110, + 86, + 86, + 91, + 80, + 80, + 80, + 129, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 131, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 136, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 127, + 48, + 132, + 202, + 244, + 137, + 102, + 92, + 171, + 7, + 69, + 44, + 254, + 79, + 61, + 14, + 181, + 224, + 220, + 21, + 234, + 198, + 252, + 101, + 128, + 152, + 133, + 142, + 99, + 158, + 112, + 229, + 58, + 136, + 136, + 139, + 96, + 64, + 81, + 97, + 82, + 187, + 147, + 146, + 145, + 144, + 146, + 131, + 82, + 96, + 32, + 131, + 1, + 145, + 144, + 145, + 82, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 64, + 130, + 1, + 82, + 96, + 96, + 1, + 144, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 131, + 96, + 64, + 1, + 81, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 0, + 3, + 97, + 84, + 231, + 87, + 96, + 64, + 81, + 99, + 175, + 69, + 140, + 7, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 32, + 128, + 133, + 1, + 128, + 81, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 8, + 144, + 146, + 82, + 96, + 64, + 144, + 145, + 32, + 144, + 81, + 97, + 85, + 17, + 144, + 97, + 33, + 165, + 86, + 91, + 97, + 85, + 63, + 87, + 96, + 32, + 133, + 1, + 81, + 96, + 64, + 81, + 99, + 106, + 36, + 6, + 163, + 96, + 225, + 27, + 129, + 82, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 144, + 145, + 22, + 96, + 4, + 130, + 1, + 82, + 96, + 36, + 1, + 97, + 25, + 118, + 86, + 91, + 96, + 128, + 133, + 1, + 81, + 96, + 15, + 128, + 84, + 96, + 255, + 144, + 146, + 22, + 96, + 1, + 20, + 96, + 255, + 25, + 144, + 146, + 22, + 145, + 144, + 145, + 23, + 144, + 85, + 96, + 2, + 129, + 1, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 51, + 20, + 97, + 85, + 133, + 87, + 96, + 6, + 129, + 1, + 84, + 96, + 1, + 96, + 144, + 27, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 85, + 150, + 86, + 91, + 96, + 6, + 129, + 1, + 84, + 96, + 1, + 96, + 192, + 27, + 144, + 4, + 97, + 255, + 255, + 22, + 91, + 96, + 15, + 128, + 84, + 97, + 255, + 255, + 146, + 144, + 146, + 22, + 96, + 1, + 96, + 168, + 27, + 2, + 97, + 255, + 255, + 96, + 168, + 27, + 25, + 131, + 22, + 129, + 23, + 144, + 145, + 85, + 96, + 255, + 144, + 129, + 22, + 145, + 22, + 23, + 21, + 97, + 86, + 17, + 87, + 96, + 4, + 129, + 1, + 84, + 96, + 17, + 85, + 96, + 7, + 129, + 1, + 84, + 96, + 15, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 146, + 131, + 22, + 97, + 1, + 0, + 2, + 97, + 1, + 0, + 96, + 1, + 96, + 168, + 27, + 3, + 25, + 144, + 145, + 22, + 23, + 144, + 85, + 96, + 8, + 130, + 1, + 84, + 96, + 16, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 25, + 22, + 145, + 144, + 146, + 22, + 23, + 144, + 85, + 97, + 86, + 92, + 86, + 91, + 96, + 5, + 129, + 1, + 84, + 96, + 17, + 85, + 96, + 8, + 129, + 1, + 84, + 96, + 15, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 146, + 131, + 22, + 97, + 1, + 0, + 2, + 97, + 1, + 0, + 96, + 1, + 96, + 168, + 27, + 3, + 25, + 144, + 145, + 22, + 23, + 144, + 85, + 96, + 7, + 130, + 1, + 84, + 96, + 16, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 25, + 22, + 145, + 144, + 146, + 22, + 23, + 144, + 85, + 91, + 97, + 86, + 100, + 97, + 130, + 48, + 86, + 91, + 96, + 0, + 128, + 97, + 86, + 116, + 136, + 96, + 32, + 1, + 81, + 97, + 111, + 185, + 86, + 91, + 145, + 80, + 145, + 80, + 129, + 97, + 86, + 150, + 87, + 96, + 64, + 81, + 99, + 57, + 139, + 54, + 219, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 15, + 84, + 96, + 0, + 144, + 97, + 86, + 207, + 144, + 51, + 144, + 96, + 255, + 22, + 97, + 86, + 188, + 87, + 96, + 8, + 135, + 1, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 97, + 43, + 170, + 86, + 91, + 96, + 7, + 135, + 1, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 97, + 43, + 170, + 86, + 91, + 144, + 80, + 136, + 96, + 0, + 1, + 81, + 96, + 255, + 22, + 96, + 1, + 20, + 97, + 86, + 243, + 87, + 136, + 96, + 64, + 1, + 81, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 97, + 86, + 245, + 86, + 91, + 128, + 91, + 96, + 15, + 84, + 144, + 151, + 80, + 97, + 87, + 52, + 144, + 96, + 255, + 22, + 97, + 87, + 26, + 87, + 96, + 8, + 134, + 1, + 84, + 96, + 1, + 96, + 160, + 27, + 144, + 4, + 96, + 255, + 22, + 97, + 87, + 42, + 86, + 91, + 96, + 7, + 134, + 1, + 84, + 96, + 1, + 96, + 160, + 27, + 144, + 4, + 96, + 255, + 22, + 91, + 136, + 144, + 96, + 255, + 22, + 97, + 104, + 200, + 86, + 91, + 96, + 96, + 138, + 1, + 81, + 96, + 15, + 84, + 145, + 152, + 80, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 150, + 80, + 97, + 87, + 127, + 144, + 96, + 255, + 22, + 97, + 87, + 105, + 87, + 96, + 7, + 134, + 1, + 84, + 96, + 1, + 96, + 160, + 27, + 144, + 4, + 96, + 255, + 22, + 97, + 78, + 145, + 86, + 91, + 96, + 8, + 134, + 1, + 84, + 135, + 144, + 96, + 1, + 96, + 160, + 27, + 144, + 4, + 96, + 255, + 22, + 97, + 104, + 200, + 86, + 91, + 145, + 132, + 82, + 80, + 96, + 224, + 131, + 1, + 134, + 144, + 82, + 96, + 1, + 132, + 1, + 84, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 144, + 129, + 22, + 96, + 192, + 133, + 1, + 82, + 97, + 1, + 0, + 132, + 1, + 130, + 144, + 82, + 132, + 84, + 96, + 1, + 96, + 128, + 27, + 129, + 4, + 130, + 22, + 96, + 96, + 134, + 1, + 82, + 22, + 96, + 64, + 132, + 1, + 82, + 147, + 80, + 80, + 96, + 0, + 131, + 144, + 3, + 97, + 87, + 226, + 87, + 96, + 64, + 81, + 99, + 115, + 12, + 49, + 191, + 96, + 225, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 128, + 96, + 224, + 1, + 81, + 96, + 0, + 3, + 97, + 88, + 7, + 87, + 96, + 64, + 81, + 99, + 175, + 69, + 140, + 7, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 128, + 96, + 192, + 1, + 81, + 96, + 0, + 3, + 97, + 88, + 44, + 87, + 96, + 64, + 81, + 99, + 2, + 0, + 232, + 169, + 96, + 227, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 97, + 1, + 0, + 129, + 1, + 81, + 96, + 15, + 84, + 96, + 0, + 145, + 130, + 145, + 130, + 145, + 130, + 145, + 130, + 145, + 130, + 145, + 130, + 145, + 144, + 96, + 255, + 22, + 21, + 97, + 88, + 97, + 87, + 96, + 64, + 137, + 1, + 81, + 96, + 96, + 138, + 1, + 81, + 144, + 152, + 80, + 148, + 80, + 97, + 88, + 112, + 86, + 91, + 96, + 64, + 137, + 1, + 81, + 96, + 96, + 138, + 1, + 81, + 152, + 80, + 148, + 80, + 91, + 96, + 224, + 137, + 1, + 81, + 96, + 15, + 84, + 144, + 147, + 80, + 97, + 39, + 16, + 144, + 97, + 88, + 148, + 144, + 96, + 1, + 96, + 168, + 27, + 144, + 4, + 97, + 255, + 255, + 22, + 133, + 97, + 137, + 71, + 86, + 91, + 97, + 88, + 158, + 145, + 144, + 97, + 139, + 98, + 86, + 91, + 96, + 160, + 138, + 1, + 82, + 96, + 13, + 84, + 21, + 97, + 89, + 21, + 87, + 96, + 0, + 96, + 13, + 84, + 138, + 96, + 160, + 1, + 81, + 97, + 88, + 191, + 145, + 144, + 97, + 139, + 98, + 86, + 91, + 144, + 80, + 128, + 138, + 96, + 160, + 1, + 129, + 129, + 81, + 97, + 88, + 211, + 145, + 144, + 97, + 136, + 82, + 86, + 91, + 144, + 82, + 80, + 96, + 15, + 84, + 97, + 89, + 19, + 144, + 127, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 144, + 97, + 1, + 0, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 131, + 97, + 115, + 21, + 86, + 91, + 80, + 91, + 96, + 160, + 137, + 1, + 81, + 97, + 89, + 36, + 144, + 132, + 97, + 136, + 82, + 86, + 91, + 145, + 80, + 97, + 89, + 61, + 137, + 96, + 192, + 1, + 81, + 132, + 97, + 104, + 223, + 144, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 97, + 89, + 71, + 144, + 137, + 97, + 137, + 47, + 86, + 91, + 150, + 80, + 97, + 89, + 96, + 137, + 96, + 192, + 1, + 81, + 131, + 97, + 104, + 223, + 144, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 97, + 89, + 106, + 144, + 137, + 97, + 137, + 47, + 86, + 91, + 149, + 80, + 97, + 89, + 131, + 137, + 96, + 192, + 1, + 81, + 130, + 97, + 104, + 223, + 144, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 97, + 89, + 141, + 144, + 134, + 97, + 136, + 82, + 86, + 91, + 96, + 15, + 84, + 144, + 148, + 80, + 96, + 0, + 147, + 80, + 131, + 146, + 80, + 96, + 255, + 22, + 21, + 144, + 80, + 97, + 89, + 183, + 87, + 96, + 96, + 136, + 1, + 131, + 144, + 82, + 96, + 64, + 136, + 1, + 133, + 144, + 82, + 97, + 89, + 198, + 86, + 91, + 96, + 96, + 136, + 1, + 133, + 144, + 82, + 96, + 64, + 136, + 1, + 131, + 144, + 82, + 91, + 97, + 89, + 227, + 141, + 96, + 32, + 1, + 81, + 137, + 96, + 0, + 1, + 81, + 138, + 96, + 64, + 1, + 81, + 139, + 96, + 96, + 1, + 81, + 66, + 97, + 17, + 154, + 86, + 91, + 144, + 146, + 80, + 144, + 80, + 129, + 97, + 90, + 19, + 87, + 135, + 81, + 96, + 64, + 81, + 99, + 4, + 36, + 180, + 45, + 96, + 227, + 27, + 129, + 82, + 96, + 4, + 129, + 1, + 145, + 144, + 145, + 82, + 96, + 36, + 129, + 1, + 130, + 144, + 82, + 96, + 68, + 1, + 97, + 25, + 118, + 86, + 91, + 96, + 15, + 11, + 96, + 32, + 128, + 137, + 1, + 145, + 144, + 145, + 82, + 140, + 1, + 81, + 96, + 0, + 145, + 80, + 97, + 90, + 48, + 144, + 136, + 97, + 115, + 116, + 86, + 91, + 144, + 80, + 128, + 97, + 90, + 86, + 87, + 96, + 15, + 84, + 96, + 255, + 22, + 21, + 97, + 90, + 78, + 87, + 96, + 64, + 135, + 1, + 133, + 144, + 82, + 97, + 90, + 86, + 86, + 91, + 96, + 96, + 135, + 1, + 133, + 144, + 82, + 91, + 80, + 96, + 32, + 139, + 1, + 81, + 96, + 64, + 135, + 1, + 81, + 96, + 96, + 136, + 1, + 81, + 96, + 192, + 137, + 1, + 81, + 96, + 15, + 84, + 97, + 90, + 165, + 148, + 147, + 146, + 145, + 144, + 96, + 255, + 22, + 97, + 90, + 132, + 87, + 96, + 0, + 97, + 90, + 136, + 86, + 91, + 96, + 17, + 84, + 91, + 96, + 15, + 84, + 96, + 255, + 22, + 97, + 90, + 154, + 87, + 96, + 17, + 84, + 97, + 90, + 157, + 86, + 91, + 96, + 0, + 91, + 96, + 18, + 84, + 97, + 116, + 46, + 86, + 91, + 96, + 15, + 84, + 96, + 0, + 144, + 129, + 144, + 96, + 255, + 22, + 21, + 97, + 90, + 216, + 87, + 80, + 80, + 96, + 7, + 135, + 1, + 84, + 96, + 8, + 136, + 1, + 84, + 96, + 255, + 96, + 1, + 96, + 160, + 27, + 146, + 131, + 144, + 4, + 129, + 22, + 146, + 144, + 145, + 4, + 22, + 97, + 90, + 247, + 86, + 91, + 80, + 80, + 96, + 8, + 135, + 1, + 84, + 96, + 7, + 136, + 1, + 84, + 96, + 255, + 96, + 1, + 96, + 160, + 27, + 146, + 131, + 144, + 4, + 129, + 22, + 146, + 144, + 145, + 4, + 22, + 91, + 96, + 224, + 136, + 1, + 81, + 97, + 91, + 6, + 144, + 131, + 97, + 74, + 33, + 86, + 91, + 96, + 224, + 137, + 1, + 82, + 97, + 1, + 0, + 136, + 1, + 81, + 97, + 91, + 27, + 144, + 130, + 97, + 74, + 33, + 86, + 91, + 136, + 97, + 1, + 0, + 1, + 129, + 129, + 82, + 80, + 80, + 80, + 80, + 97, + 91, + 77, + 96, + 15, + 96, + 0, + 1, + 96, + 1, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 135, + 96, + 224, + 1, + 81, + 97, + 116, + 238, + 86, + 91, + 96, + 16, + 84, + 97, + 1, + 0, + 135, + 1, + 81, + 97, + 91, + 105, + 145, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 144, + 97, + 70, + 43, + 86, + 91, + 96, + 16, + 84, + 96, + 15, + 84, + 96, + 32, + 141, + 1, + 81, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 146, + 131, + 22, + 146, + 97, + 1, + 0, + 144, + 146, + 4, + 144, + 145, + 22, + 144, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 129, + 22, + 144, + 127, + 97, + 126, + 155, + 20, + 125, + 3, + 180, + 78, + 28, + 201, + 66, + 120, + 47, + 118, + 32, + 200, + 150, + 51, + 38, + 149, + 107, + 101, + 163, + 96, + 8, + 242, + 129, + 202, + 97, + 147, + 2, + 50, + 144, + 97, + 91, + 192, + 144, + 97, + 24, + 82, + 86, + 91, + 138, + 96, + 224, + 1, + 81, + 139, + 97, + 1, + 0, + 1, + 81, + 140, + 96, + 160, + 1, + 81, + 141, + 96, + 32, + 1, + 81, + 96, + 64, + 81, + 97, + 92, + 4, + 149, + 148, + 147, + 146, + 145, + 144, + 148, + 133, + 82, + 96, + 32, + 133, + 1, + 147, + 144, + 147, + 82, + 96, + 64, + 132, + 1, + 145, + 144, + 145, + 82, + 96, + 96, + 131, + 1, + 82, + 96, + 128, + 130, + 1, + 82, + 96, + 160, + 1, + 144, + 86, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 164, + 80, + 80, + 96, + 15, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 184, + 27, + 3, + 25, + 22, + 144, + 85, + 80, + 80, + 96, + 16, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 25, + 22, + 144, + 85, + 80, + 96, + 0, + 96, + 17, + 129, + 144, + 85, + 96, + 18, + 85, + 96, + 32, + 149, + 144, + 149, + 1, + 81, + 96, + 224, + 134, + 1, + 81, + 97, + 1, + 0, + 144, + 150, + 1, + 81, + 144, + 150, + 144, + 148, + 80, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 129, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 0, + 3, + 97, + 92, + 133, + 87, + 96, + 64, + 81, + 99, + 77, + 251, + 160, + 35, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 0, + 98, + 255, + 255, + 255, + 139, + 22, + 21, + 97, + 92, + 152, + 87, + 138, + 97, + 92, + 161, + 86, + 91, + 96, + 5, + 84, + 98, + 255, + 255, + 255, + 22, + 91, + 144, + 80, + 128, + 98, + 255, + 255, + 255, + 22, + 96, + 0, + 3, + 97, + 92, + 201, + 87, + 96, + 64, + 81, + 99, + 7, + 147, + 223, + 99, + 96, + 226, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 98, + 255, + 255, + 255, + 129, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 6, + 96, + 32, + 82, + 96, + 64, + 129, + 32, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 141, + 22, + 21, + 21, + 146, + 145, + 144, + 130, + 144, + 97, + 92, + 255, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 97, + 139, + 168, + 86, + 91, + 145, + 144, + 97, + 1, + 0, + 10, + 129, + 84, + 129, + 99, + 255, + 255, + 255, + 255, + 2, + 25, + 22, + 144, + 131, + 99, + 255, + 255, + 255, + 255, + 22, + 2, + 23, + 144, + 85, + 144, + 80, + 97, + 93, + 53, + 131, + 131, + 131, + 96, + 40, + 146, + 144, + 146, + 27, + 96, + 32, + 145, + 144, + 145, + 27, + 23, + 23, + 144, + 86, + 91, + 147, + 80, + 80, + 96, + 0, + 96, + 8, + 96, + 0, + 133, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 144, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 32, + 144, + 80, + 139, + 129, + 96, + 2, + 1, + 96, + 0, + 97, + 1, + 0, + 10, + 129, + 84, + 129, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 2, + 25, + 22, + 144, + 131, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 2, + 23, + 144, + 85, + 80, + 129, + 128, + 21, + 97, + 93, + 153, + 87, + 80, + 97, + 255, + 255, + 139, + 22, + 21, + 91, + 21, + 97, + 93, + 189, + 87, + 96, + 64, + 81, + 99, + 246, + 244, + 163, + 143, + 96, + 224, + 27, + 129, + 82, + 97, + 255, + 255, + 140, + 22, + 96, + 4, + 130, + 1, + 82, + 96, + 36, + 1, + 97, + 25, + 118, + 86, + 91, + 96, + 0, + 97, + 93, + 200, + 66, + 97, + 105, + 65, + 86, + 91, + 96, + 1, + 131, + 129, + 1, + 128, + 84, + 99, + 255, + 255, + 255, + 255, + 96, + 128, + 27, + 25, + 22, + 96, + 1, + 96, + 128, + 27, + 99, + 255, + 255, + 255, + 255, + 133, + 22, + 2, + 23, + 144, + 85, + 98, + 255, + 255, + 255, + 134, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 7, + 96, + 32, + 129, + 144, + 82, + 96, + 64, + 130, + 32, + 128, + 84, + 145, + 135, + 1, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 147, + 132, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 25, + 128, + 131, + 22, + 130, + 23, + 132, + 85, + 132, + 84, + 96, + 1, + 96, + 1, + 96, + 168, + 27, + 3, + 25, + 147, + 132, + 22, + 144, + 146, + 23, + 96, + 1, + 96, + 160, + 27, + 146, + 131, + 144, + 4, + 96, + 255, + 144, + 129, + 22, + 132, + 2, + 145, + 144, + 145, + 23, + 144, + 148, + 85, + 147, + 144, + 150, + 1, + 128, + 84, + 96, + 8, + 139, + 1, + 128, + 84, + 145, + 144, + 150, + 22, + 148, + 129, + 22, + 133, + 23, + 134, + 85, + 144, + 84, + 145, + 22, + 144, + 146, + 23, + 145, + 133, + 144, + 4, + 22, + 144, + 147, + 2, + 146, + 144, + 146, + 23, + 144, + 145, + 85, + 144, + 145, + 80, + 97, + 255, + 255, + 138, + 129, + 22, + 20, + 97, + 94, + 139, + 87, + 96, + 0, + 97, + 94, + 142, + 86, + 91, + 96, + 1, + 91, + 144, + 80, + 96, + 0, + 96, + 64, + 81, + 128, + 97, + 1, + 0, + 1, + 96, + 64, + 82, + 128, + 138, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 134, + 97, + 94, + 189, + 87, + 96, + 12, + 84, + 96, + 255, + 22, + 97, + 94, + 191, + 86, + 91, + 139, + 91, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 142, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 131, + 97, + 94, + 221, + 87, + 140, + 97, + 94, + 225, + 86, + 91, + 97, + 1, + 244, + 91, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 141, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 134, + 97, + 95, + 0, + 87, + 96, + 0, + 97, + 95, + 2, + 86, + 91, + 143, + 91, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 132, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 131, + 21, + 21, + 129, + 82, + 80, + 144, + 80, + 97, + 95, + 50, + 129, + 133, + 97, + 71, + 227, + 144, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 96, + 0, + 128, + 97, + 95, + 72, + 137, + 139, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 97, + 40, + 9, + 86, + 91, + 145, + 80, + 145, + 80, + 97, + 95, + 85, + 129, + 97, + 74, + 55, + 86, + 91, + 97, + 95, + 94, + 131, + 97, + 74, + 55, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 145, + 130, + 22, + 96, + 1, + 96, + 128, + 27, + 2, + 144, + 130, + 22, + 23, + 135, + 85, + 96, + 8, + 135, + 1, + 84, + 96, + 7, + 136, + 1, + 84, + 96, + 64, + 128, + 81, + 139, + 21, + 21, + 129, + 82, + 147, + 142, + 22, + 96, + 32, + 133, + 1, + 82, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 146, + 131, + 22, + 147, + 145, + 144, + 146, + 22, + 145, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 141, + 22, + 145, + 127, + 118, + 9, + 244, + 94, + 22, + 55, + 139, + 176, + 120, + 40, + 132, + 113, + 155, + 162, + 77, + 59, + 188, + 90, + 182, + 163, + 115, + 185, + 234, + 202, + 204, + 37, + 198, + 20, + 59, + 135, + 207, + 119, + 145, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 164, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 153, + 152, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 41, + 131, + 20, + 97, + 96, + 26, + 87, + 96, + 64, + 81, + 99, + 112, + 206, + 228, + 175, + 96, + 225, + 27, + 129, + 82, + 96, + 41, + 96, + 4, + 130, + 1, + 82, + 96, + 36, + 129, + 1, + 132, + 144, + 82, + 96, + 68, + 1, + 97, + 25, + 118, + 86, + 91, + 80, + 80, + 80, + 96, + 1, + 129, + 1, + 53, + 96, + 96, + 144, + 129, + 28, + 146, + 96, + 21, + 144, + 146, + 1, + 53, + 144, + 28, + 144, + 86, + 91, + 96, + 0, + 129, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 131, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 3, + 97, + 96, + 103, + 87, + 96, + 64, + 81, + 99, + 59, + 14, + 45, + 229, + 96, + 226, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 80, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 128, + 131, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 9, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 147, + 133, + 22, + 131, + 82, + 146, + 144, + 82, + 32, + 84, + 98, + 255, + 255, + 255, + 22, + 128, + 21, + 97, + 96, + 185, + 87, + 96, + 64, + 81, + 99, + 51, + 37, + 250, + 119, + 96, + 224, + 27, + 129, + 82, + 98, + 255, + 255, + 255, + 130, + 22, + 96, + 4, + 130, + 1, + 82, + 96, + 36, + 1, + 97, + 25, + 118, + 86, + 91, + 96, + 0, + 128, + 132, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 99, + 49, + 60, + 229, + 103, + 96, + 64, + 81, + 129, + 99, + 255, + 255, + 255, + 255, + 22, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 32, + 96, + 64, + 81, + 128, + 131, + 3, + 129, + 134, + 90, + 250, + 21, + 128, + 21, + 97, + 96, + 250, + 87, + 61, + 96, + 0, + 128, + 62, + 61, + 96, + 0, + 253, + 91, + 80, + 80, + 80, + 80, + 96, + 64, + 81, + 61, + 96, + 31, + 25, + 96, + 31, + 130, + 1, + 22, + 130, + 1, + 128, + 96, + 64, + 82, + 80, + 129, + 1, + 144, + 97, + 97, + 30, + 145, + 144, + 97, + 139, + 203, + 86, + 91, + 132, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 99, + 49, + 60, + 229, + 103, + 96, + 64, + 81, + 129, + 99, + 255, + 255, + 255, + 255, + 22, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 32, + 96, + 64, + 81, + 128, + 131, + 3, + 129, + 134, + 90, + 250, + 21, + 128, + 21, + 97, + 97, + 92, + 87, + 61, + 96, + 0, + 128, + 62, + 61, + 96, + 0, + 253, + 91, + 80, + 80, + 80, + 80, + 96, + 64, + 81, + 61, + 96, + 31, + 25, + 96, + 31, + 130, + 1, + 22, + 130, + 1, + 128, + 96, + 64, + 82, + 80, + 129, + 1, + 144, + 97, + 97, + 128, + 145, + 144, + 97, + 139, + 203, + 86, + 91, + 144, + 146, + 80, + 144, + 80, + 97, + 97, + 166, + 96, + 255, + 131, + 22, + 96, + 6, + 96, + 18, + 129, + 131, + 20, + 145, + 131, + 17, + 145, + 144, + 145, + 23, + 130, + 130, + 20, + 145, + 144, + 146, + 16, + 23, + 22, + 144, + 86, + 91, + 97, + 97, + 200, + 87, + 96, + 64, + 81, + 99, + 202, + 149, + 3, + 145, + 96, + 224, + 27, + 129, + 82, + 96, + 255, + 131, + 22, + 96, + 4, + 130, + 1, + 82, + 96, + 36, + 1, + 97, + 25, + 118, + 86, + 91, + 97, + 97, + 233, + 96, + 255, + 130, + 22, + 96, + 6, + 96, + 18, + 129, + 131, + 20, + 145, + 131, + 17, + 145, + 144, + 145, + 23, + 130, + 130, + 20, + 145, + 144, + 146, + 16, + 23, + 22, + 144, + 86, + 91, + 97, + 98, + 11, + 87, + 96, + 64, + 81, + 99, + 202, + 149, + 3, + 145, + 96, + 224, + 27, + 129, + 82, + 96, + 255, + 130, + 22, + 96, + 4, + 130, + 1, + 82, + 96, + 36, + 1, + 97, + 25, + 118, + 86, + 91, + 96, + 5, + 128, + 84, + 96, + 0, + 144, + 97, + 98, + 32, + 144, + 98, + 255, + 255, + 255, + 22, + 97, + 139, + 238, + 86, + 91, + 130, + 84, + 97, + 1, + 0, + 146, + 144, + 146, + 10, + 98, + 255, + 255, + 255, + 129, + 129, + 2, + 25, + 144, + 147, + 22, + 146, + 130, + 22, + 144, + 129, + 2, + 146, + 144, + 146, + 23, + 144, + 146, + 85, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 135, + 129, + 22, + 96, + 0, + 129, + 129, + 82, + 96, + 9, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 139, + 134, + 22, + 128, + 133, + 82, + 144, + 131, + 82, + 129, + 132, + 32, + 128, + 84, + 98, + 255, + 255, + 255, + 25, + 22, + 136, + 23, + 144, + 85, + 129, + 81, + 96, + 128, + 129, + 1, + 131, + 82, + 133, + 129, + 82, + 96, + 255, + 139, + 129, + 22, + 130, + 134, + 1, + 129, + 129, + 82, + 131, + 134, + 1, + 133, + 129, + 82, + 141, + 132, + 22, + 96, + 96, + 134, + 1, + 129, + 129, + 82, + 141, + 139, + 82, + 96, + 7, + 138, + 82, + 153, + 136, + 144, + 32, + 149, + 81, + 134, + 84, + 147, + 81, + 144, + 141, + 22, + 96, + 1, + 96, + 1, + 96, + 168, + 27, + 3, + 25, + 148, + 133, + 22, + 23, + 96, + 1, + 96, + 160, + 27, + 145, + 135, + 22, + 130, + 2, + 23, + 135, + 85, + 145, + 81, + 96, + 1, + 150, + 144, + 150, + 1, + 128, + 84, + 154, + 81, + 150, + 144, + 156, + 22, + 153, + 144, + 146, + 22, + 152, + 144, + 152, + 23, + 147, + 144, + 146, + 22, + 144, + 150, + 2, + 145, + 144, + 145, + 23, + 144, + 150, + 85, + 129, + 81, + 147, + 132, + 82, + 145, + 131, + 1, + 148, + 144, + 148, + 82, + 148, + 151, + 80, + 144, + 146, + 145, + 127, + 192, + 197, + 223, + 152, + 164, + 202, + 135, + 163, + 33, + 163, + 59, + 241, + 39, + 124, + 243, + 45, + 49, + 169, + 123, + 108, + 225, + 75, + 151, + 71, + 56, + 33, + 73, + 185, + 226, + 99, + 30, + 163, + 145, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 164, + 80, + 80, + 146, + 145, + 80, + 80, + 86, + 91, + 51, + 96, + 0, + 144, + 129, + 82, + 96, + 10, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 135, + 22, + 132, + 82, + 144, + 145, + 82, + 129, + 32, + 128, + 84, + 144, + 145, + 96, + 1, + 96, + 128, + 27, + 144, + 145, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 144, + 3, + 97, + 99, + 153, + 87, + 96, + 64, + 81, + 99, + 47, + 155, + 2, + 219, + 96, + 225, + 27, + 129, + 82, + 51, + 96, + 4, + 130, + 1, + 82, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 133, + 22, + 96, + 36, + 130, + 1, + 82, + 96, + 68, + 1, + 97, + 25, + 118, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 132, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 8, + 96, + 32, + 129, + 144, + 82, + 96, + 64, + 144, + 145, + 32, + 96, + 4, + 129, + 1, + 84, + 96, + 5, + 130, + 1, + 84, + 96, + 3, + 131, + 1, + 84, + 96, + 7, + 132, + 1, + 84, + 148, + 132, + 1, + 84, + 147, + 148, + 146, + 147, + 145, + 146, + 144, + 145, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 145, + 130, + 22, + 145, + 22, + 97, + 99, + 237, + 135, + 134, + 134, + 134, + 97, + 117, + 53, + 86, + 91, + 80, + 96, + 0, + 145, + 80, + 80, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 138, + 129, + 22, + 20, + 97, + 100, + 9, + 87, + 137, + 97, + 100, + 24, + 86, + 91, + 96, + 4, + 136, + 1, + 84, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 91, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 144, + 80, + 96, + 0, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 128, + 22, + 138, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 20, + 97, + 100, + 68, + 87, + 137, + 97, + 100, + 90, + 86, + 91, + 96, + 4, + 137, + 1, + 84, + 96, + 1, + 96, + 128, + 27, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 91, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 144, + 80, + 97, + 100, + 110, + 130, + 97, + 74, + 55, + 86, + 91, + 96, + 4, + 138, + 1, + 128, + 84, + 96, + 0, + 144, + 97, + 100, + 139, + 144, + 132, + 144, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 97, + 140, + 6, + 86, + 91, + 146, + 80, + 97, + 1, + 0, + 10, + 129, + 84, + 129, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 2, + 25, + 22, + 144, + 131, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 2, + 23, + 144, + 85, + 80, + 97, + 100, + 184, + 129, + 97, + 74, + 55, + 86, + 91, + 96, + 4, + 138, + 1, + 128, + 84, + 96, + 16, + 144, + 97, + 100, + 220, + 144, + 132, + 144, + 96, + 1, + 96, + 128, + 27, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 97, + 140, + 6, + 86, + 91, + 146, + 80, + 97, + 1, + 0, + 10, + 129, + 84, + 129, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 2, + 25, + 22, + 144, + 131, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 2, + 23, + 144, + 85, + 80, + 96, + 0, + 130, + 17, + 21, + 97, + 101, + 20, + 87, + 97, + 101, + 20, + 51, + 133, + 132, + 97, + 115, + 21, + 86, + 91, + 128, + 21, + 97, + 101, + 37, + 87, + 97, + 101, + 37, + 51, + 132, + 131, + 97, + 115, + 21, + 86, + 91, + 96, + 64, + 128, + 81, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 142, + 22, + 129, + 82, + 96, + 32, + 129, + 1, + 132, + 144, + 82, + 144, + 129, + 1, + 130, + 144, + 82, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 128, + 133, + 22, + 145, + 144, + 134, + 22, + 144, + 51, + 144, + 127, + 61, + 77, + 68, + 65, + 44, + 245, + 221, + 218, + 92, + 53, + 136, + 92, + 203, + 130, + 210, + 76, + 94, + 57, + 133, + 24, + 235, + 124, + 251, + 17, + 109, + 70, + 235, + 126, + 75, + 190, + 14, + 123, + 144, + 96, + 96, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 164, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 97, + 101, + 156, + 134, + 133, + 97, + 76, + 48, + 86, + 91, + 80, + 80, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 146, + 131, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 32, + 148, + 133, + 82, + 96, + 64, + 128, + 130, + 32, + 147, + 144, + 148, + 22, + 129, + 82, + 145, + 144, + 147, + 82, + 32, + 128, + 84, + 130, + 129, + 17, + 131, + 130, + 3, + 2, + 129, + 3, + 144, + 129, + 144, + 3, + 144, + 145, + 85, + 145, + 144, + 130, + 144, + 3, + 144, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 1, + 132, + 1, + 96, + 32, + 82, + 96, + 64, + 144, + 32, + 84, + 128, + 130, + 17, + 21, + 97, + 102, + 35, + 87, + 96, + 64, + 81, + 99, + 49, + 82, + 118, + 201, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 129, + 1, + 130, + 144, + 82, + 96, + 36, + 129, + 1, + 131, + 144, + 82, + 96, + 68, + 1, + 97, + 25, + 118, + 86, + 91, + 97, + 102, + 45, + 132, + 132, + 97, + 76, + 48, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 1, + 133, + 1, + 96, + 32, + 82, + 96, + 64, + 129, + 32, + 128, + 84, + 132, + 146, + 144, + 97, + 102, + 87, + 144, + 132, + 144, + 97, + 136, + 82, + 86, + 91, + 144, + 145, + 85, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 97, + 102, + 110, + 131, + 97, + 118, + 193, + 86, + 91, + 145, + 80, + 145, + 80, + 129, + 97, + 38, + 4, + 87, + 128, + 81, + 129, + 96, + 32, + 1, + 253, + 91, + 96, + 0, + 97, + 24, + 76, + 130, + 96, + 96, + 1, + 81, + 99, + 255, + 255, + 255, + 255, + 22, + 131, + 97, + 47, + 187, + 144, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 96, + 0, + 128, + 97, + 102, + 171, + 134, + 134, + 97, + 104, + 223, + 86, + 91, + 144, + 80, + 128, + 21, + 97, + 103, + 164, + 87, + 96, + 0, + 97, + 102, + 190, + 130, + 97, + 120, + 224, + 86, + 91, + 144, + 80, + 99, + 1, + 225, + 133, + 89, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 133, + 129, + 2, + 145, + 144, + 145, + 4, + 144, + 97, + 39, + 16, + 144, + 135, + 2, + 4, + 96, + 0, + 103, + 27, + 193, + 109, + 103, + 78, + 200, + 0, + 0, + 97, + 102, + 242, + 131, + 128, + 97, + 137, + 71, + 86, + 91, + 97, + 102, + 252, + 145, + 144, + 97, + 139, + 98, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 103, + 10, + 132, + 131, + 97, + 137, + 71, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 103, + 32, + 132, + 99, + 59, + 154, + 202, + 0, + 97, + 75, + 137, + 136, + 97, + 105, + 241, + 86, + 91, + 144, + 80, + 96, + 0, + 129, + 131, + 97, + 103, + 56, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 138, + 97, + 138, + 153, + 86, + 91, + 97, + 103, + 66, + 145, + 144, + 97, + 140, + 46, + 86, + 91, + 97, + 103, + 76, + 145, + 144, + 97, + 139, + 52, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 103, + 89, + 130, + 97, + 122, + 187, + 86, + 91, + 144, + 80, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 129, + 19, + 21, + 97, + 103, + 135, + 87, + 96, + 64, + 81, + 99, + 177, + 21, + 88, + 223, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 129, + 1, + 130, + 144, + 82, + 96, + 36, + 1, + 97, + 25, + 118, + 86, + 91, + 97, + 103, + 153, + 129, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 97, + 136, + 165, + 86, + 91, + 153, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 91, + 80, + 148, + 147, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 134, + 17, + 21, + 97, + 103, + 216, + 87, + 96, + 64, + 81, + 99, + 170, + 243, + 149, + 111, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 134, + 3, + 97, + 103, + 238, + 87, + 80, + 128, + 97, + 29, + 139, + 86, + 91, + 133, + 96, + 0, + 3, + 97, + 104, + 7, + 87, + 97, + 104, + 0, + 130, + 134, + 97, + 140, + 46, + 86, + 91, + 144, + 80, + 97, + 29, + 139, + 86, + 91, + 130, + 21, + 97, + 104, + 162, + 87, + 96, + 0, + 97, + 104, + 29, + 132, + 99, + 1, + 225, + 133, + 88, + 97, + 104, + 223, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 104, + 42, + 130, + 97, + 105, + 241, + 86, + 91, + 144, + 80, + 97, + 104, + 58, + 99, + 59, + 154, + 202, + 0, + 130, + 97, + 137, + 71, + 86, + 91, + 144, + 80, + 97, + 104, + 70, + 134, + 130, + 97, + 65, + 53, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 104, + 92, + 137, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 97, + 136, + 165, + 86, + 91, + 144, + 80, + 97, + 104, + 103, + 129, + 97, + 105, + 84, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 104, + 117, + 131, + 131, + 97, + 136, + 165, + 86, + 91, + 144, + 80, + 97, + 104, + 128, + 129, + 97, + 122, + 187, + 86, + 91, + 144, + 80, + 133, + 97, + 104, + 141, + 138, + 131, + 97, + 123, + 36, + 86, + 91, + 97, + 104, + 151, + 145, + 144, + 97, + 140, + 46, + 86, + 91, + 148, + 80, + 80, + 80, + 80, + 80, + 97, + 29, + 139, + 86, + 91, + 129, + 97, + 104, + 190, + 134, + 97, + 104, + 185, + 137, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 97, + 136, + 165, + 86, + 91, + 97, + 123, + 36, + 86, + 91, + 97, + 48, + 142, + 145, + 144, + 97, + 140, + 46, + 86, + 91, + 96, + 0, + 128, + 97, + 104, + 212, + 131, + 97, + 74, + 145, + 86, + 91, + 147, + 144, + 147, + 2, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 97, + 17, + 147, + 131, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 132, + 97, + 79, + 245, + 86, + 91, + 96, + 64, + 128, + 81, + 96, + 4, + 129, + 82, + 96, + 36, + 129, + 1, + 144, + 145, + 82, + 96, + 32, + 129, + 1, + 128, + 81, + 96, + 1, + 96, + 1, + 96, + 224, + 27, + 3, + 22, + 99, + 11, + 190, + 187, + 51, + 96, + 227, + 27, + 23, + 144, + 82, + 98, + 1, + 81, + 128, + 130, + 2, + 144, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 130, + 17, + 21, + 97, + 105, + 59, + 87, + 128, + 81, + 129, + 96, + 32, + 1, + 253, + 91, + 80, + 145, + 144, + 80, + 86, + 91, + 96, + 0, + 100, + 1, + 0, + 0, + 0, + 0, + 130, + 16, + 97, + 74, + 73, + 87, + 96, + 0, + 128, + 253, + 91, + 96, + 0, + 103, + 6, + 240, + 91, + 89, + 211, + 178, + 0, + 0, + 130, + 3, + 97, + 105, + 109, + 87, + 80, + 96, + 0, + 145, + 144, + 80, + 86, + 91, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 130, + 18, + 97, + 105, + 149, + 87, + 96, + 64, + 81, + 99, + 7, + 160, + 33, + 39, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 129, + 96, + 0, + 3, + 97, + 105, + 182, + 87, + 96, + 64, + 81, + 99, + 34, + 237, + 89, + 133, + 96, + 226, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 0, + 97, + 105, + 195, + 131, + 96, + 2, + 97, + 138, + 153, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 105, + 208, + 130, + 97, + 123, + 57, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 105, + 230, + 103, + 19, + 160, + 75, + 189, + 253, + 201, + 190, + 136, + 131, + 97, + 123, + 36, + 86, + 91, + 144, + 80, + 97, + 29, + 139, + 129, + 97, + 139, + 140, + 86, + 91, + 96, + 181, + 129, + 96, + 1, + 96, + 136, + 27, + 129, + 16, + 97, + 106, + 10, + 87, + 96, + 64, + 145, + 144, + 145, + 27, + 144, + 96, + 128, + 28, + 91, + 105, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 129, + 16, + 97, + 106, + 38, + 87, + 96, + 32, + 145, + 144, + 145, + 27, + 144, + 96, + 64, + 28, + 91, + 101, + 1, + 0, + 0, + 0, + 0, + 0, + 129, + 16, + 97, + 106, + 62, + 87, + 96, + 16, + 145, + 144, + 145, + 27, + 144, + 96, + 32, + 28, + 91, + 99, + 1, + 0, + 0, + 0, + 129, + 16, + 97, + 106, + 84, + 87, + 96, + 8, + 145, + 144, + 145, + 27, + 144, + 96, + 16, + 28, + 91, + 98, + 1, + 0, + 0, + 1, + 2, + 96, + 18, + 28, + 128, + 130, + 4, + 1, + 96, + 1, + 144, + 129, + 28, + 128, + 131, + 4, + 1, + 129, + 28, + 128, + 131, + 4, + 1, + 129, + 28, + 128, + 131, + 4, + 1, + 129, + 28, + 128, + 131, + 4, + 1, + 129, + 28, + 128, + 131, + 4, + 1, + 129, + 28, + 128, + 131, + 4, + 1, + 144, + 28, + 144, + 129, + 144, + 4, + 129, + 17, + 144, + 3, + 144, + 86, + 91, + 96, + 0, + 104, + 2, + 72, + 206, + 54, + 167, + 12, + 178, + 107, + 62, + 25, + 130, + 19, + 97, + 106, + 176, + 87, + 80, + 96, + 0, + 145, + 144, + 80, + 86, + 91, + 104, + 7, + 85, + 191, + 121, + 139, + 74, + 27, + 241, + 229, + 130, + 18, + 97, + 106, + 247, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 12, + 96, + 36, + 130, + 1, + 82, + 107, + 69, + 88, + 80, + 95, + 79, + 86, + 69, + 82, + 70, + 76, + 79, + 87, + 96, + 160, + 27, + 96, + 68, + 130, + 1, + 82, + 96, + 100, + 1, + 97, + 25, + 118, + 86, + 91, + 101, + 3, + 120, + 45, + 172, + 233, + 217, + 96, + 78, + 131, + 144, + 27, + 5, + 145, + 80, + 96, + 0, + 96, + 96, + 107, + 177, + 114, + 23, + 247, + 209, + 207, + 121, + 171, + 201, + 227, + 179, + 152, + 132, + 130, + 27, + 5, + 96, + 1, + 96, + 95, + 27, + 1, + 144, + 29, + 107, + 177, + 114, + 23, + 247, + 209, + 207, + 121, + 171, + 201, + 227, + 179, + 152, + 129, + 2, + 144, + 147, + 3, + 108, + 36, + 12, + 51, + 14, + 159, + 178, + 217, + 203, + 175, + 15, + 213, + 170, + 251, + 25, + 129, + 1, + 129, + 2, + 96, + 96, + 144, + 129, + 29, + 109, + 2, + 119, + 89, + 73, + 145, + 207, + 200, + 95, + 110, + 36, + 97, + 131, + 124, + 217, + 1, + 130, + 2, + 129, + 29, + 109, + 26, + 82, + 18, + 85, + 227, + 79, + 106, + 80, + 97, + 178, + 94, + 241, + 201, + 195, + 25, + 1, + 130, + 2, + 129, + 29, + 109, + 177, + 187, + 178, + 1, + 244, + 67, + 207, + 150, + 47, + 26, + 29, + 61, + 180, + 165, + 1, + 130, + 2, + 129, + 29, + 110, + 2, + 199, + 35, + 136, + 217, + 247, + 79, + 81, + 169, + 51, + 31, + 237, + 105, + 63, + 20, + 25, + 1, + 130, + 2, + 129, + 29, + 110, + 5, + 24, + 11, + 177, + 71, + 153, + 171, + 71, + 168, + 168, + 203, + 42, + 82, + 125, + 87, + 1, + 109, + 2, + 209, + 103, + 32, + 87, + 123, + 209, + 155, + 246, + 20, + 23, + 111, + 233, + 234, + 108, + 16, + 254, + 104, + 231, + 253, + 55, + 208, + 0, + 123, + 113, + 63, + 118, + 80, + 132, + 1, + 132, + 2, + 131, + 29, + 144, + 129, + 1, + 144, + 132, + 1, + 109, + 1, + 211, + 150, + 126, + 211, + 15, + 196, + 248, + 156, + 2, + 186, + 181, + 112, + 129, + 25, + 1, + 2, + 144, + 145, + 29, + 110, + 5, + 135, + 245, + 3, + 187, + 110, + 162, + 157, + 37, + 252, + 183, + 64, + 25, + 100, + 80, + 1, + 144, + 145, + 2, + 109, + 54, + 13, + 122, + 238, + 160, + 147, + 38, + 62, + 204, + 110, + 14, + 203, + 41, + 23, + 96, + 98, + 27, + 1, + 5, + 116, + 2, + 157, + 157, + 195, + 133, + 99, + 195, + 46, + 92, + 47, + 109, + 193, + 146, + 238, + 112, + 239, + 101, + 249, + 151, + 138, + 243, + 2, + 96, + 195, + 147, + 144, + 147, + 3, + 146, + 144, + 146, + 28, + 146, + 145, + 80, + 80, + 86, + 91, + 96, + 0, + 96, + 64, + 81, + 99, + 35, + 184, + 114, + 221, + 96, + 224, + 27, + 96, + 0, + 82, + 132, + 96, + 4, + 82, + 131, + 96, + 36, + 82, + 130, + 96, + 68, + 82, + 96, + 32, + 96, + 0, + 96, + 100, + 96, + 0, + 128, + 138, + 90, + 241, + 61, + 21, + 96, + 31, + 61, + 17, + 96, + 1, + 96, + 0, + 81, + 20, + 22, + 23, + 22, + 145, + 80, + 96, + 0, + 96, + 96, + 82, + 128, + 96, + 64, + 82, + 80, + 128, + 97, + 63, + 108, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 20, + 96, + 36, + 130, + 1, + 82, + 115, + 21, + 20, + 144, + 83, + 148, + 209, + 145, + 84, + 151, + 209, + 148, + 147, + 211, + 87, + 209, + 144, + 82, + 83, + 17, + 81, + 96, + 98, + 27, + 96, + 68, + 130, + 1, + 82, + 96, + 100, + 1, + 97, + 25, + 118, + 86, + 91, + 97, + 108, + 207, + 132, + 131, + 97, + 76, + 48, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 128, + 132, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 32, + 134, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 147, + 134, + 22, + 131, + 82, + 146, + 144, + 82, + 144, + 129, + 32, + 128, + 84, + 131, + 146, + 144, + 97, + 102, + 87, + 144, + 132, + 144, + 97, + 137, + 47, + 86, + 91, + 96, + 0, + 130, + 21, + 97, + 110, + 21, + 87, + 96, + 0, + 97, + 109, + 28, + 132, + 99, + 1, + 225, + 133, + 88, + 97, + 104, + 223, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 109, + 41, + 130, + 97, + 105, + 241, + 86, + 91, + 144, + 80, + 97, + 109, + 57, + 99, + 59, + 154, + 202, + 0, + 130, + 97, + 137, + 71, + 86, + 91, + 144, + 80, + 97, + 109, + 69, + 134, + 130, + 97, + 65, + 53, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 109, + 92, + 97, + 109, + 86, + 134, + 139, + 97, + 140, + 46, + 86, + 91, + 137, + 97, + 125, + 178, + 86, + 91, + 144, + 80, + 96, + 0, + 129, + 18, + 21, + 97, + 109, + 128, + 87, + 96, + 64, + 81, + 99, + 170, + 243, + 149, + 111, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 129, + 19, + 21, + 97, + 109, + 169, + 87, + 96, + 64, + 81, + 99, + 170, + 243, + 149, + 111, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 129, + 3, + 97, + 109, + 196, + 87, + 96, + 0, + 147, + 80, + 80, + 80, + 80, + 97, + 29, + 139, + 86, + 91, + 128, + 96, + 0, + 3, + 97, + 109, + 223, + 87, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 147, + 80, + 80, + 80, + 80, + 97, + 29, + 139, + 86, + 91, + 97, + 109, + 232, + 129, + 97, + 105, + 84, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 109, + 246, + 131, + 131, + 97, + 140, + 46, + 86, + 91, + 144, + 80, + 97, + 110, + 1, + 129, + 97, + 122, + 187, + 86, + 91, + 144, + 80, + 97, + 104, + 151, + 129, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 97, + 136, + 165, + 86, + 91, + 96, + 0, + 97, + 110, + 33, + 131, + 136, + 97, + 140, + 46, + 86, + 91, + 144, + 80, + 133, + 97, + 110, + 46, + 130, + 130, + 97, + 125, + 178, + 86, + 91, + 97, + 74, + 21, + 144, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 97, + 136, + 165, + 86, + 91, + 96, + 0, + 96, + 1, + 96, + 1, + 96, + 127, + 27, + 3, + 130, + 17, + 21, + 97, + 74, + 73, + 87, + 96, + 0, + 128, + 253, + 91, + 96, + 32, + 128, + 130, + 1, + 128, + 81, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 144, + 129, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 8, + 132, + 82, + 96, + 64, + 128, + 130, + 32, + 134, + 81, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 131, + 82, + 96, + 10, + 134, + 82, + 129, + 131, + 32, + 148, + 81, + 144, + 147, + 22, + 130, + 82, + 146, + 144, + 147, + 82, + 144, + 130, + 32, + 96, + 4, + 130, + 1, + 84, + 96, + 5, + 131, + 1, + 84, + 96, + 3, + 132, + 1, + 84, + 133, + 148, + 133, + 148, + 144, + 147, + 144, + 146, + 97, + 110, + 188, + 146, + 132, + 146, + 145, + 144, + 97, + 117, + 53, + 86, + 91, + 96, + 32, + 137, + 1, + 81, + 137, + 81, + 96, + 224, + 139, + 1, + 81, + 148, + 153, + 80, + 146, + 151, + 80, + 144, + 149, + 80, + 96, + 0, + 146, + 97, + 110, + 225, + 146, + 144, + 96, + 15, + 11, + 97, + 16, + 169, + 86, + 91, + 144, + 80, + 128, + 97, + 111, + 19, + 87, + 96, + 6, + 131, + 1, + 84, + 96, + 64, + 81, + 99, + 38, + 136, + 198, + 203, + 96, + 226, + 27, + 129, + 82, + 96, + 1, + 96, + 128, + 27, + 144, + 145, + 4, + 97, + 255, + 255, + 22, + 96, + 4, + 130, + 1, + 82, + 96, + 36, + 1, + 97, + 25, + 118, + 86, + 91, + 96, + 64, + 135, + 1, + 81, + 96, + 224, + 136, + 1, + 81, + 97, + 111, + 40, + 145, + 132, + 145, + 97, + 125, + 199, + 86, + 91, + 96, + 224, + 135, + 1, + 81, + 96, + 32, + 128, + 137, + 1, + 81, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 8, + 144, + 145, + 82, + 96, + 64, + 144, + 32, + 97, + 111, + 83, + 145, + 97, + 126, + 29, + 86, + 91, + 96, + 160, + 135, + 1, + 81, + 96, + 192, + 136, + 1, + 81, + 96, + 224, + 137, + 1, + 81, + 96, + 0, + 96, + 15, + 145, + 144, + 145, + 11, + 18, + 21, + 97, + 111, + 145, + 87, + 97, + 111, + 126, + 130, + 138, + 96, + 96, + 1, + 81, + 97, + 70, + 43, + 86, + 91, + 97, + 111, + 140, + 129, + 138, + 96, + 128, + 1, + 81, + 97, + 70, + 43, + 86, + 91, + 97, + 111, + 173, + 86, + 91, + 97, + 111, + 159, + 130, + 138, + 96, + 96, + 1, + 81, + 97, + 116, + 238, + 86, + 91, + 97, + 111, + 173, + 129, + 138, + 96, + 128, + 1, + 81, + 97, + 116, + 238, + 86, + 91, + 80, + 80, + 80, + 80, + 80, + 145, + 147, + 144, + 146, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 97, + 111, + 199, + 132, + 97, + 48, + 152, + 86, + 91, + 80, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 134, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 8, + 96, + 32, + 82, + 96, + 64, + 144, + 32, + 144, + 146, + 80, + 97, + 111, + 238, + 145, + 80, + 66, + 97, + 126, + 92, + 86, + 91, + 97, + 114, + 248, + 96, + 8, + 96, + 0, + 134, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 144, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 32, + 96, + 64, + 81, + 128, + 97, + 1, + 64, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 2, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 3, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 4, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 5, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 6, + 130, + 1, + 96, + 64, + 81, + 128, + 97, + 1, + 0, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 18, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 22, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 24, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 26, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 30, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 21, + 21, + 21, + 21, + 129, + 82, + 80, + 80, + 129, + 82, + 96, + 32, + 1, + 96, + 7, + 130, + 1, + 96, + 64, + 81, + 128, + 96, + 128, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 80, + 80, + 129, + 82, + 80, + 80, + 97, + 102, + 127, + 86, + 91, + 96, + 0, + 3, + 97, + 115, + 10, + 87, + 96, + 0, + 148, + 144, + 147, + 80, + 145, + 80, + 80, + 86, + 91, + 96, + 1, + 148, + 144, + 147, + 80, + 145, + 80, + 80, + 86, + 91, + 97, + 115, + 34, + 96, + 0, + 132, + 132, + 132, + 97, + 108, + 197, + 86, + 91, + 129, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 131, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 127, + 73, + 225, + 68, + 60, + 178, + 94, + 23, + 203, + 235, + 197, + 10, + 163, + 227, + 165, + 163, + 223, + 58, + 195, + 52, + 175, + 133, + 43, + 198, + 243, + 232, + 210, + 88, + 85, + 130, + 87, + 187, + 17, + 131, + 96, + 64, + 81, + 97, + 115, + 103, + 145, + 129, + 82, + 96, + 32, + 1, + 144, + 86, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 80, + 80, + 80, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 130, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 8, + 96, + 32, + 82, + 96, + 64, + 129, + 32, + 96, + 2, + 1, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 51, + 3, + 97, + 115, + 246, + 87, + 129, + 81, + 96, + 32, + 131, + 1, + 81, + 96, + 0, + 145, + 97, + 115, + 178, + 145, + 97, + 136, + 165, + 86, + 91, + 144, + 80, + 96, + 0, + 128, + 130, + 18, + 97, + 115, + 195, + 87, + 129, + 97, + 115, + 204, + 86, + 91, + 97, + 115, + 204, + 130, + 97, + 139, + 140, + 86, + 91, + 144, + 80, + 128, + 21, + 97, + 115, + 243, + 87, + 97, + 115, + 243, + 97, + 115, + 238, + 133, + 96, + 192, + 1, + 81, + 131, + 97, + 104, + 223, + 144, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 96, + 18, + 85, + 86, + 91, + 80, + 80, + 91, + 96, + 0, + 130, + 96, + 32, + 1, + 81, + 19, + 21, + 97, + 116, + 37, + 87, + 97, + 116, + 29, + 97, + 116, + 24, + 131, + 96, + 160, + 1, + 81, + 132, + 96, + 192, + 1, + 81, + 97, + 104, + 223, + 86, + 91, + 96, + 17, + 85, + 86, + 91, + 80, + 96, + 1, + 97, + 24, + 76, + 86, + 91, + 80, + 96, + 0, + 146, + 145, + 80, + 80, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 135, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 8, + 96, + 32, + 82, + 96, + 64, + 144, + 32, + 97, + 116, + 79, + 135, + 97, + 74, + 55, + 86, + 91, + 129, + 84, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 25, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 145, + 144, + 145, + 22, + 23, + 129, + 85, + 97, + 116, + 115, + 134, + 97, + 74, + 55, + 86, + 91, + 129, + 84, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 145, + 130, + 22, + 96, + 1, + 96, + 128, + 27, + 2, + 145, + 22, + 23, + 129, + 85, + 97, + 116, + 148, + 133, + 97, + 74, + 55, + 86, + 91, + 96, + 1, + 130, + 1, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 25, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 146, + 144, + 146, + 22, + 145, + 144, + 145, + 23, + 144, + 85, + 97, + 116, + 192, + 129, + 66, + 97, + 126, + 92, + 86, + 91, + 96, + 4, + 129, + 1, + 84, + 132, + 1, + 96, + 4, + 130, + 1, + 85, + 96, + 5, + 129, + 1, + 84, + 131, + 1, + 96, + 5, + 130, + 1, + 85, + 96, + 3, + 129, + 1, + 84, + 130, + 1, + 96, + 3, + 144, + 145, + 1, + 85, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 97, + 116, + 250, + 96, + 0, + 131, + 131, + 97, + 126, + 139, + 86, + 91, + 129, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 127, + 128, + 178, + 23, + 72, + 199, + 135, + 197, + 46, + 135, + 166, + 178, + 34, + 1, + 30, + 10, + 14, + 208, + 249, + 204, + 32, + 21, + 240, + 206, + 212, + 103, + 72, + 100, + 45, + 198, + 46, + 233, + 248, + 130, + 96, + 64, + 81, + 97, + 70, + 114, + 145, + 129, + 82, + 96, + 32, + 1, + 144, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 128, + 97, + 117, + 73, + 135, + 137, + 96, + 2, + 1, + 84, + 144, + 3, + 144, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 117, + 91, + 135, + 138, + 96, + 3, + 1, + 84, + 144, + 3, + 144, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 117, + 109, + 135, + 139, + 96, + 1, + 1, + 84, + 144, + 3, + 144, + 86, + 91, + 138, + 84, + 144, + 145, + 80, + 97, + 117, + 134, + 144, + 132, + 144, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 97, + 65, + 53, + 86, + 91, + 138, + 84, + 144, + 150, + 80, + 97, + 117, + 159, + 144, + 131, + 144, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 97, + 65, + 53, + 86, + 91, + 138, + 84, + 144, + 149, + 80, + 97, + 117, + 184, + 144, + 130, + 144, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 97, + 65, + 53, + 86, + 91, + 96, + 2, + 139, + 1, + 138, + 144, + 85, + 96, + 3, + 139, + 1, + 137, + 144, + 85, + 96, + 1, + 139, + 1, + 136, + 144, + 85, + 147, + 80, + 97, + 117, + 216, + 134, + 97, + 74, + 55, + 86, + 91, + 96, + 4, + 139, + 1, + 128, + 84, + 96, + 0, + 144, + 97, + 117, + 245, + 144, + 132, + 144, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 97, + 140, + 111, + 86, + 91, + 146, + 80, + 97, + 1, + 0, + 10, + 129, + 84, + 129, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 2, + 25, + 22, + 144, + 131, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 2, + 23, + 144, + 85, + 80, + 97, + 118, + 34, + 133, + 97, + 74, + 55, + 86, + 91, + 96, + 4, + 139, + 1, + 128, + 84, + 96, + 16, + 144, + 97, + 118, + 70, + 144, + 132, + 144, + 96, + 1, + 96, + 128, + 27, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 97, + 140, + 111, + 86, + 91, + 146, + 80, + 97, + 1, + 0, + 10, + 129, + 84, + 129, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 2, + 25, + 22, + 144, + 131, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 2, + 23, + 144, + 85, + 80, + 97, + 118, + 115, + 132, + 97, + 74, + 55, + 86, + 91, + 96, + 5, + 139, + 1, + 128, + 84, + 96, + 0, + 144, + 97, + 118, + 144, + 144, + 132, + 144, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 97, + 140, + 111, + 86, + 91, + 146, + 80, + 97, + 1, + 0, + 10, + 129, + 84, + 129, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 2, + 25, + 22, + 144, + 131, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 2, + 23, + 144, + 85, + 80, + 80, + 80, + 80, + 148, + 80, + 148, + 80, + 148, + 145, + 80, + 80, + 86, + 91, + 96, + 0, + 96, + 96, + 97, + 2, + 88, + 131, + 96, + 32, + 1, + 81, + 97, + 255, + 255, + 22, + 17, + 21, + 97, + 119, + 54, + 87, + 96, + 32, + 131, + 1, + 81, + 96, + 64, + 81, + 97, + 255, + 255, + 144, + 145, + 22, + 96, + 36, + 130, + 1, + 82, + 96, + 0, + 144, + 99, + 122, + 127, + 16, + 65, + 96, + 225, + 27, + 144, + 96, + 68, + 1, + 91, + 96, + 64, + 128, + 81, + 96, + 31, + 25, + 129, + 132, + 3, + 1, + 129, + 82, + 145, + 144, + 82, + 96, + 32, + 129, + 1, + 128, + 81, + 96, + 1, + 96, + 1, + 96, + 224, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 224, + 27, + 3, + 25, + 144, + 147, + 22, + 146, + 144, + 146, + 23, + 144, + 145, + 82, + 144, + 148, + 144, + 147, + 80, + 145, + 80, + 80, + 86, + 91, + 97, + 119, + 93, + 131, + 96, + 128, + 1, + 81, + 97, + 255, + 255, + 22, + 96, + 100, + 97, + 97, + 168, + 129, + 131, + 20, + 145, + 131, + 17, + 145, + 144, + 145, + 23, + 130, + 130, + 20, + 145, + 144, + 146, + 16, + 23, + 22, + 144, + 86, + 91, + 97, + 119, + 136, + 87, + 96, + 128, + 131, + 1, + 81, + 96, + 64, + 81, + 97, + 255, + 255, + 144, + 145, + 22, + 96, + 36, + 130, + 1, + 82, + 96, + 0, + 144, + 99, + 9, + 98, + 43, + 49, + 96, + 225, + 27, + 144, + 96, + 68, + 1, + 97, + 118, + 250, + 86, + 91, + 97, + 119, + 175, + 131, + 96, + 96, + 1, + 81, + 97, + 255, + 255, + 22, + 96, + 1, + 97, + 1, + 244, + 129, + 131, + 20, + 145, + 131, + 17, + 145, + 144, + 145, + 23, + 130, + 130, + 20, + 145, + 144, + 146, + 16, + 23, + 22, + 144, + 86, + 91, + 97, + 119, + 218, + 87, + 96, + 96, + 131, + 1, + 81, + 96, + 64, + 81, + 97, + 255, + 255, + 144, + 145, + 22, + 96, + 36, + 130, + 1, + 82, + 96, + 0, + 144, + 99, + 174, + 145, + 144, + 39, + 96, + 224, + 27, + 144, + 96, + 68, + 1, + 97, + 118, + 250, + 86, + 91, + 130, + 81, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 144, + 129, + 22, + 129, + 129, + 16, + 145, + 129, + 20, + 145, + 144, + 145, + 23, + 96, + 1, + 128, + 131, + 17, + 146, + 20, + 145, + 144, + 145, + 23, + 22, + 97, + 120, + 42, + 87, + 130, + 81, + 96, + 64, + 81, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 144, + 145, + 22, + 96, + 36, + 130, + 1, + 82, + 96, + 0, + 144, + 99, + 139, + 191, + 136, + 181, + 96, + 224, + 27, + 144, + 96, + 68, + 1, + 97, + 118, + 250, + 86, + 91, + 97, + 120, + 81, + 131, + 96, + 64, + 1, + 81, + 97, + 255, + 255, + 22, + 96, + 1, + 97, + 3, + 232, + 129, + 131, + 20, + 145, + 131, + 17, + 145, + 144, + 145, + 23, + 130, + 130, + 20, + 145, + 144, + 146, + 16, + 23, + 22, + 144, + 86, + 91, + 97, + 120, + 124, + 87, + 96, + 64, + 128, + 132, + 1, + 81, + 144, + 81, + 97, + 255, + 255, + 144, + 145, + 22, + 96, + 36, + 130, + 1, + 82, + 96, + 0, + 144, + 99, + 246, + 244, + 163, + 143, + 96, + 224, + 27, + 144, + 96, + 68, + 1, + 97, + 118, + 250, + 86, + 91, + 96, + 160, + 131, + 1, + 81, + 96, + 64, + 132, + 1, + 81, + 97, + 255, + 255, + 145, + 130, + 22, + 128, + 21, + 128, + 21, + 23, + 146, + 144, + 145, + 22, + 129, + 129, + 20, + 145, + 16, + 23, + 22, + 97, + 120, + 199, + 87, + 96, + 160, + 131, + 1, + 81, + 96, + 64, + 81, + 97, + 255, + 255, + 144, + 145, + 22, + 96, + 36, + 130, + 1, + 82, + 96, + 0, + 144, + 99, + 246, + 244, + 163, + 143, + 96, + 224, + 27, + 144, + 96, + 68, + 1, + 97, + 118, + 250, + 86, + 91, + 80, + 80, + 96, + 64, + 128, + 81, + 96, + 32, + 129, + 1, + 144, + 145, + 82, + 96, + 0, + 129, + 82, + 96, + 1, + 146, + 144, + 145, + 80, + 86, + 91, + 96, + 0, + 128, + 130, + 19, + 97, + 121, + 29, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 9, + 96, + 36, + 130, + 1, + 82, + 104, + 21, + 83, + 145, + 17, + 81, + 146, + 83, + 145, + 81, + 96, + 186, + 27, + 96, + 68, + 130, + 1, + 82, + 96, + 100, + 1, + 97, + 25, + 118, + 86, + 91, + 96, + 0, + 96, + 96, + 97, + 121, + 42, + 132, + 97, + 126, + 201, + 86, + 91, + 3, + 96, + 159, + 129, + 129, + 3, + 148, + 144, + 148, + 27, + 144, + 147, + 28, + 108, + 70, + 87, + 114, + 178, + 187, + 187, + 95, + 130, + 75, + 21, + 32, + 122, + 48, + 129, + 1, + 129, + 2, + 96, + 96, + 144, + 129, + 29, + 109, + 3, + 136, + 234, + 162, + 116, + 18, + 213, + 172, + 160, + 38, + 129, + 93, + 99, + 110, + 1, + 130, + 2, + 129, + 29, + 109, + 13, + 249, + 154, + 197, + 2, + 3, + 27, + 249, + 83, + 239, + 244, + 114, + 253, + 204, + 1, + 130, + 2, + 129, + 29, + 109, + 19, + 205, + 255, + 178, + 157, + 81, + 217, + 147, + 34, + 189, + 255, + 95, + 34, + 17, + 1, + 130, + 2, + 129, + 29, + 109, + 10, + 15, + 116, + 32, + 35, + 222, + 247, + 131, + 163, + 7, + 169, + 134, + 145, + 46, + 1, + 130, + 2, + 129, + 29, + 109, + 1, + 146, + 13, + 128, + 67, + 202, + 137, + 181, + 35, + 146, + 83, + 40, + 78, + 66, + 1, + 130, + 2, + 129, + 29, + 108, + 11, + 122, + 134, + 215, + 55, + 84, + 104, + 250, + 198, + 103, + 160, + 165, + 39, + 1, + 108, + 41, + 80, + 142, + 69, + 133, + 67, + 216, + 170, + 77, + 242, + 171, + 238, + 120, + 131, + 1, + 131, + 2, + 130, + 29, + 109, + 1, + 57, + 96, + 26, + 46, + 250, + 190, + 113, + 126, + 96, + 76, + 187, + 72, + 148, + 1, + 131, + 2, + 130, + 29, + 109, + 2, + 36, + 127, + 122, + 123, + 101, + 148, + 50, + 6, + 73, + 170, + 3, + 171, + 161, + 1, + 131, + 2, + 130, + 29, + 108, + 140, + 63, + 56, + 233, + 90, + 107, + 31, + 242, + 171, + 28, + 59, + 52, + 54, + 25, + 1, + 131, + 2, + 130, + 29, + 109, + 2, + 56, + 71, + 115, + 189, + 241, + 172, + 86, + 118, + 250, + 204, + 237, + 96, + 144, + 25, + 1, + 131, + 2, + 144, + 145, + 29, + 108, + 185, + 160, + 37, + 216, + 20, + 178, + 156, + 33, + 43, + 139, + 26, + 7, + 205, + 25, + 1, + 144, + 145, + 2, + 120, + 10, + 9, + 80, + 112, + 132, + 204, + 105, + 155, + 176, + 231, + 30, + 168, + 105, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 25, + 1, + 5, + 113, + 19, + 64, + 218, + 160, + 213, + 247, + 105, + 219, + 161, + 145, + 92, + 239, + 89, + 240, + 129, + 90, + 85, + 6, + 2, + 125, + 2, + 103, + 163, + 108, + 12, + 149, + 179, + 151, + 90, + 179, + 238, + 91, + 32, + 58, + 118, + 20, + 163, + 247, + 83, + 115, + 240, + 71, + 216, + 3, + 174, + 123, + 102, + 135, + 242, + 179, + 147, + 144, + 147, + 2, + 146, + 144, + 146, + 1, + 125, + 87, + 17, + 94, + 71, + 1, + 140, + 113, + 119, + 238, + 191, + 124, + 211, + 112, + 163, + 53, + 106, + 27, + 120, + 99, + 0, + 138, + 90, + 232, + 2, + 140, + 114, + 184, + 134, + 66, + 132, + 1, + 96, + 174, + 29, + 146, + 145, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 103, + 19, + 160, + 75, + 189, + 253, + 201, + 190, + 136, + 97, + 122, + 217, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 133, + 97, + 138, + 153, + 86, + 91, + 97, + 122, + 227, + 145, + 144, + 97, + 139, + 52, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 122, + 240, + 130, + 97, + 139, + 140, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 122, + 253, + 130, + 97, + 127, + 103, + 86, + 91, + 144, + 80, + 103, + 27, + 193, + 109, + 103, + 78, + 200, + 0, + 0, + 97, + 123, + 26, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 131, + 97, + 138, + 153, + 86, + 91, + 97, + 29, + 139, + 145, + 144, + 97, + 139, + 52, + 86, + 91, + 96, + 0, + 97, + 17, + 147, + 131, + 131, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 97, + 129, + 75, + 86, + 91, + 96, + 0, + 128, + 130, + 18, + 128, + 97, + 123, + 80, + 87, + 80, + 103, + 27, + 193, + 109, + 103, + 78, + 200, + 0, + 0, + 130, + 19, + 91, + 21, + 97, + 123, + 110, + 87, + 96, + 64, + 81, + 99, + 45, + 4, + 131, + 197, + 96, + 226, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 129, + 96, + 0, + 3, + 97, + 123, + 143, + 87, + 96, + 64, + 81, + 99, + 7, + 160, + 33, + 39, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 129, + 103, + 27, + 193, + 109, + 103, + 78, + 200, + 0, + 0, + 3, + 97, + 123, + 183, + 87, + 96, + 64, + 81, + 99, + 34, + 237, + 89, + 133, + 96, + 226, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 128, + 21, + 97, + 123, + 194, + 87, + 145, + 144, + 80, + 86, + 91, + 96, + 0, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 131, + 18, + 97, + 123, + 234, + 87, + 97, + 123, + 229, + 131, + 103, + 27, + 193, + 109, + 103, + 78, + 200, + 0, + 0, + 97, + 136, + 165, + 86, + 91, + 97, + 123, + 236, + 86, + 91, + 130, + 91, + 144, + 80, + 96, + 0, + 97, + 124, + 2, + 130, + 103, + 27, + 193, + 109, + 103, + 78, + 200, + 0, + 0, + 97, + 125, + 178, + 86, + 91, + 144, + 80, + 128, + 96, + 0, + 3, + 97, + 124, + 37, + 87, + 96, + 64, + 81, + 99, + 7, + 160, + 33, + 39, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 0, + 97, + 124, + 48, + 130, + 97, + 120, + 224, + 86, + 91, + 144, + 80, + 96, + 0, + 99, + 59, + 154, + 202, + 0, + 97, + 124, + 91, + 97, + 124, + 86, + 97, + 124, + 80, + 103, + 27, + 193, + 109, + 103, + 78, + 200, + 0, + 0, + 97, + 139, + 140, + 86, + 91, + 133, + 97, + 123, + 36, + 86, + 91, + 97, + 105, + 241, + 86, + 91, + 97, + 124, + 101, + 145, + 144, + 97, + 138, + 153, + 86, + 91, + 144, + 80, + 96, + 0, + 128, + 97, + 124, + 124, + 131, + 103, + 3, + 193, + 102, + 92, + 122, + 171, + 32, + 0, + 97, + 123, + 36, + 86, + 91, + 97, + 124, + 142, + 144, + 103, + 32, + 5, + 254, + 79, + 38, + 142, + 160, + 0, + 97, + 140, + 46, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 124, + 185, + 132, + 97, + 124, + 167, + 134, + 102, + 159, + 50, + 117, + 36, + 98, + 160, + 0, + 97, + 123, + 36, + 86, + 91, + 97, + 104, + 185, + 144, + 103, + 13, + 197, + 82, + 127, + 100, + 44, + 32, + 0, + 97, + 140, + 46, + 86, + 91, + 97, + 124, + 203, + 144, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 97, + 140, + 46, + 86, + 91, + 144, + 80, + 97, + 124, + 239, + 103, + 9, + 208, + 40, + 204, + 111, + 32, + 95, + 255, + 25, + 133, + 97, + 124, + 229, + 133, + 133, + 97, + 125, + 178, + 86, + 91, + 97, + 104, + 185, + 145, + 144, + 97, + 136, + 165, + 86, + 91, + 146, + 80, + 80, + 80, + 96, + 0, + 91, + 96, + 2, + 129, + 16, + 21, + 97, + 125, + 138, + 87, + 96, + 0, + 134, + 97, + 125, + 11, + 132, + 97, + 127, + 103, + 86, + 91, + 97, + 125, + 21, + 145, + 144, + 97, + 136, + 165, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 125, + 35, + 132, + 133, + 97, + 123, + 36, + 86, + 91, + 97, + 125, + 44, + 144, + 97, + 139, + 140, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 125, + 57, + 130, + 97, + 106, + 149, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 125, + 71, + 134, + 133, + 97, + 123, + 36, + 86, + 91, + 97, + 125, + 89, + 103, + 15, + 168, + 206, + 223, + 194, + 173, + 221, + 250, + 132, + 97, + 123, + 36, + 86, + 91, + 97, + 125, + 99, + 145, + 144, + 97, + 136, + 165, + 86, + 91, + 144, + 80, + 97, + 125, + 111, + 132, + 130, + 97, + 125, + 178, + 86, + 91, + 97, + 125, + 121, + 144, + 135, + 97, + 140, + 46, + 86, + 91, + 149, + 80, + 132, + 96, + 1, + 1, + 148, + 80, + 80, + 80, + 80, + 80, + 97, + 124, + 246, + 86, + 91, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 136, + 18, + 97, + 125, + 167, + 87, + 97, + 125, + 162, + 130, + 97, + 139, + 140, + 86, + 91, + 97, + 74, + 21, + 86, + 91, + 80, + 150, + 149, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 97, + 17, + 147, + 131, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 132, + 97, + 129, + 75, + 86, + 91, + 130, + 84, + 99, + 255, + 255, + 255, + 255, + 131, + 22, + 96, + 1, + 96, + 128, + 27, + 2, + 99, + 255, + 255, + 255, + 255, + 96, + 128, + 27, + 25, + 130, + 22, + 129, + 23, + 133, + 85, + 97, + 125, + 253, + 145, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 145, + 130, + 22, + 145, + 22, + 23, + 130, + 97, + 129, + 106, + 86, + 91, + 131, + 84, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 25, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 145, + 144, + 145, + 22, + 23, + 144, + 146, + 85, + 80, + 80, + 86, + 91, + 96, + 1, + 130, + 1, + 84, + 97, + 126, + 53, + 144, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 130, + 97, + 129, + 106, + 86, + 91, + 96, + 1, + 146, + 144, + 146, + 1, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 25, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 144, + 147, + 22, + 146, + 144, + 146, + 23, + 144, + 145, + 85, + 80, + 86, + 91, + 97, + 126, + 101, + 129, + 97, + 105, + 65, + 86, + 91, + 130, + 96, + 1, + 1, + 96, + 16, + 97, + 1, + 0, + 10, + 129, + 84, + 129, + 99, + 255, + 255, + 255, + 255, + 2, + 25, + 22, + 144, + 131, + 99, + 255, + 255, + 255, + 255, + 22, + 2, + 23, + 144, + 85, + 80, + 80, + 80, + 86, + 91, + 97, + 126, + 149, + 131, + 131, + 97, + 76, + 48, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 1, + 132, + 1, + 96, + 32, + 82, + 96, + 64, + 129, + 32, + 128, + 84, + 131, + 146, + 144, + 97, + 126, + 191, + 144, + 132, + 144, + 97, + 137, + 47, + 86, + 91, + 144, + 145, + 85, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 130, + 17, + 97, + 127, + 6, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 9, + 96, + 36, + 130, + 1, + 82, + 104, + 21, + 83, + 145, + 17, + 81, + 146, + 83, + 145, + 81, + 96, + 186, + 27, + 96, + 68, + 130, + 1, + 82, + 96, + 100, + 1, + 97, + 25, + 118, + 86, + 91, + 80, + 96, + 1, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 130, + 17, + 96, + 7, + 27, + 130, + 129, + 28, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 16, + 96, + 6, + 27, + 23, + 130, + 129, + 28, + 99, + 255, + 255, + 255, + 255, + 16, + 96, + 5, + 27, + 23, + 130, + 129, + 28, + 97, + 255, + 255, + 16, + 96, + 4, + 27, + 23, + 130, + 129, + 28, + 96, + 255, + 16, + 96, + 3, + 144, + 129, + 27, + 144, + 145, + 23, + 131, + 129, + 28, + 96, + 15, + 16, + 96, + 2, + 27, + 23, + 131, + 129, + 28, + 144, + 145, + 16, + 130, + 27, + 23, + 145, + 130, + 28, + 17, + 23, + 144, + 86, + 91, + 96, + 0, + 129, + 96, + 0, + 3, + 97, + 127, + 128, + 87, + 80, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 145, + 144, + 80, + 86, + 91, + 103, + 86, + 152, + 238, + 240, + 102, + 112, + 0, + 0, + 130, + 18, + 97, + 127, + 151, + 87, + 80, + 96, + 0, + 145, + 144, + 80, + 86, + 91, + 97, + 127, + 168, + 103, + 86, + 152, + 238, + 240, + 102, + 112, + 0, + 0, + 97, + 139, + 140, + 86, + 91, + 130, + 19, + 97, + 127, + 189, + 87, + 80, + 103, + 27, + 193, + 109, + 103, + 78, + 200, + 0, + 0, + 145, + 144, + 80, + 86, + 91, + 96, + 0, + 97, + 127, + 200, + 131, + 97, + 129, + 181, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 128, + 1, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 97, + 127, + 234, + 132, + 103, + 27, + 193, + 109, + 103, + 78, + 200, + 0, + 0, + 97, + 104, + 223, + 86, + 91, + 97, + 127, + 252, + 144, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 97, + 140, + 46, + 86, + 91, + 97, + 125, + 178, + 86, + 91, + 144, + 80, + 96, + 0, + 128, + 130, + 97, + 128, + 93, + 129, + 97, + 128, + 74, + 129, + 97, + 128, + 56, + 129, + 97, + 128, + 37, + 129, + 103, + 2, + 95, + 15, + 225, + 5, + 163, + 20, + 0, + 97, + 123, + 36, + 86, + 91, + 97, + 104, + 185, + 144, + 103, + 11, + 104, + 223, + 24, + 228, + 113, + 251, + 255, + 25, + 97, + 140, + 46, + 86, + 91, + 97, + 104, + 185, + 144, + 103, + 20, + 168, + 69, + 76, + 25, + 225, + 172, + 0, + 97, + 140, + 46, + 86, + 91, + 97, + 104, + 185, + 144, + 103, + 15, + 193, + 14, + 1, + 87, + 130, + 119, + 255, + 25, + 97, + 140, + 46, + 86, + 91, + 97, + 128, + 111, + 144, + 103, + 3, + 222, + 189, + 8, + 59, + 140, + 124, + 0, + 97, + 140, + 46, + 86, + 91, + 145, + 80, + 131, + 144, + 80, + 97, + 128, + 215, + 129, + 97, + 128, + 197, + 129, + 97, + 128, + 179, + 129, + 97, + 128, + 161, + 129, + 97, + 128, + 142, + 129, + 139, + 97, + 123, + 36, + 86, + 91, + 97, + 104, + 185, + 144, + 103, + 2, + 149, + 212, + 0, + 234, + 50, + 87, + 255, + 25, + 97, + 140, + 46, + 86, + 91, + 97, + 104, + 185, + 144, + 103, + 1, + 87, + 216, + 178, + 236, + 199, + 8, + 0, + 97, + 140, + 46, + 86, + 91, + 97, + 104, + 185, + 144, + 103, + 5, + 49, + 10, + 167, + 213, + 33, + 48, + 0, + 97, + 140, + 46, + 86, + 91, + 97, + 104, + 185, + 144, + 103, + 13, + 224, + 204, + 61, + 21, + 97, + 0, + 0, + 97, + 140, + 46, + 86, + 91, + 145, + 80, + 129, + 103, + 17, + 144, + 0, + 171, + 16, + 15, + 252, + 0, + 97, + 128, + 237, + 135, + 136, + 97, + 123, + 36, + 86, + 91, + 97, + 128, + 249, + 144, + 96, + 0, + 25, + 97, + 138, + 153, + 86, + 91, + 97, + 129, + 3, + 145, + 144, + 97, + 136, + 165, + 86, + 91, + 97, + 129, + 13, + 145, + 144, + 97, + 140, + 46, + 86, + 91, + 146, + 80, + 80, + 96, + 0, + 97, + 129, + 27, + 131, + 97, + 106, + 149, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 129, + 41, + 133, + 131, + 97, + 123, + 36, + 86, + 91, + 144, + 80, + 96, + 0, + 136, + 18, + 97, + 129, + 57, + 87, + 128, + 97, + 74, + 21, + 86, + 91, + 97, + 74, + 21, + 129, + 103, + 27, + 193, + 109, + 103, + 78, + 200, + 0, + 0, + 97, + 136, + 165, + 86, + 91, + 130, + 130, + 2, + 129, + 21, + 21, + 132, + 21, + 133, + 131, + 5, + 133, + 20, + 23, + 22, + 97, + 129, + 99, + 87, + 96, + 0, + 128, + 253, + 91, + 5, + 146, + 145, + 80, + 80, + 86, + 91, + 96, + 64, + 128, + 81, + 96, + 4, + 129, + 82, + 96, + 36, + 129, + 1, + 144, + 145, + 82, + 96, + 32, + 129, + 1, + 128, + 81, + 96, + 1, + 96, + 1, + 96, + 224, + 27, + 3, + 22, + 99, + 31, + 255, + 150, + 129, + 96, + 224, + 27, + 23, + 144, + 82, + 130, + 130, + 1, + 144, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 130, + 17, + 21, + 97, + 129, + 174, + 87, + 128, + 81, + 129, + 96, + 32, + 1, + 253, + 91, + 80, + 146, + 145, + 80, + 80, + 86, + 91, + 96, + 0, + 96, + 1, + 96, + 255, + 27, + 130, + 3, + 97, + 129, + 219, + 87, + 96, + 64, + 81, + 99, + 77, + 45, + 117, + 177, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 0, + 130, + 18, + 21, + 97, + 74, + 73, + 87, + 80, + 25, + 96, + 1, + 1, + 144, + 86, + 91, + 145, + 144, + 80, + 86, + 91, + 80, + 128, + 84, + 96, + 0, + 130, + 85, + 96, + 3, + 2, + 144, + 96, + 0, + 82, + 96, + 32, + 96, + 0, + 32, + 144, + 129, + 1, + 144, + 97, + 25, + 233, + 145, + 144, + 97, + 130, + 124, + 86, + 91, + 80, + 128, + 84, + 96, + 0, + 130, + 85, + 144, + 96, + 0, + 82, + 96, + 32, + 96, + 0, + 32, + 144, + 129, + 1, + 144, + 97, + 25, + 233, + 145, + 144, + 97, + 130, + 169, + 86, + 91, + 96, + 64, + 81, + 128, + 97, + 1, + 32, + 1, + 96, + 64, + 82, + 128, + 96, + 0, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 129, + 82, + 80, + 144, + 86, + 91, + 91, + 128, + 130, + 17, + 21, + 97, + 74, + 73, + 87, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 25, + 22, + 129, + 85, + 96, + 0, + 96, + 1, + 130, + 1, + 129, + 144, + 85, + 96, + 2, + 130, + 1, + 85, + 96, + 3, + 1, + 97, + 130, + 125, + 86, + 91, + 91, + 128, + 130, + 17, + 21, + 97, + 74, + 73, + 87, + 96, + 0, + 129, + 85, + 96, + 1, + 1, + 97, + 130, + 170, + 86, + 91, + 128, + 53, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 129, + 22, + 129, + 20, + 97, + 129, + 236, + 87, + 96, + 0, + 128, + 253, + 91, + 96, + 0, + 96, + 32, + 130, + 132, + 3, + 18, + 21, + 97, + 130, + 231, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 17, + 147, + 130, + 97, + 130, + 190, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 129, + 22, + 129, + 20, + 97, + 25, + 233, + 87, + 96, + 0, + 128, + 253, + 91, + 96, + 0, + 128, + 96, + 0, + 96, + 96, + 132, + 134, + 3, + 18, + 21, + 97, + 131, + 26, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 131, + 35, + 132, + 97, + 130, + 190, + 86, + 91, + 146, + 80, + 96, + 32, + 132, + 1, + 53, + 97, + 131, + 51, + 129, + 97, + 130, + 240, + 86, + 91, + 146, + 149, + 146, + 148, + 80, + 80, + 80, + 96, + 64, + 145, + 144, + 145, + 1, + 53, + 144, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 128, + 96, + 0, + 96, + 160, + 134, + 136, + 3, + 18, + 21, + 97, + 131, + 92, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 131, + 101, + 134, + 97, + 130, + 190, + 86, + 91, + 151, + 96, + 32, + 135, + 1, + 53, + 151, + 80, + 96, + 64, + 135, + 1, + 53, + 150, + 96, + 96, + 129, + 1, + 53, + 150, + 80, + 96, + 128, + 1, + 53, + 148, + 80, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 64, + 131, + 133, + 3, + 18, + 21, + 97, + 131, + 153, + 87, + 96, + 0, + 128, + 253, + 91, + 130, + 53, + 97, + 131, + 164, + 129, + 97, + 130, + 240, + 86, + 91, + 145, + 80, + 96, + 32, + 131, + 1, + 53, + 97, + 131, + 180, + 129, + 97, + 130, + 240, + 86, + 91, + 128, + 145, + 80, + 80, + 146, + 80, + 146, + 144, + 80, + 86, + 91, + 96, + 0, + 96, + 32, + 130, + 132, + 3, + 18, + 21, + 97, + 131, + 209, + 87, + 96, + 0, + 128, + 253, + 91, + 129, + 53, + 97, + 17, + 147, + 129, + 97, + 130, + 240, + 86, + 91, + 96, + 0, + 96, + 32, + 130, + 132, + 3, + 18, + 21, + 97, + 131, + 238, + 87, + 96, + 0, + 128, + 253, + 91, + 129, + 53, + 98, + 255, + 255, + 255, + 129, + 22, + 129, + 20, + 97, + 17, + 147, + 87, + 96, + 0, + 128, + 253, + 91, + 96, + 0, + 96, + 32, + 130, + 132, + 3, + 18, + 21, + 97, + 132, + 19, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 53, + 145, + 144, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 64, + 131, + 133, + 3, + 18, + 21, + 97, + 132, + 45, + 87, + 96, + 0, + 128, + 253, + 91, + 130, + 53, + 97, + 132, + 56, + 129, + 97, + 130, + 240, + 86, + 91, + 148, + 96, + 32, + 147, + 144, + 147, + 1, + 53, + 147, + 80, + 80, + 80, + 86, + 91, + 128, + 53, + 128, + 21, + 21, + 129, + 20, + 97, + 129, + 236, + 87, + 96, + 0, + 128, + 253, + 91, + 96, + 0, + 128, + 96, + 0, + 96, + 96, + 132, + 134, + 3, + 18, + 21, + 97, + 132, + 107, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 132, + 116, + 132, + 97, + 130, + 190, + 86, + 91, + 146, + 80, + 97, + 132, + 130, + 96, + 32, + 133, + 1, + 97, + 132, + 70, + 86, + 91, + 145, + 80, + 96, + 64, + 132, + 1, + 53, + 144, + 80, + 146, + 80, + 146, + 80, + 146, + 86, + 91, + 96, + 0, + 128, + 96, + 64, + 131, + 133, + 3, + 18, + 21, + 97, + 132, + 165, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 132, + 174, + 131, + 97, + 130, + 190, + 86, + 91, + 145, + 80, + 96, + 32, + 131, + 1, + 53, + 128, + 96, + 15, + 11, + 129, + 20, + 97, + 131, + 180, + 87, + 96, + 0, + 128, + 253, + 91, + 96, + 0, + 97, + 2, + 128, + 130, + 1, + 144, + 80, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 128, + 141, + 22, + 131, + 82, + 128, + 140, + 22, + 96, + 32, + 132, + 1, + 82, + 128, + 139, + 22, + 96, + 64, + 132, + 1, + 82, + 99, + 255, + 255, + 255, + 255, + 138, + 22, + 96, + 96, + 132, + 1, + 82, + 96, + 1, + 128, + 96, + 160, + 27, + 3, + 137, + 22, + 96, + 128, + 132, + 1, + 82, + 135, + 96, + 160, + 132, + 1, + 82, + 134, + 96, + 192, + 132, + 1, + 82, + 133, + 96, + 224, + 132, + 1, + 82, + 128, + 133, + 81, + 22, + 97, + 1, + 0, + 132, + 1, + 82, + 80, + 96, + 32, + 132, + 1, + 81, + 97, + 255, + 255, + 128, + 130, + 22, + 97, + 1, + 32, + 133, + 1, + 82, + 128, + 96, + 64, + 135, + 1, + 81, + 22, + 97, + 1, + 64, + 133, + 1, + 82, + 80, + 80, + 96, + 96, + 132, + 1, + 81, + 97, + 133, + 87, + 97, + 1, + 96, + 132, + 1, + 130, + 97, + 255, + 255, + 22, + 144, + 82, + 86, + 91, + 80, + 96, + 128, + 132, + 1, + 81, + 97, + 255, + 255, + 144, + 129, + 22, + 97, + 1, + 128, + 132, + 1, + 82, + 96, + 160, + 133, + 1, + 81, + 22, + 97, + 1, + 160, + 131, + 1, + 82, + 96, + 192, + 132, + 1, + 81, + 99, + 255, + 255, + 255, + 255, + 22, + 97, + 1, + 192, + 131, + 1, + 82, + 96, + 224, + 144, + 147, + 1, + 81, + 21, + 21, + 97, + 1, + 224, + 130, + 1, + 82, + 129, + 81, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 144, + 129, + 22, + 97, + 2, + 0, + 131, + 1, + 82, + 96, + 32, + 131, + 1, + 81, + 96, + 255, + 144, + 129, + 22, + 97, + 2, + 32, + 132, + 1, + 82, + 96, + 64, + 132, + 1, + 81, + 144, + 145, + 22, + 97, + 2, + 64, + 131, + 1, + 82, + 96, + 96, + 144, + 146, + 1, + 81, + 144, + 145, + 22, + 97, + 2, + 96, + 144, + 145, + 1, + 82, + 152, + 151, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 128, + 96, + 128, + 133, + 135, + 3, + 18, + 21, + 97, + 133, + 247, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 134, + 0, + 133, + 97, + 130, + 190, + 86, + 91, + 147, + 80, + 97, + 134, + 14, + 96, + 32, + 134, + 1, + 97, + 132, + 70, + 86, + 91, + 147, + 150, + 147, + 149, + 80, + 80, + 80, + 80, + 96, + 64, + 130, + 1, + 53, + 145, + 96, + 96, + 1, + 53, + 144, + 86, + 91, + 96, + 0, + 128, + 96, + 32, + 131, + 133, + 3, + 18, + 21, + 97, + 134, + 54, + 87, + 96, + 0, + 128, + 253, + 91, + 130, + 53, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 128, + 130, + 17, + 21, + 97, + 134, + 77, + 87, + 96, + 0, + 128, + 253, + 91, + 129, + 133, + 1, + 145, + 80, + 133, + 96, + 31, + 131, + 1, + 18, + 97, + 134, + 97, + 87, + 96, + 0, + 128, + 253, + 91, + 129, + 53, + 129, + 129, + 17, + 21, + 97, + 134, + 112, + 87, + 96, + 0, + 128, + 253, + 91, + 134, + 96, + 32, + 130, + 133, + 1, + 1, + 17, + 21, + 97, + 134, + 130, + 87, + 96, + 0, + 128, + 253, + 91, + 96, + 32, + 146, + 144, + 146, + 1, + 150, + 145, + 149, + 80, + 144, + 147, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 96, + 96, + 132, + 134, + 3, + 18, + 21, + 97, + 134, + 169, + 87, + 96, + 0, + 128, + 253, + 91, + 131, + 53, + 97, + 134, + 180, + 129, + 97, + 130, + 240, + 86, + 91, + 146, + 80, + 96, + 32, + 132, + 1, + 53, + 145, + 80, + 96, + 64, + 132, + 1, + 53, + 97, + 134, + 203, + 129, + 97, + 130, + 240, + 86, + 91, + 128, + 145, + 80, + 80, + 146, + 80, + 146, + 80, + 146, + 86, + 91, + 128, + 53, + 97, + 255, + 255, + 129, + 22, + 129, + 20, + 97, + 129, + 236, + 87, + 96, + 0, + 128, + 253, + 91, + 96, + 0, + 128, + 96, + 0, + 128, + 96, + 128, + 133, + 135, + 3, + 18, + 21, + 97, + 134, + 254, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 135, + 7, + 133, + 97, + 130, + 190, + 86, + 91, + 147, + 80, + 97, + 135, + 21, + 96, + 32, + 134, + 1, + 97, + 134, + 214, + 86, + 91, + 146, + 80, + 97, + 135, + 35, + 96, + 64, + 134, + 1, + 97, + 134, + 214, + 86, + 91, + 145, + 80, + 97, + 135, + 49, + 96, + 96, + 134, + 1, + 97, + 134, + 214, + 86, + 91, + 144, + 80, + 146, + 149, + 145, + 148, + 80, + 146, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 64, + 131, + 133, + 3, + 18, + 21, + 97, + 135, + 79, + 87, + 96, + 0, + 128, + 253, + 91, + 130, + 53, + 97, + 135, + 90, + 129, + 97, + 130, + 240, + 86, + 91, + 145, + 80, + 97, + 135, + 104, + 96, + 32, + 132, + 1, + 97, + 130, + 190, + 86, + 91, + 144, + 80, + 146, + 80, + 146, + 144, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 64, + 131, + 133, + 3, + 18, + 21, + 97, + 135, + 132, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 132, + 56, + 131, + 97, + 130, + 190, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 96, + 96, + 132, + 134, + 3, + 18, + 21, + 97, + 135, + 162, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 135, + 171, + 132, + 97, + 130, + 190, + 86, + 91, + 149, + 96, + 32, + 133, + 1, + 53, + 149, + 80, + 96, + 64, + 144, + 148, + 1, + 53, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 91, + 131, + 129, + 16, + 21, + 97, + 135, + 219, + 87, + 129, + 129, + 1, + 81, + 131, + 130, + 1, + 82, + 96, + 32, + 1, + 97, + 135, + 195, + 86, + 91, + 131, + 129, + 17, + 21, + 97, + 40, + 3, + 87, + 80, + 80, + 96, + 0, + 145, + 1, + 82, + 86, + 91, + 96, + 32, + 129, + 82, + 96, + 0, + 130, + 81, + 128, + 96, + 32, + 132, + 1, + 82, + 97, + 136, + 11, + 129, + 96, + 64, + 133, + 1, + 96, + 32, + 135, + 1, + 97, + 135, + 192, + 86, + 91, + 96, + 31, + 1, + 96, + 31, + 25, + 22, + 145, + 144, + 145, + 1, + 96, + 64, + 1, + 146, + 145, + 80, + 80, + 86, + 91, + 96, + 0, + 96, + 32, + 130, + 132, + 3, + 18, + 21, + 97, + 136, + 49, + 87, + 96, + 0, + 128, + 253, + 91, + 129, + 81, + 97, + 17, + 147, + 129, + 97, + 130, + 240, + 86, + 91, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 17, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 96, + 0, + 130, + 130, + 16, + 21, + 97, + 136, + 100, + 87, + 97, + 136, + 100, + 97, + 136, + 60, + 86, + 91, + 80, + 3, + 144, + 86, + 91, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 50, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 96, + 0, + 129, + 96, + 15, + 11, + 96, + 1, + 96, + 1, + 96, + 127, + 27, + 3, + 25, + 129, + 3, + 97, + 136, + 156, + 87, + 97, + 136, + 156, + 97, + 136, + 60, + 86, + 91, + 96, + 0, + 3, + 146, + 145, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 131, + 18, + 128, + 21, + 96, + 1, + 96, + 255, + 27, + 133, + 1, + 132, + 18, + 22, + 21, + 97, + 136, + 195, + 87, + 97, + 136, + 195, + 97, + 136, + 60, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 255, + 27, + 3, + 132, + 1, + 131, + 19, + 129, + 22, + 21, + 97, + 136, + 222, + 87, + 97, + 136, + 222, + 97, + 136, + 60, + 86, + 91, + 80, + 80, + 3, + 144, + 86, + 91, + 96, + 0, + 130, + 81, + 97, + 136, + 246, + 129, + 132, + 96, + 32, + 135, + 1, + 97, + 135, + 192, + 86, + 91, + 145, + 144, + 145, + 1, + 146, + 145, + 80, + 80, + 86, + 91, + 96, + 0, + 96, + 32, + 130, + 132, + 3, + 18, + 21, + 97, + 137, + 18, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 81, + 145, + 144, + 80, + 86, + 91, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 49, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 96, + 0, + 130, + 25, + 130, + 17, + 21, + 97, + 137, + 66, + 87, + 97, + 137, + 66, + 97, + 136, + 60, + 86, + 91, + 80, + 1, + 144, + 86, + 91, + 96, + 0, + 129, + 96, + 0, + 25, + 4, + 131, + 17, + 130, + 21, + 21, + 22, + 21, + 97, + 137, + 97, + 87, + 97, + 137, + 97, + 97, + 136, + 60, + 86, + 91, + 80, + 2, + 144, + 86, + 91, + 96, + 0, + 128, + 133, + 133, + 17, + 21, + 97, + 137, + 118, + 87, + 96, + 0, + 128, + 253, + 91, + 131, + 134, + 17, + 21, + 97, + 137, + 131, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 80, + 130, + 1, + 147, + 145, + 144, + 146, + 3, + 145, + 80, + 86, + 91, + 96, + 0, + 96, + 1, + 130, + 1, + 97, + 137, + 162, + 87, + 97, + 137, + 162, + 97, + 136, + 60, + 86, + 91, + 80, + 96, + 1, + 1, + 144, + 86, + 91, + 96, + 1, + 129, + 129, + 91, + 128, + 133, + 17, + 21, + 97, + 137, + 228, + 87, + 129, + 96, + 0, + 25, + 4, + 130, + 17, + 21, + 97, + 137, + 202, + 87, + 97, + 137, + 202, + 97, + 136, + 60, + 86, + 91, + 128, + 133, + 22, + 21, + 97, + 137, + 215, + 87, + 145, + 129, + 2, + 145, + 91, + 147, + 132, + 28, + 147, + 144, + 128, + 2, + 144, + 97, + 137, + 174, + 86, + 91, + 80, + 146, + 80, + 146, + 144, + 80, + 86, + 91, + 96, + 0, + 130, + 97, + 137, + 251, + 87, + 80, + 96, + 1, + 97, + 24, + 76, + 86, + 91, + 129, + 97, + 138, + 8, + 87, + 80, + 96, + 0, + 97, + 24, + 76, + 86, + 91, + 129, + 96, + 1, + 129, + 20, + 97, + 138, + 30, + 87, + 96, + 2, + 129, + 20, + 97, + 138, + 40, + 87, + 97, + 138, + 68, + 86, + 91, + 96, + 1, + 145, + 80, + 80, + 97, + 24, + 76, + 86, + 91, + 96, + 255, + 132, + 17, + 21, + 97, + 138, + 57, + 87, + 97, + 138, + 57, + 97, + 136, + 60, + 86, + 91, + 80, + 80, + 96, + 1, + 130, + 27, + 97, + 24, + 76, + 86, + 91, + 80, + 96, + 32, + 131, + 16, + 97, + 1, + 51, + 131, + 16, + 22, + 96, + 78, + 132, + 16, + 96, + 11, + 132, + 16, + 22, + 23, + 21, + 97, + 138, + 103, + 87, + 80, + 129, + 129, + 10, + 97, + 24, + 76, + 86, + 91, + 97, + 138, + 113, + 131, + 131, + 97, + 137, + 169, + 86, + 91, + 128, + 96, + 0, + 25, + 4, + 130, + 17, + 21, + 97, + 138, + 133, + 87, + 97, + 138, + 133, + 97, + 136, + 60, + 86, + 91, + 2, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 97, + 17, + 147, + 131, + 131, + 97, + 137, + 236, + 86, + 91, + 96, + 0, + 96, + 1, + 96, + 1, + 96, + 255, + 27, + 3, + 129, + 132, + 19, + 130, + 132, + 19, + 128, + 130, + 22, + 134, + 132, + 4, + 134, + 17, + 22, + 21, + 97, + 138, + 191, + 87, + 97, + 138, + 191, + 97, + 136, + 60, + 86, + 91, + 96, + 1, + 96, + 255, + 27, + 96, + 0, + 135, + 18, + 130, + 129, + 22, + 135, + 131, + 5, + 137, + 18, + 22, + 21, + 97, + 138, + 222, + 87, + 97, + 138, + 222, + 97, + 136, + 60, + 86, + 91, + 96, + 0, + 135, + 18, + 146, + 80, + 135, + 130, + 5, + 135, + 18, + 132, + 132, + 22, + 22, + 21, + 97, + 138, + 250, + 87, + 97, + 138, + 250, + 97, + 136, + 60, + 86, + 91, + 135, + 133, + 5, + 135, + 18, + 129, + 132, + 22, + 22, + 21, + 97, + 139, + 16, + 87, + 97, + 139, + 16, + 97, + 136, + 60, + 86, + 91, + 80, + 80, + 80, + 146, + 144, + 147, + 2, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 18, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 96, + 0, + 130, + 97, + 139, + 67, + 87, + 97, + 139, + 67, + 97, + 139, + 30, + 86, + 91, + 96, + 1, + 96, + 255, + 27, + 130, + 20, + 96, + 0, + 25, + 132, + 20, + 22, + 21, + 97, + 139, + 93, + 87, + 97, + 139, + 93, + 97, + 136, + 60, + 86, + 91, + 80, + 5, + 144, + 86, + 91, + 96, + 0, + 130, + 97, + 139, + 113, + 87, + 97, + 139, + 113, + 97, + 139, + 30, + 86, + 91, + 80, + 4, + 144, + 86, + 91, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 1, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 96, + 0, + 96, + 1, + 96, + 255, + 27, + 130, + 1, + 97, + 139, + 161, + 87, + 97, + 139, + 161, + 97, + 136, + 60, + 86, + 91, + 80, + 96, + 0, + 3, + 144, + 86, + 91, + 96, + 0, + 99, + 255, + 255, + 255, + 255, + 128, + 131, + 22, + 129, + 129, + 3, + 97, + 139, + 193, + 87, + 97, + 139, + 193, + 97, + 136, + 60, + 86, + 91, + 96, + 1, + 1, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 96, + 32, + 130, + 132, + 3, + 18, + 21, + 97, + 139, + 221, + 87, + 96, + 0, + 128, + 253, + 91, + 129, + 81, + 96, + 255, + 129, + 22, + 129, + 20, + 97, + 17, + 147, + 87, + 96, + 0, + 128, + 253, + 91, + 96, + 0, + 98, + 255, + 255, + 255, + 128, + 131, + 22, + 129, + 129, + 3, + 97, + 139, + 193, + 87, + 97, + 139, + 193, + 97, + 136, + 60, + 86, + 91, + 96, + 0, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 131, + 129, + 22, + 144, + 131, + 22, + 129, + 129, + 16, + 21, + 97, + 140, + 38, + 87, + 97, + 140, + 38, + 97, + 136, + 60, + 86, + 91, + 3, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 130, + 18, + 128, + 21, + 96, + 1, + 96, + 1, + 96, + 255, + 27, + 3, + 132, + 144, + 3, + 133, + 19, + 22, + 21, + 97, + 140, + 80, + 87, + 97, + 140, + 80, + 97, + 136, + 60, + 86, + 91, + 96, + 1, + 96, + 255, + 27, + 131, + 144, + 3, + 132, + 18, + 129, + 22, + 21, + 97, + 140, + 105, + 87, + 97, + 140, + 105, + 97, + 136, + 60, + 86, + 91, + 80, + 80, + 1, + 144, + 86, + 91, + 96, + 0, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 128, + 131, + 22, + 129, + 133, + 22, + 128, + 131, + 3, + 130, + 17, + 21, + 97, + 140, + 145, + 87, + 97, + 140, + 145, + 97, + 136, + 60, + 86, + 91, + 1, + 148, + 147, + 80, + 80, + 80, + 80, + 86, + 254, + 162, + 100, + 105, + 112, + 102, + 115, + 88, + 34, + 18, + 32, + 6, + 40, + 123, + 95, + 202, + 66, + 166, + 114, + 199, + 70, + 37, + 241, + 101, + 39, + 188, + 9, + 174, + 5, + 137, + 237, + 35, + 203, + 7, + 15, + 41, + 242, + 234, + 5, + 25, + 223, + 159, + 17, + 100, + 115, + 111, + 108, + 99, + 67, + 0, + 8, + 13, + 0, + 51, + ]; + ///The bytecode of the contract. + pub static RMM01PORTFOLIO_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __BYTECODE, + ); + #[rustfmt::skip] + const __DEPLOYED_BYTECODE: &[u8] = &[ + 96, + 128, + 96, + 64, + 82, + 96, + 4, + 54, + 16, + 97, + 1, + 209, + 87, + 96, + 0, + 53, + 96, + 224, + 28, + 128, + 99, + 152, + 155, + 175, + 186, + 17, + 97, + 0, + 247, + 87, + 128, + 99, + 182, + 133, + 19, + 234, + 17, + 97, + 0, + 149, + 87, + 128, + 99, + 212, + 250, + 196, + 93, + 17, + 97, + 0, + 100, + 87, + 128, + 99, + 212, + 250, + 196, + 93, + 20, + 97, + 9, + 221, + 87, + 128, + 99, + 214, + 183, + 222, + 197, + 20, + 97, + 9, + 253, + 87, + 128, + 99, + 218, + 49, + 238, + 84, + 20, + 97, + 10, + 53, + 87, + 128, + 99, + 255, + 161, + 173, + 116, + 20, + 97, + 10, + 79, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 182, + 133, + 19, + 234, + 20, + 97, + 8, + 178, + 87, + 128, + 99, + 196, + 141, + 136, + 122, + 20, + 97, + 9, + 127, + 87, + 128, + 99, + 201, + 163, + 150, + 233, + 20, + 97, + 9, + 159, + 87, + 128, + 99, + 208, + 227, + 13, + 176, + 20, + 97, + 9, + 213, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 166, + 138, + 170, + 65, + 17, + 97, + 0, + 209, + 87, + 128, + 99, + 166, + 138, + 170, + 65, + 20, + 97, + 8, + 30, + 87, + 128, + 99, + 173, + 36, + 214, + 160, + 20, + 97, + 8, + 62, + 87, + 128, + 99, + 173, + 92, + 70, + 72, + 20, + 97, + 8, + 94, + 87, + 128, + 99, + 175, + 119, + 120, + 85, + 20, + 97, + 8, + 146, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 152, + 155, + 175, + 186, + 20, + 97, + 7, + 163, + 87, + 128, + 99, + 160, + 253, + 244, + 19, + 20, + 97, + 7, + 195, + 87, + 128, + 99, + 165, + 205, + 138, + 73, + 20, + 97, + 7, + 214, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 77, + 198, + 138, + 144, + 17, + 97, + 1, + 111, + 87, + 128, + 99, + 123, + 24, + 55, + 222, + 17, + 97, + 1, + 62, + 87, + 128, + 99, + 123, + 24, + 55, + 222, + 20, + 97, + 4, + 165, + 87, + 128, + 99, + 125, + 174, + 72, + 144, + 20, + 97, + 4, + 197, + 87, + 128, + 99, + 137, + 146, + 242, + 10, + 20, + 97, + 4, + 229, + 87, + 128, + 99, + 137, + 165, + 240, + 132, + 20, + 97, + 5, + 5, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 77, + 198, + 138, + 144, + 20, + 97, + 3, + 172, + 87, + 128, + 99, + 94, + 71, + 102, + 60, + 20, + 97, + 3, + 218, + 87, + 128, + 99, + 97, + 183, + 234, + 106, + 20, + 97, + 4, + 101, + 87, + 128, + 99, + 120, + 125, + 206, + 61, + 20, + 97, + 4, + 133, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 42, + 251, + 157, + 248, + 17, + 97, + 1, + 171, + 87, + 128, + 99, + 42, + 251, + 157, + 248, + 20, + 97, + 2, + 211, + 87, + 128, + 99, + 44, + 198, + 100, + 30, + 20, + 97, + 3, + 8, + 87, + 128, + 99, + 47, + 51, + 125, + 165, + 20, + 97, + 3, + 56, + 87, + 128, + 99, + 63, + 146, + 163, + 57, + 20, + 97, + 3, + 111, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 6, + 67, + 59, + 27, + 20, + 97, + 2, + 18, + 87, + 128, + 99, + 7, + 136, + 136, + 214, + 20, + 97, + 2, + 99, + 87, + 128, + 99, + 26, + 75, + 144, + 91, + 20, + 97, + 2, + 147, + 87, + 96, + 0, + 128, + 253, + 91, + 54, + 97, + 2, + 13, + 87, + 51, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 127, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 22, + 20, + 97, + 2, + 11, + 87, + 96, + 0, + 128, + 253, + 91, + 0, + 91, + 96, + 0, + 128, + 253, + 91, + 52, + 128, + 21, + 97, + 2, + 30, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 2, + 70, + 127, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 129, + 86, + 91, + 96, + 64, + 81, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 144, + 145, + 22, + 129, + 82, + 96, + 32, + 1, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 243, + 91, + 52, + 128, + 21, + 97, + 2, + 111, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 96, + 5, + 84, + 97, + 2, + 127, + 144, + 98, + 255, + 255, + 255, + 22, + 129, + 86, + 91, + 96, + 64, + 81, + 98, + 255, + 255, + 255, + 144, + 145, + 22, + 129, + 82, + 96, + 32, + 1, + 97, + 2, + 90, + 86, + 91, + 52, + 128, + 21, + 97, + 2, + 159, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 2, + 179, + 97, + 2, + 174, + 54, + 96, + 4, + 97, + 130, + 213, + 86, + 91, + 97, + 10, + 113, + 86, + 91, + 96, + 64, + 128, + 81, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 147, + 132, + 22, + 129, + 82, + 146, + 144, + 145, + 22, + 96, + 32, + 131, + 1, + 82, + 1, + 97, + 2, + 90, + 86, + 91, + 52, + 128, + 21, + 97, + 2, + 223, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 2, + 243, + 97, + 2, + 238, + 54, + 96, + 4, + 97, + 130, + 213, + 86, + 91, + 97, + 13, + 135, + 86, + 91, + 96, + 64, + 128, + 81, + 146, + 131, + 82, + 96, + 32, + 131, + 1, + 145, + 144, + 145, + 82, + 1, + 97, + 2, + 90, + 86, + 91, + 52, + 128, + 21, + 97, + 3, + 20, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 3, + 40, + 97, + 3, + 35, + 54, + 96, + 4, + 97, + 131, + 5, + 86, + 91, + 97, + 16, + 169, + 86, + 91, + 96, + 64, + 81, + 144, + 21, + 21, + 129, + 82, + 96, + 32, + 1, + 97, + 2, + 90, + 86, + 91, + 52, + 128, + 21, + 97, + 3, + 68, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 3, + 88, + 97, + 3, + 83, + 54, + 96, + 4, + 97, + 131, + 68, + 86, + 91, + 97, + 17, + 154, + 86, + 91, + 96, + 64, + 128, + 81, + 146, + 21, + 21, + 131, + 82, + 96, + 32, + 131, + 1, + 145, + 144, + 145, + 82, + 1, + 97, + 2, + 90, + 86, + 91, + 52, + 128, + 21, + 97, + 3, + 123, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 2, + 127, + 97, + 3, + 138, + 54, + 96, + 4, + 97, + 131, + 134, + 86, + 91, + 96, + 9, + 96, + 32, + 144, + 129, + 82, + 96, + 0, + 146, + 131, + 82, + 96, + 64, + 128, + 132, + 32, + 144, + 145, + 82, + 144, + 130, + 82, + 144, + 32, + 84, + 98, + 255, + 255, + 255, + 22, + 129, + 86, + 91, + 52, + 128, + 21, + 97, + 3, + 184, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 3, + 204, + 97, + 3, + 199, + 54, + 96, + 4, + 97, + 131, + 191, + 86, + 91, + 97, + 24, + 63, + 86, + 91, + 96, + 64, + 81, + 144, + 129, + 82, + 96, + 32, + 1, + 97, + 2, + 90, + 86, + 91, + 52, + 128, + 21, + 97, + 3, + 230, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 4, + 49, + 97, + 3, + 245, + 54, + 96, + 4, + 97, + 131, + 220, + 86, + 91, + 96, + 7, + 96, + 32, + 82, + 96, + 0, + 144, + 129, + 82, + 96, + 64, + 144, + 32, + 128, + 84, + 96, + 1, + 144, + 145, + 1, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 128, + 131, + 22, + 146, + 96, + 255, + 96, + 1, + 96, + 160, + 27, + 145, + 130, + 144, + 4, + 129, + 22, + 147, + 146, + 131, + 22, + 146, + 145, + 144, + 145, + 4, + 22, + 132, + 86, + 91, + 96, + 64, + 128, + 81, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 149, + 134, + 22, + 129, + 82, + 96, + 255, + 148, + 133, + 22, + 96, + 32, + 130, + 1, + 82, + 148, + 144, + 146, + 22, + 145, + 132, + 1, + 145, + 144, + 145, + 82, + 22, + 96, + 96, + 130, + 1, + 82, + 96, + 128, + 1, + 97, + 2, + 90, + 86, + 91, + 52, + 128, + 21, + 97, + 4, + 113, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 3, + 204, + 97, + 4, + 128, + 54, + 96, + 4, + 97, + 130, + 213, + 86, + 91, + 97, + 24, + 82, + 86, + 91, + 52, + 128, + 21, + 97, + 4, + 145, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 2, + 11, + 97, + 4, + 160, + 54, + 96, + 4, + 97, + 132, + 1, + 86, + 91, + 97, + 24, + 102, + 86, + 91, + 52, + 128, + 21, + 97, + 4, + 177, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 2, + 11, + 97, + 4, + 192, + 54, + 96, + 4, + 97, + 132, + 26, + 86, + 91, + 97, + 25, + 236, + 86, + 91, + 52, + 128, + 21, + 97, + 4, + 209, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 3, + 204, + 97, + 4, + 224, + 54, + 96, + 4, + 97, + 132, + 86, + 86, + 91, + 97, + 26, + 109, + 86, + 91, + 52, + 128, + 21, + 97, + 4, + 241, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 2, + 179, + 97, + 5, + 0, + 54, + 96, + 4, + 97, + 132, + 146, + 86, + 91, + 97, + 29, + 148, + 86, + 91, + 52, + 128, + 21, + 97, + 5, + 17, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 7, + 141, + 97, + 5, + 32, + 54, + 96, + 4, + 97, + 130, + 213, + 86, + 91, + 96, + 8, + 96, + 32, + 82, + 128, + 96, + 0, + 82, + 96, + 64, + 96, + 0, + 32, + 96, + 0, + 145, + 80, + 144, + 80, + 128, + 96, + 0, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 144, + 128, + 96, + 0, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 144, + 128, + 96, + 1, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 144, + 128, + 96, + 1, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 144, + 128, + 96, + 2, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 144, + 128, + 96, + 3, + 1, + 84, + 144, + 128, + 96, + 4, + 1, + 84, + 144, + 128, + 96, + 5, + 1, + 84, + 144, + 128, + 96, + 6, + 1, + 96, + 64, + 81, + 128, + 97, + 1, + 0, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 18, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 22, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 24, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 26, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 30, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 21, + 21, + 21, + 21, + 129, + 82, + 80, + 80, + 144, + 128, + 96, + 7, + 1, + 96, + 64, + 81, + 128, + 96, + 128, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 80, + 80, + 144, + 80, + 138, + 86, + 91, + 96, + 64, + 81, + 97, + 2, + 90, + 154, + 153, + 152, + 151, + 150, + 149, + 148, + 147, + 146, + 145, + 144, + 97, + 132, + 196, + 86, + 91, + 52, + 128, + 21, + 97, + 7, + 175, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 3, + 204, + 97, + 7, + 190, + 54, + 96, + 4, + 97, + 133, + 225, + 86, + 91, + 97, + 32, + 183, + 86, + 91, + 97, + 2, + 11, + 97, + 7, + 209, + 54, + 96, + 4, + 97, + 134, + 35, + 86, + 91, + 97, + 33, + 39, + 86, + 91, + 52, + 128, + 21, + 97, + 7, + 226, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 8, + 9, + 97, + 7, + 241, + 54, + 96, + 4, + 97, + 131, + 220, + 86, + 91, + 96, + 6, + 96, + 32, + 82, + 96, + 0, + 144, + 129, + 82, + 96, + 64, + 144, + 32, + 84, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 86, + 91, + 96, + 64, + 81, + 99, + 255, + 255, + 255, + 255, + 144, + 145, + 22, + 129, + 82, + 96, + 32, + 1, + 97, + 2, + 90, + 86, + 91, + 52, + 128, + 21, + 97, + 8, + 42, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 3, + 40, + 97, + 8, + 57, + 54, + 96, + 4, + 97, + 130, + 213, + 86, + 91, + 97, + 33, + 165, + 86, + 91, + 52, + 128, + 21, + 97, + 8, + 74, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 2, + 11, + 97, + 8, + 89, + 54, + 96, + 4, + 97, + 134, + 148, + 86, + 91, + 97, + 36, + 187, + 86, + 91, + 52, + 128, + 21, + 97, + 8, + 106, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 2, + 70, + 127, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 129, + 86, + 91, + 52, + 128, + 21, + 97, + 8, + 158, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 2, + 11, + 97, + 8, + 173, + 54, + 96, + 4, + 97, + 134, + 232, + 86, + 91, + 97, + 38, + 9, + 86, + 91, + 52, + 128, + 21, + 97, + 8, + 190, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 9, + 43, + 97, + 8, + 205, + 54, + 96, + 4, + 97, + 135, + 60, + 86, + 91, + 96, + 10, + 96, + 32, + 144, + 129, + 82, + 96, + 0, + 146, + 131, + 82, + 96, + 64, + 128, + 132, + 32, + 144, + 145, + 82, + 144, + 130, + 82, + 144, + 32, + 128, + 84, + 96, + 1, + 130, + 1, + 84, + 96, + 2, + 131, + 1, + 84, + 96, + 3, + 132, + 1, + 84, + 96, + 4, + 133, + 1, + 84, + 96, + 5, + 144, + 149, + 1, + 84, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 128, + 134, + 22, + 150, + 99, + 255, + 255, + 255, + 255, + 96, + 1, + 96, + 128, + 27, + 151, + 136, + 144, + 4, + 22, + 150, + 129, + 131, + 22, + 147, + 145, + 4, + 130, + 22, + 145, + 22, + 136, + 86, + 91, + 96, + 64, + 128, + 81, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 153, + 138, + 22, + 129, + 82, + 99, + 255, + 255, + 255, + 255, + 144, + 152, + 22, + 96, + 32, + 137, + 1, + 82, + 135, + 1, + 149, + 144, + 149, + 82, + 96, + 96, + 134, + 1, + 147, + 144, + 147, + 82, + 96, + 128, + 133, + 1, + 145, + 144, + 145, + 82, + 132, + 22, + 96, + 160, + 132, + 1, + 82, + 131, + 22, + 96, + 192, + 131, + 1, + 82, + 145, + 144, + 145, + 22, + 96, + 224, + 130, + 1, + 82, + 97, + 1, + 0, + 1, + 97, + 2, + 90, + 86, + 91, + 52, + 128, + 21, + 97, + 9, + 139, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 2, + 243, + 97, + 9, + 154, + 54, + 96, + 4, + 97, + 135, + 113, + 86, + 91, + 97, + 40, + 9, + 86, + 91, + 52, + 128, + 21, + 97, + 9, + 171, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 3, + 204, + 97, + 9, + 186, + 54, + 96, + 4, + 97, + 131, + 191, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 1, + 96, + 32, + 82, + 96, + 64, + 144, + 32, + 84, + 144, + 86, + 91, + 97, + 2, + 11, + 97, + 43, + 36, + 86, + 91, + 52, + 128, + 21, + 97, + 9, + 233, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 3, + 204, + 97, + 9, + 248, + 54, + 96, + 4, + 97, + 131, + 134, + 86, + 91, + 97, + 43, + 170, + 86, + 91, + 52, + 128, + 21, + 97, + 10, + 9, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 10, + 29, + 97, + 10, + 24, + 54, + 96, + 4, + 97, + 135, + 141, + 86, + 91, + 97, + 43, + 211, + 86, + 91, + 96, + 64, + 81, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 144, + 145, + 22, + 129, + 82, + 96, + 32, + 1, + 97, + 2, + 90, + 86, + 91, + 52, + 128, + 21, + 97, + 10, + 65, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 96, + 4, + 84, + 97, + 3, + 40, + 144, + 96, + 255, + 22, + 129, + 86, + 91, + 52, + 128, + 21, + 97, + 10, + 91, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 10, + 100, + 97, + 46, + 235, + 86, + 91, + 96, + 64, + 81, + 97, + 2, + 90, + 145, + 144, + 97, + 135, + 236, + 86, + 91, + 96, + 0, + 128, + 97, + 13, + 126, + 96, + 8, + 96, + 0, + 133, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 144, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 32, + 96, + 64, + 81, + 128, + 97, + 1, + 64, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 2, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 3, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 4, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 5, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 6, + 130, + 1, + 96, + 64, + 81, + 128, + 97, + 1, + 0, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 18, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 22, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 24, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 26, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 30, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 21, + 21, + 21, + 21, + 129, + 82, + 80, + 80, + 129, + 82, + 96, + 32, + 1, + 96, + 7, + 130, + 1, + 96, + 64, + 81, + 128, + 96, + 128, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 80, + 80, + 129, + 82, + 80, + 80, + 97, + 47, + 8, + 86, + 91, + 145, + 80, + 145, + 80, + 145, + 80, + 145, + 86, + 91, + 96, + 0, + 128, + 97, + 16, + 148, + 96, + 8, + 96, + 0, + 133, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 144, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 32, + 96, + 64, + 81, + 128, + 97, + 1, + 64, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 2, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 3, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 4, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 5, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 6, + 130, + 1, + 96, + 64, + 81, + 128, + 97, + 1, + 0, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 18, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 22, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 24, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 26, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 30, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 21, + 21, + 21, + 21, + 129, + 82, + 80, + 80, + 129, + 82, + 96, + 32, + 1, + 96, + 7, + 130, + 1, + 96, + 64, + 81, + 128, + 96, + 128, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 80, + 80, + 129, + 82, + 80, + 80, + 97, + 47, + 136, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 145, + 130, + 22, + 149, + 145, + 22, + 147, + 80, + 145, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 130, + 18, + 21, + 97, + 17, + 143, + 87, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 10, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 136, + 22, + 132, + 82, + 130, + 82, + 128, + 131, + 32, + 129, + 81, + 97, + 1, + 0, + 129, + 1, + 131, + 82, + 129, + 84, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 128, + 130, + 22, + 131, + 82, + 99, + 255, + 255, + 255, + 255, + 96, + 1, + 96, + 128, + 27, + 146, + 131, + 144, + 4, + 129, + 22, + 150, + 132, + 1, + 150, + 144, + 150, + 82, + 96, + 1, + 132, + 1, + 84, + 148, + 131, + 1, + 148, + 144, + 148, + 82, + 96, + 2, + 131, + 1, + 84, + 96, + 96, + 131, + 1, + 82, + 96, + 3, + 131, + 1, + 84, + 96, + 128, + 131, + 1, + 82, + 96, + 4, + 131, + 1, + 84, + 128, + 133, + 22, + 96, + 160, + 132, + 1, + 82, + 4, + 131, + 22, + 96, + 192, + 130, + 1, + 82, + 96, + 5, + 144, + 145, + 1, + 84, + 144, + 145, + 22, + 96, + 224, + 130, + 1, + 82, + 97, + 17, + 93, + 145, + 66, + 144, + 97, + 47, + 163, + 22, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 134, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 8, + 96, + 32, + 82, + 96, + 64, + 144, + 32, + 96, + 6, + 1, + 84, + 96, + 1, + 96, + 128, + 27, + 144, + 4, + 97, + 255, + 255, + 22, + 17, + 21, + 145, + 80, + 97, + 17, + 147, + 144, + 80, + 86, + 91, + 80, + 96, + 1, + 91, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 97, + 20, + 179, + 132, + 96, + 8, + 96, + 0, + 139, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 144, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 32, + 96, + 64, + 81, + 128, + 97, + 1, + 64, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 2, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 3, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 4, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 5, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 6, + 130, + 1, + 96, + 64, + 81, + 128, + 97, + 1, + 0, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 18, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 22, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 24, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 26, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 30, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 21, + 21, + 21, + 21, + 129, + 82, + 80, + 80, + 129, + 82, + 96, + 32, + 1, + 96, + 7, + 130, + 1, + 96, + 64, + 81, + 128, + 96, + 128, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 80, + 80, + 129, + 82, + 80, + 80, + 97, + 47, + 187, + 144, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 144, + 80, + 97, + 23, + 194, + 96, + 8, + 96, + 0, + 138, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 144, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 32, + 96, + 64, + 81, + 128, + 97, + 1, + 64, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 2, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 3, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 4, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 5, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 6, + 130, + 1, + 96, + 64, + 81, + 128, + 97, + 1, + 0, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 18, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 22, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 24, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 26, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 30, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 21, + 21, + 21, + 21, + 129, + 82, + 80, + 80, + 129, + 82, + 96, + 32, + 1, + 96, + 7, + 130, + 1, + 96, + 64, + 81, + 128, + 96, + 128, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 80, + 80, + 129, + 82, + 80, + 80, + 135, + 135, + 132, + 97, + 48, + 1, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 137, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 8, + 96, + 32, + 129, + 144, + 82, + 96, + 64, + 130, + 32, + 1, + 84, + 145, + 147, + 80, + 144, + 97, + 23, + 247, + 144, + 137, + 144, + 96, + 1, + 96, + 160, + 27, + 144, + 4, + 96, + 255, + 22, + 97, + 48, + 70, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 138, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 8, + 96, + 32, + 129, + 144, + 82, + 96, + 64, + 130, + 32, + 1, + 84, + 145, + 146, + 80, + 144, + 97, + 24, + 44, + 144, + 133, + 144, + 96, + 1, + 96, + 160, + 27, + 144, + 4, + 96, + 255, + 22, + 97, + 48, + 70, + 86, + 91, + 145, + 144, + 145, + 18, + 21, + 147, + 80, + 80, + 80, + 149, + 80, + 149, + 147, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 97, + 24, + 76, + 129, + 131, + 48, + 97, + 48, + 92, + 86, + 91, + 146, + 145, + 80, + 80, + 86, + 91, + 96, + 0, + 97, + 24, + 93, + 130, + 97, + 48, + 152, + 86, + 91, + 80, + 144, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 11, + 84, + 96, + 1, + 20, + 97, + 24, + 140, + 87, + 96, + 64, + 81, + 96, + 1, + 98, + 56, + 221, + 247, + 96, + 224, + 27, + 3, + 25, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 2, + 96, + 11, + 129, + 144, + 85, + 80, + 127, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 99, + 247, + 124, + 71, + 145, + 96, + 64, + 81, + 129, + 99, + 255, + 255, + 255, + 255, + 22, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 32, + 96, + 64, + 81, + 128, + 131, + 3, + 129, + 134, + 90, + 250, + 21, + 128, + 21, + 97, + 24, + 242, + 87, + 61, + 96, + 0, + 128, + 62, + 61, + 96, + 0, + 253, + 91, + 80, + 80, + 80, + 80, + 96, + 64, + 81, + 61, + 96, + 31, + 25, + 96, + 31, + 130, + 1, + 22, + 130, + 1, + 128, + 96, + 64, + 82, + 80, + 129, + 1, + 144, + 97, + 25, + 22, + 145, + 144, + 97, + 136, + 31, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 51, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 20, + 97, + 25, + 71, + 87, + 96, + 64, + 81, + 99, + 35, + 1, + 158, + 103, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 20, + 129, + 17, + 128, + 97, + 25, + 86, + 87, + 80, + 96, + 4, + 129, + 16, + 91, + 21, + 97, + 25, + 127, + 87, + 96, + 64, + 81, + 99, + 246, + 244, + 163, + 143, + 96, + 224, + 27, + 129, + 82, + 97, + 255, + 255, + 130, + 22, + 96, + 4, + 130, + 1, + 82, + 96, + 36, + 1, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 13, + 128, + 84, + 144, + 130, + 144, + 85, + 96, + 64, + 128, + 81, + 130, + 129, + 82, + 96, + 32, + 129, + 1, + 132, + 144, + 82, + 127, + 129, + 201, + 57, + 20, + 72, + 0, + 40, + 118, + 3, + 71, + 155, + 151, + 187, + 169, + 193, + 18, + 136, + 206, + 122, + 188, + 90, + 203, + 72, + 144, + 121, + 225, + 89, + 243, + 92, + 249, + 139, + 209, + 145, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 161, + 80, + 96, + 1, + 96, + 11, + 85, + 96, + 4, + 84, + 96, + 255, + 22, + 97, + 25, + 233, + 87, + 96, + 64, + 81, + 99, + 4, + 86, + 76, + 113, + 96, + 226, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 80, + 86, + 91, + 96, + 11, + 84, + 96, + 1, + 20, + 97, + 26, + 18, + 87, + 96, + 64, + 81, + 96, + 1, + 98, + 56, + 221, + 247, + 96, + 224, + 27, + 3, + 25, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 2, + 96, + 11, + 85, + 96, + 1, + 129, + 1, + 97, + 26, + 44, + 87, + 97, + 26, + 41, + 130, + 51, + 97, + 57, + 236, + 86, + 91, + 144, + 80, + 91, + 97, + 26, + 57, + 96, + 0, + 131, + 48, + 132, + 97, + 58, + 204, + 86, + 91, + 97, + 26, + 65, + 97, + 58, + 225, + 86, + 91, + 96, + 1, + 96, + 11, + 85, + 96, + 4, + 84, + 96, + 255, + 22, + 97, + 26, + 105, + 87, + 96, + 64, + 81, + 99, + 4, + 86, + 76, + 113, + 96, + 226, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 8, + 96, + 0, + 134, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 144, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 32, + 96, + 64, + 81, + 128, + 97, + 1, + 64, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 2, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 3, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 4, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 5, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 6, + 130, + 1, + 96, + 64, + 81, + 128, + 97, + 1, + 0, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 18, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 22, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 24, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 26, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 30, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 21, + 21, + 21, + 21, + 129, + 82, + 80, + 80, + 129, + 82, + 96, + 32, + 1, + 96, + 7, + 130, + 1, + 96, + 64, + 81, + 128, + 96, + 128, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 80, + 80, + 129, + 82, + 80, + 80, + 144, + 80, + 97, + 29, + 139, + 132, + 132, + 66, + 132, + 97, + 63, + 115, + 144, + 147, + 146, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 149, + 148, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 97, + 32, + 171, + 131, + 96, + 8, + 96, + 0, + 135, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 144, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 32, + 96, + 64, + 81, + 128, + 97, + 1, + 64, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 2, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 3, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 4, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 5, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 6, + 130, + 1, + 96, + 64, + 81, + 128, + 97, + 1, + 0, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 18, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 22, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 24, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 26, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 30, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 21, + 21, + 21, + 21, + 129, + 82, + 80, + 80, + 129, + 82, + 96, + 32, + 1, + 96, + 7, + 130, + 1, + 96, + 64, + 81, + 128, + 96, + 128, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 80, + 80, + 129, + 82, + 80, + 80, + 97, + 64, + 48, + 144, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 145, + 80, + 145, + 80, + 91, + 146, + 80, + 146, + 144, + 80, + 86, + 91, + 96, + 0, + 128, + 132, + 21, + 97, + 32, + 227, + 87, + 97, + 32, + 220, + 131, + 97, + 32, + 214, + 134, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 97, + 136, + 82, + 86, + 91, + 144, + 97, + 65, + 53, + 86, + 91, + 144, + 80, + 97, + 33, + 28, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 134, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 8, + 96, + 32, + 82, + 96, + 64, + 144, + 32, + 96, + 6, + 1, + 84, + 97, + 33, + 25, + 144, + 132, + 144, + 97, + 32, + 214, + 144, + 135, + 144, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 97, + 136, + 82, + 86, + 91, + 144, + 80, + 91, + 144, + 80, + 91, + 148, + 147, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 11, + 84, + 96, + 1, + 20, + 97, + 33, + 77, + 87, + 96, + 64, + 81, + 96, + 1, + 98, + 56, + 221, + 247, + 96, + 224, + 27, + 3, + 25, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 2, + 96, + 11, + 85, + 97, + 33, + 90, + 97, + 65, + 74, + 86, + 91, + 96, + 85, + 96, + 249, + 27, + 130, + 130, + 96, + 0, + 129, + 97, + 33, + 112, + 87, + 97, + 33, + 112, + 97, + 136, + 105, + 86, + 91, + 144, + 80, + 1, + 53, + 96, + 248, + 28, + 96, + 248, + 27, + 96, + 1, + 96, + 1, + 96, + 248, + 27, + 3, + 25, + 22, + 20, + 97, + 33, + 152, + 87, + 97, + 33, + 147, + 130, + 130, + 97, + 65, + 178, + 86, + 91, + 97, + 26, + 57, + 86, + 91, + 97, + 26, + 57, + 130, + 130, + 97, + 65, + 178, + 97, + 69, + 10, + 86, + 91, + 96, + 0, + 97, + 24, + 76, + 96, + 8, + 96, + 0, + 132, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 144, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 32, + 96, + 64, + 81, + 128, + 97, + 1, + 64, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 2, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 3, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 4, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 5, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 6, + 130, + 1, + 96, + 64, + 81, + 128, + 97, + 1, + 0, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 18, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 22, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 24, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 26, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 30, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 21, + 21, + 21, + 21, + 129, + 82, + 80, + 80, + 129, + 82, + 96, + 32, + 1, + 96, + 7, + 130, + 1, + 96, + 64, + 81, + 128, + 96, + 128, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 80, + 80, + 129, + 82, + 80, + 80, + 96, + 96, + 1, + 81, + 99, + 255, + 255, + 255, + 255, + 22, + 21, + 21, + 144, + 86, + 91, + 96, + 11, + 84, + 96, + 1, + 20, + 97, + 36, + 225, + 87, + 96, + 64, + 81, + 96, + 1, + 98, + 56, + 221, + 247, + 96, + 224, + 27, + 3, + 25, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 2, + 96, + 11, + 85, + 48, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 3, + 97, + 37, + 15, + 87, + 96, + 64, + 81, + 99, + 47, + 53, + 37, + 49, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 0, + 97, + 37, + 27, + 51, + 133, + 97, + 43, + 170, + 86, + 91, + 144, + 80, + 96, + 0, + 25, + 131, + 3, + 97, + 37, + 42, + 87, + 128, + 146, + 80, + 91, + 128, + 131, + 17, + 21, + 97, + 37, + 75, + 87, + 96, + 64, + 81, + 99, + 50, + 124, + 188, + 155, + 96, + 226, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 97, + 37, + 85, + 132, + 132, + 97, + 69, + 216, + 86, + 91, + 97, + 37, + 95, + 132, + 132, + 97, + 70, + 43, + 86, + 91, + 127, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 132, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 3, + 97, + 37, + 200, + 87, + 97, + 37, + 195, + 127, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 131, + 133, + 97, + 70, + 126, + 86, + 91, + 97, + 37, + 211, + 86, + 91, + 97, + 37, + 211, + 132, + 131, + 133, + 97, + 71, + 101, + 86, + 91, + 97, + 37, + 219, + 97, + 58, + 225, + 86, + 91, + 80, + 96, + 1, + 96, + 11, + 85, + 96, + 4, + 84, + 96, + 255, + 22, + 97, + 38, + 4, + 87, + 96, + 64, + 81, + 99, + 4, + 86, + 76, + 113, + 96, + 226, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 80, + 80, + 80, + 86, + 91, + 96, + 11, + 84, + 96, + 1, + 20, + 97, + 38, + 47, + 87, + 96, + 64, + 81, + 96, + 1, + 98, + 56, + 221, + 247, + 96, + 224, + 27, + 3, + 25, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 2, + 96, + 11, + 129, + 144, + 85, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 133, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 8, + 96, + 32, + 82, + 96, + 64, + 144, + 32, + 144, + 129, + 1, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 51, + 20, + 97, + 38, + 122, + 87, + 96, + 64, + 81, + 99, + 35, + 1, + 158, + 103, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 64, + 128, + 81, + 97, + 1, + 0, + 129, + 1, + 130, + 82, + 96, + 0, + 128, + 130, + 82, + 96, + 32, + 130, + 1, + 129, + 144, + 82, + 145, + 129, + 1, + 130, + 144, + 82, + 96, + 96, + 129, + 1, + 130, + 144, + 82, + 96, + 128, + 129, + 1, + 130, + 144, + 82, + 96, + 160, + 129, + 1, + 130, + 144, + 82, + 96, + 192, + 129, + 1, + 130, + 144, + 82, + 96, + 224, + 129, + 1, + 145, + 144, + 145, + 82, + 80, + 96, + 64, + 128, + 81, + 97, + 1, + 0, + 129, + 1, + 130, + 82, + 96, + 6, + 131, + 1, + 84, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 129, + 22, + 130, + 82, + 97, + 255, + 255, + 96, + 1, + 96, + 128, + 27, + 130, + 4, + 129, + 22, + 96, + 32, + 132, + 1, + 82, + 96, + 1, + 96, + 144, + 27, + 130, + 4, + 129, + 22, + 147, + 131, + 1, + 147, + 144, + 147, + 82, + 96, + 1, + 96, + 160, + 27, + 129, + 4, + 131, + 22, + 96, + 96, + 131, + 1, + 82, + 96, + 1, + 96, + 176, + 27, + 129, + 4, + 131, + 22, + 96, + 128, + 131, + 1, + 82, + 96, + 1, + 96, + 192, + 27, + 129, + 4, + 131, + 22, + 96, + 160, + 131, + 1, + 82, + 99, + 255, + 255, + 255, + 255, + 96, + 1, + 96, + 208, + 27, + 130, + 4, + 22, + 96, + 192, + 131, + 1, + 82, + 96, + 255, + 96, + 1, + 96, + 240, + 27, + 144, + 145, + 4, + 22, + 21, + 21, + 96, + 224, + 130, + 1, + 82, + 144, + 131, + 22, + 21, + 97, + 39, + 90, + 87, + 97, + 255, + 255, + 131, + 22, + 96, + 32, + 130, + 1, + 82, + 91, + 97, + 255, + 255, + 132, + 22, + 21, + 97, + 39, + 111, + 87, + 97, + 255, + 255, + 132, + 22, + 96, + 64, + 130, + 1, + 82, + 91, + 97, + 255, + 255, + 133, + 22, + 21, + 97, + 39, + 132, + 87, + 97, + 255, + 255, + 133, + 22, + 96, + 160, + 130, + 1, + 82, + 91, + 97, + 39, + 142, + 130, + 130, + 97, + 71, + 227, + 86, + 91, + 96, + 64, + 81, + 97, + 255, + 255, + 132, + 129, + 22, + 130, + 82, + 128, + 134, + 22, + 145, + 144, + 135, + 22, + 144, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 137, + 22, + 144, + 127, + 99, + 136, + 150, + 84, + 253, + 163, + 215, + 78, + 149, + 252, + 123, + 230, + 211, + 16, + 196, + 83, + 198, + 136, + 59, + 108, + 205, + 232, + 64, + 12, + 71, + 103, + 39, + 35, + 126, + 99, + 42, + 194, + 144, + 96, + 32, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 164, + 80, + 80, + 96, + 1, + 96, + 11, + 85, + 96, + 4, + 84, + 96, + 255, + 22, + 97, + 40, + 3, + 87, + 96, + 64, + 81, + 99, + 4, + 86, + 76, + 113, + 96, + 226, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 97, + 43, + 25, + 96, + 8, + 96, + 0, + 134, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 144, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 32, + 96, + 64, + 81, + 128, + 97, + 1, + 64, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 2, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 3, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 4, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 5, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 6, + 130, + 1, + 96, + 64, + 81, + 128, + 97, + 1, + 0, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 18, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 22, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 24, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 26, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 30, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 21, + 21, + 21, + 21, + 129, + 82, + 80, + 80, + 129, + 82, + 96, + 32, + 1, + 96, + 7, + 130, + 1, + 96, + 64, + 81, + 128, + 96, + 128, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 80, + 80, + 129, + 82, + 80, + 80, + 132, + 96, + 0, + 97, + 72, + 225, + 86, + 91, + 144, + 149, + 144, + 148, + 80, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 11, + 84, + 96, + 1, + 20, + 97, + 43, + 74, + 87, + 96, + 64, + 81, + 96, + 1, + 98, + 56, + 221, + 247, + 96, + 224, + 27, + 3, + 25, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 2, + 96, + 11, + 85, + 52, + 96, + 0, + 3, + 97, + 43, + 112, + 87, + 96, + 64, + 81, + 99, + 124, + 148, + 110, + 215, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 97, + 43, + 120, + 97, + 65, + 74, + 86, + 91, + 97, + 43, + 128, + 97, + 58, + 225, + 86, + 91, + 96, + 1, + 96, + 11, + 85, + 96, + 4, + 84, + 96, + 255, + 22, + 97, + 43, + 168, + 87, + 96, + 64, + 81, + 99, + 4, + 86, + 76, + 113, + 96, + 226, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 145, + 130, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 32, + 129, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 147, + 144, + 148, + 22, + 130, + 82, + 145, + 144, + 145, + 82, + 32, + 84, + 144, + 86, + 91, + 96, + 0, + 97, + 33, + 31, + 131, + 131, + 96, + 8, + 96, + 0, + 136, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 144, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 32, + 96, + 64, + 81, + 128, + 97, + 1, + 64, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 2, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 3, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 4, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 5, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 6, + 130, + 1, + 96, + 64, + 81, + 128, + 97, + 1, + 0, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 18, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 22, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 24, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 26, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 30, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 21, + 21, + 21, + 21, + 129, + 82, + 80, + 80, + 129, + 82, + 96, + 32, + 1, + 96, + 7, + 130, + 1, + 96, + 64, + 81, + 128, + 96, + 128, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 80, + 80, + 129, + 82, + 80, + 80, + 97, + 73, + 105, + 144, + 146, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 96, + 96, + 96, + 32, + 96, + 0, + 82, + 107, + 11, + 118, + 49, + 46, + 48, + 46, + 48, + 45, + 98, + 101, + 116, + 97, + 96, + 43, + 82, + 96, + 96, + 96, + 0, + 243, + 91, + 96, + 0, + 128, + 96, + 0, + 128, + 97, + 47, + 30, + 133, + 128, + 81, + 96, + 32, + 144, + 145, + 1, + 81, + 144, + 145, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 145, + 80, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 145, + 80, + 97, + 47, + 91, + 97, + 47, + 86, + 134, + 97, + 1, + 32, + 1, + 81, + 96, + 32, + 1, + 81, + 96, + 255, + 22, + 132, + 97, + 74, + 33, + 144, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 97, + 74, + 55, + 86, + 91, + 147, + 80, + 97, + 47, + 127, + 97, + 47, + 86, + 134, + 97, + 1, + 32, + 1, + 81, + 96, + 96, + 1, + 81, + 96, + 255, + 22, + 131, + 97, + 74, + 33, + 144, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 146, + 80, + 80, + 80, + 145, + 80, + 145, + 86, + 91, + 96, + 0, + 128, + 97, + 13, + 126, + 131, + 96, + 64, + 1, + 81, + 97, + 47, + 156, + 144, + 97, + 136, + 127, + 86, + 91, + 132, + 144, + 97, + 64, + 48, + 86, + 91, + 96, + 0, + 130, + 96, + 32, + 1, + 81, + 99, + 255, + 255, + 255, + 255, + 22, + 130, + 97, + 17, + 147, + 145, + 144, + 97, + 136, + 82, + 86, + 91, + 96, + 0, + 130, + 97, + 1, + 0, + 1, + 81, + 96, + 224, + 1, + 81, + 21, + 97, + 47, + 215, + 87, + 80, + 99, + 1, + 225, + 133, + 89, + 97, + 24, + 76, + 86, + 91, + 96, + 0, + 97, + 47, + 231, + 132, + 97, + 1, + 0, + 1, + 81, + 97, + 74, + 77, + 86, + 91, + 99, + 255, + 255, + 255, + 255, + 22, + 128, + 132, + 3, + 144, + 132, + 16, + 2, + 131, + 3, + 146, + 144, + 146, + 3, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 97, + 33, + 28, + 131, + 133, + 135, + 97, + 1, + 0, + 1, + 81, + 96, + 0, + 1, + 81, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 97, + 48, + 64, + 137, + 97, + 1, + 0, + 1, + 81, + 96, + 128, + 1, + 81, + 97, + 255, + 255, + 22, + 97, + 39, + 16, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 145, + 144, + 145, + 2, + 4, + 144, + 86, + 91, + 134, + 97, + 74, + 116, + 86, + 91, + 96, + 0, + 128, + 97, + 48, + 82, + 131, + 97, + 74, + 145, + 86, + 91, + 144, + 147, + 5, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 1, + 132, + 1, + 96, + 32, + 82, + 96, + 64, + 129, + 32, + 84, + 129, + 97, + 48, + 130, + 133, + 133, + 97, + 57, + 236, + 86, + 91, + 144, + 80, + 97, + 48, + 142, + 130, + 130, + 97, + 136, + 165, + 86, + 91, + 150, + 149, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 128, + 96, + 8, + 96, + 0, + 134, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 144, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 32, + 144, + 80, + 97, + 51, + 181, + 66, + 130, + 96, + 64, + 81, + 128, + 97, + 1, + 64, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 2, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 3, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 4, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 5, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 6, + 130, + 1, + 96, + 64, + 81, + 128, + 97, + 1, + 0, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 18, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 22, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 24, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 26, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 30, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 21, + 21, + 21, + 21, + 129, + 82, + 80, + 80, + 129, + 82, + 96, + 32, + 1, + 96, + 7, + 130, + 1, + 96, + 64, + 81, + 128, + 96, + 128, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 80, + 80, + 129, + 82, + 80, + 80, + 97, + 47, + 187, + 144, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 145, + 80, + 96, + 0, + 128, + 97, + 54, + 167, + 131, + 96, + 64, + 81, + 128, + 97, + 1, + 64, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 2, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 3, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 4, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 5, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 6, + 130, + 1, + 96, + 64, + 81, + 128, + 97, + 1, + 0, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 18, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 22, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 24, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 26, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 30, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 21, + 21, + 21, + 21, + 129, + 82, + 80, + 80, + 129, + 82, + 96, + 32, + 1, + 96, + 7, + 130, + 1, + 96, + 64, + 81, + 128, + 96, + 128, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 80, + 80, + 129, + 82, + 80, + 80, + 128, + 81, + 96, + 32, + 144, + 145, + 1, + 81, + 144, + 145, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 145, + 80, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 145, + 80, + 97, + 57, + 177, + 130, + 130, + 134, + 134, + 96, + 64, + 81, + 128, + 97, + 1, + 64, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 2, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 3, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 4, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 5, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 6, + 130, + 1, + 96, + 64, + 81, + 128, + 97, + 1, + 0, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 18, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 22, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 24, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 26, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 30, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 21, + 21, + 21, + 21, + 129, + 82, + 80, + 80, + 129, + 82, + 96, + 32, + 1, + 96, + 7, + 130, + 1, + 96, + 64, + 81, + 128, + 96, + 128, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 80, + 80, + 129, + 82, + 80, + 80, + 97, + 48, + 1, + 144, + 147, + 146, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 96, + 6, + 132, + 1, + 84, + 96, + 15, + 145, + 144, + 145, + 11, + 149, + 80, + 97, + 57, + 224, + 144, + 131, + 144, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 129, + 22, + 144, + 96, + 1, + 96, + 176, + 27, + 144, + 4, + 97, + 255, + 255, + 22, + 135, + 97, + 74, + 169, + 86, + 91, + 149, + 80, + 80, + 80, + 80, + 145, + 147, + 144, + 146, + 80, + 86, + 91, + 96, + 64, + 128, + 81, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 129, + 22, + 96, + 36, + 128, + 132, + 1, + 145, + 144, + 145, + 82, + 131, + 81, + 128, + 132, + 3, + 144, + 145, + 1, + 129, + 82, + 96, + 68, + 144, + 146, + 1, + 131, + 82, + 96, + 32, + 130, + 1, + 128, + 81, + 96, + 1, + 96, + 1, + 96, + 224, + 27, + 3, + 22, + 99, + 112, + 160, + 130, + 49, + 96, + 224, + 27, + 23, + 144, + 82, + 145, + 81, + 96, + 0, + 146, + 131, + 146, + 131, + 146, + 145, + 135, + 22, + 145, + 97, + 58, + 70, + 145, + 144, + 97, + 136, + 228, + 86, + 91, + 96, + 0, + 96, + 64, + 81, + 128, + 131, + 3, + 129, + 133, + 90, + 250, + 145, + 80, + 80, + 61, + 128, + 96, + 0, + 129, + 20, + 97, + 58, + 129, + 87, + 96, + 64, + 81, + 145, + 80, + 96, + 31, + 25, + 96, + 63, + 61, + 1, + 22, + 130, + 1, + 96, + 64, + 82, + 61, + 130, + 82, + 61, + 96, + 0, + 96, + 32, + 132, + 1, + 62, + 97, + 58, + 134, + 86, + 91, + 96, + 96, + 145, + 80, + 91, + 80, + 145, + 80, + 145, + 80, + 129, + 21, + 128, + 97, + 58, + 154, + 87, + 80, + 128, + 81, + 96, + 32, + 20, + 21, + 91, + 21, + 97, + 58, + 184, + 87, + 96, + 64, + 81, + 99, + 197, + 46, + 62, + 255, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 128, + 128, + 96, + 32, + 1, + 144, + 81, + 129, + 1, + 144, + 97, + 29, + 139, + 145, + 144, + 97, + 137, + 0, + 86, + 91, + 97, + 58, + 214, + 132, + 132, + 97, + 76, + 48, + 86, + 91, + 97, + 40, + 3, + 131, + 131, + 131, + 97, + 76, + 192, + 86, + 91, + 96, + 0, + 128, + 96, + 3, + 1, + 128, + 84, + 128, + 96, + 32, + 2, + 96, + 32, + 1, + 96, + 64, + 81, + 144, + 129, + 1, + 96, + 64, + 82, + 128, + 146, + 145, + 144, + 129, + 129, + 82, + 96, + 32, + 1, + 130, + 128, + 84, + 128, + 21, + 97, + 59, + 59, + 87, + 96, + 32, + 2, + 130, + 1, + 145, + 144, + 96, + 0, + 82, + 96, + 32, + 96, + 0, + 32, + 144, + 91, + 129, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 1, + 144, + 145, + 1, + 144, + 96, + 32, + 1, + 128, + 131, + 17, + 97, + 59, + 29, + 87, + 91, + 80, + 80, + 80, + 80, + 80, + 144, + 80, + 96, + 0, + 129, + 81, + 144, + 80, + 128, + 96, + 0, + 3, + 97, + 59, + 90, + 87, + 97, + 26, + 105, + 96, + 0, + 97, + 76, + 204, + 86, + 91, + 128, + 91, + 96, + 0, + 131, + 97, + 59, + 106, + 96, + 1, + 132, + 97, + 136, + 82, + 86, + 91, + 129, + 81, + 129, + 16, + 97, + 59, + 122, + 87, + 97, + 59, + 122, + 97, + 136, + 105, + 86, + 91, + 96, + 32, + 2, + 96, + 32, + 1, + 1, + 81, + 144, + 80, + 96, + 0, + 128, + 96, + 0, + 97, + 59, + 159, + 132, + 48, + 96, + 0, + 97, + 76, + 251, + 144, + 146, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 145, + 148, + 80, + 146, + 80, + 144, + 80, + 130, + 21, + 97, + 60, + 52, + 87, + 96, + 64, + 81, + 131, + 129, + 82, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 133, + 22, + 144, + 51, + 144, + 127, + 73, + 225, + 68, + 60, + 178, + 94, + 23, + 203, + 235, + 197, + 10, + 163, + 227, + 165, + 163, + 223, + 58, + 195, + 52, + 175, + 133, + 43, + 198, + 243, + 232, + 210, + 88, + 85, + 130, + 87, + 187, + 17, + 144, + 96, + 32, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 131, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 127, + 128, + 178, + 23, + 72, + 199, + 135, + 197, + 46, + 135, + 166, + 178, + 34, + 1, + 30, + 10, + 14, + 208, + 249, + 204, + 32, + 21, + 240, + 206, + 212, + 103, + 72, + 100, + 45, + 198, + 46, + 233, + 248, + 132, + 96, + 64, + 81, + 97, + 60, + 39, + 145, + 129, + 82, + 96, + 32, + 1, + 144, + 86, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 162, + 97, + 61, + 65, + 86, + 91, + 129, + 21, + 97, + 60, + 190, + 87, + 96, + 64, + 81, + 130, + 129, + 82, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 133, + 22, + 144, + 51, + 144, + 127, + 11, + 11, + 130, + 25, + 83, + 229, + 84, + 91, + 113, + 242, + 8, + 88, + 51, + 228, + 168, + 223, + 208, + 217, + 155, + 189, + 255, + 81, + 24, + 152, + 103, + 42, + 232, + 23, + 154, + 152, + 45, + 243, + 144, + 96, + 32, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 131, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 127, + 28, + 113, + 30, + 202, + 141, + 11, + 105, + 75, + 188, + 176, + 161, + 68, + 98, + 167, + 0, + 98, + 34, + 231, + 33, + 149, + 75, + 44, + 95, + 247, + 152, + 246, + 6, + 129, + 126, + 177, + 16, + 50, + 131, + 96, + 64, + 81, + 97, + 60, + 181, + 145, + 129, + 82, + 96, + 32, + 1, + 144, + 86, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 162, + 91, + 128, + 21, + 97, + 61, + 65, + 87, + 96, + 14, + 96, + 64, + 81, + 128, + 96, + 96, + 1, + 96, + 64, + 82, + 128, + 134, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 131, + 129, + 82, + 96, + 32, + 1, + 97, + 60, + 240, + 135, + 48, + 97, + 57, + 236, + 86, + 91, + 144, + 82, + 129, + 84, + 96, + 1, + 128, + 130, + 1, + 132, + 85, + 96, + 0, + 147, + 132, + 82, + 96, + 32, + 147, + 132, + 144, + 32, + 131, + 81, + 96, + 3, + 144, + 147, + 2, + 1, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 25, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 144, + 147, + 22, + 146, + 144, + 146, + 23, + 130, + 85, + 146, + 130, + 1, + 81, + 146, + 129, + 1, + 146, + 144, + 146, + 85, + 96, + 64, + 1, + 81, + 96, + 2, + 144, + 145, + 1, + 85, + 91, + 96, + 3, + 128, + 84, + 128, + 97, + 61, + 82, + 87, + 97, + 61, + 82, + 97, + 137, + 25, + 86, + 91, + 96, + 0, + 130, + 129, + 82, + 96, + 32, + 129, + 32, + 130, + 1, + 96, + 0, + 25, + 144, + 129, + 1, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 25, + 22, + 144, + 85, + 145, + 130, + 1, + 144, + 146, + 85, + 134, + 1, + 149, + 144, + 3, + 96, + 1, + 1, + 147, + 80, + 97, + 59, + 92, + 146, + 80, + 80, + 80, + 87, + 96, + 0, + 96, + 14, + 128, + 84, + 128, + 96, + 32, + 2, + 96, + 32, + 1, + 96, + 64, + 81, + 144, + 129, + 1, + 96, + 64, + 82, + 128, + 146, + 145, + 144, + 129, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 144, + 91, + 130, + 130, + 16, + 21, + 97, + 62, + 2, + 87, + 96, + 0, + 132, + 129, + 82, + 96, + 32, + 144, + 129, + 144, + 32, + 96, + 64, + 128, + 81, + 96, + 96, + 129, + 1, + 130, + 82, + 96, + 3, + 134, + 2, + 144, + 146, + 1, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 131, + 82, + 96, + 1, + 128, + 130, + 1, + 84, + 132, + 134, + 1, + 82, + 96, + 2, + 144, + 145, + 1, + 84, + 145, + 131, + 1, + 145, + 144, + 145, + 82, + 144, + 131, + 82, + 144, + 146, + 1, + 145, + 1, + 97, + 61, + 173, + 86, + 91, + 80, + 80, + 130, + 81, + 146, + 147, + 80, + 80, + 80, + 91, + 128, + 21, + 97, + 62, + 112, + 87, + 96, + 0, + 97, + 62, + 31, + 96, + 1, + 131, + 97, + 136, + 82, + 86, + 91, + 144, + 80, + 97, + 62, + 102, + 131, + 130, + 129, + 81, + 129, + 16, + 97, + 62, + 54, + 87, + 97, + 62, + 54, + 97, + 136, + 105, + 86, + 91, + 96, + 32, + 2, + 96, + 32, + 1, + 1, + 81, + 96, + 0, + 1, + 81, + 48, + 133, + 132, + 129, + 81, + 129, + 16, + 97, + 62, + 85, + 87, + 97, + 62, + 85, + 97, + 136, + 105, + 86, + 91, + 96, + 32, + 2, + 96, + 32, + 1, + 1, + 81, + 96, + 32, + 1, + 81, + 97, + 76, + 192, + 86, + 91, + 80, + 96, + 0, + 25, + 1, + 97, + 62, + 12, + 86, + 91, + 80, + 128, + 81, + 91, + 128, + 21, + 97, + 63, + 86, + 87, + 96, + 0, + 97, + 62, + 135, + 96, + 1, + 131, + 97, + 136, + 82, + 86, + 91, + 144, + 80, + 96, + 0, + 131, + 130, + 129, + 81, + 129, + 16, + 97, + 62, + 157, + 87, + 97, + 62, + 157, + 97, + 136, + 105, + 86, + 91, + 96, + 32, + 2, + 96, + 32, + 1, + 1, + 81, + 96, + 0, + 1, + 81, + 144, + 80, + 96, + 0, + 132, + 131, + 129, + 81, + 129, + 16, + 97, + 62, + 191, + 87, + 97, + 62, + 191, + 97, + 136, + 105, + 86, + 91, + 96, + 32, + 2, + 96, + 32, + 1, + 1, + 81, + 96, + 64, + 1, + 81, + 144, + 80, + 96, + 0, + 97, + 62, + 217, + 131, + 48, + 97, + 57, + 236, + 86, + 91, + 144, + 80, + 96, + 0, + 130, + 135, + 134, + 129, + 81, + 129, + 16, + 97, + 62, + 240, + 87, + 97, + 62, + 240, + 97, + 136, + 105, + 86, + 91, + 96, + 32, + 2, + 96, + 32, + 1, + 1, + 81, + 96, + 32, + 1, + 81, + 97, + 63, + 6, + 145, + 144, + 97, + 137, + 47, + 86, + 91, + 144, + 80, + 128, + 130, + 16, + 21, + 97, + 63, + 69, + 87, + 131, + 97, + 63, + 27, + 130, + 132, + 97, + 136, + 165, + 86, + 91, + 96, + 64, + 81, + 99, + 127, + 17, + 205, + 213, + 96, + 225, + 27, + 129, + 82, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 144, + 146, + 22, + 96, + 4, + 131, + 1, + 82, + 96, + 36, + 130, + 1, + 82, + 96, + 68, + 1, + 97, + 25, + 118, + 86, + 91, + 133, + 96, + 1, + 144, + 3, + 149, + 80, + 80, + 80, + 80, + 80, + 80, + 97, + 62, + 116, + 86, + 91, + 97, + 63, + 96, + 96, + 0, + 97, + 76, + 204, + 86, + 91, + 97, + 63, + 108, + 96, + 14, + 96, + 0, + 97, + 129, + 241, + 86, + 91, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 97, + 63, + 132, + 135, + 135, + 135, + 135, + 97, + 77, + 224, + 86, + 91, + 145, + 80, + 145, + 80, + 96, + 0, + 128, + 97, + 63, + 151, + 137, + 133, + 138, + 134, + 97, + 78, + 223, + 86, + 91, + 145, + 80, + 145, + 80, + 129, + 129, + 17, + 21, + 97, + 63, + 188, + 87, + 96, + 64, + 81, + 99, + 1, + 0, + 7, + 39, + 96, + 229, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 192, + 132, + 1, + 81, + 97, + 63, + 207, + 144, + 97, + 32, + 214, + 131, + 133, + 97, + 136, + 82, + 86, + 91, + 132, + 97, + 1, + 0, + 1, + 129, + 129, + 81, + 97, + 63, + 225, + 145, + 144, + 97, + 137, + 47, + 86, + 91, + 144, + 82, + 80, + 96, + 0, + 136, + 97, + 63, + 250, + 87, + 137, + 97, + 1, + 32, + 1, + 81, + 96, + 32, + 1, + 81, + 97, + 64, + 5, + 86, + 91, + 137, + 97, + 1, + 32, + 1, + 81, + 96, + 96, + 1, + 81, + 91, + 96, + 255, + 22, + 144, + 80, + 97, + 64, + 34, + 129, + 134, + 97, + 1, + 0, + 1, + 81, + 97, + 74, + 33, + 144, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 154, + 153, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 15, + 131, + 144, + 11, + 21, + 97, + 32, + 176, + 87, + 131, + 81, + 96, + 32, + 133, + 1, + 81, + 96, + 0, + 145, + 130, + 145, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 145, + 80, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 145, + 80, + 96, + 0, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 97, + 64, + 127, + 136, + 97, + 1, + 32, + 1, + 81, + 96, + 32, + 1, + 81, + 96, + 255, + 22, + 97, + 74, + 145, + 86, + 91, + 97, + 64, + 137, + 145, + 144, + 97, + 137, + 71, + 86, + 91, + 144, + 80, + 96, + 0, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 97, + 64, + 171, + 137, + 97, + 1, + 32, + 1, + 81, + 96, + 96, + 1, + 81, + 96, + 255, + 22, + 97, + 74, + 145, + 86, + 91, + 97, + 64, + 181, + 145, + 144, + 97, + 137, + 71, + 86, + 91, + 144, + 80, + 96, + 0, + 128, + 136, + 96, + 15, + 11, + 19, + 21, + 97, + 64, + 244, + 87, + 80, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 135, + 22, + 97, + 64, + 221, + 97, + 47, + 86, + 134, + 131, + 134, + 97, + 79, + 199, + 86, + 91, + 150, + 80, + 97, + 64, + 237, + 97, + 47, + 86, + 133, + 131, + 133, + 97, + 79, + 199, + 86, + 91, + 149, + 80, + 97, + 65, + 41, + 86, + 91, + 97, + 64, + 253, + 136, + 97, + 136, + 127, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 144, + 80, + 97, + 65, + 22, + 97, + 47, + 86, + 134, + 131, + 134, + 97, + 79, + 245, + 86, + 91, + 150, + 80, + 97, + 65, + 38, + 97, + 47, + 86, + 133, + 131, + 133, + 97, + 79, + 245, + 86, + 91, + 149, + 80, + 91, + 80, + 80, + 80, + 80, + 80, + 146, + 80, + 146, + 144, + 80, + 86, + 91, + 96, + 0, + 97, + 17, + 147, + 131, + 131, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 97, + 79, + 245, + 86, + 91, + 52, + 21, + 97, + 43, + 168, + 87, + 97, + 65, + 123, + 96, + 0, + 127, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 97, + 80, + 20, + 86, + 91, + 96, + 64, + 81, + 52, + 129, + 82, + 51, + 144, + 127, + 225, + 255, + 252, + 196, + 146, + 61, + 4, + 181, + 89, + 244, + 210, + 154, + 139, + 252, + 108, + 218, + 4, + 235, + 91, + 13, + 60, + 70, + 7, + 81, + 194, + 64, + 44, + 92, + 92, + 201, + 16, + 156, + 144, + 96, + 32, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 162, + 86, + 91, + 96, + 0, + 97, + 65, + 231, + 131, + 131, + 96, + 0, + 129, + 129, + 16, + 97, + 65, + 202, + 87, + 97, + 65, + 202, + 97, + 136, + 105, + 86, + 91, + 145, + 144, + 145, + 1, + 53, + 96, + 4, + 129, + 144, + 28, + 96, + 255, + 96, + 244, + 27, + 22, + 146, + 96, + 15, + 96, + 248, + 27, + 144, + 145, + 22, + 145, + 80, + 86, + 91, + 145, + 80, + 80, + 96, + 1, + 96, + 1, + 96, + 248, + 27, + 3, + 25, + 128, + 130, + 22, + 1, + 97, + 66, + 43, + 87, + 96, + 0, + 128, + 96, + 0, + 97, + 66, + 10, + 134, + 134, + 97, + 80, + 115, + 86, + 91, + 146, + 80, + 146, + 80, + 146, + 80, + 97, + 66, + 33, + 131, + 96, + 255, + 22, + 96, + 1, + 20, + 131, + 131, + 97, + 80, + 227, + 86, + 91, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 253, + 96, + 248, + 27, + 96, + 1, + 96, + 1, + 96, + 248, + 27, + 3, + 25, + 130, + 22, + 1, + 97, + 66, + 102, + 87, + 96, + 0, + 128, + 96, + 0, + 97, + 66, + 79, + 134, + 134, + 97, + 80, + 115, + 86, + 91, + 146, + 80, + 146, + 80, + 146, + 80, + 97, + 66, + 33, + 131, + 96, + 255, + 22, + 96, + 1, + 20, + 131, + 131, + 97, + 82, + 206, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 248, + 27, + 3, + 25, + 129, + 22, + 96, + 3, + 96, + 249, + 27, + 20, + 128, + 97, + 66, + 143, + 87, + 80, + 96, + 1, + 96, + 1, + 96, + 248, + 27, + 3, + 25, + 129, + 22, + 96, + 5, + 96, + 248, + 27, + 20, + 91, + 21, + 97, + 67, + 74, + 87, + 96, + 64, + 128, + 81, + 96, + 160, + 129, + 1, + 130, + 82, + 132, + 53, + 96, + 0, + 144, + 129, + 26, + 96, + 15, + 129, + 22, + 96, + 6, + 20, + 96, + 255, + 144, + 129, + 22, + 96, + 128, + 133, + 1, + 82, + 96, + 1, + 96, + 9, + 137, + 1, + 53, + 132, + 26, + 128, + 138, + 1, + 130, + 129, + 1, + 53, + 96, + 8, + 131, + 140, + 3, + 96, + 0, + 25, + 1, + 129, + 2, + 97, + 1, + 0, + 144, + 129, + 3, + 146, + 144, + 146, + 28, + 146, + 53, + 136, + 26, + 96, + 10, + 144, + 129, + 10, + 147, + 144, + 147, + 2, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 144, + 129, + 22, + 96, + 96, + 139, + 1, + 82, + 96, + 11, + 142, + 1, + 53, + 96, + 10, + 25, + 144, + 149, + 1, + 144, + 145, + 2, + 144, + 145, + 3, + 146, + 144, + 146, + 28, + 129, + 140, + 1, + 53, + 144, + 150, + 26, + 144, + 10, + 148, + 144, + 148, + 2, + 144, + 147, + 22, + 148, + 132, + 1, + 148, + 144, + 148, + 82, + 144, + 134, + 1, + 53, + 96, + 192, + 28, + 96, + 32, + 131, + 1, + 82, + 96, + 4, + 28, + 144, + 145, + 22, + 129, + 82, + 97, + 67, + 65, + 129, + 97, + 84, + 180, + 86, + 91, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 245, + 96, + 248, + 27, + 96, + 1, + 96, + 1, + 96, + 248, + 27, + 3, + 25, + 130, + 22, + 1, + 97, + 68, + 59, + 87, + 96, + 0, + 128, + 96, + 0, + 128, + 96, + 0, + 128, + 96, + 0, + 128, + 96, + 0, + 97, + 68, + 9, + 140, + 140, + 96, + 1, + 128, + 131, + 1, + 53, + 96, + 232, + 28, + 147, + 96, + 4, + 132, + 1, + 53, + 96, + 96, + 28, + 147, + 96, + 24, + 129, + 1, + 53, + 96, + 240, + 144, + 129, + 28, + 148, + 96, + 26, + 131, + 1, + 53, + 130, + 28, + 148, + 96, + 28, + 132, + 1, + 53, + 131, + 28, + 148, + 96, + 30, + 133, + 1, + 53, + 132, + 28, + 148, + 96, + 32, + 129, + 1, + 53, + 144, + 148, + 28, + 147, + 96, + 35, + 129, + 1, + 53, + 96, + 0, + 144, + 129, + 26, + 96, + 10, + 144, + 129, + 10, + 96, + 36, + 132, + 1, + 53, + 96, + 8, + 96, + 35, + 25, + 96, + 34, + 135, + 1, + 53, + 134, + 26, + 144, + 129, + 1, + 130, + 2, + 97, + 1, + 0, + 144, + 129, + 3, + 147, + 144, + 147, + 28, + 147, + 144, + 147, + 2, + 152, + 149, + 131, + 1, + 128, + 53, + 144, + 149, + 26, + 144, + 147, + 10, + 147, + 144, + 150, + 1, + 53, + 96, + 0, + 25, + 145, + 144, + 148, + 3, + 1, + 2, + 144, + 147, + 3, + 28, + 145, + 144, + 145, + 2, + 144, + 86, + 91, + 152, + 80, + 152, + 80, + 152, + 80, + 152, + 80, + 152, + 80, + 152, + 80, + 152, + 80, + 152, + 80, + 152, + 80, + 97, + 68, + 44, + 137, + 137, + 137, + 137, + 137, + 137, + 137, + 137, + 137, + 97, + 92, + 89, + 86, + 91, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 61, + 96, + 250, + 27, + 96, + 1, + 96, + 1, + 96, + 248, + 27, + 3, + 25, + 130, + 22, + 1, + 97, + 68, + 115, + 87, + 96, + 0, + 128, + 97, + 68, + 93, + 133, + 133, + 97, + 95, + 236, + 86, + 91, + 145, + 80, + 145, + 80, + 97, + 68, + 107, + 130, + 130, + 97, + 96, + 51, + 86, + 91, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 63, + 96, + 250, + 27, + 96, + 1, + 96, + 1, + 96, + 248, + 27, + 3, + 25, + 130, + 22, + 1, + 97, + 68, + 241, + 87, + 96, + 0, + 128, + 128, + 133, + 53, + 96, + 184, + 129, + 144, + 28, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 144, + 96, + 10, + 129, + 129, + 26, + 129, + 10, + 96, + 11, + 138, + 1, + 53, + 96, + 8, + 96, + 9, + 133, + 144, + 26, + 96, + 10, + 25, + 129, + 1, + 130, + 2, + 97, + 1, + 0, + 144, + 129, + 3, + 147, + 144, + 147, + 28, + 147, + 144, + 147, + 2, + 148, + 131, + 26, + 144, + 147, + 10, + 96, + 1, + 131, + 141, + 1, + 1, + 53, + 146, + 139, + 3, + 96, + 0, + 25, + 1, + 144, + 147, + 2, + 144, + 3, + 28, + 2, + 146, + 80, + 146, + 80, + 146, + 80, + 97, + 68, + 107, + 131, + 131, + 131, + 97, + 99, + 52, + 86, + 91, + 96, + 64, + 81, + 99, + 27, + 24, + 145, + 237, + 96, + 227, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 0, + 131, + 131, + 96, + 1, + 129, + 129, + 16, + 97, + 69, + 31, + 87, + 97, + 69, + 31, + 97, + 136, + 105, + 86, + 91, + 145, + 144, + 145, + 1, + 53, + 96, + 248, + 28, + 145, + 80, + 96, + 2, + 144, + 80, + 96, + 0, + 128, + 128, + 91, + 132, + 96, + 255, + 22, + 129, + 20, + 97, + 66, + 33, + 87, + 131, + 146, + 80, + 135, + 135, + 132, + 129, + 129, + 16, + 97, + 69, + 81, + 87, + 97, + 69, + 81, + 97, + 136, + 105, + 86, + 91, + 97, + 69, + 98, + 146, + 1, + 53, + 96, + 248, + 28, + 144, + 80, + 132, + 97, + 137, + 47, + 86, + 91, + 97, + 69, + 109, + 144, + 96, + 1, + 97, + 137, + 47, + 86, + 91, + 145, + 80, + 134, + 130, + 17, + 21, + 97, + 69, + 147, + 87, + 96, + 64, + 81, + 99, + 128, + 246, + 59, + 209, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 129, + 1, + 131, + 144, + 82, + 96, + 36, + 1, + 97, + 25, + 118, + 86, + 91, + 54, + 96, + 0, + 97, + 69, + 162, + 132, + 134, + 139, + 141, + 97, + 137, + 102, + 86, + 91, + 148, + 150, + 80, + 134, + 148, + 144, + 146, + 80, + 144, + 80, + 97, + 69, + 197, + 97, + 69, + 188, + 130, + 96, + 1, + 129, + 134, + 97, + 137, + 102, + 86, + 91, + 138, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 80, + 80, + 128, + 97, + 69, + 209, + 144, + 97, + 137, + 144, + 86, + 91, + 144, + 80, + 97, + 69, + 50, + 86, + 91, + 97, + 69, + 229, + 96, + 0, + 51, + 132, + 132, + 97, + 101, + 143, + 86, + 91, + 80, + 80, + 96, + 64, + 81, + 129, + 129, + 82, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 22, + 144, + 51, + 144, + 127, + 11, + 11, + 130, + 25, + 83, + 229, + 84, + 91, + 113, + 242, + 8, + 88, + 51, + 228, + 168, + 223, + 208, + 217, + 155, + 189, + 255, + 81, + 24, + 152, + 103, + 42, + 232, + 23, + 154, + 152, + 45, + 243, + 144, + 96, + 32, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 80, + 80, + 86, + 91, + 97, + 70, + 55, + 96, + 0, + 131, + 131, + 97, + 101, + 221, + 86, + 91, + 129, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 127, + 28, + 113, + 30, + 202, + 141, + 11, + 105, + 75, + 188, + 176, + 161, + 68, + 98, + 167, + 0, + 98, + 34, + 231, + 33, + 149, + 75, + 44, + 95, + 247, + 152, + 246, + 6, + 129, + 126, + 177, + 16, + 50, + 130, + 96, + 64, + 81, + 97, + 70, + 114, + 145, + 129, + 82, + 96, + 32, + 1, + 144, + 86, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 162, + 80, + 80, + 86, + 91, + 96, + 64, + 81, + 99, + 46, + 26, + 125, + 77, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 129, + 1, + 130, + 144, + 82, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 132, + 22, + 144, + 99, + 46, + 26, + 125, + 77, + 144, + 96, + 36, + 1, + 96, + 0, + 96, + 64, + 81, + 128, + 131, + 3, + 129, + 96, + 0, + 135, + 128, + 59, + 21, + 128, + 21, + 97, + 70, + 192, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 90, + 241, + 21, + 128, + 21, + 97, + 70, + 212, + 87, + 61, + 96, + 0, + 128, + 62, + 61, + 96, + 0, + 253, + 91, + 80, + 80, + 96, + 64, + 128, + 81, + 96, + 0, + 128, + 130, + 82, + 96, + 32, + 130, + 1, + 146, + 131, + 144, + 82, + 147, + 80, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 134, + 22, + 146, + 80, + 132, + 145, + 97, + 71, + 1, + 145, + 144, + 97, + 136, + 228, + 86, + 91, + 96, + 0, + 96, + 64, + 81, + 128, + 131, + 3, + 129, + 133, + 135, + 90, + 241, + 146, + 80, + 80, + 80, + 61, + 128, + 96, + 0, + 129, + 20, + 97, + 71, + 62, + 87, + 96, + 64, + 81, + 145, + 80, + 96, + 31, + 25, + 96, + 63, + 61, + 1, + 22, + 130, + 1, + 96, + 64, + 82, + 61, + 130, + 82, + 61, + 96, + 0, + 96, + 32, + 132, + 1, + 62, + 97, + 71, + 67, + 86, + 91, + 96, + 96, + 145, + 80, + 91, + 80, + 80, + 144, + 80, + 128, + 97, + 40, + 3, + 87, + 96, + 64, + 81, + 99, + 117, + 244, + 38, + 131, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 0, + 96, + 64, + 81, + 99, + 169, + 5, + 156, + 187, + 96, + 224, + 27, + 96, + 0, + 82, + 131, + 96, + 4, + 82, + 130, + 96, + 36, + 82, + 96, + 32, + 96, + 0, + 96, + 68, + 96, + 0, + 128, + 137, + 90, + 241, + 61, + 21, + 96, + 31, + 61, + 17, + 96, + 1, + 96, + 0, + 81, + 20, + 22, + 23, + 22, + 145, + 80, + 96, + 0, + 96, + 96, + 82, + 128, + 96, + 64, + 82, + 80, + 128, + 97, + 40, + 3, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 15, + 96, + 36, + 130, + 1, + 82, + 110, + 21, + 20, + 144, + 83, + 148, + 209, + 145, + 84, + 151, + 209, + 144, + 82, + 83, + 17, + 81, + 96, + 138, + 27, + 96, + 68, + 130, + 1, + 82, + 96, + 100, + 1, + 97, + 25, + 118, + 86, + 91, + 97, + 71, + 236, + 129, + 97, + 102, + 98, + 86, + 91, + 128, + 81, + 96, + 6, + 146, + 144, + 146, + 1, + 128, + 84, + 96, + 32, + 131, + 1, + 81, + 96, + 64, + 132, + 1, + 81, + 96, + 96, + 133, + 1, + 81, + 96, + 128, + 134, + 1, + 81, + 96, + 160, + 135, + 1, + 81, + 96, + 192, + 136, + 1, + 81, + 96, + 224, + 144, + 152, + 1, + 81, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 144, + 153, + 22, + 113, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 25, + 144, + 150, + 22, + 149, + 144, + 149, + 23, + 96, + 1, + 96, + 128, + 27, + 97, + 255, + 255, + 149, + 134, + 22, + 2, + 23, + 99, + 255, + 255, + 255, + 255, + 96, + 144, + 27, + 25, + 22, + 96, + 1, + 96, + 144, + 27, + 147, + 133, + 22, + 147, + 144, + 147, + 2, + 97, + 255, + 255, + 96, + 160, + 27, + 25, + 22, + 146, + 144, + 146, + 23, + 96, + 1, + 96, + 160, + 27, + 145, + 132, + 22, + 145, + 144, + 145, + 2, + 23, + 99, + 255, + 255, + 255, + 255, + 96, + 176, + 27, + 25, + 22, + 96, + 1, + 96, + 176, + 27, + 145, + 131, + 22, + 145, + 144, + 145, + 2, + 97, + 255, + 255, + 96, + 192, + 27, + 25, + 22, + 23, + 96, + 1, + 96, + 192, + 27, + 145, + 144, + 146, + 22, + 2, + 23, + 100, + 255, + 255, + 255, + 255, + 255, + 96, + 208, + 27, + 25, + 22, + 96, + 1, + 96, + 208, + 27, + 99, + 255, + 255, + 255, + 255, + 144, + 147, + 22, + 146, + 144, + 146, + 2, + 96, + 255, + 96, + 240, + 27, + 25, + 22, + 145, + 144, + 145, + 23, + 96, + 1, + 96, + 240, + 27, + 146, + 21, + 21, + 146, + 144, + 146, + 2, + 145, + 144, + 145, + 23, + 144, + 85, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 133, + 97, + 1, + 0, + 1, + 81, + 96, + 0, + 1, + 81, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 144, + 80, + 96, + 0, + 97, + 73, + 34, + 135, + 97, + 1, + 0, + 1, + 81, + 96, + 128, + 1, + 81, + 97, + 255, + 255, + 22, + 97, + 39, + 16, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 145, + 144, + 145, + 2, + 4, + 144, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 73, + 47, + 136, + 97, + 102, + 127, + 86, + 91, + 144, + 80, + 97, + 73, + 74, + 135, + 132, + 138, + 97, + 1, + 0, + 1, + 81, + 96, + 128, + 1, + 81, + 97, + 255, + 255, + 22, + 132, + 97, + 102, + 158, + 86, + 91, + 148, + 80, + 97, + 73, + 92, + 133, + 132, + 132, + 132, + 138, + 96, + 15, + 11, + 97, + 103, + 173, + 86, + 91, + 147, + 80, + 80, + 80, + 80, + 147, + 80, + 147, + 145, + 80, + 80, + 86, + 91, + 96, + 0, + 97, + 73, + 141, + 97, + 47, + 86, + 133, + 97, + 1, + 32, + 1, + 81, + 96, + 32, + 1, + 81, + 96, + 255, + 22, + 133, + 97, + 104, + 200, + 144, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 146, + 80, + 97, + 73, + 186, + 97, + 47, + 86, + 133, + 97, + 1, + 32, + 1, + 81, + 96, + 96, + 1, + 81, + 96, + 255, + 22, + 132, + 97, + 104, + 200, + 144, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 145, + 80, + 96, + 0, + 128, + 97, + 73, + 216, + 134, + 128, + 81, + 96, + 32, + 144, + 145, + 1, + 81, + 144, + 145, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 145, + 130, + 22, + 147, + 80, + 22, + 144, + 80, + 96, + 0, + 97, + 73, + 244, + 134, + 132, + 97, + 104, + 223, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 74, + 2, + 134, + 132, + 97, + 104, + 223, + 86, + 91, + 144, + 80, + 97, + 74, + 21, + 129, + 131, + 17, + 130, + 132, + 3, + 2, + 131, + 3, + 97, + 74, + 55, + 86, + 91, + 152, + 151, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 97, + 74, + 45, + 131, + 97, + 74, + 145, + 86, + 91, + 144, + 147, + 4, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 96, + 1, + 96, + 128, + 27, + 130, + 16, + 97, + 74, + 73, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 144, + 86, + 91, + 96, + 0, + 97, + 24, + 76, + 130, + 96, + 192, + 1, + 81, + 99, + 255, + 255, + 255, + 255, + 22, + 97, + 74, + 110, + 132, + 96, + 96, + 1, + 81, + 97, + 255, + 255, + 22, + 97, + 104, + 244, + 86, + 91, + 1, + 97, + 105, + 65, + 86, + 91, + 96, + 0, + 128, + 97, + 74, + 132, + 134, + 134, + 134, + 134, + 134, + 97, + 103, + 173, + 86, + 91, + 144, + 150, + 3, + 150, + 149, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 97, + 74, + 158, + 130, + 96, + 18, + 97, + 136, + 82, + 86, + 91, + 97, + 24, + 76, + 144, + 96, + 10, + 97, + 138, + 141, + 86, + 91, + 96, + 0, + 128, + 99, + 1, + 225, + 133, + 89, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 132, + 2, + 4, + 144, + 80, + 96, + 0, + 97, + 39, + 16, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 134, + 2, + 4, + 144, + 80, + 134, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 16, + 21, + 97, + 74, + 254, + 87, + 96, + 64, + 81, + 99, + 177, + 21, + 88, + 223, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 129, + 1, + 136, + 144, + 82, + 96, + 36, + 1, + 97, + 25, + 118, + 86, + 91, + 134, + 96, + 0, + 3, + 97, + 75, + 31, + 87, + 96, + 64, + 81, + 99, + 34, + 5, + 51, + 99, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 129, + 21, + 128, + 97, + 75, + 42, + 87, + 80, + 128, + 21, + 91, + 21, + 97, + 75, + 57, + 87, + 133, + 146, + 80, + 80, + 80, + 97, + 33, + 31, + 86, + 91, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 135, + 3, + 97, + 75, + 82, + 87, + 133, + 146, + 80, + 80, + 80, + 97, + 33, + 31, + 86, + 91, + 96, + 0, + 97, + 75, + 102, + 136, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 97, + 136, + 165, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 75, + 115, + 130, + 97, + 105, + 84, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 75, + 147, + 132, + 99, + 59, + 154, + 202, + 0, + 97, + 75, + 137, + 136, + 97, + 105, + 241, + 86, + 91, + 97, + 32, + 214, + 145, + 144, + 97, + 137, + 71, + 86, + 91, + 144, + 80, + 96, + 0, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 97, + 75, + 170, + 131, + 133, + 97, + 138, + 153, + 86, + 91, + 97, + 75, + 180, + 145, + 144, + 97, + 139, + 52, + 86, + 91, + 144, + 80, + 96, + 0, + 103, + 27, + 193, + 109, + 103, + 78, + 200, + 0, + 0, + 97, + 75, + 203, + 135, + 128, + 97, + 137, + 71, + 86, + 91, + 97, + 75, + 213, + 145, + 144, + 97, + 139, + 98, + 86, + 91, + 144, + 80, + 96, + 0, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 97, + 75, + 236, + 137, + 132, + 97, + 137, + 71, + 86, + 91, + 97, + 75, + 246, + 145, + 144, + 97, + 139, + 52, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 76, + 4, + 130, + 133, + 97, + 136, + 165, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 76, + 17, + 130, + 97, + 106, + 149, + 86, + 91, + 144, + 80, + 97, + 76, + 29, + 129, + 143, + 97, + 65, + 53, + 86, + 91, + 159, + 158, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 4, + 130, + 1, + 84, + 96, + 255, + 22, + 21, + 97, + 76, + 74, + 87, + 96, + 4, + 130, + 1, + 128, + 84, + 96, + 255, + 25, + 22, + 144, + 85, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 129, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 2, + 131, + 1, + 96, + 32, + 82, + 96, + 64, + 144, + 32, + 84, + 96, + 255, + 22, + 97, + 26, + 105, + 87, + 96, + 3, + 130, + 1, + 128, + 84, + 96, + 1, + 128, + 130, + 1, + 131, + 85, + 96, + 0, + 146, + 131, + 82, + 96, + 32, + 128, + 132, + 32, + 144, + 146, + 1, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 134, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 25, + 144, + 145, + 22, + 129, + 23, + 144, + 145, + 85, + 131, + 82, + 96, + 2, + 133, + 1, + 144, + 145, + 82, + 96, + 64, + 144, + 145, + 32, + 128, + 84, + 96, + 255, + 25, + 22, + 144, + 145, + 23, + 144, + 85, + 80, + 80, + 86, + 91, + 97, + 38, + 4, + 131, + 51, + 132, + 132, + 97, + 108, + 62, + 86, + 91, + 96, + 3, + 129, + 1, + 84, + 21, + 97, + 76, + 222, + 87, + 97, + 76, + 222, + 97, + 139, + 118, + 86, + 91, + 96, + 4, + 129, + 1, + 128, + 84, + 96, + 255, + 25, + 22, + 96, + 1, + 23, + 144, + 85, + 97, + 25, + 233, + 96, + 3, + 130, + 1, + 96, + 0, + 97, + 130, + 18, + 86, + 91, + 96, + 0, + 128, + 128, + 128, + 97, + 77, + 11, + 135, + 135, + 135, + 97, + 48, + 92, + 86, + 91, + 144, + 80, + 96, + 0, + 129, + 19, + 21, + 97, + 77, + 90, + 87, + 146, + 80, + 130, + 97, + 77, + 37, + 135, + 51, + 136, + 132, + 97, + 108, + 197, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 134, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 1, + 136, + 1, + 96, + 32, + 82, + 96, + 64, + 129, + 32, + 128, + 84, + 131, + 146, + 144, + 97, + 77, + 79, + 144, + 132, + 144, + 97, + 137, + 47, + 86, + 91, + 144, + 145, + 85, + 80, + 97, + 77, + 181, + 144, + 80, + 86, + 91, + 96, + 0, + 129, + 18, + 21, + 97, + 77, + 181, + 87, + 97, + 77, + 108, + 129, + 97, + 139, + 140, + 86, + 91, + 145, + 80, + 97, + 77, + 122, + 135, + 51, + 136, + 133, + 97, + 101, + 143, + 86, + 91, + 144, + 147, + 80, + 145, + 80, + 130, + 21, + 97, + 77, + 181, + 87, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 134, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 1, + 136, + 1, + 96, + 32, + 82, + 96, + 64, + 129, + 32, + 128, + 84, + 133, + 146, + 144, + 97, + 77, + 175, + 144, + 132, + 144, + 97, + 136, + 82, + 86, + 91, + 144, + 145, + 85, + 80, + 80, + 91, + 80, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 144, + 148, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 2, + 144, + 149, + 1, + 96, + 32, + 82, + 96, + 64, + 144, + 148, + 32, + 128, + 84, + 96, + 255, + 25, + 22, + 144, + 85, + 147, + 144, + 80, + 86, + 91, + 97, + 77, + 232, + 97, + 130, + 48, + 86, + 91, + 96, + 0, + 97, + 77, + 242, + 97, + 130, + 48, + 86, + 91, + 96, + 128, + 135, + 1, + 81, + 96, + 0, + 144, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 97, + 78, + 22, + 87, + 135, + 97, + 1, + 0, + 1, + 81, + 96, + 64, + 1, + 81, + 97, + 78, + 33, + 86, + 91, + 135, + 97, + 1, + 0, + 1, + 81, + 96, + 160, + 1, + 81, + 91, + 97, + 255, + 255, + 22, + 144, + 80, + 97, + 78, + 55, + 136, + 128, + 81, + 96, + 32, + 144, + 145, + 1, + 81, + 144, + 145, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 144, + 129, + 22, + 96, + 96, + 133, + 1, + 82, + 22, + 96, + 64, + 131, + 1, + 82, + 97, + 78, + 87, + 136, + 134, + 97, + 47, + 187, + 86, + 91, + 146, + 80, + 97, + 78, + 109, + 136, + 131, + 96, + 64, + 1, + 81, + 132, + 96, + 96, + 1, + 81, + 134, + 97, + 48, + 1, + 86, + 91, + 130, + 82, + 97, + 78, + 155, + 135, + 97, + 78, + 134, + 87, + 136, + 97, + 1, + 32, + 1, + 81, + 96, + 96, + 1, + 81, + 97, + 78, + 145, + 86, + 91, + 136, + 97, + 1, + 32, + 1, + 81, + 96, + 32, + 1, + 81, + 91, + 135, + 144, + 96, + 255, + 22, + 97, + 104, + 200, + 86, + 91, + 96, + 128, + 131, + 1, + 129, + 144, + 82, + 96, + 64, + 137, + 1, + 81, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 192, + 132, + 1, + 82, + 97, + 39, + 16, + 144, + 97, + 78, + 196, + 144, + 131, + 144, + 97, + 137, + 71, + 86, + 91, + 97, + 78, + 206, + 145, + 144, + 97, + 139, + 98, + 86, + 91, + 96, + 160, + 131, + 1, + 82, + 80, + 145, + 80, + 148, + 80, + 148, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 128, + 96, + 0, + 97, + 79, + 12, + 137, + 97, + 1, + 0, + 1, + 81, + 96, + 128, + 1, + 81, + 97, + 255, + 255, + 22, + 97, + 39, + 16, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 145, + 144, + 145, + 2, + 4, + 144, + 86, + 91, + 144, + 80, + 134, + 21, + 97, + 79, + 39, + 87, + 96, + 64, + 136, + 1, + 81, + 96, + 96, + 137, + 1, + 81, + 149, + 80, + 146, + 80, + 97, + 79, + 55, + 86, + 91, + 96, + 64, + 136, + 1, + 81, + 96, + 96, + 137, + 1, + 81, + 144, + 149, + 80, + 146, + 80, + 91, + 97, + 79, + 89, + 136, + 96, + 192, + 1, + 81, + 137, + 96, + 160, + 1, + 81, + 138, + 96, + 128, + 1, + 81, + 97, + 79, + 83, + 145, + 144, + 97, + 136, + 82, + 86, + 91, + 144, + 97, + 104, + 223, + 86, + 91, + 97, + 79, + 99, + 144, + 132, + 97, + 137, + 47, + 86, + 91, + 145, + 80, + 134, + 21, + 97, + 79, + 149, + 87, + 97, + 79, + 142, + 130, + 138, + 97, + 1, + 0, + 1, + 81, + 96, + 0, + 1, + 81, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 131, + 137, + 140, + 96, + 0, + 1, + 81, + 97, + 103, + 173, + 86, + 91, + 147, + 80, + 97, + 79, + 187, + 86, + 91, + 97, + 79, + 184, + 130, + 138, + 97, + 1, + 0, + 1, + 81, + 96, + 0, + 1, + 81, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 131, + 137, + 140, + 96, + 0, + 1, + 81, + 97, + 109, + 4, + 86, + 91, + 147, + 80, + 91, + 80, + 80, + 80, + 148, + 80, + 148, + 146, + 80, + 80, + 80, + 86, + 91, + 130, + 130, + 2, + 129, + 21, + 21, + 132, + 21, + 133, + 131, + 4, + 133, + 20, + 23, + 22, + 97, + 79, + 223, + 87, + 96, + 0, + 128, + 253, + 91, + 96, + 1, + 130, + 96, + 1, + 131, + 3, + 4, + 1, + 129, + 21, + 21, + 2, + 144, + 80, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 130, + 130, + 2, + 129, + 21, + 21, + 132, + 21, + 133, + 131, + 4, + 133, + 20, + 23, + 22, + 97, + 80, + 13, + 87, + 96, + 0, + 128, + 253, + 91, + 4, + 146, + 145, + 80, + 80, + 86, + 91, + 52, + 21, + 97, + 26, + 105, + 87, + 97, + 80, + 36, + 130, + 130, + 97, + 76, + 48, + 86, + 91, + 128, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 99, + 208, + 227, + 13, + 176, + 52, + 96, + 64, + 81, + 130, + 99, + 255, + 255, + 255, + 255, + 22, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 0, + 96, + 64, + 81, + 128, + 131, + 3, + 129, + 133, + 136, + 128, + 59, + 21, + 128, + 21, + 97, + 80, + 95, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 90, + 241, + 21, + 128, + 21, + 97, + 67, + 65, + 87, + 61, + 96, + 0, + 128, + 62, + 61, + 96, + 0, + 253, + 91, + 96, + 0, + 128, + 128, + 96, + 11, + 132, + 16, + 21, + 97, + 80, + 163, + 87, + 96, + 64, + 81, + 99, + 112, + 206, + 228, + 175, + 96, + 225, + 27, + 129, + 82, + 96, + 11, + 96, + 4, + 130, + 1, + 82, + 96, + 36, + 129, + 1, + 133, + 144, + 82, + 96, + 68, + 1, + 97, + 25, + 118, + 86, + 91, + 80, + 80, + 80, + 144, + 53, + 96, + 252, + 129, + 144, + 28, + 146, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 96, + 184, + 131, + 144, + 28, + 22, + 146, + 96, + 255, + 96, + 176, + 132, + 144, + 28, + 22, + 96, + 10, + 10, + 96, + 80, + 147, + 144, + 147, + 27, + 96, + 9, + 25, + 144, + 145, + 1, + 96, + 8, + 2, + 97, + 1, + 0, + 3, + 28, + 145, + 144, + 145, + 2, + 144, + 86, + 91, + 96, + 0, + 128, + 97, + 80, + 239, + 132, + 97, + 33, + 165, + 86, + 91, + 97, + 81, + 23, + 87, + 96, + 64, + 81, + 99, + 106, + 36, + 6, + 163, + 96, + 225, + 27, + 129, + 82, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 133, + 22, + 96, + 4, + 130, + 1, + 82, + 96, + 36, + 1, + 97, + 25, + 118, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 132, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 8, + 96, + 32, + 129, + 144, + 82, + 96, + 64, + 144, + 145, + 32, + 96, + 7, + 129, + 1, + 84, + 145, + 1, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 145, + 130, + 22, + 145, + 22, + 134, + 21, + 97, + 81, + 104, + 87, + 97, + 81, + 101, + 134, + 97, + 81, + 91, + 51, + 133, + 97, + 43, + 170, + 86, + 91, + 97, + 10, + 24, + 51, + 133, + 97, + 43, + 170, + 86, + 91, + 148, + 80, + 91, + 132, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 0, + 3, + 97, + 81, + 146, + 87, + 96, + 64, + 81, + 99, + 2, + 0, + 232, + 169, + 96, + 227, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 97, + 81, + 159, + 134, + 97, + 5, + 0, + 135, + 97, + 110, + 64, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 145, + 130, + 22, + 149, + 80, + 22, + 146, + 80, + 131, + 21, + 128, + 97, + 81, + 186, + 87, + 80, + 130, + 21, + 91, + 21, + 97, + 81, + 216, + 87, + 96, + 64, + 81, + 99, + 33, + 60, + 124, + 197, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 0, + 96, + 64, + 81, + 128, + 97, + 1, + 0, + 1, + 96, + 64, + 82, + 128, + 51, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 136, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 66, + 129, + 82, + 96, + 32, + 1, + 134, + 129, + 82, + 96, + 32, + 1, + 133, + 129, + 82, + 96, + 32, + 1, + 132, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 131, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 97, + 82, + 61, + 136, + 97, + 110, + 64, + 86, + 91, + 96, + 15, + 11, + 144, + 82, + 144, + 80, + 97, + 82, + 77, + 129, + 97, + 110, + 86, + 86, + 91, + 80, + 80, + 80, + 129, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 131, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 136, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 127, + 253, + 255, + 236, + 167, + 81, + 240, + 220, + 170, + 183, + 85, + 49, + 203, + 129, + 60, + 18, + 187, + 253, + 86, + 238, + 62, + 150, + 76, + 196, + 113, + 215, + 239, + 67, + 147, + 36, + 2, + 238, + 24, + 136, + 136, + 139, + 96, + 64, + 81, + 97, + 82, + 187, + 147, + 146, + 145, + 144, + 146, + 131, + 82, + 96, + 32, + 131, + 1, + 145, + 144, + 145, + 82, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 64, + 130, + 1, + 82, + 96, + 96, + 1, + 144, + 86, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 164, + 80, + 80, + 80, + 147, + 80, + 147, + 145, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 97, + 82, + 218, + 132, + 97, + 33, + 165, + 86, + 91, + 97, + 83, + 2, + 87, + 96, + 64, + 81, + 99, + 106, + 36, + 6, + 163, + 96, + 225, + 27, + 129, + 82, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 133, + 22, + 96, + 4, + 130, + 1, + 82, + 96, + 36, + 1, + 97, + 25, + 118, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 132, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 8, + 96, + 32, + 129, + 144, + 82, + 96, + 64, + 144, + 145, + 32, + 96, + 7, + 129, + 1, + 84, + 145, + 1, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 145, + 130, + 22, + 145, + 22, + 134, + 21, + 97, + 83, + 104, + 87, + 51, + 96, + 0, + 144, + 129, + 82, + 96, + 10, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 138, + 22, + 132, + 82, + 144, + 145, + 82, + 144, + 32, + 84, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 148, + 80, + 91, + 132, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 0, + 3, + 97, + 83, + 146, + 87, + 96, + 64, + 81, + 99, + 2, + 0, + 232, + 169, + 96, + 227, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 97, + 83, + 168, + 134, + 97, + 83, + 159, + 135, + 97, + 110, + 64, + 86, + 91, + 97, + 5, + 0, + 144, + 97, + 136, + 127, + 86, + 91, + 129, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 145, + 80, + 128, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 144, + 80, + 128, + 148, + 80, + 129, + 149, + 80, + 80, + 80, + 96, + 0, + 96, + 64, + 81, + 128, + 97, + 1, + 0, + 1, + 96, + 64, + 82, + 128, + 51, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 136, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 66, + 129, + 82, + 96, + 32, + 1, + 134, + 129, + 82, + 96, + 32, + 1, + 133, + 129, + 82, + 96, + 32, + 1, + 132, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 131, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 97, + 84, + 45, + 136, + 97, + 110, + 64, + 86, + 91, + 97, + 84, + 54, + 144, + 97, + 136, + 127, + 86, + 91, + 96, + 15, + 11, + 144, + 82, + 144, + 80, + 97, + 84, + 70, + 129, + 97, + 110, + 86, + 86, + 91, + 80, + 80, + 80, + 129, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 131, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 136, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 127, + 48, + 132, + 202, + 244, + 137, + 102, + 92, + 171, + 7, + 69, + 44, + 254, + 79, + 61, + 14, + 181, + 224, + 220, + 21, + 234, + 198, + 252, + 101, + 128, + 152, + 133, + 142, + 99, + 158, + 112, + 229, + 58, + 136, + 136, + 139, + 96, + 64, + 81, + 97, + 82, + 187, + 147, + 146, + 145, + 144, + 146, + 131, + 82, + 96, + 32, + 131, + 1, + 145, + 144, + 145, + 82, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 64, + 130, + 1, + 82, + 96, + 96, + 1, + 144, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 131, + 96, + 64, + 1, + 81, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 0, + 3, + 97, + 84, + 231, + 87, + 96, + 64, + 81, + 99, + 175, + 69, + 140, + 7, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 32, + 128, + 133, + 1, + 128, + 81, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 8, + 144, + 146, + 82, + 96, + 64, + 144, + 145, + 32, + 144, + 81, + 97, + 85, + 17, + 144, + 97, + 33, + 165, + 86, + 91, + 97, + 85, + 63, + 87, + 96, + 32, + 133, + 1, + 81, + 96, + 64, + 81, + 99, + 106, + 36, + 6, + 163, + 96, + 225, + 27, + 129, + 82, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 144, + 145, + 22, + 96, + 4, + 130, + 1, + 82, + 96, + 36, + 1, + 97, + 25, + 118, + 86, + 91, + 96, + 128, + 133, + 1, + 81, + 96, + 15, + 128, + 84, + 96, + 255, + 144, + 146, + 22, + 96, + 1, + 20, + 96, + 255, + 25, + 144, + 146, + 22, + 145, + 144, + 145, + 23, + 144, + 85, + 96, + 2, + 129, + 1, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 51, + 20, + 97, + 85, + 133, + 87, + 96, + 6, + 129, + 1, + 84, + 96, + 1, + 96, + 144, + 27, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 85, + 150, + 86, + 91, + 96, + 6, + 129, + 1, + 84, + 96, + 1, + 96, + 192, + 27, + 144, + 4, + 97, + 255, + 255, + 22, + 91, + 96, + 15, + 128, + 84, + 97, + 255, + 255, + 146, + 144, + 146, + 22, + 96, + 1, + 96, + 168, + 27, + 2, + 97, + 255, + 255, + 96, + 168, + 27, + 25, + 131, + 22, + 129, + 23, + 144, + 145, + 85, + 96, + 255, + 144, + 129, + 22, + 145, + 22, + 23, + 21, + 97, + 86, + 17, + 87, + 96, + 4, + 129, + 1, + 84, + 96, + 17, + 85, + 96, + 7, + 129, + 1, + 84, + 96, + 15, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 146, + 131, + 22, + 97, + 1, + 0, + 2, + 97, + 1, + 0, + 96, + 1, + 96, + 168, + 27, + 3, + 25, + 144, + 145, + 22, + 23, + 144, + 85, + 96, + 8, + 130, + 1, + 84, + 96, + 16, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 25, + 22, + 145, + 144, + 146, + 22, + 23, + 144, + 85, + 97, + 86, + 92, + 86, + 91, + 96, + 5, + 129, + 1, + 84, + 96, + 17, + 85, + 96, + 8, + 129, + 1, + 84, + 96, + 15, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 146, + 131, + 22, + 97, + 1, + 0, + 2, + 97, + 1, + 0, + 96, + 1, + 96, + 168, + 27, + 3, + 25, + 144, + 145, + 22, + 23, + 144, + 85, + 96, + 7, + 130, + 1, + 84, + 96, + 16, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 25, + 22, + 145, + 144, + 146, + 22, + 23, + 144, + 85, + 91, + 97, + 86, + 100, + 97, + 130, + 48, + 86, + 91, + 96, + 0, + 128, + 97, + 86, + 116, + 136, + 96, + 32, + 1, + 81, + 97, + 111, + 185, + 86, + 91, + 145, + 80, + 145, + 80, + 129, + 97, + 86, + 150, + 87, + 96, + 64, + 81, + 99, + 57, + 139, + 54, + 219, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 15, + 84, + 96, + 0, + 144, + 97, + 86, + 207, + 144, + 51, + 144, + 96, + 255, + 22, + 97, + 86, + 188, + 87, + 96, + 8, + 135, + 1, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 97, + 43, + 170, + 86, + 91, + 96, + 7, + 135, + 1, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 97, + 43, + 170, + 86, + 91, + 144, + 80, + 136, + 96, + 0, + 1, + 81, + 96, + 255, + 22, + 96, + 1, + 20, + 97, + 86, + 243, + 87, + 136, + 96, + 64, + 1, + 81, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 97, + 86, + 245, + 86, + 91, + 128, + 91, + 96, + 15, + 84, + 144, + 151, + 80, + 97, + 87, + 52, + 144, + 96, + 255, + 22, + 97, + 87, + 26, + 87, + 96, + 8, + 134, + 1, + 84, + 96, + 1, + 96, + 160, + 27, + 144, + 4, + 96, + 255, + 22, + 97, + 87, + 42, + 86, + 91, + 96, + 7, + 134, + 1, + 84, + 96, + 1, + 96, + 160, + 27, + 144, + 4, + 96, + 255, + 22, + 91, + 136, + 144, + 96, + 255, + 22, + 97, + 104, + 200, + 86, + 91, + 96, + 96, + 138, + 1, + 81, + 96, + 15, + 84, + 145, + 152, + 80, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 150, + 80, + 97, + 87, + 127, + 144, + 96, + 255, + 22, + 97, + 87, + 105, + 87, + 96, + 7, + 134, + 1, + 84, + 96, + 1, + 96, + 160, + 27, + 144, + 4, + 96, + 255, + 22, + 97, + 78, + 145, + 86, + 91, + 96, + 8, + 134, + 1, + 84, + 135, + 144, + 96, + 1, + 96, + 160, + 27, + 144, + 4, + 96, + 255, + 22, + 97, + 104, + 200, + 86, + 91, + 145, + 132, + 82, + 80, + 96, + 224, + 131, + 1, + 134, + 144, + 82, + 96, + 1, + 132, + 1, + 84, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 144, + 129, + 22, + 96, + 192, + 133, + 1, + 82, + 97, + 1, + 0, + 132, + 1, + 130, + 144, + 82, + 132, + 84, + 96, + 1, + 96, + 128, + 27, + 129, + 4, + 130, + 22, + 96, + 96, + 134, + 1, + 82, + 22, + 96, + 64, + 132, + 1, + 82, + 147, + 80, + 80, + 96, + 0, + 131, + 144, + 3, + 97, + 87, + 226, + 87, + 96, + 64, + 81, + 99, + 115, + 12, + 49, + 191, + 96, + 225, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 128, + 96, + 224, + 1, + 81, + 96, + 0, + 3, + 97, + 88, + 7, + 87, + 96, + 64, + 81, + 99, + 175, + 69, + 140, + 7, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 128, + 96, + 192, + 1, + 81, + 96, + 0, + 3, + 97, + 88, + 44, + 87, + 96, + 64, + 81, + 99, + 2, + 0, + 232, + 169, + 96, + 227, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 97, + 1, + 0, + 129, + 1, + 81, + 96, + 15, + 84, + 96, + 0, + 145, + 130, + 145, + 130, + 145, + 130, + 145, + 130, + 145, + 130, + 145, + 130, + 145, + 144, + 96, + 255, + 22, + 21, + 97, + 88, + 97, + 87, + 96, + 64, + 137, + 1, + 81, + 96, + 96, + 138, + 1, + 81, + 144, + 152, + 80, + 148, + 80, + 97, + 88, + 112, + 86, + 91, + 96, + 64, + 137, + 1, + 81, + 96, + 96, + 138, + 1, + 81, + 152, + 80, + 148, + 80, + 91, + 96, + 224, + 137, + 1, + 81, + 96, + 15, + 84, + 144, + 147, + 80, + 97, + 39, + 16, + 144, + 97, + 88, + 148, + 144, + 96, + 1, + 96, + 168, + 27, + 144, + 4, + 97, + 255, + 255, + 22, + 133, + 97, + 137, + 71, + 86, + 91, + 97, + 88, + 158, + 145, + 144, + 97, + 139, + 98, + 86, + 91, + 96, + 160, + 138, + 1, + 82, + 96, + 13, + 84, + 21, + 97, + 89, + 21, + 87, + 96, + 0, + 96, + 13, + 84, + 138, + 96, + 160, + 1, + 81, + 97, + 88, + 191, + 145, + 144, + 97, + 139, + 98, + 86, + 91, + 144, + 80, + 128, + 138, + 96, + 160, + 1, + 129, + 129, + 81, + 97, + 88, + 211, + 145, + 144, + 97, + 136, + 82, + 86, + 91, + 144, + 82, + 80, + 96, + 15, + 84, + 97, + 89, + 19, + 144, + 127, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 144, + 97, + 1, + 0, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 131, + 97, + 115, + 21, + 86, + 91, + 80, + 91, + 96, + 160, + 137, + 1, + 81, + 97, + 89, + 36, + 144, + 132, + 97, + 136, + 82, + 86, + 91, + 145, + 80, + 97, + 89, + 61, + 137, + 96, + 192, + 1, + 81, + 132, + 97, + 104, + 223, + 144, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 97, + 89, + 71, + 144, + 137, + 97, + 137, + 47, + 86, + 91, + 150, + 80, + 97, + 89, + 96, + 137, + 96, + 192, + 1, + 81, + 131, + 97, + 104, + 223, + 144, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 97, + 89, + 106, + 144, + 137, + 97, + 137, + 47, + 86, + 91, + 149, + 80, + 97, + 89, + 131, + 137, + 96, + 192, + 1, + 81, + 130, + 97, + 104, + 223, + 144, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 97, + 89, + 141, + 144, + 134, + 97, + 136, + 82, + 86, + 91, + 96, + 15, + 84, + 144, + 148, + 80, + 96, + 0, + 147, + 80, + 131, + 146, + 80, + 96, + 255, + 22, + 21, + 144, + 80, + 97, + 89, + 183, + 87, + 96, + 96, + 136, + 1, + 131, + 144, + 82, + 96, + 64, + 136, + 1, + 133, + 144, + 82, + 97, + 89, + 198, + 86, + 91, + 96, + 96, + 136, + 1, + 133, + 144, + 82, + 96, + 64, + 136, + 1, + 131, + 144, + 82, + 91, + 97, + 89, + 227, + 141, + 96, + 32, + 1, + 81, + 137, + 96, + 0, + 1, + 81, + 138, + 96, + 64, + 1, + 81, + 139, + 96, + 96, + 1, + 81, + 66, + 97, + 17, + 154, + 86, + 91, + 144, + 146, + 80, + 144, + 80, + 129, + 97, + 90, + 19, + 87, + 135, + 81, + 96, + 64, + 81, + 99, + 4, + 36, + 180, + 45, + 96, + 227, + 27, + 129, + 82, + 96, + 4, + 129, + 1, + 145, + 144, + 145, + 82, + 96, + 36, + 129, + 1, + 130, + 144, + 82, + 96, + 68, + 1, + 97, + 25, + 118, + 86, + 91, + 96, + 15, + 11, + 96, + 32, + 128, + 137, + 1, + 145, + 144, + 145, + 82, + 140, + 1, + 81, + 96, + 0, + 145, + 80, + 97, + 90, + 48, + 144, + 136, + 97, + 115, + 116, + 86, + 91, + 144, + 80, + 128, + 97, + 90, + 86, + 87, + 96, + 15, + 84, + 96, + 255, + 22, + 21, + 97, + 90, + 78, + 87, + 96, + 64, + 135, + 1, + 133, + 144, + 82, + 97, + 90, + 86, + 86, + 91, + 96, + 96, + 135, + 1, + 133, + 144, + 82, + 91, + 80, + 96, + 32, + 139, + 1, + 81, + 96, + 64, + 135, + 1, + 81, + 96, + 96, + 136, + 1, + 81, + 96, + 192, + 137, + 1, + 81, + 96, + 15, + 84, + 97, + 90, + 165, + 148, + 147, + 146, + 145, + 144, + 96, + 255, + 22, + 97, + 90, + 132, + 87, + 96, + 0, + 97, + 90, + 136, + 86, + 91, + 96, + 17, + 84, + 91, + 96, + 15, + 84, + 96, + 255, + 22, + 97, + 90, + 154, + 87, + 96, + 17, + 84, + 97, + 90, + 157, + 86, + 91, + 96, + 0, + 91, + 96, + 18, + 84, + 97, + 116, + 46, + 86, + 91, + 96, + 15, + 84, + 96, + 0, + 144, + 129, + 144, + 96, + 255, + 22, + 21, + 97, + 90, + 216, + 87, + 80, + 80, + 96, + 7, + 135, + 1, + 84, + 96, + 8, + 136, + 1, + 84, + 96, + 255, + 96, + 1, + 96, + 160, + 27, + 146, + 131, + 144, + 4, + 129, + 22, + 146, + 144, + 145, + 4, + 22, + 97, + 90, + 247, + 86, + 91, + 80, + 80, + 96, + 8, + 135, + 1, + 84, + 96, + 7, + 136, + 1, + 84, + 96, + 255, + 96, + 1, + 96, + 160, + 27, + 146, + 131, + 144, + 4, + 129, + 22, + 146, + 144, + 145, + 4, + 22, + 91, + 96, + 224, + 136, + 1, + 81, + 97, + 91, + 6, + 144, + 131, + 97, + 74, + 33, + 86, + 91, + 96, + 224, + 137, + 1, + 82, + 97, + 1, + 0, + 136, + 1, + 81, + 97, + 91, + 27, + 144, + 130, + 97, + 74, + 33, + 86, + 91, + 136, + 97, + 1, + 0, + 1, + 129, + 129, + 82, + 80, + 80, + 80, + 80, + 97, + 91, + 77, + 96, + 15, + 96, + 0, + 1, + 96, + 1, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 135, + 96, + 224, + 1, + 81, + 97, + 116, + 238, + 86, + 91, + 96, + 16, + 84, + 97, + 1, + 0, + 135, + 1, + 81, + 97, + 91, + 105, + 145, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 144, + 97, + 70, + 43, + 86, + 91, + 96, + 16, + 84, + 96, + 15, + 84, + 96, + 32, + 141, + 1, + 81, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 146, + 131, + 22, + 146, + 97, + 1, + 0, + 144, + 146, + 4, + 144, + 145, + 22, + 144, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 129, + 22, + 144, + 127, + 97, + 126, + 155, + 20, + 125, + 3, + 180, + 78, + 28, + 201, + 66, + 120, + 47, + 118, + 32, + 200, + 150, + 51, + 38, + 149, + 107, + 101, + 163, + 96, + 8, + 242, + 129, + 202, + 97, + 147, + 2, + 50, + 144, + 97, + 91, + 192, + 144, + 97, + 24, + 82, + 86, + 91, + 138, + 96, + 224, + 1, + 81, + 139, + 97, + 1, + 0, + 1, + 81, + 140, + 96, + 160, + 1, + 81, + 141, + 96, + 32, + 1, + 81, + 96, + 64, + 81, + 97, + 92, + 4, + 149, + 148, + 147, + 146, + 145, + 144, + 148, + 133, + 82, + 96, + 32, + 133, + 1, + 147, + 144, + 147, + 82, + 96, + 64, + 132, + 1, + 145, + 144, + 145, + 82, + 96, + 96, + 131, + 1, + 82, + 96, + 128, + 130, + 1, + 82, + 96, + 160, + 1, + 144, + 86, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 164, + 80, + 80, + 96, + 15, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 184, + 27, + 3, + 25, + 22, + 144, + 85, + 80, + 80, + 96, + 16, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 25, + 22, + 144, + 85, + 80, + 96, + 0, + 96, + 17, + 129, + 144, + 85, + 96, + 18, + 85, + 96, + 32, + 149, + 144, + 149, + 1, + 81, + 96, + 224, + 134, + 1, + 81, + 97, + 1, + 0, + 144, + 150, + 1, + 81, + 144, + 150, + 144, + 148, + 80, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 129, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 0, + 3, + 97, + 92, + 133, + 87, + 96, + 64, + 81, + 99, + 77, + 251, + 160, + 35, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 0, + 98, + 255, + 255, + 255, + 139, + 22, + 21, + 97, + 92, + 152, + 87, + 138, + 97, + 92, + 161, + 86, + 91, + 96, + 5, + 84, + 98, + 255, + 255, + 255, + 22, + 91, + 144, + 80, + 128, + 98, + 255, + 255, + 255, + 22, + 96, + 0, + 3, + 97, + 92, + 201, + 87, + 96, + 64, + 81, + 99, + 7, + 147, + 223, + 99, + 96, + 226, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 98, + 255, + 255, + 255, + 129, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 6, + 96, + 32, + 82, + 96, + 64, + 129, + 32, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 141, + 22, + 21, + 21, + 146, + 145, + 144, + 130, + 144, + 97, + 92, + 255, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 97, + 139, + 168, + 86, + 91, + 145, + 144, + 97, + 1, + 0, + 10, + 129, + 84, + 129, + 99, + 255, + 255, + 255, + 255, + 2, + 25, + 22, + 144, + 131, + 99, + 255, + 255, + 255, + 255, + 22, + 2, + 23, + 144, + 85, + 144, + 80, + 97, + 93, + 53, + 131, + 131, + 131, + 96, + 40, + 146, + 144, + 146, + 27, + 96, + 32, + 145, + 144, + 145, + 27, + 23, + 23, + 144, + 86, + 91, + 147, + 80, + 80, + 96, + 0, + 96, + 8, + 96, + 0, + 133, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 144, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 32, + 144, + 80, + 139, + 129, + 96, + 2, + 1, + 96, + 0, + 97, + 1, + 0, + 10, + 129, + 84, + 129, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 2, + 25, + 22, + 144, + 131, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 2, + 23, + 144, + 85, + 80, + 129, + 128, + 21, + 97, + 93, + 153, + 87, + 80, + 97, + 255, + 255, + 139, + 22, + 21, + 91, + 21, + 97, + 93, + 189, + 87, + 96, + 64, + 81, + 99, + 246, + 244, + 163, + 143, + 96, + 224, + 27, + 129, + 82, + 97, + 255, + 255, + 140, + 22, + 96, + 4, + 130, + 1, + 82, + 96, + 36, + 1, + 97, + 25, + 118, + 86, + 91, + 96, + 0, + 97, + 93, + 200, + 66, + 97, + 105, + 65, + 86, + 91, + 96, + 1, + 131, + 129, + 1, + 128, + 84, + 99, + 255, + 255, + 255, + 255, + 96, + 128, + 27, + 25, + 22, + 96, + 1, + 96, + 128, + 27, + 99, + 255, + 255, + 255, + 255, + 133, + 22, + 2, + 23, + 144, + 85, + 98, + 255, + 255, + 255, + 134, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 7, + 96, + 32, + 129, + 144, + 82, + 96, + 64, + 130, + 32, + 128, + 84, + 145, + 135, + 1, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 147, + 132, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 25, + 128, + 131, + 22, + 130, + 23, + 132, + 85, + 132, + 84, + 96, + 1, + 96, + 1, + 96, + 168, + 27, + 3, + 25, + 147, + 132, + 22, + 144, + 146, + 23, + 96, + 1, + 96, + 160, + 27, + 146, + 131, + 144, + 4, + 96, + 255, + 144, + 129, + 22, + 132, + 2, + 145, + 144, + 145, + 23, + 144, + 148, + 85, + 147, + 144, + 150, + 1, + 128, + 84, + 96, + 8, + 139, + 1, + 128, + 84, + 145, + 144, + 150, + 22, + 148, + 129, + 22, + 133, + 23, + 134, + 85, + 144, + 84, + 145, + 22, + 144, + 146, + 23, + 145, + 133, + 144, + 4, + 22, + 144, + 147, + 2, + 146, + 144, + 146, + 23, + 144, + 145, + 85, + 144, + 145, + 80, + 97, + 255, + 255, + 138, + 129, + 22, + 20, + 97, + 94, + 139, + 87, + 96, + 0, + 97, + 94, + 142, + 86, + 91, + 96, + 1, + 91, + 144, + 80, + 96, + 0, + 96, + 64, + 81, + 128, + 97, + 1, + 0, + 1, + 96, + 64, + 82, + 128, + 138, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 134, + 97, + 94, + 189, + 87, + 96, + 12, + 84, + 96, + 255, + 22, + 97, + 94, + 191, + 86, + 91, + 139, + 91, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 142, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 131, + 97, + 94, + 221, + 87, + 140, + 97, + 94, + 225, + 86, + 91, + 97, + 1, + 244, + 91, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 141, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 134, + 97, + 95, + 0, + 87, + 96, + 0, + 97, + 95, + 2, + 86, + 91, + 143, + 91, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 132, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 131, + 21, + 21, + 129, + 82, + 80, + 144, + 80, + 97, + 95, + 50, + 129, + 133, + 97, + 71, + 227, + 144, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 96, + 0, + 128, + 97, + 95, + 72, + 137, + 139, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 97, + 40, + 9, + 86, + 91, + 145, + 80, + 145, + 80, + 97, + 95, + 85, + 129, + 97, + 74, + 55, + 86, + 91, + 97, + 95, + 94, + 131, + 97, + 74, + 55, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 145, + 130, + 22, + 96, + 1, + 96, + 128, + 27, + 2, + 144, + 130, + 22, + 23, + 135, + 85, + 96, + 8, + 135, + 1, + 84, + 96, + 7, + 136, + 1, + 84, + 96, + 64, + 128, + 81, + 139, + 21, + 21, + 129, + 82, + 147, + 142, + 22, + 96, + 32, + 133, + 1, + 82, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 146, + 131, + 22, + 147, + 145, + 144, + 146, + 22, + 145, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 141, + 22, + 145, + 127, + 118, + 9, + 244, + 94, + 22, + 55, + 139, + 176, + 120, + 40, + 132, + 113, + 155, + 162, + 77, + 59, + 188, + 90, + 182, + 163, + 115, + 185, + 234, + 202, + 204, + 37, + 198, + 20, + 59, + 135, + 207, + 119, + 145, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 164, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 153, + 152, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 41, + 131, + 20, + 97, + 96, + 26, + 87, + 96, + 64, + 81, + 99, + 112, + 206, + 228, + 175, + 96, + 225, + 27, + 129, + 82, + 96, + 41, + 96, + 4, + 130, + 1, + 82, + 96, + 36, + 129, + 1, + 132, + 144, + 82, + 96, + 68, + 1, + 97, + 25, + 118, + 86, + 91, + 80, + 80, + 80, + 96, + 1, + 129, + 1, + 53, + 96, + 96, + 144, + 129, + 28, + 146, + 96, + 21, + 144, + 146, + 1, + 53, + 144, + 28, + 144, + 86, + 91, + 96, + 0, + 129, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 131, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 3, + 97, + 96, + 103, + 87, + 96, + 64, + 81, + 99, + 59, + 14, + 45, + 229, + 96, + 226, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 80, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 128, + 131, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 9, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 147, + 133, + 22, + 131, + 82, + 146, + 144, + 82, + 32, + 84, + 98, + 255, + 255, + 255, + 22, + 128, + 21, + 97, + 96, + 185, + 87, + 96, + 64, + 81, + 99, + 51, + 37, + 250, + 119, + 96, + 224, + 27, + 129, + 82, + 98, + 255, + 255, + 255, + 130, + 22, + 96, + 4, + 130, + 1, + 82, + 96, + 36, + 1, + 97, + 25, + 118, + 86, + 91, + 96, + 0, + 128, + 132, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 99, + 49, + 60, + 229, + 103, + 96, + 64, + 81, + 129, + 99, + 255, + 255, + 255, + 255, + 22, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 32, + 96, + 64, + 81, + 128, + 131, + 3, + 129, + 134, + 90, + 250, + 21, + 128, + 21, + 97, + 96, + 250, + 87, + 61, + 96, + 0, + 128, + 62, + 61, + 96, + 0, + 253, + 91, + 80, + 80, + 80, + 80, + 96, + 64, + 81, + 61, + 96, + 31, + 25, + 96, + 31, + 130, + 1, + 22, + 130, + 1, + 128, + 96, + 64, + 82, + 80, + 129, + 1, + 144, + 97, + 97, + 30, + 145, + 144, + 97, + 139, + 203, + 86, + 91, + 132, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 99, + 49, + 60, + 229, + 103, + 96, + 64, + 81, + 129, + 99, + 255, + 255, + 255, + 255, + 22, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 32, + 96, + 64, + 81, + 128, + 131, + 3, + 129, + 134, + 90, + 250, + 21, + 128, + 21, + 97, + 97, + 92, + 87, + 61, + 96, + 0, + 128, + 62, + 61, + 96, + 0, + 253, + 91, + 80, + 80, + 80, + 80, + 96, + 64, + 81, + 61, + 96, + 31, + 25, + 96, + 31, + 130, + 1, + 22, + 130, + 1, + 128, + 96, + 64, + 82, + 80, + 129, + 1, + 144, + 97, + 97, + 128, + 145, + 144, + 97, + 139, + 203, + 86, + 91, + 144, + 146, + 80, + 144, + 80, + 97, + 97, + 166, + 96, + 255, + 131, + 22, + 96, + 6, + 96, + 18, + 129, + 131, + 20, + 145, + 131, + 17, + 145, + 144, + 145, + 23, + 130, + 130, + 20, + 145, + 144, + 146, + 16, + 23, + 22, + 144, + 86, + 91, + 97, + 97, + 200, + 87, + 96, + 64, + 81, + 99, + 202, + 149, + 3, + 145, + 96, + 224, + 27, + 129, + 82, + 96, + 255, + 131, + 22, + 96, + 4, + 130, + 1, + 82, + 96, + 36, + 1, + 97, + 25, + 118, + 86, + 91, + 97, + 97, + 233, + 96, + 255, + 130, + 22, + 96, + 6, + 96, + 18, + 129, + 131, + 20, + 145, + 131, + 17, + 145, + 144, + 145, + 23, + 130, + 130, + 20, + 145, + 144, + 146, + 16, + 23, + 22, + 144, + 86, + 91, + 97, + 98, + 11, + 87, + 96, + 64, + 81, + 99, + 202, + 149, + 3, + 145, + 96, + 224, + 27, + 129, + 82, + 96, + 255, + 130, + 22, + 96, + 4, + 130, + 1, + 82, + 96, + 36, + 1, + 97, + 25, + 118, + 86, + 91, + 96, + 5, + 128, + 84, + 96, + 0, + 144, + 97, + 98, + 32, + 144, + 98, + 255, + 255, + 255, + 22, + 97, + 139, + 238, + 86, + 91, + 130, + 84, + 97, + 1, + 0, + 146, + 144, + 146, + 10, + 98, + 255, + 255, + 255, + 129, + 129, + 2, + 25, + 144, + 147, + 22, + 146, + 130, + 22, + 144, + 129, + 2, + 146, + 144, + 146, + 23, + 144, + 146, + 85, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 135, + 129, + 22, + 96, + 0, + 129, + 129, + 82, + 96, + 9, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 139, + 134, + 22, + 128, + 133, + 82, + 144, + 131, + 82, + 129, + 132, + 32, + 128, + 84, + 98, + 255, + 255, + 255, + 25, + 22, + 136, + 23, + 144, + 85, + 129, + 81, + 96, + 128, + 129, + 1, + 131, + 82, + 133, + 129, + 82, + 96, + 255, + 139, + 129, + 22, + 130, + 134, + 1, + 129, + 129, + 82, + 131, + 134, + 1, + 133, + 129, + 82, + 141, + 132, + 22, + 96, + 96, + 134, + 1, + 129, + 129, + 82, + 141, + 139, + 82, + 96, + 7, + 138, + 82, + 153, + 136, + 144, + 32, + 149, + 81, + 134, + 84, + 147, + 81, + 144, + 141, + 22, + 96, + 1, + 96, + 1, + 96, + 168, + 27, + 3, + 25, + 148, + 133, + 22, + 23, + 96, + 1, + 96, + 160, + 27, + 145, + 135, + 22, + 130, + 2, + 23, + 135, + 85, + 145, + 81, + 96, + 1, + 150, + 144, + 150, + 1, + 128, + 84, + 154, + 81, + 150, + 144, + 156, + 22, + 153, + 144, + 146, + 22, + 152, + 144, + 152, + 23, + 147, + 144, + 146, + 22, + 144, + 150, + 2, + 145, + 144, + 145, + 23, + 144, + 150, + 85, + 129, + 81, + 147, + 132, + 82, + 145, + 131, + 1, + 148, + 144, + 148, + 82, + 148, + 151, + 80, + 144, + 146, + 145, + 127, + 192, + 197, + 223, + 152, + 164, + 202, + 135, + 163, + 33, + 163, + 59, + 241, + 39, + 124, + 243, + 45, + 49, + 169, + 123, + 108, + 225, + 75, + 151, + 71, + 56, + 33, + 73, + 185, + 226, + 99, + 30, + 163, + 145, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 164, + 80, + 80, + 146, + 145, + 80, + 80, + 86, + 91, + 51, + 96, + 0, + 144, + 129, + 82, + 96, + 10, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 135, + 22, + 132, + 82, + 144, + 145, + 82, + 129, + 32, + 128, + 84, + 144, + 145, + 96, + 1, + 96, + 128, + 27, + 144, + 145, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 144, + 3, + 97, + 99, + 153, + 87, + 96, + 64, + 81, + 99, + 47, + 155, + 2, + 219, + 96, + 225, + 27, + 129, + 82, + 51, + 96, + 4, + 130, + 1, + 82, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 133, + 22, + 96, + 36, + 130, + 1, + 82, + 96, + 68, + 1, + 97, + 25, + 118, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 132, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 8, + 96, + 32, + 129, + 144, + 82, + 96, + 64, + 144, + 145, + 32, + 96, + 4, + 129, + 1, + 84, + 96, + 5, + 130, + 1, + 84, + 96, + 3, + 131, + 1, + 84, + 96, + 7, + 132, + 1, + 84, + 148, + 132, + 1, + 84, + 147, + 148, + 146, + 147, + 145, + 146, + 144, + 145, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 145, + 130, + 22, + 145, + 22, + 97, + 99, + 237, + 135, + 134, + 134, + 134, + 97, + 117, + 53, + 86, + 91, + 80, + 96, + 0, + 145, + 80, + 80, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 138, + 129, + 22, + 20, + 97, + 100, + 9, + 87, + 137, + 97, + 100, + 24, + 86, + 91, + 96, + 4, + 136, + 1, + 84, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 91, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 144, + 80, + 96, + 0, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 128, + 22, + 138, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 20, + 97, + 100, + 68, + 87, + 137, + 97, + 100, + 90, + 86, + 91, + 96, + 4, + 137, + 1, + 84, + 96, + 1, + 96, + 128, + 27, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 91, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 144, + 80, + 97, + 100, + 110, + 130, + 97, + 74, + 55, + 86, + 91, + 96, + 4, + 138, + 1, + 128, + 84, + 96, + 0, + 144, + 97, + 100, + 139, + 144, + 132, + 144, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 97, + 140, + 6, + 86, + 91, + 146, + 80, + 97, + 1, + 0, + 10, + 129, + 84, + 129, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 2, + 25, + 22, + 144, + 131, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 2, + 23, + 144, + 85, + 80, + 97, + 100, + 184, + 129, + 97, + 74, + 55, + 86, + 91, + 96, + 4, + 138, + 1, + 128, + 84, + 96, + 16, + 144, + 97, + 100, + 220, + 144, + 132, + 144, + 96, + 1, + 96, + 128, + 27, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 97, + 140, + 6, + 86, + 91, + 146, + 80, + 97, + 1, + 0, + 10, + 129, + 84, + 129, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 2, + 25, + 22, + 144, + 131, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 2, + 23, + 144, + 85, + 80, + 96, + 0, + 130, + 17, + 21, + 97, + 101, + 20, + 87, + 97, + 101, + 20, + 51, + 133, + 132, + 97, + 115, + 21, + 86, + 91, + 128, + 21, + 97, + 101, + 37, + 87, + 97, + 101, + 37, + 51, + 132, + 131, + 97, + 115, + 21, + 86, + 91, + 96, + 64, + 128, + 81, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 142, + 22, + 129, + 82, + 96, + 32, + 129, + 1, + 132, + 144, + 82, + 144, + 129, + 1, + 130, + 144, + 82, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 128, + 133, + 22, + 145, + 144, + 134, + 22, + 144, + 51, + 144, + 127, + 61, + 77, + 68, + 65, + 44, + 245, + 221, + 218, + 92, + 53, + 136, + 92, + 203, + 130, + 210, + 76, + 94, + 57, + 133, + 24, + 235, + 124, + 251, + 17, + 109, + 70, + 235, + 126, + 75, + 190, + 14, + 123, + 144, + 96, + 96, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 164, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 97, + 101, + 156, + 134, + 133, + 97, + 76, + 48, + 86, + 91, + 80, + 80, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 146, + 131, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 32, + 148, + 133, + 82, + 96, + 64, + 128, + 130, + 32, + 147, + 144, + 148, + 22, + 129, + 82, + 145, + 144, + 147, + 82, + 32, + 128, + 84, + 130, + 129, + 17, + 131, + 130, + 3, + 2, + 129, + 3, + 144, + 129, + 144, + 3, + 144, + 145, + 85, + 145, + 144, + 130, + 144, + 3, + 144, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 1, + 132, + 1, + 96, + 32, + 82, + 96, + 64, + 144, + 32, + 84, + 128, + 130, + 17, + 21, + 97, + 102, + 35, + 87, + 96, + 64, + 81, + 99, + 49, + 82, + 118, + 201, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 129, + 1, + 130, + 144, + 82, + 96, + 36, + 129, + 1, + 131, + 144, + 82, + 96, + 68, + 1, + 97, + 25, + 118, + 86, + 91, + 97, + 102, + 45, + 132, + 132, + 97, + 76, + 48, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 1, + 133, + 1, + 96, + 32, + 82, + 96, + 64, + 129, + 32, + 128, + 84, + 132, + 146, + 144, + 97, + 102, + 87, + 144, + 132, + 144, + 97, + 136, + 82, + 86, + 91, + 144, + 145, + 85, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 97, + 102, + 110, + 131, + 97, + 118, + 193, + 86, + 91, + 145, + 80, + 145, + 80, + 129, + 97, + 38, + 4, + 87, + 128, + 81, + 129, + 96, + 32, + 1, + 253, + 91, + 96, + 0, + 97, + 24, + 76, + 130, + 96, + 96, + 1, + 81, + 99, + 255, + 255, + 255, + 255, + 22, + 131, + 97, + 47, + 187, + 144, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 96, + 0, + 128, + 97, + 102, + 171, + 134, + 134, + 97, + 104, + 223, + 86, + 91, + 144, + 80, + 128, + 21, + 97, + 103, + 164, + 87, + 96, + 0, + 97, + 102, + 190, + 130, + 97, + 120, + 224, + 86, + 91, + 144, + 80, + 99, + 1, + 225, + 133, + 89, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 133, + 129, + 2, + 145, + 144, + 145, + 4, + 144, + 97, + 39, + 16, + 144, + 135, + 2, + 4, + 96, + 0, + 103, + 27, + 193, + 109, + 103, + 78, + 200, + 0, + 0, + 97, + 102, + 242, + 131, + 128, + 97, + 137, + 71, + 86, + 91, + 97, + 102, + 252, + 145, + 144, + 97, + 139, + 98, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 103, + 10, + 132, + 131, + 97, + 137, + 71, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 103, + 32, + 132, + 99, + 59, + 154, + 202, + 0, + 97, + 75, + 137, + 136, + 97, + 105, + 241, + 86, + 91, + 144, + 80, + 96, + 0, + 129, + 131, + 97, + 103, + 56, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 138, + 97, + 138, + 153, + 86, + 91, + 97, + 103, + 66, + 145, + 144, + 97, + 140, + 46, + 86, + 91, + 97, + 103, + 76, + 145, + 144, + 97, + 139, + 52, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 103, + 89, + 130, + 97, + 122, + 187, + 86, + 91, + 144, + 80, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 129, + 19, + 21, + 97, + 103, + 135, + 87, + 96, + 64, + 81, + 99, + 177, + 21, + 88, + 223, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 129, + 1, + 130, + 144, + 82, + 96, + 36, + 1, + 97, + 25, + 118, + 86, + 91, + 97, + 103, + 153, + 129, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 97, + 136, + 165, + 86, + 91, + 153, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 91, + 80, + 148, + 147, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 134, + 17, + 21, + 97, + 103, + 216, + 87, + 96, + 64, + 81, + 99, + 170, + 243, + 149, + 111, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 134, + 3, + 97, + 103, + 238, + 87, + 80, + 128, + 97, + 29, + 139, + 86, + 91, + 133, + 96, + 0, + 3, + 97, + 104, + 7, + 87, + 97, + 104, + 0, + 130, + 134, + 97, + 140, + 46, + 86, + 91, + 144, + 80, + 97, + 29, + 139, + 86, + 91, + 130, + 21, + 97, + 104, + 162, + 87, + 96, + 0, + 97, + 104, + 29, + 132, + 99, + 1, + 225, + 133, + 88, + 97, + 104, + 223, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 104, + 42, + 130, + 97, + 105, + 241, + 86, + 91, + 144, + 80, + 97, + 104, + 58, + 99, + 59, + 154, + 202, + 0, + 130, + 97, + 137, + 71, + 86, + 91, + 144, + 80, + 97, + 104, + 70, + 134, + 130, + 97, + 65, + 53, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 104, + 92, + 137, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 97, + 136, + 165, + 86, + 91, + 144, + 80, + 97, + 104, + 103, + 129, + 97, + 105, + 84, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 104, + 117, + 131, + 131, + 97, + 136, + 165, + 86, + 91, + 144, + 80, + 97, + 104, + 128, + 129, + 97, + 122, + 187, + 86, + 91, + 144, + 80, + 133, + 97, + 104, + 141, + 138, + 131, + 97, + 123, + 36, + 86, + 91, + 97, + 104, + 151, + 145, + 144, + 97, + 140, + 46, + 86, + 91, + 148, + 80, + 80, + 80, + 80, + 80, + 97, + 29, + 139, + 86, + 91, + 129, + 97, + 104, + 190, + 134, + 97, + 104, + 185, + 137, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 97, + 136, + 165, + 86, + 91, + 97, + 123, + 36, + 86, + 91, + 97, + 48, + 142, + 145, + 144, + 97, + 140, + 46, + 86, + 91, + 96, + 0, + 128, + 97, + 104, + 212, + 131, + 97, + 74, + 145, + 86, + 91, + 147, + 144, + 147, + 2, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 97, + 17, + 147, + 131, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 132, + 97, + 79, + 245, + 86, + 91, + 96, + 64, + 128, + 81, + 96, + 4, + 129, + 82, + 96, + 36, + 129, + 1, + 144, + 145, + 82, + 96, + 32, + 129, + 1, + 128, + 81, + 96, + 1, + 96, + 1, + 96, + 224, + 27, + 3, + 22, + 99, + 11, + 190, + 187, + 51, + 96, + 227, + 27, + 23, + 144, + 82, + 98, + 1, + 81, + 128, + 130, + 2, + 144, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 130, + 17, + 21, + 97, + 105, + 59, + 87, + 128, + 81, + 129, + 96, + 32, + 1, + 253, + 91, + 80, + 145, + 144, + 80, + 86, + 91, + 96, + 0, + 100, + 1, + 0, + 0, + 0, + 0, + 130, + 16, + 97, + 74, + 73, + 87, + 96, + 0, + 128, + 253, + 91, + 96, + 0, + 103, + 6, + 240, + 91, + 89, + 211, + 178, + 0, + 0, + 130, + 3, + 97, + 105, + 109, + 87, + 80, + 96, + 0, + 145, + 144, + 80, + 86, + 91, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 130, + 18, + 97, + 105, + 149, + 87, + 96, + 64, + 81, + 99, + 7, + 160, + 33, + 39, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 129, + 96, + 0, + 3, + 97, + 105, + 182, + 87, + 96, + 64, + 81, + 99, + 34, + 237, + 89, + 133, + 96, + 226, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 0, + 97, + 105, + 195, + 131, + 96, + 2, + 97, + 138, + 153, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 105, + 208, + 130, + 97, + 123, + 57, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 105, + 230, + 103, + 19, + 160, + 75, + 189, + 253, + 201, + 190, + 136, + 131, + 97, + 123, + 36, + 86, + 91, + 144, + 80, + 97, + 29, + 139, + 129, + 97, + 139, + 140, + 86, + 91, + 96, + 181, + 129, + 96, + 1, + 96, + 136, + 27, + 129, + 16, + 97, + 106, + 10, + 87, + 96, + 64, + 145, + 144, + 145, + 27, + 144, + 96, + 128, + 28, + 91, + 105, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 129, + 16, + 97, + 106, + 38, + 87, + 96, + 32, + 145, + 144, + 145, + 27, + 144, + 96, + 64, + 28, + 91, + 101, + 1, + 0, + 0, + 0, + 0, + 0, + 129, + 16, + 97, + 106, + 62, + 87, + 96, + 16, + 145, + 144, + 145, + 27, + 144, + 96, + 32, + 28, + 91, + 99, + 1, + 0, + 0, + 0, + 129, + 16, + 97, + 106, + 84, + 87, + 96, + 8, + 145, + 144, + 145, + 27, + 144, + 96, + 16, + 28, + 91, + 98, + 1, + 0, + 0, + 1, + 2, + 96, + 18, + 28, + 128, + 130, + 4, + 1, + 96, + 1, + 144, + 129, + 28, + 128, + 131, + 4, + 1, + 129, + 28, + 128, + 131, + 4, + 1, + 129, + 28, + 128, + 131, + 4, + 1, + 129, + 28, + 128, + 131, + 4, + 1, + 129, + 28, + 128, + 131, + 4, + 1, + 129, + 28, + 128, + 131, + 4, + 1, + 144, + 28, + 144, + 129, + 144, + 4, + 129, + 17, + 144, + 3, + 144, + 86, + 91, + 96, + 0, + 104, + 2, + 72, + 206, + 54, + 167, + 12, + 178, + 107, + 62, + 25, + 130, + 19, + 97, + 106, + 176, + 87, + 80, + 96, + 0, + 145, + 144, + 80, + 86, + 91, + 104, + 7, + 85, + 191, + 121, + 139, + 74, + 27, + 241, + 229, + 130, + 18, + 97, + 106, + 247, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 12, + 96, + 36, + 130, + 1, + 82, + 107, + 69, + 88, + 80, + 95, + 79, + 86, + 69, + 82, + 70, + 76, + 79, + 87, + 96, + 160, + 27, + 96, + 68, + 130, + 1, + 82, + 96, + 100, + 1, + 97, + 25, + 118, + 86, + 91, + 101, + 3, + 120, + 45, + 172, + 233, + 217, + 96, + 78, + 131, + 144, + 27, + 5, + 145, + 80, + 96, + 0, + 96, + 96, + 107, + 177, + 114, + 23, + 247, + 209, + 207, + 121, + 171, + 201, + 227, + 179, + 152, + 132, + 130, + 27, + 5, + 96, + 1, + 96, + 95, + 27, + 1, + 144, + 29, + 107, + 177, + 114, + 23, + 247, + 209, + 207, + 121, + 171, + 201, + 227, + 179, + 152, + 129, + 2, + 144, + 147, + 3, + 108, + 36, + 12, + 51, + 14, + 159, + 178, + 217, + 203, + 175, + 15, + 213, + 170, + 251, + 25, + 129, + 1, + 129, + 2, + 96, + 96, + 144, + 129, + 29, + 109, + 2, + 119, + 89, + 73, + 145, + 207, + 200, + 95, + 110, + 36, + 97, + 131, + 124, + 217, + 1, + 130, + 2, + 129, + 29, + 109, + 26, + 82, + 18, + 85, + 227, + 79, + 106, + 80, + 97, + 178, + 94, + 241, + 201, + 195, + 25, + 1, + 130, + 2, + 129, + 29, + 109, + 177, + 187, + 178, + 1, + 244, + 67, + 207, + 150, + 47, + 26, + 29, + 61, + 180, + 165, + 1, + 130, + 2, + 129, + 29, + 110, + 2, + 199, + 35, + 136, + 217, + 247, + 79, + 81, + 169, + 51, + 31, + 237, + 105, + 63, + 20, + 25, + 1, + 130, + 2, + 129, + 29, + 110, + 5, + 24, + 11, + 177, + 71, + 153, + 171, + 71, + 168, + 168, + 203, + 42, + 82, + 125, + 87, + 1, + 109, + 2, + 209, + 103, + 32, + 87, + 123, + 209, + 155, + 246, + 20, + 23, + 111, + 233, + 234, + 108, + 16, + 254, + 104, + 231, + 253, + 55, + 208, + 0, + 123, + 113, + 63, + 118, + 80, + 132, + 1, + 132, + 2, + 131, + 29, + 144, + 129, + 1, + 144, + 132, + 1, + 109, + 1, + 211, + 150, + 126, + 211, + 15, + 196, + 248, + 156, + 2, + 186, + 181, + 112, + 129, + 25, + 1, + 2, + 144, + 145, + 29, + 110, + 5, + 135, + 245, + 3, + 187, + 110, + 162, + 157, + 37, + 252, + 183, + 64, + 25, + 100, + 80, + 1, + 144, + 145, + 2, + 109, + 54, + 13, + 122, + 238, + 160, + 147, + 38, + 62, + 204, + 110, + 14, + 203, + 41, + 23, + 96, + 98, + 27, + 1, + 5, + 116, + 2, + 157, + 157, + 195, + 133, + 99, + 195, + 46, + 92, + 47, + 109, + 193, + 146, + 238, + 112, + 239, + 101, + 249, + 151, + 138, + 243, + 2, + 96, + 195, + 147, + 144, + 147, + 3, + 146, + 144, + 146, + 28, + 146, + 145, + 80, + 80, + 86, + 91, + 96, + 0, + 96, + 64, + 81, + 99, + 35, + 184, + 114, + 221, + 96, + 224, + 27, + 96, + 0, + 82, + 132, + 96, + 4, + 82, + 131, + 96, + 36, + 82, + 130, + 96, + 68, + 82, + 96, + 32, + 96, + 0, + 96, + 100, + 96, + 0, + 128, + 138, + 90, + 241, + 61, + 21, + 96, + 31, + 61, + 17, + 96, + 1, + 96, + 0, + 81, + 20, + 22, + 23, + 22, + 145, + 80, + 96, + 0, + 96, + 96, + 82, + 128, + 96, + 64, + 82, + 80, + 128, + 97, + 63, + 108, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 20, + 96, + 36, + 130, + 1, + 82, + 115, + 21, + 20, + 144, + 83, + 148, + 209, + 145, + 84, + 151, + 209, + 148, + 147, + 211, + 87, + 209, + 144, + 82, + 83, + 17, + 81, + 96, + 98, + 27, + 96, + 68, + 130, + 1, + 82, + 96, + 100, + 1, + 97, + 25, + 118, + 86, + 91, + 97, + 108, + 207, + 132, + 131, + 97, + 76, + 48, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 128, + 132, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 32, + 134, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 147, + 134, + 22, + 131, + 82, + 146, + 144, + 82, + 144, + 129, + 32, + 128, + 84, + 131, + 146, + 144, + 97, + 102, + 87, + 144, + 132, + 144, + 97, + 137, + 47, + 86, + 91, + 96, + 0, + 130, + 21, + 97, + 110, + 21, + 87, + 96, + 0, + 97, + 109, + 28, + 132, + 99, + 1, + 225, + 133, + 88, + 97, + 104, + 223, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 109, + 41, + 130, + 97, + 105, + 241, + 86, + 91, + 144, + 80, + 97, + 109, + 57, + 99, + 59, + 154, + 202, + 0, + 130, + 97, + 137, + 71, + 86, + 91, + 144, + 80, + 97, + 109, + 69, + 134, + 130, + 97, + 65, + 53, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 109, + 92, + 97, + 109, + 86, + 134, + 139, + 97, + 140, + 46, + 86, + 91, + 137, + 97, + 125, + 178, + 86, + 91, + 144, + 80, + 96, + 0, + 129, + 18, + 21, + 97, + 109, + 128, + 87, + 96, + 64, + 81, + 99, + 170, + 243, + 149, + 111, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 129, + 19, + 21, + 97, + 109, + 169, + 87, + 96, + 64, + 81, + 99, + 170, + 243, + 149, + 111, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 129, + 3, + 97, + 109, + 196, + 87, + 96, + 0, + 147, + 80, + 80, + 80, + 80, + 97, + 29, + 139, + 86, + 91, + 128, + 96, + 0, + 3, + 97, + 109, + 223, + 87, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 147, + 80, + 80, + 80, + 80, + 97, + 29, + 139, + 86, + 91, + 97, + 109, + 232, + 129, + 97, + 105, + 84, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 109, + 246, + 131, + 131, + 97, + 140, + 46, + 86, + 91, + 144, + 80, + 97, + 110, + 1, + 129, + 97, + 122, + 187, + 86, + 91, + 144, + 80, + 97, + 104, + 151, + 129, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 97, + 136, + 165, + 86, + 91, + 96, + 0, + 97, + 110, + 33, + 131, + 136, + 97, + 140, + 46, + 86, + 91, + 144, + 80, + 133, + 97, + 110, + 46, + 130, + 130, + 97, + 125, + 178, + 86, + 91, + 97, + 74, + 21, + 144, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 97, + 136, + 165, + 86, + 91, + 96, + 0, + 96, + 1, + 96, + 1, + 96, + 127, + 27, + 3, + 130, + 17, + 21, + 97, + 74, + 73, + 87, + 96, + 0, + 128, + 253, + 91, + 96, + 32, + 128, + 130, + 1, + 128, + 81, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 144, + 129, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 8, + 132, + 82, + 96, + 64, + 128, + 130, + 32, + 134, + 81, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 131, + 82, + 96, + 10, + 134, + 82, + 129, + 131, + 32, + 148, + 81, + 144, + 147, + 22, + 130, + 82, + 146, + 144, + 147, + 82, + 144, + 130, + 32, + 96, + 4, + 130, + 1, + 84, + 96, + 5, + 131, + 1, + 84, + 96, + 3, + 132, + 1, + 84, + 133, + 148, + 133, + 148, + 144, + 147, + 144, + 146, + 97, + 110, + 188, + 146, + 132, + 146, + 145, + 144, + 97, + 117, + 53, + 86, + 91, + 96, + 32, + 137, + 1, + 81, + 137, + 81, + 96, + 224, + 139, + 1, + 81, + 148, + 153, + 80, + 146, + 151, + 80, + 144, + 149, + 80, + 96, + 0, + 146, + 97, + 110, + 225, + 146, + 144, + 96, + 15, + 11, + 97, + 16, + 169, + 86, + 91, + 144, + 80, + 128, + 97, + 111, + 19, + 87, + 96, + 6, + 131, + 1, + 84, + 96, + 64, + 81, + 99, + 38, + 136, + 198, + 203, + 96, + 226, + 27, + 129, + 82, + 96, + 1, + 96, + 128, + 27, + 144, + 145, + 4, + 97, + 255, + 255, + 22, + 96, + 4, + 130, + 1, + 82, + 96, + 36, + 1, + 97, + 25, + 118, + 86, + 91, + 96, + 64, + 135, + 1, + 81, + 96, + 224, + 136, + 1, + 81, + 97, + 111, + 40, + 145, + 132, + 145, + 97, + 125, + 199, + 86, + 91, + 96, + 224, + 135, + 1, + 81, + 96, + 32, + 128, + 137, + 1, + 81, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 8, + 144, + 145, + 82, + 96, + 64, + 144, + 32, + 97, + 111, + 83, + 145, + 97, + 126, + 29, + 86, + 91, + 96, + 160, + 135, + 1, + 81, + 96, + 192, + 136, + 1, + 81, + 96, + 224, + 137, + 1, + 81, + 96, + 0, + 96, + 15, + 145, + 144, + 145, + 11, + 18, + 21, + 97, + 111, + 145, + 87, + 97, + 111, + 126, + 130, + 138, + 96, + 96, + 1, + 81, + 97, + 70, + 43, + 86, + 91, + 97, + 111, + 140, + 129, + 138, + 96, + 128, + 1, + 81, + 97, + 70, + 43, + 86, + 91, + 97, + 111, + 173, + 86, + 91, + 97, + 111, + 159, + 130, + 138, + 96, + 96, + 1, + 81, + 97, + 116, + 238, + 86, + 91, + 97, + 111, + 173, + 129, + 138, + 96, + 128, + 1, + 81, + 97, + 116, + 238, + 86, + 91, + 80, + 80, + 80, + 80, + 80, + 145, + 147, + 144, + 146, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 97, + 111, + 199, + 132, + 97, + 48, + 152, + 86, + 91, + 80, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 134, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 8, + 96, + 32, + 82, + 96, + 64, + 144, + 32, + 144, + 146, + 80, + 97, + 111, + 238, + 145, + 80, + 66, + 97, + 126, + 92, + 86, + 91, + 97, + 114, + 248, + 96, + 8, + 96, + 0, + 134, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 144, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 32, + 96, + 64, + 81, + 128, + 97, + 1, + 64, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 2, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 3, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 4, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 5, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 6, + 130, + 1, + 96, + 64, + 81, + 128, + 97, + 1, + 0, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 18, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 22, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 24, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 26, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 30, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 21, + 21, + 21, + 21, + 129, + 82, + 80, + 80, + 129, + 82, + 96, + 32, + 1, + 96, + 7, + 130, + 1, + 96, + 64, + 81, + 128, + 96, + 128, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 80, + 80, + 129, + 82, + 80, + 80, + 97, + 102, + 127, + 86, + 91, + 96, + 0, + 3, + 97, + 115, + 10, + 87, + 96, + 0, + 148, + 144, + 147, + 80, + 145, + 80, + 80, + 86, + 91, + 96, + 1, + 148, + 144, + 147, + 80, + 145, + 80, + 80, + 86, + 91, + 97, + 115, + 34, + 96, + 0, + 132, + 132, + 132, + 97, + 108, + 197, + 86, + 91, + 129, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 131, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 127, + 73, + 225, + 68, + 60, + 178, + 94, + 23, + 203, + 235, + 197, + 10, + 163, + 227, + 165, + 163, + 223, + 58, + 195, + 52, + 175, + 133, + 43, + 198, + 243, + 232, + 210, + 88, + 85, + 130, + 87, + 187, + 17, + 131, + 96, + 64, + 81, + 97, + 115, + 103, + 145, + 129, + 82, + 96, + 32, + 1, + 144, + 86, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 80, + 80, + 80, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 130, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 8, + 96, + 32, + 82, + 96, + 64, + 129, + 32, + 96, + 2, + 1, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 51, + 3, + 97, + 115, + 246, + 87, + 129, + 81, + 96, + 32, + 131, + 1, + 81, + 96, + 0, + 145, + 97, + 115, + 178, + 145, + 97, + 136, + 165, + 86, + 91, + 144, + 80, + 96, + 0, + 128, + 130, + 18, + 97, + 115, + 195, + 87, + 129, + 97, + 115, + 204, + 86, + 91, + 97, + 115, + 204, + 130, + 97, + 139, + 140, + 86, + 91, + 144, + 80, + 128, + 21, + 97, + 115, + 243, + 87, + 97, + 115, + 243, + 97, + 115, + 238, + 133, + 96, + 192, + 1, + 81, + 131, + 97, + 104, + 223, + 144, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 96, + 18, + 85, + 86, + 91, + 80, + 80, + 91, + 96, + 0, + 130, + 96, + 32, + 1, + 81, + 19, + 21, + 97, + 116, + 37, + 87, + 97, + 116, + 29, + 97, + 116, + 24, + 131, + 96, + 160, + 1, + 81, + 132, + 96, + 192, + 1, + 81, + 97, + 104, + 223, + 86, + 91, + 96, + 17, + 85, + 86, + 91, + 80, + 96, + 1, + 97, + 24, + 76, + 86, + 91, + 80, + 96, + 0, + 146, + 145, + 80, + 80, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 135, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 8, + 96, + 32, + 82, + 96, + 64, + 144, + 32, + 97, + 116, + 79, + 135, + 97, + 74, + 55, + 86, + 91, + 129, + 84, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 25, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 145, + 144, + 145, + 22, + 23, + 129, + 85, + 97, + 116, + 115, + 134, + 97, + 74, + 55, + 86, + 91, + 129, + 84, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 145, + 130, + 22, + 96, + 1, + 96, + 128, + 27, + 2, + 145, + 22, + 23, + 129, + 85, + 97, + 116, + 148, + 133, + 97, + 74, + 55, + 86, + 91, + 96, + 1, + 130, + 1, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 25, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 146, + 144, + 146, + 22, + 145, + 144, + 145, + 23, + 144, + 85, + 97, + 116, + 192, + 129, + 66, + 97, + 126, + 92, + 86, + 91, + 96, + 4, + 129, + 1, + 84, + 132, + 1, + 96, + 4, + 130, + 1, + 85, + 96, + 5, + 129, + 1, + 84, + 131, + 1, + 96, + 5, + 130, + 1, + 85, + 96, + 3, + 129, + 1, + 84, + 130, + 1, + 96, + 3, + 144, + 145, + 1, + 85, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 97, + 116, + 250, + 96, + 0, + 131, + 131, + 97, + 126, + 139, + 86, + 91, + 129, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 127, + 128, + 178, + 23, + 72, + 199, + 135, + 197, + 46, + 135, + 166, + 178, + 34, + 1, + 30, + 10, + 14, + 208, + 249, + 204, + 32, + 21, + 240, + 206, + 212, + 103, + 72, + 100, + 45, + 198, + 46, + 233, + 248, + 130, + 96, + 64, + 81, + 97, + 70, + 114, + 145, + 129, + 82, + 96, + 32, + 1, + 144, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 128, + 97, + 117, + 73, + 135, + 137, + 96, + 2, + 1, + 84, + 144, + 3, + 144, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 117, + 91, + 135, + 138, + 96, + 3, + 1, + 84, + 144, + 3, + 144, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 117, + 109, + 135, + 139, + 96, + 1, + 1, + 84, + 144, + 3, + 144, + 86, + 91, + 138, + 84, + 144, + 145, + 80, + 97, + 117, + 134, + 144, + 132, + 144, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 97, + 65, + 53, + 86, + 91, + 138, + 84, + 144, + 150, + 80, + 97, + 117, + 159, + 144, + 131, + 144, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 97, + 65, + 53, + 86, + 91, + 138, + 84, + 144, + 149, + 80, + 97, + 117, + 184, + 144, + 130, + 144, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 97, + 65, + 53, + 86, + 91, + 96, + 2, + 139, + 1, + 138, + 144, + 85, + 96, + 3, + 139, + 1, + 137, + 144, + 85, + 96, + 1, + 139, + 1, + 136, + 144, + 85, + 147, + 80, + 97, + 117, + 216, + 134, + 97, + 74, + 55, + 86, + 91, + 96, + 4, + 139, + 1, + 128, + 84, + 96, + 0, + 144, + 97, + 117, + 245, + 144, + 132, + 144, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 97, + 140, + 111, + 86, + 91, + 146, + 80, + 97, + 1, + 0, + 10, + 129, + 84, + 129, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 2, + 25, + 22, + 144, + 131, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 2, + 23, + 144, + 85, + 80, + 97, + 118, + 34, + 133, + 97, + 74, + 55, + 86, + 91, + 96, + 4, + 139, + 1, + 128, + 84, + 96, + 16, + 144, + 97, + 118, + 70, + 144, + 132, + 144, + 96, + 1, + 96, + 128, + 27, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 97, + 140, + 111, + 86, + 91, + 146, + 80, + 97, + 1, + 0, + 10, + 129, + 84, + 129, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 2, + 25, + 22, + 144, + 131, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 2, + 23, + 144, + 85, + 80, + 97, + 118, + 115, + 132, + 97, + 74, + 55, + 86, + 91, + 96, + 5, + 139, + 1, + 128, + 84, + 96, + 0, + 144, + 97, + 118, + 144, + 144, + 132, + 144, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 97, + 140, + 111, + 86, + 91, + 146, + 80, + 97, + 1, + 0, + 10, + 129, + 84, + 129, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 2, + 25, + 22, + 144, + 131, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 2, + 23, + 144, + 85, + 80, + 80, + 80, + 80, + 148, + 80, + 148, + 80, + 148, + 145, + 80, + 80, + 86, + 91, + 96, + 0, + 96, + 96, + 97, + 2, + 88, + 131, + 96, + 32, + 1, + 81, + 97, + 255, + 255, + 22, + 17, + 21, + 97, + 119, + 54, + 87, + 96, + 32, + 131, + 1, + 81, + 96, + 64, + 81, + 97, + 255, + 255, + 144, + 145, + 22, + 96, + 36, + 130, + 1, + 82, + 96, + 0, + 144, + 99, + 122, + 127, + 16, + 65, + 96, + 225, + 27, + 144, + 96, + 68, + 1, + 91, + 96, + 64, + 128, + 81, + 96, + 31, + 25, + 129, + 132, + 3, + 1, + 129, + 82, + 145, + 144, + 82, + 96, + 32, + 129, + 1, + 128, + 81, + 96, + 1, + 96, + 1, + 96, + 224, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 224, + 27, + 3, + 25, + 144, + 147, + 22, + 146, + 144, + 146, + 23, + 144, + 145, + 82, + 144, + 148, + 144, + 147, + 80, + 145, + 80, + 80, + 86, + 91, + 97, + 119, + 93, + 131, + 96, + 128, + 1, + 81, + 97, + 255, + 255, + 22, + 96, + 100, + 97, + 97, + 168, + 129, + 131, + 20, + 145, + 131, + 17, + 145, + 144, + 145, + 23, + 130, + 130, + 20, + 145, + 144, + 146, + 16, + 23, + 22, + 144, + 86, + 91, + 97, + 119, + 136, + 87, + 96, + 128, + 131, + 1, + 81, + 96, + 64, + 81, + 97, + 255, + 255, + 144, + 145, + 22, + 96, + 36, + 130, + 1, + 82, + 96, + 0, + 144, + 99, + 9, + 98, + 43, + 49, + 96, + 225, + 27, + 144, + 96, + 68, + 1, + 97, + 118, + 250, + 86, + 91, + 97, + 119, + 175, + 131, + 96, + 96, + 1, + 81, + 97, + 255, + 255, + 22, + 96, + 1, + 97, + 1, + 244, + 129, + 131, + 20, + 145, + 131, + 17, + 145, + 144, + 145, + 23, + 130, + 130, + 20, + 145, + 144, + 146, + 16, + 23, + 22, + 144, + 86, + 91, + 97, + 119, + 218, + 87, + 96, + 96, + 131, + 1, + 81, + 96, + 64, + 81, + 97, + 255, + 255, + 144, + 145, + 22, + 96, + 36, + 130, + 1, + 82, + 96, + 0, + 144, + 99, + 174, + 145, + 144, + 39, + 96, + 224, + 27, + 144, + 96, + 68, + 1, + 97, + 118, + 250, + 86, + 91, + 130, + 81, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 144, + 129, + 22, + 129, + 129, + 16, + 145, + 129, + 20, + 145, + 144, + 145, + 23, + 96, + 1, + 128, + 131, + 17, + 146, + 20, + 145, + 144, + 145, + 23, + 22, + 97, + 120, + 42, + 87, + 130, + 81, + 96, + 64, + 81, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 144, + 145, + 22, + 96, + 36, + 130, + 1, + 82, + 96, + 0, + 144, + 99, + 139, + 191, + 136, + 181, + 96, + 224, + 27, + 144, + 96, + 68, + 1, + 97, + 118, + 250, + 86, + 91, + 97, + 120, + 81, + 131, + 96, + 64, + 1, + 81, + 97, + 255, + 255, + 22, + 96, + 1, + 97, + 3, + 232, + 129, + 131, + 20, + 145, + 131, + 17, + 145, + 144, + 145, + 23, + 130, + 130, + 20, + 145, + 144, + 146, + 16, + 23, + 22, + 144, + 86, + 91, + 97, + 120, + 124, + 87, + 96, + 64, + 128, + 132, + 1, + 81, + 144, + 81, + 97, + 255, + 255, + 144, + 145, + 22, + 96, + 36, + 130, + 1, + 82, + 96, + 0, + 144, + 99, + 246, + 244, + 163, + 143, + 96, + 224, + 27, + 144, + 96, + 68, + 1, + 97, + 118, + 250, + 86, + 91, + 96, + 160, + 131, + 1, + 81, + 96, + 64, + 132, + 1, + 81, + 97, + 255, + 255, + 145, + 130, + 22, + 128, + 21, + 128, + 21, + 23, + 146, + 144, + 145, + 22, + 129, + 129, + 20, + 145, + 16, + 23, + 22, + 97, + 120, + 199, + 87, + 96, + 160, + 131, + 1, + 81, + 96, + 64, + 81, + 97, + 255, + 255, + 144, + 145, + 22, + 96, + 36, + 130, + 1, + 82, + 96, + 0, + 144, + 99, + 246, + 244, + 163, + 143, + 96, + 224, + 27, + 144, + 96, + 68, + 1, + 97, + 118, + 250, + 86, + 91, + 80, + 80, + 96, + 64, + 128, + 81, + 96, + 32, + 129, + 1, + 144, + 145, + 82, + 96, + 0, + 129, + 82, + 96, + 1, + 146, + 144, + 145, + 80, + 86, + 91, + 96, + 0, + 128, + 130, + 19, + 97, + 121, + 29, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 9, + 96, + 36, + 130, + 1, + 82, + 104, + 21, + 83, + 145, + 17, + 81, + 146, + 83, + 145, + 81, + 96, + 186, + 27, + 96, + 68, + 130, + 1, + 82, + 96, + 100, + 1, + 97, + 25, + 118, + 86, + 91, + 96, + 0, + 96, + 96, + 97, + 121, + 42, + 132, + 97, + 126, + 201, + 86, + 91, + 3, + 96, + 159, + 129, + 129, + 3, + 148, + 144, + 148, + 27, + 144, + 147, + 28, + 108, + 70, + 87, + 114, + 178, + 187, + 187, + 95, + 130, + 75, + 21, + 32, + 122, + 48, + 129, + 1, + 129, + 2, + 96, + 96, + 144, + 129, + 29, + 109, + 3, + 136, + 234, + 162, + 116, + 18, + 213, + 172, + 160, + 38, + 129, + 93, + 99, + 110, + 1, + 130, + 2, + 129, + 29, + 109, + 13, + 249, + 154, + 197, + 2, + 3, + 27, + 249, + 83, + 239, + 244, + 114, + 253, + 204, + 1, + 130, + 2, + 129, + 29, + 109, + 19, + 205, + 255, + 178, + 157, + 81, + 217, + 147, + 34, + 189, + 255, + 95, + 34, + 17, + 1, + 130, + 2, + 129, + 29, + 109, + 10, + 15, + 116, + 32, + 35, + 222, + 247, + 131, + 163, + 7, + 169, + 134, + 145, + 46, + 1, + 130, + 2, + 129, + 29, + 109, + 1, + 146, + 13, + 128, + 67, + 202, + 137, + 181, + 35, + 146, + 83, + 40, + 78, + 66, + 1, + 130, + 2, + 129, + 29, + 108, + 11, + 122, + 134, + 215, + 55, + 84, + 104, + 250, + 198, + 103, + 160, + 165, + 39, + 1, + 108, + 41, + 80, + 142, + 69, + 133, + 67, + 216, + 170, + 77, + 242, + 171, + 238, + 120, + 131, + 1, + 131, + 2, + 130, + 29, + 109, + 1, + 57, + 96, + 26, + 46, + 250, + 190, + 113, + 126, + 96, + 76, + 187, + 72, + 148, + 1, + 131, + 2, + 130, + 29, + 109, + 2, + 36, + 127, + 122, + 123, + 101, + 148, + 50, + 6, + 73, + 170, + 3, + 171, + 161, + 1, + 131, + 2, + 130, + 29, + 108, + 140, + 63, + 56, + 233, + 90, + 107, + 31, + 242, + 171, + 28, + 59, + 52, + 54, + 25, + 1, + 131, + 2, + 130, + 29, + 109, + 2, + 56, + 71, + 115, + 189, + 241, + 172, + 86, + 118, + 250, + 204, + 237, + 96, + 144, + 25, + 1, + 131, + 2, + 144, + 145, + 29, + 108, + 185, + 160, + 37, + 216, + 20, + 178, + 156, + 33, + 43, + 139, + 26, + 7, + 205, + 25, + 1, + 144, + 145, + 2, + 120, + 10, + 9, + 80, + 112, + 132, + 204, + 105, + 155, + 176, + 231, + 30, + 168, + 105, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 25, + 1, + 5, + 113, + 19, + 64, + 218, + 160, + 213, + 247, + 105, + 219, + 161, + 145, + 92, + 239, + 89, + 240, + 129, + 90, + 85, + 6, + 2, + 125, + 2, + 103, + 163, + 108, + 12, + 149, + 179, + 151, + 90, + 179, + 238, + 91, + 32, + 58, + 118, + 20, + 163, + 247, + 83, + 115, + 240, + 71, + 216, + 3, + 174, + 123, + 102, + 135, + 242, + 179, + 147, + 144, + 147, + 2, + 146, + 144, + 146, + 1, + 125, + 87, + 17, + 94, + 71, + 1, + 140, + 113, + 119, + 238, + 191, + 124, + 211, + 112, + 163, + 53, + 106, + 27, + 120, + 99, + 0, + 138, + 90, + 232, + 2, + 140, + 114, + 184, + 134, + 66, + 132, + 1, + 96, + 174, + 29, + 146, + 145, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 103, + 19, + 160, + 75, + 189, + 253, + 201, + 190, + 136, + 97, + 122, + 217, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 133, + 97, + 138, + 153, + 86, + 91, + 97, + 122, + 227, + 145, + 144, + 97, + 139, + 52, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 122, + 240, + 130, + 97, + 139, + 140, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 122, + 253, + 130, + 97, + 127, + 103, + 86, + 91, + 144, + 80, + 103, + 27, + 193, + 109, + 103, + 78, + 200, + 0, + 0, + 97, + 123, + 26, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 131, + 97, + 138, + 153, + 86, + 91, + 97, + 29, + 139, + 145, + 144, + 97, + 139, + 52, + 86, + 91, + 96, + 0, + 97, + 17, + 147, + 131, + 131, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 97, + 129, + 75, + 86, + 91, + 96, + 0, + 128, + 130, + 18, + 128, + 97, + 123, + 80, + 87, + 80, + 103, + 27, + 193, + 109, + 103, + 78, + 200, + 0, + 0, + 130, + 19, + 91, + 21, + 97, + 123, + 110, + 87, + 96, + 64, + 81, + 99, + 45, + 4, + 131, + 197, + 96, + 226, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 129, + 96, + 0, + 3, + 97, + 123, + 143, + 87, + 96, + 64, + 81, + 99, + 7, + 160, + 33, + 39, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 129, + 103, + 27, + 193, + 109, + 103, + 78, + 200, + 0, + 0, + 3, + 97, + 123, + 183, + 87, + 96, + 64, + 81, + 99, + 34, + 237, + 89, + 133, + 96, + 226, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 128, + 21, + 97, + 123, + 194, + 87, + 145, + 144, + 80, + 86, + 91, + 96, + 0, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 131, + 18, + 97, + 123, + 234, + 87, + 97, + 123, + 229, + 131, + 103, + 27, + 193, + 109, + 103, + 78, + 200, + 0, + 0, + 97, + 136, + 165, + 86, + 91, + 97, + 123, + 236, + 86, + 91, + 130, + 91, + 144, + 80, + 96, + 0, + 97, + 124, + 2, + 130, + 103, + 27, + 193, + 109, + 103, + 78, + 200, + 0, + 0, + 97, + 125, + 178, + 86, + 91, + 144, + 80, + 128, + 96, + 0, + 3, + 97, + 124, + 37, + 87, + 96, + 64, + 81, + 99, + 7, + 160, + 33, + 39, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 0, + 97, + 124, + 48, + 130, + 97, + 120, + 224, + 86, + 91, + 144, + 80, + 96, + 0, + 99, + 59, + 154, + 202, + 0, + 97, + 124, + 91, + 97, + 124, + 86, + 97, + 124, + 80, + 103, + 27, + 193, + 109, + 103, + 78, + 200, + 0, + 0, + 97, + 139, + 140, + 86, + 91, + 133, + 97, + 123, + 36, + 86, + 91, + 97, + 105, + 241, + 86, + 91, + 97, + 124, + 101, + 145, + 144, + 97, + 138, + 153, + 86, + 91, + 144, + 80, + 96, + 0, + 128, + 97, + 124, + 124, + 131, + 103, + 3, + 193, + 102, + 92, + 122, + 171, + 32, + 0, + 97, + 123, + 36, + 86, + 91, + 97, + 124, + 142, + 144, + 103, + 32, + 5, + 254, + 79, + 38, + 142, + 160, + 0, + 97, + 140, + 46, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 124, + 185, + 132, + 97, + 124, + 167, + 134, + 102, + 159, + 50, + 117, + 36, + 98, + 160, + 0, + 97, + 123, + 36, + 86, + 91, + 97, + 104, + 185, + 144, + 103, + 13, + 197, + 82, + 127, + 100, + 44, + 32, + 0, + 97, + 140, + 46, + 86, + 91, + 97, + 124, + 203, + 144, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 97, + 140, + 46, + 86, + 91, + 144, + 80, + 97, + 124, + 239, + 103, + 9, + 208, + 40, + 204, + 111, + 32, + 95, + 255, + 25, + 133, + 97, + 124, + 229, + 133, + 133, + 97, + 125, + 178, + 86, + 91, + 97, + 104, + 185, + 145, + 144, + 97, + 136, + 165, + 86, + 91, + 146, + 80, + 80, + 80, + 96, + 0, + 91, + 96, + 2, + 129, + 16, + 21, + 97, + 125, + 138, + 87, + 96, + 0, + 134, + 97, + 125, + 11, + 132, + 97, + 127, + 103, + 86, + 91, + 97, + 125, + 21, + 145, + 144, + 97, + 136, + 165, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 125, + 35, + 132, + 133, + 97, + 123, + 36, + 86, + 91, + 97, + 125, + 44, + 144, + 97, + 139, + 140, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 125, + 57, + 130, + 97, + 106, + 149, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 125, + 71, + 134, + 133, + 97, + 123, + 36, + 86, + 91, + 97, + 125, + 89, + 103, + 15, + 168, + 206, + 223, + 194, + 173, + 221, + 250, + 132, + 97, + 123, + 36, + 86, + 91, + 97, + 125, + 99, + 145, + 144, + 97, + 136, + 165, + 86, + 91, + 144, + 80, + 97, + 125, + 111, + 132, + 130, + 97, + 125, + 178, + 86, + 91, + 97, + 125, + 121, + 144, + 135, + 97, + 140, + 46, + 86, + 91, + 149, + 80, + 132, + 96, + 1, + 1, + 148, + 80, + 80, + 80, + 80, + 80, + 97, + 124, + 246, + 86, + 91, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 136, + 18, + 97, + 125, + 167, + 87, + 97, + 125, + 162, + 130, + 97, + 139, + 140, + 86, + 91, + 97, + 74, + 21, + 86, + 91, + 80, + 150, + 149, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 97, + 17, + 147, + 131, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 132, + 97, + 129, + 75, + 86, + 91, + 130, + 84, + 99, + 255, + 255, + 255, + 255, + 131, + 22, + 96, + 1, + 96, + 128, + 27, + 2, + 99, + 255, + 255, + 255, + 255, + 96, + 128, + 27, + 25, + 130, + 22, + 129, + 23, + 133, + 85, + 97, + 125, + 253, + 145, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 145, + 130, + 22, + 145, + 22, + 23, + 130, + 97, + 129, + 106, + 86, + 91, + 131, + 84, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 25, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 145, + 144, + 145, + 22, + 23, + 144, + 146, + 85, + 80, + 80, + 86, + 91, + 96, + 1, + 130, + 1, + 84, + 97, + 126, + 53, + 144, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 130, + 97, + 129, + 106, + 86, + 91, + 96, + 1, + 146, + 144, + 146, + 1, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 25, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 144, + 147, + 22, + 146, + 144, + 146, + 23, + 144, + 145, + 85, + 80, + 86, + 91, + 97, + 126, + 101, + 129, + 97, + 105, + 65, + 86, + 91, + 130, + 96, + 1, + 1, + 96, + 16, + 97, + 1, + 0, + 10, + 129, + 84, + 129, + 99, + 255, + 255, + 255, + 255, + 2, + 25, + 22, + 144, + 131, + 99, + 255, + 255, + 255, + 255, + 22, + 2, + 23, + 144, + 85, + 80, + 80, + 80, + 86, + 91, + 97, + 126, + 149, + 131, + 131, + 97, + 76, + 48, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 1, + 132, + 1, + 96, + 32, + 82, + 96, + 64, + 129, + 32, + 128, + 84, + 131, + 146, + 144, + 97, + 126, + 191, + 144, + 132, + 144, + 97, + 137, + 47, + 86, + 91, + 144, + 145, + 85, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 130, + 17, + 97, + 127, + 6, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 9, + 96, + 36, + 130, + 1, + 82, + 104, + 21, + 83, + 145, + 17, + 81, + 146, + 83, + 145, + 81, + 96, + 186, + 27, + 96, + 68, + 130, + 1, + 82, + 96, + 100, + 1, + 97, + 25, + 118, + 86, + 91, + 80, + 96, + 1, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 130, + 17, + 96, + 7, + 27, + 130, + 129, + 28, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 16, + 96, + 6, + 27, + 23, + 130, + 129, + 28, + 99, + 255, + 255, + 255, + 255, + 16, + 96, + 5, + 27, + 23, + 130, + 129, + 28, + 97, + 255, + 255, + 16, + 96, + 4, + 27, + 23, + 130, + 129, + 28, + 96, + 255, + 16, + 96, + 3, + 144, + 129, + 27, + 144, + 145, + 23, + 131, + 129, + 28, + 96, + 15, + 16, + 96, + 2, + 27, + 23, + 131, + 129, + 28, + 144, + 145, + 16, + 130, + 27, + 23, + 145, + 130, + 28, + 17, + 23, + 144, + 86, + 91, + 96, + 0, + 129, + 96, + 0, + 3, + 97, + 127, + 128, + 87, + 80, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 145, + 144, + 80, + 86, + 91, + 103, + 86, + 152, + 238, + 240, + 102, + 112, + 0, + 0, + 130, + 18, + 97, + 127, + 151, + 87, + 80, + 96, + 0, + 145, + 144, + 80, + 86, + 91, + 97, + 127, + 168, + 103, + 86, + 152, + 238, + 240, + 102, + 112, + 0, + 0, + 97, + 139, + 140, + 86, + 91, + 130, + 19, + 97, + 127, + 189, + 87, + 80, + 103, + 27, + 193, + 109, + 103, + 78, + 200, + 0, + 0, + 145, + 144, + 80, + 86, + 91, + 96, + 0, + 97, + 127, + 200, + 131, + 97, + 129, + 181, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 128, + 1, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 97, + 127, + 234, + 132, + 103, + 27, + 193, + 109, + 103, + 78, + 200, + 0, + 0, + 97, + 104, + 223, + 86, + 91, + 97, + 127, + 252, + 144, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 97, + 140, + 46, + 86, + 91, + 97, + 125, + 178, + 86, + 91, + 144, + 80, + 96, + 0, + 128, + 130, + 97, + 128, + 93, + 129, + 97, + 128, + 74, + 129, + 97, + 128, + 56, + 129, + 97, + 128, + 37, + 129, + 103, + 2, + 95, + 15, + 225, + 5, + 163, + 20, + 0, + 97, + 123, + 36, + 86, + 91, + 97, + 104, + 185, + 144, + 103, + 11, + 104, + 223, + 24, + 228, + 113, + 251, + 255, + 25, + 97, + 140, + 46, + 86, + 91, + 97, + 104, + 185, + 144, + 103, + 20, + 168, + 69, + 76, + 25, + 225, + 172, + 0, + 97, + 140, + 46, + 86, + 91, + 97, + 104, + 185, + 144, + 103, + 15, + 193, + 14, + 1, + 87, + 130, + 119, + 255, + 25, + 97, + 140, + 46, + 86, + 91, + 97, + 128, + 111, + 144, + 103, + 3, + 222, + 189, + 8, + 59, + 140, + 124, + 0, + 97, + 140, + 46, + 86, + 91, + 145, + 80, + 131, + 144, + 80, + 97, + 128, + 215, + 129, + 97, + 128, + 197, + 129, + 97, + 128, + 179, + 129, + 97, + 128, + 161, + 129, + 97, + 128, + 142, + 129, + 139, + 97, + 123, + 36, + 86, + 91, + 97, + 104, + 185, + 144, + 103, + 2, + 149, + 212, + 0, + 234, + 50, + 87, + 255, + 25, + 97, + 140, + 46, + 86, + 91, + 97, + 104, + 185, + 144, + 103, + 1, + 87, + 216, + 178, + 236, + 199, + 8, + 0, + 97, + 140, + 46, + 86, + 91, + 97, + 104, + 185, + 144, + 103, + 5, + 49, + 10, + 167, + 213, + 33, + 48, + 0, + 97, + 140, + 46, + 86, + 91, + 97, + 104, + 185, + 144, + 103, + 13, + 224, + 204, + 61, + 21, + 97, + 0, + 0, + 97, + 140, + 46, + 86, + 91, + 145, + 80, + 129, + 103, + 17, + 144, + 0, + 171, + 16, + 15, + 252, + 0, + 97, + 128, + 237, + 135, + 136, + 97, + 123, + 36, + 86, + 91, + 97, + 128, + 249, + 144, + 96, + 0, + 25, + 97, + 138, + 153, + 86, + 91, + 97, + 129, + 3, + 145, + 144, + 97, + 136, + 165, + 86, + 91, + 97, + 129, + 13, + 145, + 144, + 97, + 140, + 46, + 86, + 91, + 146, + 80, + 80, + 96, + 0, + 97, + 129, + 27, + 131, + 97, + 106, + 149, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 129, + 41, + 133, + 131, + 97, + 123, + 36, + 86, + 91, + 144, + 80, + 96, + 0, + 136, + 18, + 97, + 129, + 57, + 87, + 128, + 97, + 74, + 21, + 86, + 91, + 97, + 74, + 21, + 129, + 103, + 27, + 193, + 109, + 103, + 78, + 200, + 0, + 0, + 97, + 136, + 165, + 86, + 91, + 130, + 130, + 2, + 129, + 21, + 21, + 132, + 21, + 133, + 131, + 5, + 133, + 20, + 23, + 22, + 97, + 129, + 99, + 87, + 96, + 0, + 128, + 253, + 91, + 5, + 146, + 145, + 80, + 80, + 86, + 91, + 96, + 64, + 128, + 81, + 96, + 4, + 129, + 82, + 96, + 36, + 129, + 1, + 144, + 145, + 82, + 96, + 32, + 129, + 1, + 128, + 81, + 96, + 1, + 96, + 1, + 96, + 224, + 27, + 3, + 22, + 99, + 31, + 255, + 150, + 129, + 96, + 224, + 27, + 23, + 144, + 82, + 130, + 130, + 1, + 144, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 130, + 17, + 21, + 97, + 129, + 174, + 87, + 128, + 81, + 129, + 96, + 32, + 1, + 253, + 91, + 80, + 146, + 145, + 80, + 80, + 86, + 91, + 96, + 0, + 96, + 1, + 96, + 255, + 27, + 130, + 3, + 97, + 129, + 219, + 87, + 96, + 64, + 81, + 99, + 77, + 45, + 117, + 177, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 0, + 130, + 18, + 21, + 97, + 74, + 73, + 87, + 80, + 25, + 96, + 1, + 1, + 144, + 86, + 91, + 145, + 144, + 80, + 86, + 91, + 80, + 128, + 84, + 96, + 0, + 130, + 85, + 96, + 3, + 2, + 144, + 96, + 0, + 82, + 96, + 32, + 96, + 0, + 32, + 144, + 129, + 1, + 144, + 97, + 25, + 233, + 145, + 144, + 97, + 130, + 124, + 86, + 91, + 80, + 128, + 84, + 96, + 0, + 130, + 85, + 144, + 96, + 0, + 82, + 96, + 32, + 96, + 0, + 32, + 144, + 129, + 1, + 144, + 97, + 25, + 233, + 145, + 144, + 97, + 130, + 169, + 86, + 91, + 96, + 64, + 81, + 128, + 97, + 1, + 32, + 1, + 96, + 64, + 82, + 128, + 96, + 0, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 129, + 82, + 80, + 144, + 86, + 91, + 91, + 128, + 130, + 17, + 21, + 97, + 74, + 73, + 87, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 25, + 22, + 129, + 85, + 96, + 0, + 96, + 1, + 130, + 1, + 129, + 144, + 85, + 96, + 2, + 130, + 1, + 85, + 96, + 3, + 1, + 97, + 130, + 125, + 86, + 91, + 91, + 128, + 130, + 17, + 21, + 97, + 74, + 73, + 87, + 96, + 0, + 129, + 85, + 96, + 1, + 1, + 97, + 130, + 170, + 86, + 91, + 128, + 53, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 129, + 22, + 129, + 20, + 97, + 129, + 236, + 87, + 96, + 0, + 128, + 253, + 91, + 96, + 0, + 96, + 32, + 130, + 132, + 3, + 18, + 21, + 97, + 130, + 231, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 17, + 147, + 130, + 97, + 130, + 190, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 129, + 22, + 129, + 20, + 97, + 25, + 233, + 87, + 96, + 0, + 128, + 253, + 91, + 96, + 0, + 128, + 96, + 0, + 96, + 96, + 132, + 134, + 3, + 18, + 21, + 97, + 131, + 26, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 131, + 35, + 132, + 97, + 130, + 190, + 86, + 91, + 146, + 80, + 96, + 32, + 132, + 1, + 53, + 97, + 131, + 51, + 129, + 97, + 130, + 240, + 86, + 91, + 146, + 149, + 146, + 148, + 80, + 80, + 80, + 96, + 64, + 145, + 144, + 145, + 1, + 53, + 144, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 128, + 96, + 0, + 96, + 160, + 134, + 136, + 3, + 18, + 21, + 97, + 131, + 92, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 131, + 101, + 134, + 97, + 130, + 190, + 86, + 91, + 151, + 96, + 32, + 135, + 1, + 53, + 151, + 80, + 96, + 64, + 135, + 1, + 53, + 150, + 96, + 96, + 129, + 1, + 53, + 150, + 80, + 96, + 128, + 1, + 53, + 148, + 80, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 64, + 131, + 133, + 3, + 18, + 21, + 97, + 131, + 153, + 87, + 96, + 0, + 128, + 253, + 91, + 130, + 53, + 97, + 131, + 164, + 129, + 97, + 130, + 240, + 86, + 91, + 145, + 80, + 96, + 32, + 131, + 1, + 53, + 97, + 131, + 180, + 129, + 97, + 130, + 240, + 86, + 91, + 128, + 145, + 80, + 80, + 146, + 80, + 146, + 144, + 80, + 86, + 91, + 96, + 0, + 96, + 32, + 130, + 132, + 3, + 18, + 21, + 97, + 131, + 209, + 87, + 96, + 0, + 128, + 253, + 91, + 129, + 53, + 97, + 17, + 147, + 129, + 97, + 130, + 240, + 86, + 91, + 96, + 0, + 96, + 32, + 130, + 132, + 3, + 18, + 21, + 97, + 131, + 238, + 87, + 96, + 0, + 128, + 253, + 91, + 129, + 53, + 98, + 255, + 255, + 255, + 129, + 22, + 129, + 20, + 97, + 17, + 147, + 87, + 96, + 0, + 128, + 253, + 91, + 96, + 0, + 96, + 32, + 130, + 132, + 3, + 18, + 21, + 97, + 132, + 19, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 53, + 145, + 144, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 64, + 131, + 133, + 3, + 18, + 21, + 97, + 132, + 45, + 87, + 96, + 0, + 128, + 253, + 91, + 130, + 53, + 97, + 132, + 56, + 129, + 97, + 130, + 240, + 86, + 91, + 148, + 96, + 32, + 147, + 144, + 147, + 1, + 53, + 147, + 80, + 80, + 80, + 86, + 91, + 128, + 53, + 128, + 21, + 21, + 129, + 20, + 97, + 129, + 236, + 87, + 96, + 0, + 128, + 253, + 91, + 96, + 0, + 128, + 96, + 0, + 96, + 96, + 132, + 134, + 3, + 18, + 21, + 97, + 132, + 107, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 132, + 116, + 132, + 97, + 130, + 190, + 86, + 91, + 146, + 80, + 97, + 132, + 130, + 96, + 32, + 133, + 1, + 97, + 132, + 70, + 86, + 91, + 145, + 80, + 96, + 64, + 132, + 1, + 53, + 144, + 80, + 146, + 80, + 146, + 80, + 146, + 86, + 91, + 96, + 0, + 128, + 96, + 64, + 131, + 133, + 3, + 18, + 21, + 97, + 132, + 165, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 132, + 174, + 131, + 97, + 130, + 190, + 86, + 91, + 145, + 80, + 96, + 32, + 131, + 1, + 53, + 128, + 96, + 15, + 11, + 129, + 20, + 97, + 131, + 180, + 87, + 96, + 0, + 128, + 253, + 91, + 96, + 0, + 97, + 2, + 128, + 130, + 1, + 144, + 80, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 128, + 141, + 22, + 131, + 82, + 128, + 140, + 22, + 96, + 32, + 132, + 1, + 82, + 128, + 139, + 22, + 96, + 64, + 132, + 1, + 82, + 99, + 255, + 255, + 255, + 255, + 138, + 22, + 96, + 96, + 132, + 1, + 82, + 96, + 1, + 128, + 96, + 160, + 27, + 3, + 137, + 22, + 96, + 128, + 132, + 1, + 82, + 135, + 96, + 160, + 132, + 1, + 82, + 134, + 96, + 192, + 132, + 1, + 82, + 133, + 96, + 224, + 132, + 1, + 82, + 128, + 133, + 81, + 22, + 97, + 1, + 0, + 132, + 1, + 82, + 80, + 96, + 32, + 132, + 1, + 81, + 97, + 255, + 255, + 128, + 130, + 22, + 97, + 1, + 32, + 133, + 1, + 82, + 128, + 96, + 64, + 135, + 1, + 81, + 22, + 97, + 1, + 64, + 133, + 1, + 82, + 80, + 80, + 96, + 96, + 132, + 1, + 81, + 97, + 133, + 87, + 97, + 1, + 96, + 132, + 1, + 130, + 97, + 255, + 255, + 22, + 144, + 82, + 86, + 91, + 80, + 96, + 128, + 132, + 1, + 81, + 97, + 255, + 255, + 144, + 129, + 22, + 97, + 1, + 128, + 132, + 1, + 82, + 96, + 160, + 133, + 1, + 81, + 22, + 97, + 1, + 160, + 131, + 1, + 82, + 96, + 192, + 132, + 1, + 81, + 99, + 255, + 255, + 255, + 255, + 22, + 97, + 1, + 192, + 131, + 1, + 82, + 96, + 224, + 144, + 147, + 1, + 81, + 21, + 21, + 97, + 1, + 224, + 130, + 1, + 82, + 129, + 81, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 144, + 129, + 22, + 97, + 2, + 0, + 131, + 1, + 82, + 96, + 32, + 131, + 1, + 81, + 96, + 255, + 144, + 129, + 22, + 97, + 2, + 32, + 132, + 1, + 82, + 96, + 64, + 132, + 1, + 81, + 144, + 145, + 22, + 97, + 2, + 64, + 131, + 1, + 82, + 96, + 96, + 144, + 146, + 1, + 81, + 144, + 145, + 22, + 97, + 2, + 96, + 144, + 145, + 1, + 82, + 152, + 151, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 128, + 96, + 128, + 133, + 135, + 3, + 18, + 21, + 97, + 133, + 247, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 134, + 0, + 133, + 97, + 130, + 190, + 86, + 91, + 147, + 80, + 97, + 134, + 14, + 96, + 32, + 134, + 1, + 97, + 132, + 70, + 86, + 91, + 147, + 150, + 147, + 149, + 80, + 80, + 80, + 80, + 96, + 64, + 130, + 1, + 53, + 145, + 96, + 96, + 1, + 53, + 144, + 86, + 91, + 96, + 0, + 128, + 96, + 32, + 131, + 133, + 3, + 18, + 21, + 97, + 134, + 54, + 87, + 96, + 0, + 128, + 253, + 91, + 130, + 53, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 128, + 130, + 17, + 21, + 97, + 134, + 77, + 87, + 96, + 0, + 128, + 253, + 91, + 129, + 133, + 1, + 145, + 80, + 133, + 96, + 31, + 131, + 1, + 18, + 97, + 134, + 97, + 87, + 96, + 0, + 128, + 253, + 91, + 129, + 53, + 129, + 129, + 17, + 21, + 97, + 134, + 112, + 87, + 96, + 0, + 128, + 253, + 91, + 134, + 96, + 32, + 130, + 133, + 1, + 1, + 17, + 21, + 97, + 134, + 130, + 87, + 96, + 0, + 128, + 253, + 91, + 96, + 32, + 146, + 144, + 146, + 1, + 150, + 145, + 149, + 80, + 144, + 147, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 96, + 96, + 132, + 134, + 3, + 18, + 21, + 97, + 134, + 169, + 87, + 96, + 0, + 128, + 253, + 91, + 131, + 53, + 97, + 134, + 180, + 129, + 97, + 130, + 240, + 86, + 91, + 146, + 80, + 96, + 32, + 132, + 1, + 53, + 145, + 80, + 96, + 64, + 132, + 1, + 53, + 97, + 134, + 203, + 129, + 97, + 130, + 240, + 86, + 91, + 128, + 145, + 80, + 80, + 146, + 80, + 146, + 80, + 146, + 86, + 91, + 128, + 53, + 97, + 255, + 255, + 129, + 22, + 129, + 20, + 97, + 129, + 236, + 87, + 96, + 0, + 128, + 253, + 91, + 96, + 0, + 128, + 96, + 0, + 128, + 96, + 128, + 133, + 135, + 3, + 18, + 21, + 97, + 134, + 254, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 135, + 7, + 133, + 97, + 130, + 190, + 86, + 91, + 147, + 80, + 97, + 135, + 21, + 96, + 32, + 134, + 1, + 97, + 134, + 214, + 86, + 91, + 146, + 80, + 97, + 135, + 35, + 96, + 64, + 134, + 1, + 97, + 134, + 214, + 86, + 91, + 145, + 80, + 97, + 135, + 49, + 96, + 96, + 134, + 1, + 97, + 134, + 214, + 86, + 91, + 144, + 80, + 146, + 149, + 145, + 148, + 80, + 146, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 64, + 131, + 133, + 3, + 18, + 21, + 97, + 135, + 79, + 87, + 96, + 0, + 128, + 253, + 91, + 130, + 53, + 97, + 135, + 90, + 129, + 97, + 130, + 240, + 86, + 91, + 145, + 80, + 97, + 135, + 104, + 96, + 32, + 132, + 1, + 97, + 130, + 190, + 86, + 91, + 144, + 80, + 146, + 80, + 146, + 144, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 64, + 131, + 133, + 3, + 18, + 21, + 97, + 135, + 132, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 132, + 56, + 131, + 97, + 130, + 190, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 96, + 96, + 132, + 134, + 3, + 18, + 21, + 97, + 135, + 162, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 135, + 171, + 132, + 97, + 130, + 190, + 86, + 91, + 149, + 96, + 32, + 133, + 1, + 53, + 149, + 80, + 96, + 64, + 144, + 148, + 1, + 53, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 91, + 131, + 129, + 16, + 21, + 97, + 135, + 219, + 87, + 129, + 129, + 1, + 81, + 131, + 130, + 1, + 82, + 96, + 32, + 1, + 97, + 135, + 195, + 86, + 91, + 131, + 129, + 17, + 21, + 97, + 40, + 3, + 87, + 80, + 80, + 96, + 0, + 145, + 1, + 82, + 86, + 91, + 96, + 32, + 129, + 82, + 96, + 0, + 130, + 81, + 128, + 96, + 32, + 132, + 1, + 82, + 97, + 136, + 11, + 129, + 96, + 64, + 133, + 1, + 96, + 32, + 135, + 1, + 97, + 135, + 192, + 86, + 91, + 96, + 31, + 1, + 96, + 31, + 25, + 22, + 145, + 144, + 145, + 1, + 96, + 64, + 1, + 146, + 145, + 80, + 80, + 86, + 91, + 96, + 0, + 96, + 32, + 130, + 132, + 3, + 18, + 21, + 97, + 136, + 49, + 87, + 96, + 0, + 128, + 253, + 91, + 129, + 81, + 97, + 17, + 147, + 129, + 97, + 130, + 240, + 86, + 91, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 17, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 96, + 0, + 130, + 130, + 16, + 21, + 97, + 136, + 100, + 87, + 97, + 136, + 100, + 97, + 136, + 60, + 86, + 91, + 80, + 3, + 144, + 86, + 91, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 50, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 96, + 0, + 129, + 96, + 15, + 11, + 96, + 1, + 96, + 1, + 96, + 127, + 27, + 3, + 25, + 129, + 3, + 97, + 136, + 156, + 87, + 97, + 136, + 156, + 97, + 136, + 60, + 86, + 91, + 96, + 0, + 3, + 146, + 145, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 131, + 18, + 128, + 21, + 96, + 1, + 96, + 255, + 27, + 133, + 1, + 132, + 18, + 22, + 21, + 97, + 136, + 195, + 87, + 97, + 136, + 195, + 97, + 136, + 60, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 255, + 27, + 3, + 132, + 1, + 131, + 19, + 129, + 22, + 21, + 97, + 136, + 222, + 87, + 97, + 136, + 222, + 97, + 136, + 60, + 86, + 91, + 80, + 80, + 3, + 144, + 86, + 91, + 96, + 0, + 130, + 81, + 97, + 136, + 246, + 129, + 132, + 96, + 32, + 135, + 1, + 97, + 135, + 192, + 86, + 91, + 145, + 144, + 145, + 1, + 146, + 145, + 80, + 80, + 86, + 91, + 96, + 0, + 96, + 32, + 130, + 132, + 3, + 18, + 21, + 97, + 137, + 18, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 81, + 145, + 144, + 80, + 86, + 91, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 49, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 96, + 0, + 130, + 25, + 130, + 17, + 21, + 97, + 137, + 66, + 87, + 97, + 137, + 66, + 97, + 136, + 60, + 86, + 91, + 80, + 1, + 144, + 86, + 91, + 96, + 0, + 129, + 96, + 0, + 25, + 4, + 131, + 17, + 130, + 21, + 21, + 22, + 21, + 97, + 137, + 97, + 87, + 97, + 137, + 97, + 97, + 136, + 60, + 86, + 91, + 80, + 2, + 144, + 86, + 91, + 96, + 0, + 128, + 133, + 133, + 17, + 21, + 97, + 137, + 118, + 87, + 96, + 0, + 128, + 253, + 91, + 131, + 134, + 17, + 21, + 97, + 137, + 131, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 80, + 130, + 1, + 147, + 145, + 144, + 146, + 3, + 145, + 80, + 86, + 91, + 96, + 0, + 96, + 1, + 130, + 1, + 97, + 137, + 162, + 87, + 97, + 137, + 162, + 97, + 136, + 60, + 86, + 91, + 80, + 96, + 1, + 1, + 144, + 86, + 91, + 96, + 1, + 129, + 129, + 91, + 128, + 133, + 17, + 21, + 97, + 137, + 228, + 87, + 129, + 96, + 0, + 25, + 4, + 130, + 17, + 21, + 97, + 137, + 202, + 87, + 97, + 137, + 202, + 97, + 136, + 60, + 86, + 91, + 128, + 133, + 22, + 21, + 97, + 137, + 215, + 87, + 145, + 129, + 2, + 145, + 91, + 147, + 132, + 28, + 147, + 144, + 128, + 2, + 144, + 97, + 137, + 174, + 86, + 91, + 80, + 146, + 80, + 146, + 144, + 80, + 86, + 91, + 96, + 0, + 130, + 97, + 137, + 251, + 87, + 80, + 96, + 1, + 97, + 24, + 76, + 86, + 91, + 129, + 97, + 138, + 8, + 87, + 80, + 96, + 0, + 97, + 24, + 76, + 86, + 91, + 129, + 96, + 1, + 129, + 20, + 97, + 138, + 30, + 87, + 96, + 2, + 129, + 20, + 97, + 138, + 40, + 87, + 97, + 138, + 68, + 86, + 91, + 96, + 1, + 145, + 80, + 80, + 97, + 24, + 76, + 86, + 91, + 96, + 255, + 132, + 17, + 21, + 97, + 138, + 57, + 87, + 97, + 138, + 57, + 97, + 136, + 60, + 86, + 91, + 80, + 80, + 96, + 1, + 130, + 27, + 97, + 24, + 76, + 86, + 91, + 80, + 96, + 32, + 131, + 16, + 97, + 1, + 51, + 131, + 16, + 22, + 96, + 78, + 132, + 16, + 96, + 11, + 132, + 16, + 22, + 23, + 21, + 97, + 138, + 103, + 87, + 80, + 129, + 129, + 10, + 97, + 24, + 76, + 86, + 91, + 97, + 138, + 113, + 131, + 131, + 97, + 137, + 169, + 86, + 91, + 128, + 96, + 0, + 25, + 4, + 130, + 17, + 21, + 97, + 138, + 133, + 87, + 97, + 138, + 133, + 97, + 136, + 60, + 86, + 91, + 2, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 97, + 17, + 147, + 131, + 131, + 97, + 137, + 236, + 86, + 91, + 96, + 0, + 96, + 1, + 96, + 1, + 96, + 255, + 27, + 3, + 129, + 132, + 19, + 130, + 132, + 19, + 128, + 130, + 22, + 134, + 132, + 4, + 134, + 17, + 22, + 21, + 97, + 138, + 191, + 87, + 97, + 138, + 191, + 97, + 136, + 60, + 86, + 91, + 96, + 1, + 96, + 255, + 27, + 96, + 0, + 135, + 18, + 130, + 129, + 22, + 135, + 131, + 5, + 137, + 18, + 22, + 21, + 97, + 138, + 222, + 87, + 97, + 138, + 222, + 97, + 136, + 60, + 86, + 91, + 96, + 0, + 135, + 18, + 146, + 80, + 135, + 130, + 5, + 135, + 18, + 132, + 132, + 22, + 22, + 21, + 97, + 138, + 250, + 87, + 97, + 138, + 250, + 97, + 136, + 60, + 86, + 91, + 135, + 133, + 5, + 135, + 18, + 129, + 132, + 22, + 22, + 21, + 97, + 139, + 16, + 87, + 97, + 139, + 16, + 97, + 136, + 60, + 86, + 91, + 80, + 80, + 80, + 146, + 144, + 147, + 2, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 18, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 96, + 0, + 130, + 97, + 139, + 67, + 87, + 97, + 139, + 67, + 97, + 139, + 30, + 86, + 91, + 96, + 1, + 96, + 255, + 27, + 130, + 20, + 96, + 0, + 25, + 132, + 20, + 22, + 21, + 97, + 139, + 93, + 87, + 97, + 139, + 93, + 97, + 136, + 60, + 86, + 91, + 80, + 5, + 144, + 86, + 91, + 96, + 0, + 130, + 97, + 139, + 113, + 87, + 97, + 139, + 113, + 97, + 139, + 30, + 86, + 91, + 80, + 4, + 144, + 86, + 91, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 1, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 96, + 0, + 96, + 1, + 96, + 255, + 27, + 130, + 1, + 97, + 139, + 161, + 87, + 97, + 139, + 161, + 97, + 136, + 60, + 86, + 91, + 80, + 96, + 0, + 3, + 144, + 86, + 91, + 96, + 0, + 99, + 255, + 255, + 255, + 255, + 128, + 131, + 22, + 129, + 129, + 3, + 97, + 139, + 193, + 87, + 97, + 139, + 193, + 97, + 136, + 60, + 86, + 91, + 96, + 1, + 1, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 96, + 32, + 130, + 132, + 3, + 18, + 21, + 97, + 139, + 221, + 87, + 96, + 0, + 128, + 253, + 91, + 129, + 81, + 96, + 255, + 129, + 22, + 129, + 20, + 97, + 17, + 147, + 87, + 96, + 0, + 128, + 253, + 91, + 96, + 0, + 98, + 255, + 255, + 255, + 128, + 131, + 22, + 129, + 129, + 3, + 97, + 139, + 193, + 87, + 97, + 139, + 193, + 97, + 136, + 60, + 86, + 91, + 96, + 0, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 131, + 129, + 22, + 144, + 131, + 22, + 129, + 129, + 16, + 21, + 97, + 140, + 38, + 87, + 97, + 140, + 38, + 97, + 136, + 60, + 86, + 91, + 3, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 130, + 18, + 128, + 21, + 96, + 1, + 96, + 1, + 96, + 255, + 27, + 3, + 132, + 144, + 3, + 133, + 19, + 22, + 21, + 97, + 140, + 80, + 87, + 97, + 140, + 80, + 97, + 136, + 60, + 86, + 91, + 96, + 1, + 96, + 255, + 27, + 131, + 144, + 3, + 132, + 18, + 129, + 22, + 21, + 97, + 140, + 105, + 87, + 97, + 140, + 105, + 97, + 136, + 60, + 86, + 91, + 80, + 80, + 1, + 144, + 86, + 91, + 96, + 0, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 128, + 131, + 22, + 129, + 133, + 22, + 128, + 131, + 3, + 130, + 17, + 21, + 97, + 140, + 145, + 87, + 97, + 140, + 145, + 97, + 136, + 60, + 86, + 91, + 1, + 148, + 147, + 80, + 80, + 80, + 80, + 86, + 254, + 162, + 100, + 105, + 112, + 102, + 115, + 88, + 34, + 18, + 32, + 6, + 40, + 123, + 95, + 202, + 66, + 166, + 114, + 199, + 70, + 37, + 241, + 101, + 39, + 188, + 9, + 174, + 5, + 137, + 237, + 35, + 203, + 7, + 15, + 41, + 242, + 234, + 5, + 25, + 223, + 159, + 17, + 100, + 115, + 111, + 108, + 99, + 67, + 0, + 8, + 13, + 0, + 51, + ]; + ///The deployed bytecode of the contract. + pub static RMM01PORTFOLIO_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __DEPLOYED_BYTECODE, + ); + pub struct RMM01Portfolio(::ethers::contract::Contract); + impl ::core::clone::Clone for RMM01Portfolio { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for RMM01Portfolio { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for RMM01Portfolio { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for RMM01Portfolio { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(stringify!(RMM01Portfolio)).field(&self.address()).finish() + } + } + impl RMM01Portfolio { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + RMM01PORTFOLIO_ABI.clone(), + client, + ), + ) + } + /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. + /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction + /// + /// Notes: + /// - If there are no constructor arguments, you should pass `()` as the argument. + /// - The default poll duration is 7 seconds. + /// - The default number of confirmations is 1 block. + /// + /// + /// # Example + /// + /// Generate contract bindings with `abigen!` and deploy a new contract instance. + /// + /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. + /// + /// ```ignore + /// # async fn deploy(client: ::std::sync::Arc) { + /// abigen!(Greeter, "../greeter.json"); + /// + /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); + /// let msg = greeter_contract.greet().call().await.unwrap(); + /// # } + /// ``` + pub fn deploy( + client: ::std::sync::Arc, + constructor_args: T, + ) -> ::core::result::Result< + ::ethers::contract::builders::ContractDeployer, + ::ethers::contract::ContractError, + > { + let factory = ::ethers::contract::ContractFactory::new( + RMM01PORTFOLIO_ABI.clone(), + RMM01PORTFOLIO_BYTECODE.clone().into(), + client, + ); + let deployer = factory.deploy(constructor_args)?; + let deployer = ::ethers::contract::ContractDeployer::new(deployer); + Ok(deployer) + } + ///Calls the contract's `REGISTRY` (0x06433b1b) function + pub fn registry( + &self, + ) -> ::ethers::contract::builders::ContractCall< + M, + ::ethers::core::types::Address, + > { + self.0 + .method_hash([6, 67, 59, 27], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `VERSION` (0xffa1ad74) function + pub fn version( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([255, 161, 173, 116], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `WETH` (0xad5c4648) function + pub fn weth( + &self, + ) -> ::ethers::contract::builders::ContractCall< + M, + ::ethers::core::types::Address, + > { + self.0 + .method_hash([173, 92, 70, 72], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `__account__` (0xda31ee54) function + pub fn account(&self) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([218, 49, 238, 84], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `changeParameters` (0xaf777855) function + pub fn change_parameters( + &self, + pool_id: u64, + priority_fee: u16, + fee: u16, + jit: u16, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([175, 119, 120, 85], (pool_id, priority_fee, fee, jit)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `checkInvariant` (0x2f337da5) function + pub fn check_invariant( + &self, + pool_id: u64, + invariant: ::ethers::core::types::I256, + reserve_x: ::ethers::core::types::U256, + reserve_y: ::ethers::core::types::U256, + timestamp: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall< + M, + (bool, ::ethers::core::types::I256), + > { + self.0 + .method_hash( + [47, 51, 125, 165], + (pool_id, invariant, reserve_x, reserve_y, timestamp), + ) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `checkPool` (0xa68aaa41) function + pub fn check_pool( + &self, + pool_id: u64, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([166, 138, 170, 65], pool_id) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `checkPosition` (0x2cc6641e) function + pub fn check_position( + &self, + pool_id: u64, + owner: ::ethers::core::types::Address, + delta: ::ethers::core::types::I256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([44, 198, 100, 30], (pool_id, owner, delta)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `computeMaxInput` (0x989bafba) function + pub fn compute_max_input( + &self, + pool_id: u64, + sell_asset: bool, + reserve_in: ::ethers::core::types::U256, + liquidity: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash( + [152, 155, 175, 186], + (pool_id, sell_asset, reserve_in, liquidity), + ) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `computeReservesFromPrice` (0xc48d887a) function + pub fn compute_reserves_from_price( + &self, + pool_id: u64, + price: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall< + M, + (::ethers::core::types::U256, ::ethers::core::types::U256), + > { + self.0 + .method_hash([196, 141, 136, 122], (pool_id, price)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `deposit` (0xd0e30db0) function + pub fn deposit(&self) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([208, 227, 13, 176], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `draw` (0xad24d6a0) function + pub fn draw( + &self, + token: ::ethers::core::types::Address, + amount: ::ethers::core::types::U256, + to: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([173, 36, 214, 160], (token, amount, to)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `fund` (0x7b1837de) function + pub fn fund( + &self, + token: ::ethers::core::types::Address, + amount: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([123, 24, 55, 222], (token, amount)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getAmountOut` (0x7dae4890) function + pub fn get_amount_out( + &self, + pool_id: u64, + sell_asset: bool, + amount_in: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([125, 174, 72, 144], (pool_id, sell_asset, amount_in)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getBalance` (0xd4fac45d) function + pub fn get_balance( + &self, + owner: ::ethers::core::types::Address, + token: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([212, 250, 196, 93], (owner, token)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getLiquidityDeltas` (0x8992f20a) function + pub fn get_liquidity_deltas( + &self, + pool_id: u64, + delta_liquidity: i128, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([137, 146, 242, 10], (pool_id, delta_liquidity)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getMaxLiquidity` (0xd6b7dec5) function + pub fn get_max_liquidity( + &self, + pool_id: u64, + amount_0: ::ethers::core::types::U256, + amount_1: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([214, 183, 222, 197], (pool_id, amount_0, amount_1)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getNetBalance` (0x4dc68a90) function + pub fn get_net_balance( + &self, + token: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([77, 198, 138, 144], token) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getPairId` (0x3f92a339) function + pub fn get_pair_id( + &self, + p0: ::ethers::core::types::Address, + p1: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([63, 146, 163, 57], (p0, p1)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getPairNonce` (0x078888d6) function + pub fn get_pair_nonce( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([7, 136, 136, 214], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getPoolNonce` (0xa5cd8a49) function + pub fn get_pool_nonce( + &self, + p0: u32, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([165, 205, 138, 73], p0) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getPoolReserves` (0x2afb9df8) function + pub fn get_pool_reserves( + &self, + pool_id: u64, + ) -> ::ethers::contract::builders::ContractCall< + M, + (::ethers::core::types::U256, ::ethers::core::types::U256), + > { + self.0 + .method_hash([42, 251, 157, 248], pool_id) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getReserve` (0xc9a396e9) function + pub fn get_reserve( + &self, + token: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([201, 163, 150, 233], token) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getVirtualPrice` (0x61b7ea6a) function + pub fn get_virtual_price( + &self, + pool_id: u64, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([97, 183, 234, 106], pool_id) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getVirtualReservesPerLiquidity` (0x1a4b905b) function + pub fn get_virtual_reserves_per_liquidity( + &self, + pool_id: u64, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([26, 75, 144, 91], pool_id) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `multiprocess` (0xa0fdf413) function + pub fn multiprocess( + &self, + data: ::ethers::core::types::Bytes, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([160, 253, 244, 19], data) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `pairs` (0x5e47663c) function + pub fn pairs( + &self, + p0: u32, + ) -> ::ethers::contract::builders::ContractCall< + M, + (::ethers::core::types::Address, u8, ::ethers::core::types::Address, u8), + > { + self.0 + .method_hash([94, 71, 102, 60], p0) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `pools` (0x89a5f084) function + pub fn pools( + &self, + p0: u64, + ) -> ::ethers::contract::builders::ContractCall< + M, + ( + u128, + u128, + u128, + u32, + ::ethers::core::types::Address, + ::ethers::core::types::U256, + ::ethers::core::types::U256, + ::ethers::core::types::U256, + PortfolioCurve, + PortfolioPair, + ), + > { + self.0 + .method_hash([137, 165, 240, 132], p0) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `positions` (0xb68513ea) function + pub fn positions( + &self, + p0: ::ethers::core::types::Address, + p1: u64, + ) -> ::ethers::contract::builders::ContractCall< + M, + ( + u128, + u32, + ::ethers::core::types::U256, + ::ethers::core::types::U256, + ::ethers::core::types::U256, + u128, + u128, + u128, + ), + > { + self.0 + .method_hash([182, 133, 19, 234], (p0, p1)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `setProtocolFee` (0x787dce3d) function + pub fn set_protocol_fee( + &self, + fee: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([120, 125, 206, 61], fee) + .expect("method not found (this should never happen)") + } + ///Gets the contract's `Allocate` event + pub fn allocate_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + AllocateFilter, + > { + self.0.event() + } + ///Gets the contract's `ChangeParameters` event + pub fn change_parameters_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + ChangeParametersFilter, + > { + self.0.event() + } + ///Gets the contract's `Collect` event + pub fn collect_filter( + &self, + ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, CollectFilter> { + self.0.event() + } + ///Gets the contract's `CreatePair` event + pub fn create_pair_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + CreatePairFilter, + > { + self.0.event() + } + ///Gets the contract's `CreatePool` event + pub fn create_pool_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + CreatePoolFilter, + > { + self.0.event() + } + ///Gets the contract's `Deallocate` event + pub fn deallocate_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + DeallocateFilter, + > { + self.0.event() + } + ///Gets the contract's `DecreaseReserveBalance` event + pub fn decrease_reserve_balance_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + DecreaseReserveBalanceFilter, + > { + self.0.event() + } + ///Gets the contract's `DecreaseUserBalance` event + pub fn decrease_user_balance_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + DecreaseUserBalanceFilter, + > { + self.0.event() + } + ///Gets the contract's `Deposit` event + pub fn deposit_filter( + &self, + ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, DepositFilter> { + self.0.event() + } + ///Gets the contract's `IncreaseReserveBalance` event + pub fn increase_reserve_balance_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + IncreaseReserveBalanceFilter, + > { + self.0.event() + } + ///Gets the contract's `IncreaseUserBalance` event + pub fn increase_user_balance_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + IncreaseUserBalanceFilter, + > { + self.0.event() + } + ///Gets the contract's `Swap` event + pub fn swap_filter( + &self, + ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, SwapFilter> { + self.0.event() + } + ///Gets the contract's `UpdateProtocolFee` event + pub fn update_protocol_fee_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + UpdateProtocolFeeFilter, + > { + self.0.event() + } + /// Returns an `Event` builder for all the events of this contract. + pub fn events( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + RMM01PortfolioEvents, + > { + self.0.event_with_filter(::core::default::Default::default()) + } + } + impl From<::ethers::contract::Contract> + for RMM01Portfolio { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } + ///Custom Error type `DrawBalance` with signature `DrawBalance()` and selector `0xc9f2f26c` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "DrawBalance", abi = "DrawBalance()")] + pub struct DrawBalance; + ///Custom Error type `EtherTransferFail` with signature `EtherTransferFail()` and selector `0x75f42683` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "EtherTransferFail", abi = "EtherTransferFail()")] + pub struct EtherTransferFail; + ///Custom Error type `Infinity` with signature `Infinity()` and selector `0x07a02127` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "Infinity", abi = "Infinity()")] + pub struct Infinity; + ///Custom Error type `InsufficientReserve` with signature `InsufficientReserve(uint256,uint256)` and selector `0x315276c9` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror( + name = "InsufficientReserve", + abi = "InsufficientReserve(uint256,uint256)" + )] + pub struct InsufficientReserve { + pub amount: ::ethers::core::types::U256, + pub delta: ::ethers::core::types::U256, + } + ///Custom Error type `InvalidBalance` with signature `InvalidBalance()` and selector `0xc52e3eff` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "InvalidBalance", abi = "InvalidBalance()")] + pub struct InvalidBalance; + ///Custom Error type `InvalidBytesLength` with signature `InvalidBytesLength(uint256,uint256)` and selector `0xe19dc95e` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "InvalidBytesLength", abi = "InvalidBytesLength(uint256,uint256)")] + pub struct InvalidBytesLength { + pub expected: ::ethers::core::types::U256, + pub length: ::ethers::core::types::U256, + } + ///Custom Error type `InvalidDecimals` with signature `InvalidDecimals(uint8)` and selector `0xca950391` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "InvalidDecimals", abi = "InvalidDecimals(uint8)")] + pub struct InvalidDecimals { + pub decimals: u8, + } + ///Custom Error type `InvalidFee` with signature `InvalidFee(uint16)` and selector `0xf6f4a38f` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "InvalidFee", abi = "InvalidFee(uint16)")] + pub struct InvalidFee { + pub fee: u16, + } + ///Custom Error type `InvalidInstruction` with signature `InvalidInstruction()` and selector `0xd8c48f68` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "InvalidInstruction", abi = "InvalidInstruction()")] + pub struct InvalidInstruction; + ///Custom Error type `InvalidInvariant` with signature `InvalidInvariant(int256,int256)` and selector `0x2125a168` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "InvalidInvariant", abi = "InvalidInvariant(int256,int256)")] + pub struct InvalidInvariant { + pub prev: ::ethers::core::types::I256, + pub next: ::ethers::core::types::I256, + } + ///Custom Error type `InvalidJump` with signature `InvalidJump(uint256)` and selector `0x80f63bd1` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "InvalidJump", abi = "InvalidJump(uint256)")] + pub struct InvalidJump { + pub pointer: ::ethers::core::types::U256, + } + ///Custom Error type `InvalidPair` with signature `InvalidPair()` and selector `0x1e4f7d8c` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "InvalidPair", abi = "InvalidPair()")] + pub struct InvalidPair; + ///Custom Error type `InvalidReentrancy` with signature `InvalidReentrancy()` and selector `0xffc72209` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "InvalidReentrancy", abi = "InvalidReentrancy()")] + pub struct InvalidReentrancy; + ///Custom Error type `InvalidSettlement` with signature `InvalidSettlement()` and selector `0x115931c4` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "InvalidSettlement", abi = "InvalidSettlement()")] + pub struct InvalidSettlement; + ///Custom Error type `InvalidTransfer` with signature `InvalidTransfer()` and selector `0x2f352531` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "InvalidTransfer", abi = "InvalidTransfer()")] + pub struct InvalidTransfer; + ///Custom Error type `JitLiquidity` with signature `JitLiquidity(uint256)` and selector `0x9a231b2c` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "JitLiquidity", abi = "JitLiquidity(uint256)")] + pub struct JitLiquidity { + pub distance: ::ethers::core::types::U256, + } + ///Custom Error type `Min` with signature `Min()` and selector `0x4d2d75b1` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "Min", abi = "Min()")] + pub struct Min; + ///Custom Error type `NegativeBalance` with signature `NegativeBalance(address,int256)` and selector `0xfe239baa` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "NegativeBalance", abi = "NegativeBalance(address,int256)")] + pub struct NegativeBalance { + pub token: ::ethers::core::types::Address, + pub net: ::ethers::core::types::I256, + } + ///Custom Error type `NegativeInfinity` with signature `NegativeInfinity()` and selector `0x8bb56614` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "NegativeInfinity", abi = "NegativeInfinity()")] + pub struct NegativeInfinity; + ///Custom Error type `NonExistentPool` with signature `NonExistentPool(uint64)` and selector `0xd4480d46` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "NonExistentPool", abi = "NonExistentPool(uint64)")] + pub struct NonExistentPool { + pub pool_id: u64, + } + ///Custom Error type `NonExistentPosition` with signature `NonExistentPosition(address,uint64)` and selector `0x5f3605b6` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror( + name = "NonExistentPosition", + abi = "NonExistentPosition(address,uint64)" + )] + pub struct NonExistentPosition { + pub owner: ::ethers::core::types::Address, + pub pool_id: u64, + } + ///Custom Error type `NotController` with signature `NotController()` and selector `0x23019e67` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "NotController", abi = "NotController()")] + pub struct NotController; + ///Custom Error type `OOB` with signature `OOB()` and selector `0xaaf3956f` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "OOB", abi = "OOB()")] + pub struct OOB; + ///Custom Error type `OutOfBounds` with signature `OutOfBounds()` and selector `0xb4120f14` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "OutOfBounds", abi = "OutOfBounds()")] + pub struct OutOfBounds; + ///Custom Error type `OverflowWad` with signature `OverflowWad(int256)` and selector `0xb11558df` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "OverflowWad", abi = "OverflowWad(int256)")] + pub struct OverflowWad { + pub wad: ::ethers::core::types::I256, + } + ///Custom Error type `PairExists` with signature `PairExists(uint24)` and selector `0x3325fa77` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "PairExists", abi = "PairExists(uint24)")] + pub struct PairExists { + pub pair_id: u32, + } + ///Custom Error type `PoolExpired` with signature `PoolExpired()` and selector `0x398b36db` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "PoolExpired", abi = "PoolExpired()")] + pub struct PoolExpired; + ///Custom Error type `SameTokenError` with signature `SameTokenError()` and selector `0xec38b794` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "SameTokenError", abi = "SameTokenError()")] + pub struct SameTokenError; + ///Custom Error type `SwapInputTooSmall` with signature `SwapInputTooSmall()` and selector `0x2000e4e0` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "SwapInputTooSmall", abi = "SwapInputTooSmall()")] + pub struct SwapInputTooSmall; + ///Custom Error type `UndefinedPrice` with signature `UndefinedPrice()` and selector `0x22053363` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "UndefinedPrice", abi = "UndefinedPrice()")] + pub struct UndefinedPrice; + ///Custom Error type `ZeroAmounts` with signature `ZeroAmounts()` and selector `0x213c7cc5` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "ZeroAmounts", abi = "ZeroAmounts()")] + pub struct ZeroAmounts; + ///Custom Error type `ZeroInput` with signature `ZeroInput()` and selector `0xaf458c07` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "ZeroInput", abi = "ZeroInput()")] + pub struct ZeroInput; + ///Custom Error type `ZeroLiquidity` with signature `ZeroLiquidity()` and selector `0x10074548` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "ZeroLiquidity", abi = "ZeroLiquidity()")] + pub struct ZeroLiquidity; + ///Custom Error type `ZeroOutput` with signature `ZeroOutput()` and selector `0xe618637e` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "ZeroOutput", abi = "ZeroOutput()")] + pub struct ZeroOutput; + ///Custom Error type `ZeroPrice` with signature `ZeroPrice()` and selector `0x4dfba023` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "ZeroPrice", abi = "ZeroPrice()")] + pub struct ZeroPrice; + ///Custom Error type `ZeroValue` with signature `ZeroValue()` and selector `0x7c946ed7` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "ZeroValue", abi = "ZeroValue()")] + pub struct ZeroValue; + ///Container type for all of the contract's custom errors + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum RMM01PortfolioErrors { + DrawBalance(DrawBalance), + EtherTransferFail(EtherTransferFail), + Infinity(Infinity), + InsufficientReserve(InsufficientReserve), + InvalidBalance(InvalidBalance), + InvalidBytesLength(InvalidBytesLength), + InvalidDecimals(InvalidDecimals), + InvalidFee(InvalidFee), + InvalidInstruction(InvalidInstruction), + InvalidInvariant(InvalidInvariant), + InvalidJump(InvalidJump), + InvalidPair(InvalidPair), + InvalidReentrancy(InvalidReentrancy), + InvalidSettlement(InvalidSettlement), + InvalidTransfer(InvalidTransfer), + JitLiquidity(JitLiquidity), + Min(Min), + NegativeBalance(NegativeBalance), + NegativeInfinity(NegativeInfinity), + NonExistentPool(NonExistentPool), + NonExistentPosition(NonExistentPosition), + NotController(NotController), + OOB(OOB), + OutOfBounds(OutOfBounds), + OverflowWad(OverflowWad), + PairExists(PairExists), + PoolExpired(PoolExpired), + SameTokenError(SameTokenError), + SwapInputTooSmall(SwapInputTooSmall), + UndefinedPrice(UndefinedPrice), + ZeroAmounts(ZeroAmounts), + ZeroInput(ZeroInput), + ZeroLiquidity(ZeroLiquidity), + ZeroOutput(ZeroOutput), + ZeroPrice(ZeroPrice), + ZeroValue(ZeroValue), + /// The standard solidity revert string, with selector + /// Error(string) -- 0x08c379a0 + RevertString(::std::string::String), + } + impl ::ethers::core::abi::AbiDecode for RMM01PortfolioErrors { + fn decode( + data: impl AsRef<[u8]>, + ) -> ::core::result::Result { + let data = data.as_ref(); + if let Ok(decoded) + = <::std::string::String as ::ethers::core::abi::AbiDecode>::decode( + data, + ) { + return Ok(Self::RevertString(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::DrawBalance(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::EtherTransferFail(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Infinity(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::InsufficientReserve(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::InvalidBalance(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::InvalidBytesLength(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::InvalidDecimals(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::InvalidFee(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::InvalidInstruction(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::InvalidInvariant(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::InvalidJump(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::InvalidPair(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::InvalidReentrancy(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::InvalidSettlement(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::InvalidTransfer(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::JitLiquidity(decoded)); + } + if let Ok(decoded) = ::decode(data) { + return Ok(Self::Min(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::NegativeBalance(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::NegativeInfinity(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::NonExistentPool(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::NonExistentPosition(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::NotController(decoded)); + } + if let Ok(decoded) = ::decode(data) { + return Ok(Self::OOB(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::OutOfBounds(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::OverflowWad(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::PairExists(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::PoolExpired(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::SameTokenError(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::SwapInputTooSmall(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::UndefinedPrice(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::ZeroAmounts(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::ZeroInput(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::ZeroLiquidity(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::ZeroOutput(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::ZeroPrice(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::ZeroValue(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData.into()) + } + } + impl ::ethers::core::abi::AbiEncode for RMM01PortfolioErrors { + fn encode(self) -> ::std::vec::Vec { + match self { + Self::DrawBalance(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::EtherTransferFail(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Infinity(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::InsufficientReserve(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::InvalidBalance(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::InvalidBytesLength(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::InvalidDecimals(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::InvalidFee(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::InvalidInstruction(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::InvalidInvariant(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::InvalidJump(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::InvalidPair(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::InvalidReentrancy(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::InvalidSettlement(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::InvalidTransfer(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::JitLiquidity(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Min(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::NegativeBalance(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::NegativeInfinity(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::NonExistentPool(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::NonExistentPosition(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::NotController(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::OOB(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::OutOfBounds(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::OverflowWad(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::PairExists(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::PoolExpired(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::SameTokenError(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::SwapInputTooSmall(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::UndefinedPrice(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::ZeroAmounts(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::ZeroInput(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::ZeroLiquidity(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::ZeroOutput(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::ZeroPrice(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::ZeroValue(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::RevertString(s) => ::ethers::core::abi::AbiEncode::encode(s), + } + } + } + impl ::ethers::contract::ContractRevert for RMM01PortfolioErrors { + fn valid_selector(selector: [u8; 4]) -> bool { + match selector { + [0x08, 0xc3, 0x79, 0xa0] => true, + _ if selector + == ::selector() => true, + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => true, + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => true, + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => true, + _ if selector + == ::selector() => true, + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => true, + _ if selector == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector == ::selector() => { + true + } + _ if selector + == ::selector() => true, + _ if selector + == ::selector() => true, + _ if selector + == ::selector() => true, + _ if selector + == ::selector() => true, + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => true, + _ if selector + == ::selector() => true, + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => true, + _ if selector + == ::selector() => true, + _ if selector + == ::selector() => true, + _ => false, + } + } + } + impl ::core::fmt::Display for RMM01PortfolioErrors { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::DrawBalance(element) => ::core::fmt::Display::fmt(element, f), + Self::EtherTransferFail(element) => ::core::fmt::Display::fmt(element, f), + Self::Infinity(element) => ::core::fmt::Display::fmt(element, f), + Self::InsufficientReserve(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::InvalidBalance(element) => ::core::fmt::Display::fmt(element, f), + Self::InvalidBytesLength(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::InvalidDecimals(element) => ::core::fmt::Display::fmt(element, f), + Self::InvalidFee(element) => ::core::fmt::Display::fmt(element, f), + Self::InvalidInstruction(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::InvalidInvariant(element) => ::core::fmt::Display::fmt(element, f), + Self::InvalidJump(element) => ::core::fmt::Display::fmt(element, f), + Self::InvalidPair(element) => ::core::fmt::Display::fmt(element, f), + Self::InvalidReentrancy(element) => ::core::fmt::Display::fmt(element, f), + Self::InvalidSettlement(element) => ::core::fmt::Display::fmt(element, f), + Self::InvalidTransfer(element) => ::core::fmt::Display::fmt(element, f), + Self::JitLiquidity(element) => ::core::fmt::Display::fmt(element, f), + Self::Min(element) => ::core::fmt::Display::fmt(element, f), + Self::NegativeBalance(element) => ::core::fmt::Display::fmt(element, f), + Self::NegativeInfinity(element) => ::core::fmt::Display::fmt(element, f), + Self::NonExistentPool(element) => ::core::fmt::Display::fmt(element, f), + Self::NonExistentPosition(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::NotController(element) => ::core::fmt::Display::fmt(element, f), + Self::OOB(element) => ::core::fmt::Display::fmt(element, f), + Self::OutOfBounds(element) => ::core::fmt::Display::fmt(element, f), + Self::OverflowWad(element) => ::core::fmt::Display::fmt(element, f), + Self::PairExists(element) => ::core::fmt::Display::fmt(element, f), + Self::PoolExpired(element) => ::core::fmt::Display::fmt(element, f), + Self::SameTokenError(element) => ::core::fmt::Display::fmt(element, f), + Self::SwapInputTooSmall(element) => ::core::fmt::Display::fmt(element, f), + Self::UndefinedPrice(element) => ::core::fmt::Display::fmt(element, f), + Self::ZeroAmounts(element) => ::core::fmt::Display::fmt(element, f), + Self::ZeroInput(element) => ::core::fmt::Display::fmt(element, f), + Self::ZeroLiquidity(element) => ::core::fmt::Display::fmt(element, f), + Self::ZeroOutput(element) => ::core::fmt::Display::fmt(element, f), + Self::ZeroPrice(element) => ::core::fmt::Display::fmt(element, f), + Self::ZeroValue(element) => ::core::fmt::Display::fmt(element, f), + Self::RevertString(s) => ::core::fmt::Display::fmt(s, f), + } + } + } + impl ::core::convert::From<::std::string::String> for RMM01PortfolioErrors { + fn from(value: String) -> Self { + Self::RevertString(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: DrawBalance) -> Self { + Self::DrawBalance(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: EtherTransferFail) -> Self { + Self::EtherTransferFail(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: Infinity) -> Self { + Self::Infinity(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: InsufficientReserve) -> Self { + Self::InsufficientReserve(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: InvalidBalance) -> Self { + Self::InvalidBalance(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: InvalidBytesLength) -> Self { + Self::InvalidBytesLength(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: InvalidDecimals) -> Self { + Self::InvalidDecimals(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: InvalidFee) -> Self { + Self::InvalidFee(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: InvalidInstruction) -> Self { + Self::InvalidInstruction(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: InvalidInvariant) -> Self { + Self::InvalidInvariant(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: InvalidJump) -> Self { + Self::InvalidJump(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: InvalidPair) -> Self { + Self::InvalidPair(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: InvalidReentrancy) -> Self { + Self::InvalidReentrancy(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: InvalidSettlement) -> Self { + Self::InvalidSettlement(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: InvalidTransfer) -> Self { + Self::InvalidTransfer(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: JitLiquidity) -> Self { + Self::JitLiquidity(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: Min) -> Self { + Self::Min(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: NegativeBalance) -> Self { + Self::NegativeBalance(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: NegativeInfinity) -> Self { + Self::NegativeInfinity(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: NonExistentPool) -> Self { + Self::NonExistentPool(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: NonExistentPosition) -> Self { + Self::NonExistentPosition(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: NotController) -> Self { + Self::NotController(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: OOB) -> Self { + Self::OOB(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: OutOfBounds) -> Self { + Self::OutOfBounds(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: OverflowWad) -> Self { + Self::OverflowWad(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: PairExists) -> Self { + Self::PairExists(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: PoolExpired) -> Self { + Self::PoolExpired(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: SameTokenError) -> Self { + Self::SameTokenError(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: SwapInputTooSmall) -> Self { + Self::SwapInputTooSmall(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: UndefinedPrice) -> Self { + Self::UndefinedPrice(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: ZeroAmounts) -> Self { + Self::ZeroAmounts(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: ZeroInput) -> Self { + Self::ZeroInput(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: ZeroLiquidity) -> Self { + Self::ZeroLiquidity(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: ZeroOutput) -> Self { + Self::ZeroOutput(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: ZeroPrice) -> Self { + Self::ZeroPrice(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: ZeroValue) -> Self { + Self::ZeroValue(value) + } + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "Allocate", + abi = "Allocate(uint64,address,address,uint256,uint256,uint256)" + )] + pub struct AllocateFilter { + #[ethevent(indexed)] + pub pool_id: u64, + #[ethevent(indexed)] + pub asset: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub quote: ::ethers::core::types::Address, + pub delta_asset: ::ethers::core::types::U256, + pub delta_quote: ::ethers::core::types::U256, + pub delta_liquidity: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "ChangeParameters", + abi = "ChangeParameters(uint64,uint16,uint16,uint16)" + )] + pub struct ChangeParametersFilter { + #[ethevent(indexed)] + pub pool_id: u64, + #[ethevent(indexed)] + pub priority_fee: u16, + #[ethevent(indexed)] + pub fee: u16, + pub jit: u16, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "Collect", + abi = "Collect(uint64,address,uint256,address,uint256,address)" + )] + pub struct CollectFilter { + pub pool_id: u64, + #[ethevent(indexed)] + pub account: ::ethers::core::types::Address, + pub fee_asset_dec: ::ethers::core::types::U256, + #[ethevent(indexed)] + pub asset: ::ethers::core::types::Address, + pub fee_quote_dec: ::ethers::core::types::U256, + #[ethevent(indexed)] + pub quote: ::ethers::core::types::Address, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "CreatePair", + abi = "CreatePair(uint24,address,address,uint8,uint8)" + )] + pub struct CreatePairFilter { + #[ethevent(indexed)] + pub pair_id: u32, + #[ethevent(indexed)] + pub asset: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub quote: ::ethers::core::types::Address, + pub decimals_asset: u8, + pub decimals_quote: u8, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "CreatePool", + abi = "CreatePool(uint64,bool,address,address,uint256)" + )] + pub struct CreatePoolFilter { + #[ethevent(indexed)] + pub pool_id: u64, + pub is_mutable: bool, + #[ethevent(indexed)] + pub asset: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub quote: ::ethers::core::types::Address, + pub price: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "Deallocate", + abi = "Deallocate(uint64,address,address,uint256,uint256,uint256)" + )] + pub struct DeallocateFilter { + #[ethevent(indexed)] + pub pool_id: u64, + #[ethevent(indexed)] + pub asset: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub quote: ::ethers::core::types::Address, + pub delta_asset: ::ethers::core::types::U256, + pub delta_quote: ::ethers::core::types::U256, + pub delta_liquidity: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "DecreaseReserveBalance", + abi = "DecreaseReserveBalance(address,uint256)" + )] + pub struct DecreaseReserveBalanceFilter { + #[ethevent(indexed)] + pub token: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "DecreaseUserBalance", + abi = "DecreaseUserBalance(address,address,uint256)" + )] + pub struct DecreaseUserBalanceFilter { + #[ethevent(indexed)] + pub account: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub token: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "Deposit", abi = "Deposit(address,uint256)")] + pub struct DepositFilter { + #[ethevent(indexed)] + pub account: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "IncreaseReserveBalance", + abi = "IncreaseReserveBalance(address,uint256)" + )] + pub struct IncreaseReserveBalanceFilter { + #[ethevent(indexed)] + pub token: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "IncreaseUserBalance", + abi = "IncreaseUserBalance(address,address,uint256)" + )] + pub struct IncreaseUserBalanceFilter { + #[ethevent(indexed)] + pub account: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub token: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "Swap", + abi = "Swap(uint64,uint256,address,uint256,address,uint256,uint256,int256)" + )] + pub struct SwapFilter { + #[ethevent(indexed)] + pub pool_id: u64, + pub price: ::ethers::core::types::U256, + #[ethevent(indexed)] + pub sell_asset: ::ethers::core::types::Address, + pub input: ::ethers::core::types::U256, + #[ethevent(indexed)] + pub token_out: ::ethers::core::types::Address, + pub output: ::ethers::core::types::U256, + pub fee_amount_dec: ::ethers::core::types::U256, + pub invariant_wad: ::ethers::core::types::I256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "UpdateProtocolFee", abi = "UpdateProtocolFee(uint256,uint256)")] + pub struct UpdateProtocolFeeFilter { + pub prev_fee: ::ethers::core::types::U256, + pub next_fee: ::ethers::core::types::U256, + } + ///Container type for all of the contract's events + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum RMM01PortfolioEvents { + AllocateFilter(AllocateFilter), + ChangeParametersFilter(ChangeParametersFilter), + CollectFilter(CollectFilter), + CreatePairFilter(CreatePairFilter), + CreatePoolFilter(CreatePoolFilter), + DeallocateFilter(DeallocateFilter), + DecreaseReserveBalanceFilter(DecreaseReserveBalanceFilter), + DecreaseUserBalanceFilter(DecreaseUserBalanceFilter), + DepositFilter(DepositFilter), + IncreaseReserveBalanceFilter(IncreaseReserveBalanceFilter), + IncreaseUserBalanceFilter(IncreaseUserBalanceFilter), + SwapFilter(SwapFilter), + UpdateProtocolFeeFilter(UpdateProtocolFeeFilter), + } + impl ::ethers::contract::EthLogDecode for RMM01PortfolioEvents { + fn decode_log( + log: &::ethers::core::abi::RawLog, + ) -> ::core::result::Result { + if let Ok(decoded) = AllocateFilter::decode_log(log) { + return Ok(RMM01PortfolioEvents::AllocateFilter(decoded)); + } + if let Ok(decoded) = ChangeParametersFilter::decode_log(log) { + return Ok(RMM01PortfolioEvents::ChangeParametersFilter(decoded)); + } + if let Ok(decoded) = CollectFilter::decode_log(log) { + return Ok(RMM01PortfolioEvents::CollectFilter(decoded)); + } + if let Ok(decoded) = CreatePairFilter::decode_log(log) { + return Ok(RMM01PortfolioEvents::CreatePairFilter(decoded)); + } + if let Ok(decoded) = CreatePoolFilter::decode_log(log) { + return Ok(RMM01PortfolioEvents::CreatePoolFilter(decoded)); + } + if let Ok(decoded) = DeallocateFilter::decode_log(log) { + return Ok(RMM01PortfolioEvents::DeallocateFilter(decoded)); + } + if let Ok(decoded) = DecreaseReserveBalanceFilter::decode_log(log) { + return Ok(RMM01PortfolioEvents::DecreaseReserveBalanceFilter(decoded)); + } + if let Ok(decoded) = DecreaseUserBalanceFilter::decode_log(log) { + return Ok(RMM01PortfolioEvents::DecreaseUserBalanceFilter(decoded)); + } + if let Ok(decoded) = DepositFilter::decode_log(log) { + return Ok(RMM01PortfolioEvents::DepositFilter(decoded)); + } + if let Ok(decoded) = IncreaseReserveBalanceFilter::decode_log(log) { + return Ok(RMM01PortfolioEvents::IncreaseReserveBalanceFilter(decoded)); + } + if let Ok(decoded) = IncreaseUserBalanceFilter::decode_log(log) { + return Ok(RMM01PortfolioEvents::IncreaseUserBalanceFilter(decoded)); + } + if let Ok(decoded) = SwapFilter::decode_log(log) { + return Ok(RMM01PortfolioEvents::SwapFilter(decoded)); + } + if let Ok(decoded) = UpdateProtocolFeeFilter::decode_log(log) { + return Ok(RMM01PortfolioEvents::UpdateProtocolFeeFilter(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData) + } + } + impl ::core::fmt::Display for RMM01PortfolioEvents { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::AllocateFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::ChangeParametersFilter(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::CollectFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::CreatePairFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::CreatePoolFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::DeallocateFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::DecreaseReserveBalanceFilter(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::DecreaseUserBalanceFilter(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::DepositFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::IncreaseReserveBalanceFilter(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::IncreaseUserBalanceFilter(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::SwapFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::UpdateProtocolFeeFilter(element) => { + ::core::fmt::Display::fmt(element, f) + } + } + } + } + impl ::core::convert::From for RMM01PortfolioEvents { + fn from(value: AllocateFilter) -> Self { + Self::AllocateFilter(value) + } + } + impl ::core::convert::From for RMM01PortfolioEvents { + fn from(value: ChangeParametersFilter) -> Self { + Self::ChangeParametersFilter(value) + } + } + impl ::core::convert::From for RMM01PortfolioEvents { + fn from(value: CollectFilter) -> Self { + Self::CollectFilter(value) + } + } + impl ::core::convert::From for RMM01PortfolioEvents { + fn from(value: CreatePairFilter) -> Self { + Self::CreatePairFilter(value) + } + } + impl ::core::convert::From for RMM01PortfolioEvents { + fn from(value: CreatePoolFilter) -> Self { + Self::CreatePoolFilter(value) + } + } + impl ::core::convert::From for RMM01PortfolioEvents { + fn from(value: DeallocateFilter) -> Self { + Self::DeallocateFilter(value) + } + } + impl ::core::convert::From for RMM01PortfolioEvents { + fn from(value: DecreaseReserveBalanceFilter) -> Self { + Self::DecreaseReserveBalanceFilter(value) + } + } + impl ::core::convert::From for RMM01PortfolioEvents { + fn from(value: DecreaseUserBalanceFilter) -> Self { + Self::DecreaseUserBalanceFilter(value) + } + } + impl ::core::convert::From for RMM01PortfolioEvents { + fn from(value: DepositFilter) -> Self { + Self::DepositFilter(value) + } + } + impl ::core::convert::From for RMM01PortfolioEvents { + fn from(value: IncreaseReserveBalanceFilter) -> Self { + Self::IncreaseReserveBalanceFilter(value) + } + } + impl ::core::convert::From for RMM01PortfolioEvents { + fn from(value: IncreaseUserBalanceFilter) -> Self { + Self::IncreaseUserBalanceFilter(value) + } + } + impl ::core::convert::From for RMM01PortfolioEvents { + fn from(value: SwapFilter) -> Self { + Self::SwapFilter(value) + } + } + impl ::core::convert::From for RMM01PortfolioEvents { + fn from(value: UpdateProtocolFeeFilter) -> Self { + Self::UpdateProtocolFeeFilter(value) + } + } + ///Container type for all input parameters for the `REGISTRY` function with signature `REGISTRY()` and selector `0x06433b1b` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "REGISTRY", abi = "REGISTRY()")] + pub struct RegistryCall; + ///Container type for all input parameters for the `VERSION` function with signature `VERSION()` and selector `0xffa1ad74` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "VERSION", abi = "VERSION()")] + pub struct VersionCall; + ///Container type for all input parameters for the `WETH` function with signature `WETH()` and selector `0xad5c4648` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "WETH", abi = "WETH()")] + pub struct WethCall; + ///Container type for all input parameters for the `__account__` function with signature `__account__()` and selector `0xda31ee54` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "__account__", abi = "__account__()")] + pub struct AccountCall; + ///Container type for all input parameters for the `changeParameters` function with signature `changeParameters(uint64,uint16,uint16,uint16)` and selector `0xaf777855` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall( + name = "changeParameters", + abi = "changeParameters(uint64,uint16,uint16,uint16)" + )] + pub struct ChangeParametersCall { + pub pool_id: u64, + pub priority_fee: u16, + pub fee: u16, + pub jit: u16, + } + ///Container type for all input parameters for the `checkInvariant` function with signature `checkInvariant(uint64,int256,uint256,uint256,uint256)` and selector `0x2f337da5` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall( + name = "checkInvariant", + abi = "checkInvariant(uint64,int256,uint256,uint256,uint256)" + )] + pub struct CheckInvariantCall { + pub pool_id: u64, + pub invariant: ::ethers::core::types::I256, + pub reserve_x: ::ethers::core::types::U256, + pub reserve_y: ::ethers::core::types::U256, + pub timestamp: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `checkPool` function with signature `checkPool(uint64)` and selector `0xa68aaa41` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "checkPool", abi = "checkPool(uint64)")] + pub struct CheckPoolCall { + pub pool_id: u64, + } + ///Container type for all input parameters for the `checkPosition` function with signature `checkPosition(uint64,address,int256)` and selector `0x2cc6641e` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "checkPosition", abi = "checkPosition(uint64,address,int256)")] + pub struct CheckPositionCall { + pub pool_id: u64, + pub owner: ::ethers::core::types::Address, + pub delta: ::ethers::core::types::I256, + } + ///Container type for all input parameters for the `computeMaxInput` function with signature `computeMaxInput(uint64,bool,uint256,uint256)` and selector `0x989bafba` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall( + name = "computeMaxInput", + abi = "computeMaxInput(uint64,bool,uint256,uint256)" + )] + pub struct ComputeMaxInputCall { + pub pool_id: u64, + pub sell_asset: bool, + pub reserve_in: ::ethers::core::types::U256, + pub liquidity: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `computeReservesFromPrice` function with signature `computeReservesFromPrice(uint64,uint256)` and selector `0xc48d887a` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall( + name = "computeReservesFromPrice", + abi = "computeReservesFromPrice(uint64,uint256)" + )] + pub struct ComputeReservesFromPriceCall { + pub pool_id: u64, + pub price: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `deposit` function with signature `deposit()` and selector `0xd0e30db0` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "deposit", abi = "deposit()")] + pub struct DepositCall; + ///Container type for all input parameters for the `draw` function with signature `draw(address,uint256,address)` and selector `0xad24d6a0` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "draw", abi = "draw(address,uint256,address)")] + pub struct DrawCall { + pub token: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + pub to: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `fund` function with signature `fund(address,uint256)` and selector `0x7b1837de` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "fund", abi = "fund(address,uint256)")] + pub struct FundCall { + pub token: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `getAmountOut` function with signature `getAmountOut(uint64,bool,uint256)` and selector `0x7dae4890` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getAmountOut", abi = "getAmountOut(uint64,bool,uint256)")] + pub struct GetAmountOutCall { + pub pool_id: u64, + pub sell_asset: bool, + pub amount_in: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `getBalance` function with signature `getBalance(address,address)` and selector `0xd4fac45d` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getBalance", abi = "getBalance(address,address)")] + pub struct GetBalanceCall { + pub owner: ::ethers::core::types::Address, + pub token: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `getLiquidityDeltas` function with signature `getLiquidityDeltas(uint64,int128)` and selector `0x8992f20a` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getLiquidityDeltas", abi = "getLiquidityDeltas(uint64,int128)")] + pub struct GetLiquidityDeltasCall { + pub pool_id: u64, + pub delta_liquidity: i128, + } + ///Container type for all input parameters for the `getMaxLiquidity` function with signature `getMaxLiquidity(uint64,uint256,uint256)` and selector `0xd6b7dec5` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getMaxLiquidity", abi = "getMaxLiquidity(uint64,uint256,uint256)")] + pub struct GetMaxLiquidityCall { + pub pool_id: u64, + pub amount_0: ::ethers::core::types::U256, + pub amount_1: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `getNetBalance` function with signature `getNetBalance(address)` and selector `0x4dc68a90` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getNetBalance", abi = "getNetBalance(address)")] + pub struct GetNetBalanceCall { + pub token: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `getPairId` function with signature `getPairId(address,address)` and selector `0x3f92a339` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getPairId", abi = "getPairId(address,address)")] + pub struct GetPairIdCall( + pub ::ethers::core::types::Address, + pub ::ethers::core::types::Address, + ); + ///Container type for all input parameters for the `getPairNonce` function with signature `getPairNonce()` and selector `0x078888d6` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getPairNonce", abi = "getPairNonce()")] + pub struct GetPairNonceCall; + ///Container type for all input parameters for the `getPoolNonce` function with signature `getPoolNonce(uint24)` and selector `0xa5cd8a49` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getPoolNonce", abi = "getPoolNonce(uint24)")] + pub struct GetPoolNonceCall(pub u32); + ///Container type for all input parameters for the `getPoolReserves` function with signature `getPoolReserves(uint64)` and selector `0x2afb9df8` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getPoolReserves", abi = "getPoolReserves(uint64)")] + pub struct GetPoolReservesCall { + pub pool_id: u64, + } + ///Container type for all input parameters for the `getReserve` function with signature `getReserve(address)` and selector `0xc9a396e9` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getReserve", abi = "getReserve(address)")] + pub struct GetReserveCall { + pub token: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `getVirtualPrice` function with signature `getVirtualPrice(uint64)` and selector `0x61b7ea6a` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getVirtualPrice", abi = "getVirtualPrice(uint64)")] + pub struct GetVirtualPriceCall { + pub pool_id: u64, + } + ///Container type for all input parameters for the `getVirtualReservesPerLiquidity` function with signature `getVirtualReservesPerLiquidity(uint64)` and selector `0x1a4b905b` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall( + name = "getVirtualReservesPerLiquidity", + abi = "getVirtualReservesPerLiquidity(uint64)" + )] + pub struct GetVirtualReservesPerLiquidityCall { + pub pool_id: u64, + } + ///Container type for all input parameters for the `multiprocess` function with signature `multiprocess(bytes)` and selector `0xa0fdf413` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "multiprocess", abi = "multiprocess(bytes)")] + pub struct MultiprocessCall { + pub data: ::ethers::core::types::Bytes, + } + ///Container type for all input parameters for the `pairs` function with signature `pairs(uint24)` and selector `0x5e47663c` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "pairs", abi = "pairs(uint24)")] + pub struct PairsCall(pub u32); + ///Container type for all input parameters for the `pools` function with signature `pools(uint64)` and selector `0x89a5f084` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "pools", abi = "pools(uint64)")] + pub struct PoolsCall(pub u64); + ///Container type for all input parameters for the `positions` function with signature `positions(address,uint64)` and selector `0xb68513ea` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "positions", abi = "positions(address,uint64)")] + pub struct PositionsCall(pub ::ethers::core::types::Address, pub u64); + ///Container type for all input parameters for the `setProtocolFee` function with signature `setProtocolFee(uint256)` and selector `0x787dce3d` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "setProtocolFee", abi = "setProtocolFee(uint256)")] + pub struct SetProtocolFeeCall { + pub fee: ::ethers::core::types::U256, + } + ///Container type for all of the contract's call + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum RMM01PortfolioCalls { + Registry(RegistryCall), + Version(VersionCall), + Weth(WethCall), + Account(AccountCall), + ChangeParameters(ChangeParametersCall), + CheckInvariant(CheckInvariantCall), + CheckPool(CheckPoolCall), + CheckPosition(CheckPositionCall), + ComputeMaxInput(ComputeMaxInputCall), + ComputeReservesFromPrice(ComputeReservesFromPriceCall), + Deposit(DepositCall), + Draw(DrawCall), + Fund(FundCall), + GetAmountOut(GetAmountOutCall), + GetBalance(GetBalanceCall), + GetLiquidityDeltas(GetLiquidityDeltasCall), + GetMaxLiquidity(GetMaxLiquidityCall), + GetNetBalance(GetNetBalanceCall), + GetPairId(GetPairIdCall), + GetPairNonce(GetPairNonceCall), + GetPoolNonce(GetPoolNonceCall), + GetPoolReserves(GetPoolReservesCall), + GetReserve(GetReserveCall), + GetVirtualPrice(GetVirtualPriceCall), + GetVirtualReservesPerLiquidity(GetVirtualReservesPerLiquidityCall), + Multiprocess(MultiprocessCall), + Pairs(PairsCall), + Pools(PoolsCall), + Positions(PositionsCall), + SetProtocolFee(SetProtocolFeeCall), + } + impl ::ethers::core::abi::AbiDecode for RMM01PortfolioCalls { + fn decode( + data: impl AsRef<[u8]>, + ) -> ::core::result::Result { + let data = data.as_ref(); + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Registry(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Version(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Weth(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Account(decoded)); + } + if let Ok(decoded) + = ::decode( + data, + ) { + return Ok(Self::ChangeParameters(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::CheckInvariant(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::CheckPool(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::CheckPosition(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::ComputeMaxInput(decoded)); + } + if let Ok(decoded) + = ::decode( + data, + ) { + return Ok(Self::ComputeReservesFromPrice(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Deposit(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Draw(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Fund(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetAmountOut(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetBalance(decoded)); + } + if let Ok(decoded) + = ::decode( + data, + ) { + return Ok(Self::GetLiquidityDeltas(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetMaxLiquidity(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetNetBalance(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetPairId(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetPairNonce(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetPoolNonce(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetPoolReserves(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetReserve(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetVirtualPrice(decoded)); + } + if let Ok(decoded) + = ::decode( + data, + ) { + return Ok(Self::GetVirtualReservesPerLiquidity(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Multiprocess(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Pairs(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Pools(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Positions(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::SetProtocolFee(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData.into()) + } + } + impl ::ethers::core::abi::AbiEncode for RMM01PortfolioCalls { + fn encode(self) -> Vec { + match self { + Self::Registry(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Version(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Weth(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Account(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::ChangeParameters(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::CheckInvariant(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::CheckPool(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::CheckPosition(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::ComputeMaxInput(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::ComputeReservesFromPrice(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Deposit(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Draw(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Fund(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::GetAmountOut(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetBalance(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetLiquidityDeltas(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetMaxLiquidity(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetNetBalance(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetPairId(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetPairNonce(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetPoolNonce(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetPoolReserves(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetReserve(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetVirtualPrice(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetVirtualReservesPerLiquidity(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Multiprocess(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Pairs(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Pools(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Positions(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::SetProtocolFee(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + } + } + } + impl ::core::fmt::Display for RMM01PortfolioCalls { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::Registry(element) => ::core::fmt::Display::fmt(element, f), + Self::Version(element) => ::core::fmt::Display::fmt(element, f), + Self::Weth(element) => ::core::fmt::Display::fmt(element, f), + Self::Account(element) => ::core::fmt::Display::fmt(element, f), + Self::ChangeParameters(element) => ::core::fmt::Display::fmt(element, f), + Self::CheckInvariant(element) => ::core::fmt::Display::fmt(element, f), + Self::CheckPool(element) => ::core::fmt::Display::fmt(element, f), + Self::CheckPosition(element) => ::core::fmt::Display::fmt(element, f), + Self::ComputeMaxInput(element) => ::core::fmt::Display::fmt(element, f), + Self::ComputeReservesFromPrice(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::Deposit(element) => ::core::fmt::Display::fmt(element, f), + Self::Draw(element) => ::core::fmt::Display::fmt(element, f), + Self::Fund(element) => ::core::fmt::Display::fmt(element, f), + Self::GetAmountOut(element) => ::core::fmt::Display::fmt(element, f), + Self::GetBalance(element) => ::core::fmt::Display::fmt(element, f), + Self::GetLiquidityDeltas(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::GetMaxLiquidity(element) => ::core::fmt::Display::fmt(element, f), + Self::GetNetBalance(element) => ::core::fmt::Display::fmt(element, f), + Self::GetPairId(element) => ::core::fmt::Display::fmt(element, f), + Self::GetPairNonce(element) => ::core::fmt::Display::fmt(element, f), + Self::GetPoolNonce(element) => ::core::fmt::Display::fmt(element, f), + Self::GetPoolReserves(element) => ::core::fmt::Display::fmt(element, f), + Self::GetReserve(element) => ::core::fmt::Display::fmt(element, f), + Self::GetVirtualPrice(element) => ::core::fmt::Display::fmt(element, f), + Self::GetVirtualReservesPerLiquidity(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::Multiprocess(element) => ::core::fmt::Display::fmt(element, f), + Self::Pairs(element) => ::core::fmt::Display::fmt(element, f), + Self::Pools(element) => ::core::fmt::Display::fmt(element, f), + Self::Positions(element) => ::core::fmt::Display::fmt(element, f), + Self::SetProtocolFee(element) => ::core::fmt::Display::fmt(element, f), + } + } + } + impl ::core::convert::From for RMM01PortfolioCalls { + fn from(value: RegistryCall) -> Self { + Self::Registry(value) + } + } + impl ::core::convert::From for RMM01PortfolioCalls { + fn from(value: VersionCall) -> Self { + Self::Version(value) + } + } + impl ::core::convert::From for RMM01PortfolioCalls { + fn from(value: WethCall) -> Self { + Self::Weth(value) + } + } + impl ::core::convert::From for RMM01PortfolioCalls { + fn from(value: AccountCall) -> Self { + Self::Account(value) + } + } + impl ::core::convert::From for RMM01PortfolioCalls { + fn from(value: ChangeParametersCall) -> Self { + Self::ChangeParameters(value) + } + } + impl ::core::convert::From for RMM01PortfolioCalls { + fn from(value: CheckInvariantCall) -> Self { + Self::CheckInvariant(value) + } + } + impl ::core::convert::From for RMM01PortfolioCalls { + fn from(value: CheckPoolCall) -> Self { + Self::CheckPool(value) + } + } + impl ::core::convert::From for RMM01PortfolioCalls { + fn from(value: CheckPositionCall) -> Self { + Self::CheckPosition(value) + } + } + impl ::core::convert::From for RMM01PortfolioCalls { + fn from(value: ComputeMaxInputCall) -> Self { + Self::ComputeMaxInput(value) + } + } + impl ::core::convert::From for RMM01PortfolioCalls { + fn from(value: ComputeReservesFromPriceCall) -> Self { + Self::ComputeReservesFromPrice(value) + } + } + impl ::core::convert::From for RMM01PortfolioCalls { + fn from(value: DepositCall) -> Self { + Self::Deposit(value) + } + } + impl ::core::convert::From for RMM01PortfolioCalls { + fn from(value: DrawCall) -> Self { + Self::Draw(value) + } + } + impl ::core::convert::From for RMM01PortfolioCalls { + fn from(value: FundCall) -> Self { + Self::Fund(value) + } + } + impl ::core::convert::From for RMM01PortfolioCalls { + fn from(value: GetAmountOutCall) -> Self { + Self::GetAmountOut(value) + } + } + impl ::core::convert::From for RMM01PortfolioCalls { + fn from(value: GetBalanceCall) -> Self { + Self::GetBalance(value) + } + } + impl ::core::convert::From for RMM01PortfolioCalls { + fn from(value: GetLiquidityDeltasCall) -> Self { + Self::GetLiquidityDeltas(value) + } + } + impl ::core::convert::From for RMM01PortfolioCalls { + fn from(value: GetMaxLiquidityCall) -> Self { + Self::GetMaxLiquidity(value) + } + } + impl ::core::convert::From for RMM01PortfolioCalls { + fn from(value: GetNetBalanceCall) -> Self { + Self::GetNetBalance(value) + } + } + impl ::core::convert::From for RMM01PortfolioCalls { + fn from(value: GetPairIdCall) -> Self { + Self::GetPairId(value) + } + } + impl ::core::convert::From for RMM01PortfolioCalls { + fn from(value: GetPairNonceCall) -> Self { + Self::GetPairNonce(value) + } + } + impl ::core::convert::From for RMM01PortfolioCalls { + fn from(value: GetPoolNonceCall) -> Self { + Self::GetPoolNonce(value) + } + } + impl ::core::convert::From for RMM01PortfolioCalls { + fn from(value: GetPoolReservesCall) -> Self { + Self::GetPoolReserves(value) + } + } + impl ::core::convert::From for RMM01PortfolioCalls { + fn from(value: GetReserveCall) -> Self { + Self::GetReserve(value) + } + } + impl ::core::convert::From for RMM01PortfolioCalls { + fn from(value: GetVirtualPriceCall) -> Self { + Self::GetVirtualPrice(value) + } + } + impl ::core::convert::From + for RMM01PortfolioCalls { + fn from(value: GetVirtualReservesPerLiquidityCall) -> Self { + Self::GetVirtualReservesPerLiquidity(value) + } + } + impl ::core::convert::From for RMM01PortfolioCalls { + fn from(value: MultiprocessCall) -> Self { + Self::Multiprocess(value) + } + } + impl ::core::convert::From for RMM01PortfolioCalls { + fn from(value: PairsCall) -> Self { + Self::Pairs(value) + } + } + impl ::core::convert::From for RMM01PortfolioCalls { + fn from(value: PoolsCall) -> Self { + Self::Pools(value) + } + } + impl ::core::convert::From for RMM01PortfolioCalls { + fn from(value: PositionsCall) -> Self { + Self::Positions(value) + } + } + impl ::core::convert::From for RMM01PortfolioCalls { + fn from(value: SetProtocolFeeCall) -> Self { + Self::SetProtocolFee(value) + } + } + ///Container type for all return fields from the `REGISTRY` function with signature `REGISTRY()` and selector `0x06433b1b` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct RegistryReturn(pub ::ethers::core::types::Address); + ///Container type for all return fields from the `VERSION` function with signature `VERSION()` and selector `0xffa1ad74` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct VersionReturn(pub ::std::string::String); + ///Container type for all return fields from the `WETH` function with signature `WETH()` and selector `0xad5c4648` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct WethReturn(pub ::ethers::core::types::Address); + ///Container type for all return fields from the `__account__` function with signature `__account__()` and selector `0xda31ee54` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct AccountReturn { + pub settled: bool, + } + ///Container type for all return fields from the `checkInvariant` function with signature `checkInvariant(uint64,int256,uint256,uint256,uint256)` and selector `0x2f337da5` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct CheckInvariantReturn { + pub p0: bool, + pub next_invariant: ::ethers::core::types::I256, + } + ///Container type for all return fields from the `checkPool` function with signature `checkPool(uint64)` and selector `0xa68aaa41` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct CheckPoolReturn(pub bool); + ///Container type for all return fields from the `checkPosition` function with signature `checkPosition(uint64,address,int256)` and selector `0x2cc6641e` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct CheckPositionReturn(pub bool); + ///Container type for all return fields from the `computeMaxInput` function with signature `computeMaxInput(uint64,bool,uint256,uint256)` and selector `0x989bafba` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct ComputeMaxInputReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `computeReservesFromPrice` function with signature `computeReservesFromPrice(uint64,uint256)` and selector `0xc48d887a` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct ComputeReservesFromPriceReturn { + pub reserve_x: ::ethers::core::types::U256, + pub reserve_y: ::ethers::core::types::U256, + } + ///Container type for all return fields from the `getAmountOut` function with signature `getAmountOut(uint64,bool,uint256)` and selector `0x7dae4890` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetAmountOutReturn { + pub output: ::ethers::core::types::U256, + } + ///Container type for all return fields from the `getBalance` function with signature `getBalance(address,address)` and selector `0xd4fac45d` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetBalanceReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `getLiquidityDeltas` function with signature `getLiquidityDeltas(uint64,int128)` and selector `0x8992f20a` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetLiquidityDeltasReturn { + pub delta_asset: u128, + pub delta_quote: u128, + } + ///Container type for all return fields from the `getMaxLiquidity` function with signature `getMaxLiquidity(uint64,uint256,uint256)` and selector `0xd6b7dec5` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetMaxLiquidityReturn { + pub delta_liquidity: u128, + } + ///Container type for all return fields from the `getNetBalance` function with signature `getNetBalance(address)` and selector `0x4dc68a90` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetNetBalanceReturn(pub ::ethers::core::types::I256); + ///Container type for all return fields from the `getPairId` function with signature `getPairId(address,address)` and selector `0x3f92a339` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetPairIdReturn(pub u32); + ///Container type for all return fields from the `getPairNonce` function with signature `getPairNonce()` and selector `0x078888d6` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetPairNonceReturn(pub u32); + ///Container type for all return fields from the `getPoolNonce` function with signature `getPoolNonce(uint24)` and selector `0xa5cd8a49` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetPoolNonceReturn(pub u32); + ///Container type for all return fields from the `getPoolReserves` function with signature `getPoolReserves(uint64)` and selector `0x2afb9df8` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetPoolReservesReturn { + pub delta_asset: ::ethers::core::types::U256, + pub delta_quote: ::ethers::core::types::U256, + } + ///Container type for all return fields from the `getReserve` function with signature `getReserve(address)` and selector `0xc9a396e9` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetReserveReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `getVirtualPrice` function with signature `getVirtualPrice(uint64)` and selector `0x61b7ea6a` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetVirtualPriceReturn { + pub price: ::ethers::core::types::U256, + } + ///Container type for all return fields from the `getVirtualReservesPerLiquidity` function with signature `getVirtualReservesPerLiquidity(uint64)` and selector `0x1a4b905b` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetVirtualReservesPerLiquidityReturn { + pub delta_asset: u128, + pub delta_quote: u128, + } + ///Container type for all return fields from the `pairs` function with signature `pairs(uint24)` and selector `0x5e47663c` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct PairsReturn { + pub token_asset: ::ethers::core::types::Address, + pub decimals_asset: u8, + pub token_quote: ::ethers::core::types::Address, + pub decimals_quote: u8, + } + ///Container type for all return fields from the `pools` function with signature `pools(uint64)` and selector `0x89a5f084` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct PoolsReturn { + pub virtual_x: u128, + pub virtual_y: u128, + pub liquidity: u128, + pub last_timestamp: u32, + pub controller: ::ethers::core::types::Address, + pub invariant_growth_global: ::ethers::core::types::U256, + pub fee_growth_global_asset: ::ethers::core::types::U256, + pub fee_growth_global_quote: ::ethers::core::types::U256, + pub params: PortfolioCurve, + pub pair: PortfolioPair, + } + ///Container type for all return fields from the `positions` function with signature `positions(address,uint64)` and selector `0xb68513ea` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct PositionsReturn { + pub free_liquidity: u128, + pub last_timestamp: u32, + pub invariant_growth_last: ::ethers::core::types::U256, + pub fee_growth_asset_last: ::ethers::core::types::U256, + pub fee_growth_quote_last: ::ethers::core::types::U256, + pub tokens_owed_asset: u128, + pub tokens_owed_quote: u128, + pub invariant_owed: u128, + } +} diff --git a/crates/bindings/src/safe_cast_lib.rs b/crates/bindings/src/safe_cast_lib.rs new file mode 100644 index 00000000..70213f75 --- /dev/null +++ b/crates/bindings/src/safe_cast_lib.rs @@ -0,0 +1,342 @@ +pub use safe_cast_lib::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod safe_cast_lib { + #[rustfmt::skip] + const __ABI: &str = "[]"; + ///The parsed JSON ABI of the contract. + pub static SAFECASTLIB_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| + ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); + #[rustfmt::skip] + const __BYTECODE: &[u8] = &[ + 96, + 86, + 96, + 55, + 96, + 11, + 130, + 130, + 130, + 57, + 128, + 81, + 96, + 0, + 26, + 96, + 115, + 20, + 96, + 42, + 87, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 0, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 48, + 96, + 0, + 82, + 96, + 115, + 129, + 83, + 130, + 129, + 243, + 254, + 115, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 48, + 20, + 96, + 128, + 96, + 64, + 82, + 96, + 0, + 128, + 253, + 254, + 162, + 100, + 105, + 112, + 102, + 115, + 88, + 34, + 18, + 32, + 144, + 241, + 46, + 211, + 193, + 142, + 242, + 140, + 191, + 246, + 54, + 108, + 169, + 239, + 100, + 3, + 225, + 42, + 159, + 55, + 100, + 129, + 107, + 129, + 229, + 84, + 107, + 126, + 180, + 210, + 176, + 21, + 100, + 115, + 111, + 108, + 99, + 67, + 0, + 8, + 13, + 0, + 51, + ]; + ///The bytecode of the contract. + pub static SAFECASTLIB_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __BYTECODE, + ); + #[rustfmt::skip] + const __DEPLOYED_BYTECODE: &[u8] = &[ + 115, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 48, + 20, + 96, + 128, + 96, + 64, + 82, + 96, + 0, + 128, + 253, + 254, + 162, + 100, + 105, + 112, + 102, + 115, + 88, + 34, + 18, + 32, + 144, + 241, + 46, + 211, + 193, + 142, + 242, + 140, + 191, + 246, + 54, + 108, + 169, + 239, + 100, + 3, + 225, + 42, + 159, + 55, + 100, + 129, + 107, + 129, + 229, + 84, + 107, + 126, + 180, + 210, + 176, + 21, + 100, + 115, + 111, + 108, + 99, + 67, + 0, + 8, + 13, + 0, + 51, + ]; + ///The deployed bytecode of the contract. + pub static SAFECASTLIB_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __DEPLOYED_BYTECODE, + ); + pub struct SafeCastLib(::ethers::contract::Contract); + impl ::core::clone::Clone for SafeCastLib { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for SafeCastLib { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for SafeCastLib { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for SafeCastLib { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(stringify!(SafeCastLib)).field(&self.address()).finish() + } + } + impl SafeCastLib { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + SAFECASTLIB_ABI.clone(), + client, + ), + ) + } + /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. + /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction + /// + /// Notes: + /// - If there are no constructor arguments, you should pass `()` as the argument. + /// - The default poll duration is 7 seconds. + /// - The default number of confirmations is 1 block. + /// + /// + /// # Example + /// + /// Generate contract bindings with `abigen!` and deploy a new contract instance. + /// + /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. + /// + /// ```ignore + /// # async fn deploy(client: ::std::sync::Arc) { + /// abigen!(Greeter, "../greeter.json"); + /// + /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); + /// let msg = greeter_contract.greet().call().await.unwrap(); + /// # } + /// ``` + pub fn deploy( + client: ::std::sync::Arc, + constructor_args: T, + ) -> ::core::result::Result< + ::ethers::contract::builders::ContractDeployer, + ::ethers::contract::ContractError, + > { + let factory = ::ethers::contract::ContractFactory::new( + SAFECASTLIB_ABI.clone(), + SAFECASTLIB_BYTECODE.clone().into(), + client, + ); + let deployer = factory.deploy(constructor_args)?; + let deployer = ::ethers::contract::ContractDeployer::new(deployer); + Ok(deployer) + } + } + impl From<::ethers::contract::Contract> + for SafeCastLib { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } +} diff --git a/crates/bindings/src/safe_transfer_lib.rs b/crates/bindings/src/safe_transfer_lib.rs new file mode 100644 index 00000000..588893c4 --- /dev/null +++ b/crates/bindings/src/safe_transfer_lib.rs @@ -0,0 +1,342 @@ +pub use safe_transfer_lib::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod safe_transfer_lib { + #[rustfmt::skip] + const __ABI: &str = "[]"; + ///The parsed JSON ABI of the contract. + pub static SAFETRANSFERLIB_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| + ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); + #[rustfmt::skip] + const __BYTECODE: &[u8] = &[ + 96, + 86, + 96, + 55, + 96, + 11, + 130, + 130, + 130, + 57, + 128, + 81, + 96, + 0, + 26, + 96, + 115, + 20, + 96, + 42, + 87, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 0, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 48, + 96, + 0, + 82, + 96, + 115, + 129, + 83, + 130, + 129, + 243, + 254, + 115, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 48, + 20, + 96, + 128, + 96, + 64, + 82, + 96, + 0, + 128, + 253, + 254, + 162, + 100, + 105, + 112, + 102, + 115, + 88, + 34, + 18, + 32, + 218, + 171, + 27, + 243, + 76, + 51, + 176, + 35, + 130, + 133, + 83, + 89, + 119, + 241, + 222, + 130, + 95, + 14, + 31, + 82, + 35, + 227, + 53, + 188, + 244, + 129, + 119, + 126, + 163, + 0, + 126, + 59, + 100, + 115, + 111, + 108, + 99, + 67, + 0, + 8, + 13, + 0, + 51, + ]; + ///The bytecode of the contract. + pub static SAFETRANSFERLIB_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __BYTECODE, + ); + #[rustfmt::skip] + const __DEPLOYED_BYTECODE: &[u8] = &[ + 115, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 48, + 20, + 96, + 128, + 96, + 64, + 82, + 96, + 0, + 128, + 253, + 254, + 162, + 100, + 105, + 112, + 102, + 115, + 88, + 34, + 18, + 32, + 218, + 171, + 27, + 243, + 76, + 51, + 176, + 35, + 130, + 133, + 83, + 89, + 119, + 241, + 222, + 130, + 95, + 14, + 31, + 82, + 35, + 227, + 53, + 188, + 244, + 129, + 119, + 126, + 163, + 0, + 126, + 59, + 100, + 115, + 111, + 108, + 99, + 67, + 0, + 8, + 13, + 0, + 51, + ]; + ///The deployed bytecode of the contract. + pub static SAFETRANSFERLIB_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __DEPLOYED_BYTECODE, + ); + pub struct SafeTransferLib(::ethers::contract::Contract); + impl ::core::clone::Clone for SafeTransferLib { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for SafeTransferLib { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for SafeTransferLib { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for SafeTransferLib { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(stringify!(SafeTransferLib)).field(&self.address()).finish() + } + } + impl SafeTransferLib { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + SAFETRANSFERLIB_ABI.clone(), + client, + ), + ) + } + /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. + /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction + /// + /// Notes: + /// - If there are no constructor arguments, you should pass `()` as the argument. + /// - The default poll duration is 7 seconds. + /// - The default number of confirmations is 1 block. + /// + /// + /// # Example + /// + /// Generate contract bindings with `abigen!` and deploy a new contract instance. + /// + /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. + /// + /// ```ignore + /// # async fn deploy(client: ::std::sync::Arc) { + /// abigen!(Greeter, "../greeter.json"); + /// + /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); + /// let msg = greeter_contract.greet().call().await.unwrap(); + /// # } + /// ``` + pub fn deploy( + client: ::std::sync::Arc, + constructor_args: T, + ) -> ::core::result::Result< + ::ethers::contract::builders::ContractDeployer, + ::ethers::contract::ContractError, + > { + let factory = ::ethers::contract::ContractFactory::new( + SAFETRANSFERLIB_ABI.clone(), + SAFETRANSFERLIB_BYTECODE.clone().into(), + client, + ); + let deployer = factory.deploy(constructor_args)?; + let deployer = ::ethers::contract::ContractDeployer::new(deployer); + Ok(deployer) + } + } + impl From<::ethers::contract::Contract> + for SafeTransferLib { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } +} diff --git a/crates/bindings/src/shared_types.rs b/crates/bindings/src/shared_types.rs new file mode 100644 index 00000000..5d252557 --- /dev/null +++ b/crates/bindings/src/shared_types.rs @@ -0,0 +1,38 @@ +///`PortfolioCurve(uint128,uint16,uint16,uint16,uint16,uint16,uint32,bool)` +#[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash +)] +pub struct PortfolioCurve { + pub max_price: u128, + pub jit: u16, + pub fee: u16, + pub duration: u16, + pub volatility: u16, + pub priority_fee: u16, + pub created_at: u32, + pub perpetual: bool, +} +///`PortfolioPair(address,uint8,address,uint8)` +#[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash +)] +pub struct PortfolioPair { + pub token_asset: ::ethers::core::types::Address, + pub decimals_asset: u8, + pub token_quote: ::ethers::core::types::Address, + pub decimals_quote: u8, +} diff --git a/crates/bindings/src/bar.rs b/crates/bindings/src/simple_registry.rs similarity index 57% rename from crates/bindings/src/bar.rs rename to crates/bindings/src/simple_registry.rs index 81ff6695..629c0624 100644 --- a/crates/bindings/src/bar.rs +++ b/crates/bindings/src/simple_registry.rs @@ -1,4 +1,4 @@ -pub use bar::*; +pub use simple_registry::*; /// This module was auto-generated with ethers-rs Abigen. /// More information at: #[allow( @@ -9,11 +9,11 @@ pub use bar::*; dead_code, non_camel_case_types, )] -pub mod bar { +pub mod simple_registry { #[rustfmt::skip] - const __ABI: &str = "[{\"inputs\":[],\"stateMutability\":\"payable\",\"type\":\"constructor\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"expectedSender\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"bar\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"expectedSender\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"origin\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"expectedSender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"expectedOrigin\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"origin\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]}]"; + const __ABI: &str = "[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"portfolio\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"claimFee\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"controller\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"portfolio\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"setFee\",\"outputs\":[]}]"; ///The parsed JSON ABI of the contract. - pub static BAR_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| + pub static SIMPLEREGISTRY_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); #[rustfmt::skip] const __BYTECODE: &[u8] = &[ @@ -21,48 +21,45 @@ pub mod bar { 128, 96, 64, - 144, - 129, 82, - 105, - 2, - 30, - 25, - 224, - 201, - 186, - 178, - 64, + 52, + 128, + 21, + 97, + 0, + 16, + 87, + 96, 0, + 128, + 253, + 91, + 80, + 96, 0, + 128, + 84, 96, 1, - 129, - 144, - 85, - 48, 96, - 0, - 144, - 129, - 82, + 1, 96, - 32, - 129, - 144, - 82, - 145, + 160, + 27, + 3, + 25, + 22, + 51, + 23, 144, - 145, - 32, 85, 97, 2, - 126, + 166, 128, 97, 0, - 53, + 50, 96, 0, 57, @@ -75,13 +72,26 @@ pub mod bar { 96, 64, 82, + 52, + 128, + 21, + 97, + 0, + 16, + 87, + 96, + 0, + 128, + 253, + 91, + 80, 96, 4, 54, 16, 97, 0, - 74, + 65, 87, 96, 0, @@ -91,58 +101,36 @@ pub mod bar { 28, 128, 99, - 24, - 22, - 13, - 221, - 20, - 97, - 0, - 79, - 87, - 128, - 99, - 85, - 89, - 100, - 119, - 20, - 97, - 0, - 119, - 87, - 128, - 99, - 100, - 110, - 165, - 109, + 44, + 252, + 244, + 35, 20, 97, 0, - 140, + 70, 87, 128, 99, - 112, - 160, - 130, - 49, + 229, + 81, + 86, + 181, 20, 97, 0, - 159, + 91, 87, 128, 99, - 169, - 178, - 226, - 138, + 247, + 124, + 71, + 145, 20, 97, 0, - 204, + 110, 87, 91, 96, @@ -150,151 +138,68 @@ pub mod bar { 128, 253, 91, - 52, - 128, - 21, 97, 0, - 91, - 87, - 96, - 0, - 128, - 253, - 91, - 80, + 89, 97, 0, - 101, - 96, - 1, 84, - 129, - 86, - 91, - 96, - 64, - 81, - 144, - 129, - 82, - 96, - 32, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 243, - 91, - 97, - 0, - 138, - 97, - 0, - 133, 54, 96, 4, 97, 1, - 211, + 249, 86, 91, 97, 0, - 223, + 157, 86, 91, 0, 91, 97, 0, - 138, + 89, 97, 0, - 154, + 105, 54, 96, 4, 97, - 1, - 211, + 2, + 70, 86, 91, 97, 1, - 59, + 70, 86, 91, - 52, - 128, - 21, - 97, - 0, - 171, - 87, 96, 0, - 128, - 253, - 91, - 80, - 97, - 0, - 101, + 84, 97, 0, - 186, - 54, + 129, + 144, 96, - 4, - 97, 1, - 211, - 86, - 91, 96, - 0, - 96, - 32, - 129, - 144, - 82, - 144, - 129, - 82, + 1, 96, - 64, - 144, - 32, - 84, + 160, + 27, + 3, + 22, 129, 86, 91, - 97, - 0, - 138, - 97, - 0, - 218, - 54, 96, - 4, - 97, - 1, - 245, - 86, - 91, - 97, - 1, - 99, - 86, - 91, - 51, + 64, + 81, 96, 1, 96, @@ -303,37 +208,14 @@ pub mod bar { 160, 27, 3, - 130, + 144, + 145, 22, - 20, - 97, - 1, - 16, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, 129, 82, 96, - 4, - 1, - 97, + 32, 1, - 7, - 144, - 97, - 2, - 40, - 86, - 91, 96, 64, 81, @@ -341,9 +223,13 @@ pub mod bar { 145, 3, 144, - 253, + 243, 91, - 50, + 96, + 0, + 128, + 84, + 48, 96, 1, 96, @@ -352,81 +238,167 @@ pub mod bar { 160, 27, 3, + 25, 130, 22, - 20, - 97, - 1, - 56, - 87, + 23, + 144, + 145, + 85, 96, 64, 81, - 98, - 70, - 27, - 205, + 99, + 5, + 105, + 38, + 181, 96, 229, 27, 129, 82, 96, - 4, 1, - 97, + 96, 1, - 7, - 144, - 97, - 2, - 40, - 86, - 91, - 80, - 86, - 91, - 51, 96, + 160, + 27, + 3, + 133, + 129, + 22, + 96, + 4, + 131, 1, + 82, 96, + 36, + 130, 1, + 133, + 144, + 82, + 131, + 129, + 22, 96, - 160, - 27, - 3, + 68, + 131, + 1, + 82, + 145, 130, 22, - 20, - 97, + 145, + 134, + 22, + 144, + 99, + 173, + 36, + 214, + 160, + 144, + 96, + 100, 1, - 56, - 87, + 96, + 0, 96, 64, 81, - 98, - 70, + 128, + 131, + 3, + 129, + 96, + 0, + 135, + 128, + 59, + 21, + 128, + 21, + 97, + 1, + 7, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 90, + 241, + 21, + 128, + 21, + 97, + 1, 27, - 205, + 87, + 61, 96, - 229, + 0, + 128, + 62, + 61, + 96, + 0, + 253, + 91, + 80, + 80, + 96, + 0, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 160, 27, - 129, - 82, + 3, + 25, + 22, 96, - 4, 1, - 97, + 96, 1, - 7, + 96, + 160, + 27, + 3, + 148, 144, - 97, - 2, - 40, + 148, + 22, + 147, + 144, + 147, + 23, + 144, + 146, + 85, + 80, + 80, + 80, + 80, + 80, + 80, 86, 91, - 51, + 96, + 0, + 128, + 84, + 48, 96, 1, 96, @@ -435,38 +407,33 @@ pub mod bar { 160, 27, 3, - 131, + 25, + 130, 22, - 20, - 97, - 1, - 139, - 87, + 23, + 144, + 145, + 85, 96, 64, 81, - 98, - 70, - 27, - 205, + 99, + 120, + 125, + 206, + 61, 96, - 229, + 224, 27, 129, 82, 96, 4, + 129, 1, - 97, - 1, - 7, + 131, 144, - 97, - 2, - 40, - 86, - 91, - 50, + 82, 96, 1, 96, @@ -475,39 +442,107 @@ pub mod bar { 160, 27, 3, + 145, 130, 22, - 20, - 97, + 145, + 132, + 22, + 144, + 99, + 120, + 125, + 206, + 61, + 144, + 96, + 36, 1, - 179, - 87, + 96, + 0, 96, 64, 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, + 128, + 131, + 3, 129, - 82, 96, - 4, - 1, + 0, + 135, + 128, + 59, + 21, + 128, + 21, 97, 1, - 7, - 144, + 160, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 90, + 241, + 21, + 128, + 21, 97, - 2, - 40, - 86, + 1, + 180, + 87, + 61, + 96, + 0, + 128, + 62, + 61, + 96, + 0, + 253, 91, 80, 80, + 96, + 0, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 25, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 148, + 144, + 148, + 22, + 147, + 144, + 147, + 23, + 144, + 146, + 85, + 80, + 80, + 80, + 80, 86, 91, 128, @@ -526,7 +561,7 @@ pub mod bar { 20, 97, 1, - 206, + 244, 87, 96, 0, @@ -540,16 +575,20 @@ pub mod bar { 91, 96, 0, + 128, 96, - 32, - 130, - 132, - 3, + 0, + 128, + 96, + 128, + 133, + 135, + 3, 18, 21, 97, - 1, - 229, + 2, + 15, 87, 96, 0, @@ -557,18 +596,57 @@ pub mod bar { 253, 91, 97, - 1, - 238, - 130, + 2, + 24, + 133, 97, 1, - 183, + 221, 86, 91, 147, + 80, + 97, + 2, + 38, + 96, + 32, + 134, + 1, + 97, + 1, + 221, + 86, + 91, 146, 80, + 96, + 64, + 133, + 1, + 53, + 145, + 80, + 97, + 2, + 59, + 96, + 96, + 134, + 1, + 97, + 1, + 221, + 86, + 91, + 144, + 80, + 146, + 149, + 145, + 148, 80, + 146, 80, 86, 91, @@ -584,7 +662,7 @@ pub mod bar { 21, 97, 2, - 8, + 89, 87, 96, 0, @@ -593,67 +671,26 @@ pub mod bar { 91, 97, 2, - 17, + 98, 131, 97, 1, - 183, + 221, 86, 91, - 145, - 80, - 97, - 2, - 31, + 148, 96, 32, - 132, - 1, - 97, - 1, - 183, - 86, - 91, + 147, 144, + 147, + 1, + 53, + 147, 80, - 146, 80, - 146, - 144, 80, 86, - 91, - 96, - 32, - 128, - 130, - 82, - 96, - 6, - 144, - 130, - 1, - 82, - 101, - 33, - 112, - 114, - 97, - 110, - 107, - 96, - 208, - 27, - 96, - 64, - 130, - 1, - 82, - 96, - 96, - 1, - 144, - 86, 254, 162, 100, @@ -665,38 +702,38 @@ pub mod bar { 34, 18, 32, - 97, - 162, - 134, - 97, - 96, - 54, - 97, - 233, - 220, - 31, - 84, - 111, - 125, - 76, - 120, - 178, - 96, - 39, - 159, - 107, - 144, - 61, + 21, + 217, + 237, + 218, + 27, + 174, + 172, + 172, + 165, + 161, + 199, + 237, + 35, + 147, + 16, + 93, + 94, + 69, + 86, + 16, 255, - 202, - 188, - 102, - 190, - 48, - 17, - 29, - 248, - 17, + 152, + 130, + 13, + 101, + 197, + 27, + 148, + 90, + 35, + 181, + 179, 100, 115, 111, @@ -705,12 +742,12 @@ pub mod bar { 67, 0, 8, - 19, + 13, 0, 51, ]; ///The bytecode of the contract. - pub static BAR_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + pub static SIMPLEREGISTRY_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( __BYTECODE, ); #[rustfmt::skip] @@ -720,13 +757,26 @@ pub mod bar { 96, 64, 82, + 52, + 128, + 21, + 97, + 0, + 16, + 87, + 96, + 0, + 128, + 253, + 91, + 80, 96, 4, 54, 16, 97, 0, - 74, + 65, 87, 96, 0, @@ -736,58 +786,36 @@ pub mod bar { 28, 128, 99, - 24, - 22, - 13, - 221, - 20, - 97, - 0, - 79, - 87, - 128, - 99, - 85, - 89, - 100, - 119, - 20, - 97, - 0, - 119, - 87, - 128, - 99, - 100, - 110, - 165, - 109, + 44, + 252, + 244, + 35, 20, 97, 0, - 140, + 70, 87, 128, 99, - 112, - 160, - 130, - 49, + 229, + 81, + 86, + 181, 20, 97, 0, - 159, + 91, 87, 128, 99, - 169, - 178, - 226, - 138, + 247, + 124, + 71, + 145, 20, 97, 0, - 204, + 110, 87, 91, 96, @@ -795,151 +823,98 @@ pub mod bar { 128, 253, 91, - 52, - 128, - 21, 97, 0, - 91, - 87, - 96, - 0, - 128, - 253, - 91, - 80, + 89, 97, 0, - 101, - 96, - 1, 84, - 129, - 86, - 91, - 96, - 64, - 81, - 144, - 129, - 82, - 96, - 32, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 243, - 91, - 97, - 0, - 138, - 97, - 0, - 133, 54, 96, 4, 97, 1, - 211, + 249, 86, 91, 97, 0, - 223, + 157, 86, 91, 0, 91, 97, 0, - 138, + 89, 97, 0, - 154, + 105, 54, 96, 4, 97, - 1, - 211, + 2, + 70, 86, 91, 97, 1, - 59, + 70, 86, 91, - 52, - 128, - 21, - 97, - 0, - 171, - 87, 96, 0, - 128, - 253, - 91, - 80, - 97, - 0, - 101, + 84, 97, 0, - 186, - 54, + 129, + 144, + 96, + 1, 96, - 4, - 97, 1, - 211, + 96, + 160, + 27, + 3, + 22, + 129, 86, 91, 96, - 0, + 64, + 81, 96, - 32, - 129, - 144, - 82, + 1, + 96, + 1, + 96, + 160, + 27, + 3, 144, + 145, + 22, 129, 82, 96, + 32, + 1, + 96, 64, + 81, + 128, + 145, + 3, 144, - 32, - 84, - 129, - 86, + 243, 91, - 97, - 0, - 138, - 97, - 0, - 218, - 54, 96, - 4, - 97, - 1, - 245, - 86, - 91, - 97, - 1, - 99, - 86, - 91, - 51, + 0, + 128, + 84, + 48, 96, 1, 96, @@ -948,47 +923,125 @@ pub mod bar { 160, 27, 3, + 25, 130, 22, - 20, - 97, - 1, - 16, - 87, + 23, + 144, + 145, + 85, 96, 64, 81, - 98, - 70, - 27, - 205, + 99, + 5, + 105, + 38, + 181, 96, 229, 27, 129, 82, 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 133, + 129, + 22, + 96, 4, + 131, 1, - 97, + 82, + 96, + 36, + 130, 1, - 7, + 133, 144, - 97, - 2, - 40, - 86, - 91, + 82, + 131, + 129, + 22, + 96, + 68, + 131, + 1, + 82, + 145, + 130, + 22, + 145, + 134, + 22, + 144, + 99, + 173, + 36, + 214, + 160, + 144, + 96, + 100, + 1, + 96, + 0, 96, 64, 81, 128, - 145, + 131, 3, - 144, + 129, + 96, + 0, + 135, + 128, + 59, + 21, + 128, + 21, + 97, + 1, + 7, + 87, + 96, + 0, + 128, 253, 91, - 50, + 80, + 90, + 241, + 21, + 128, + 21, + 97, + 1, + 27, + 87, + 61, + 96, + 0, + 128, + 62, + 61, + 96, + 0, + 253, + 91, + 80, + 80, + 96, + 0, + 128, + 84, 96, 1, 96, @@ -997,41 +1050,40 @@ pub mod bar { 160, 27, 3, - 130, + 25, 22, - 20, - 97, + 96, 1, - 56, - 87, 96, - 64, - 81, - 98, - 70, - 27, - 205, + 1, 96, - 229, + 160, 27, - 129, - 82, - 96, - 4, - 1, - 97, - 1, - 7, + 3, + 148, 144, - 97, - 2, - 40, - 86, - 91, + 148, + 22, + 147, + 144, + 147, + 23, + 144, + 146, + 85, + 80, + 80, + 80, + 80, + 80, 80, 86, 91, - 51, + 96, + 0, + 128, + 84, + 48, 96, 1, 96, @@ -1040,38 +1092,33 @@ pub mod bar { 160, 27, 3, + 25, 130, 22, - 20, - 97, - 1, - 56, - 87, + 23, + 144, + 145, + 85, 96, 64, 81, - 98, - 70, - 27, - 205, + 99, + 120, + 125, + 206, + 61, 96, - 229, + 224, 27, 129, 82, 96, 4, + 129, 1, - 97, - 1, - 7, + 131, 144, - 97, - 2, - 40, - 86, - 91, - 51, + 82, 96, 1, 96, @@ -1080,38 +1127,74 @@ pub mod bar { 160, 27, 3, - 131, + 145, + 130, 22, - 20, + 145, + 132, + 22, + 144, + 99, + 120, + 125, + 206, + 61, + 144, + 96, + 36, + 1, + 96, + 0, + 96, + 64, + 81, + 128, + 131, + 3, + 129, + 96, + 0, + 135, + 128, + 59, + 21, + 128, + 21, + 97, + 1, + 160, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 90, + 241, + 21, + 128, + 21, 97, 1, - 139, + 180, 87, + 61, 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, + 0, + 128, + 62, + 61, 96, - 4, - 1, - 97, - 1, - 7, - 144, - 97, - 2, - 40, - 86, + 0, + 253, 91, - 50, + 80, + 80, + 96, + 0, + 128, + 84, 96, 1, 96, @@ -1120,37 +1203,29 @@ pub mod bar { 160, 27, 3, - 130, + 25, 22, - 20, - 97, + 96, 1, - 179, - 87, 96, - 64, - 81, - 98, - 70, - 27, - 205, + 1, 96, - 229, + 160, 27, - 129, - 82, - 96, - 4, - 1, - 97, - 1, - 7, + 3, + 148, 144, - 97, - 2, - 40, - 86, - 91, + 148, + 22, + 147, + 144, + 147, + 23, + 144, + 146, + 85, + 80, + 80, 80, 80, 86, @@ -1171,7 +1246,7 @@ pub mod bar { 20, 97, 1, - 206, + 244, 87, 96, 0, @@ -1185,16 +1260,20 @@ pub mod bar { 91, 96, 0, + 128, + 96, + 0, + 128, 96, - 32, - 130, - 132, + 128, + 133, + 135, 3, 18, 21, 97, - 1, - 229, + 2, + 15, 87, 96, 0, @@ -1202,18 +1281,57 @@ pub mod bar { 253, 91, 97, - 1, - 238, - 130, + 2, + 24, + 133, 97, 1, - 183, + 221, 86, 91, 147, + 80, + 97, + 2, + 38, + 96, + 32, + 134, + 1, + 97, + 1, + 221, + 86, + 91, 146, 80, + 96, + 64, + 133, + 1, + 53, + 145, + 80, + 97, + 2, + 59, + 96, + 96, + 134, + 1, + 97, + 1, + 221, + 86, + 91, + 144, + 80, + 146, + 149, + 145, + 148, 80, + 146, 80, 86, 91, @@ -1229,7 +1347,7 @@ pub mod bar { 21, 97, 2, - 8, + 89, 87, 96, 0, @@ -1238,67 +1356,26 @@ pub mod bar { 91, 97, 2, - 17, + 98, 131, 97, 1, - 183, + 221, 86, 91, - 145, - 80, - 97, - 2, - 31, + 148, 96, 32, - 132, - 1, - 97, - 1, - 183, - 86, - 91, + 147, 144, + 147, + 1, + 53, + 147, 80, - 146, 80, - 146, - 144, 80, 86, - 91, - 96, - 32, - 128, - 130, - 82, - 96, - 6, - 144, - 130, - 1, - 82, - 101, - 33, - 112, - 114, - 97, - 110, - 107, - 96, - 208, - 27, - 96, - 64, - 130, - 1, - 82, - 96, - 96, - 1, - 144, - 86, 254, 162, 100, @@ -1310,38 +1387,38 @@ pub mod bar { 34, 18, 32, - 97, - 162, - 134, - 97, - 96, - 54, - 97, - 233, - 220, - 31, - 84, - 111, - 125, - 76, - 120, - 178, - 96, - 39, - 159, - 107, - 144, - 61, + 21, + 217, + 237, + 218, + 27, + 174, + 172, + 172, + 165, + 161, + 199, + 237, + 35, + 147, + 16, + 93, + 94, + 69, + 86, + 16, 255, - 202, - 188, - 102, - 190, - 48, - 17, - 29, - 248, - 17, + 152, + 130, + 13, + 101, + 197, + 27, + 148, + 90, + 35, + 181, + 179, 100, 115, 111, @@ -1350,37 +1427,37 @@ pub mod bar { 67, 0, 8, - 19, + 13, 0, 51, ]; ///The deployed bytecode of the contract. - pub static BAR_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + pub static SIMPLEREGISTRY_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( __DEPLOYED_BYTECODE, ); - pub struct Bar(::ethers::contract::Contract); - impl ::core::clone::Clone for Bar { + pub struct SimpleRegistry(::ethers::contract::Contract); + impl ::core::clone::Clone for SimpleRegistry { fn clone(&self) -> Self { Self(::core::clone::Clone::clone(&self.0)) } } - impl ::core::ops::Deref for Bar { + impl ::core::ops::Deref for SimpleRegistry { type Target = ::ethers::contract::Contract; fn deref(&self) -> &Self::Target { &self.0 } } - impl ::core::ops::DerefMut for Bar { + impl ::core::ops::DerefMut for SimpleRegistry { fn deref_mut(&mut self) -> &mut Self::Target { &mut self.0 } } - impl ::core::fmt::Debug for Bar { + impl ::core::fmt::Debug for SimpleRegistry { fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(stringify!(Bar)).field(&self.address()).finish() + f.debug_tuple(stringify!(SimpleRegistry)).field(&self.address()).finish() } } - impl Bar { + impl SimpleRegistry { /// Creates a new contract instance with the specified `ethers` client at /// `address`. The contract derefs to a `ethers::Contract` object. pub fn new>( @@ -1390,7 +1467,7 @@ pub mod bar { Self( ::ethers::contract::Contract::new( address.into(), - BAR_ABI.clone(), + SIMPLEREGISTRY_ABI.clone(), client, ), ) @@ -1426,80 +1503,55 @@ pub mod bar { ::ethers::contract::ContractError, > { let factory = ::ethers::contract::ContractFactory::new( - BAR_ABI.clone(), - BAR_BYTECODE.clone().into(), + SIMPLEREGISTRY_ABI.clone(), + SIMPLEREGISTRY_BYTECODE.clone().into(), client, ); let deployer = factory.deploy(constructor_args)?; let deployer = ::ethers::contract::ContractDeployer::new(deployer); Ok(deployer) } - ///Calls the contract's `balanceOf` (0x70a08231) function - pub fn balance_of( - &self, - p0: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([112, 160, 130, 49], p0) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `bar` (0x646ea56d) function - pub fn bar( + ///Calls the contract's `claimFee` (0x2cfcf423) function + pub fn claim_fee( &self, - expected_sender: ::ethers::core::types::Address, + portfolio: ::ethers::core::types::Address, + token: ::ethers::core::types::Address, + amount: ::ethers::core::types::U256, + to: ::ethers::core::types::Address, ) -> ::ethers::contract::builders::ContractCall { self.0 - .method_hash([100, 110, 165, 109], expected_sender) + .method_hash([44, 252, 244, 35], (portfolio, token, amount, to)) .expect("method not found (this should never happen)") } - ///Calls the contract's `origin` (0x55596477) function - pub fn origin( + ///Calls the contract's `controller` (0xf77c4791) function + pub fn controller( &self, - expected_sender: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { + ) -> ::ethers::contract::builders::ContractCall< + M, + ::ethers::core::types::Address, + > { self.0 - .method_hash([85, 89, 100, 119], expected_sender) + .method_hash([247, 124, 71, 145], ()) .expect("method not found (this should never happen)") } - ///Calls the contract's `origin` (0xa9b2e28a) function - pub fn origin_with_expected_origin( + ///Calls the contract's `setFee` (0xe55156b5) function + pub fn set_fee( &self, - expected_sender: ::ethers::core::types::Address, - expected_origin: ::ethers::core::types::Address, + portfolio: ::ethers::core::types::Address, + fee: ::ethers::core::types::U256, ) -> ::ethers::contract::builders::ContractCall { self.0 - .method_hash([169, 178, 226, 138], (expected_sender, expected_origin)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `totalSupply` (0x18160ddd) function - pub fn total_supply( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([24, 22, 13, 221], ()) + .method_hash([229, 81, 86, 181], (portfolio, fee)) .expect("method not found (this should never happen)") } } impl From<::ethers::contract::Contract> - for Bar { + for SimpleRegistry { fn from(contract: ::ethers::contract::Contract) -> Self { Self::new(contract.address(), contract.client()) } } - ///Container type for all input parameters for the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "balanceOf", abi = "balanceOf(address)")] - pub struct BalanceOfCall(pub ::ethers::core::types::Address); - ///Container type for all input parameters for the `bar` function with signature `bar(address)` and selector `0x646ea56d` + ///Container type for all input parameters for the `claimFee` function with signature `claimFee(address,address,uint256,address)` and selector `0x2cfcf423` #[derive( Clone, ::ethers::contract::EthCall, @@ -1510,11 +1562,14 @@ pub mod bar { Eq, Hash )] - #[ethcall(name = "bar", abi = "bar(address)")] - pub struct BarCall { - pub expected_sender: ::ethers::core::types::Address, + #[ethcall(name = "claimFee", abi = "claimFee(address,address,uint256,address)")] + pub struct ClaimFeeCall { + pub portfolio: ::ethers::core::types::Address, + pub token: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + pub to: ::ethers::core::types::Address, } - ///Container type for all input parameters for the `origin` function with signature `origin(address)` and selector `0x55596477` + ///Container type for all input parameters for the `controller` function with signature `controller()` and selector `0xf77c4791` #[derive( Clone, ::ethers::contract::EthCall, @@ -1525,11 +1580,9 @@ pub mod bar { Eq, Hash )] - #[ethcall(name = "origin", abi = "origin(address)")] - pub struct OriginCall { - pub expected_sender: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `origin` function with signature `origin(address,address)` and selector `0xa9b2e28a` + #[ethcall(name = "controller", abi = "controller()")] + pub struct ControllerCall; + ///Container type for all input parameters for the `setFee` function with signature `setFee(address,uint256)` and selector `0xe55156b5` #[derive( Clone, ::ethers::contract::EthCall, @@ -1540,131 +1593,76 @@ pub mod bar { Eq, Hash )] - #[ethcall(name = "origin", abi = "origin(address,address)")] - pub struct OriginWithExpectedOriginCall { - pub expected_sender: ::ethers::core::types::Address, - pub expected_origin: ::ethers::core::types::Address, + #[ethcall(name = "setFee", abi = "setFee(address,uint256)")] + pub struct SetFeeCall { + pub portfolio: ::ethers::core::types::Address, + pub fee: ::ethers::core::types::U256, } - ///Container type for all input parameters for the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "totalSupply", abi = "totalSupply()")] - pub struct TotalSupplyCall; ///Container type for all of the contract's call #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] - pub enum BarCalls { - BalanceOf(BalanceOfCall), - Bar(BarCall), - Origin(OriginCall), - OriginWithExpectedOrigin(OriginWithExpectedOriginCall), - TotalSupply(TotalSupplyCall), + pub enum SimpleRegistryCalls { + ClaimFee(ClaimFeeCall), + Controller(ControllerCall), + SetFee(SetFeeCall), } - impl ::ethers::core::abi::AbiDecode for BarCalls { + impl ::ethers::core::abi::AbiDecode for SimpleRegistryCalls { fn decode( data: impl AsRef<[u8]>, ) -> ::core::result::Result { let data = data.as_ref(); if let Ok(decoded) - = ::decode(data) { - return Ok(Self::BalanceOf(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Bar(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Origin(decoded)); + = ::decode(data) { + return Ok(Self::ClaimFee(decoded)); } if let Ok(decoded) - = ::decode( - data, - ) { - return Ok(Self::OriginWithExpectedOrigin(decoded)); + = ::decode(data) { + return Ok(Self::Controller(decoded)); } if let Ok(decoded) - = ::decode(data) { - return Ok(Self::TotalSupply(decoded)); + = ::decode(data) { + return Ok(Self::SetFee(decoded)); } Err(::ethers::core::abi::Error::InvalidData.into()) } } - impl ::ethers::core::abi::AbiEncode for BarCalls { + impl ::ethers::core::abi::AbiEncode for SimpleRegistryCalls { fn encode(self) -> Vec { match self { - Self::BalanceOf(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Bar(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Origin(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::OriginWithExpectedOrigin(element) => { + Self::ClaimFee(element) => { ::ethers::core::abi::AbiEncode::encode(element) } - Self::TotalSupply(element) => { + Self::Controller(element) => { ::ethers::core::abi::AbiEncode::encode(element) } + Self::SetFee(element) => ::ethers::core::abi::AbiEncode::encode(element), } } } - impl ::core::fmt::Display for BarCalls { + impl ::core::fmt::Display for SimpleRegistryCalls { fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { match self { - Self::BalanceOf(element) => ::core::fmt::Display::fmt(element, f), - Self::Bar(element) => ::core::fmt::Display::fmt(element, f), - Self::Origin(element) => ::core::fmt::Display::fmt(element, f), - Self::OriginWithExpectedOrigin(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::TotalSupply(element) => ::core::fmt::Display::fmt(element, f), + Self::ClaimFee(element) => ::core::fmt::Display::fmt(element, f), + Self::Controller(element) => ::core::fmt::Display::fmt(element, f), + Self::SetFee(element) => ::core::fmt::Display::fmt(element, f), } } } - impl ::core::convert::From for BarCalls { - fn from(value: BalanceOfCall) -> Self { - Self::BalanceOf(value) - } - } - impl ::core::convert::From for BarCalls { - fn from(value: BarCall) -> Self { - Self::Bar(value) + impl ::core::convert::From for SimpleRegistryCalls { + fn from(value: ClaimFeeCall) -> Self { + Self::ClaimFee(value) } } - impl ::core::convert::From for BarCalls { - fn from(value: OriginCall) -> Self { - Self::Origin(value) + impl ::core::convert::From for SimpleRegistryCalls { + fn from(value: ControllerCall) -> Self { + Self::Controller(value) } } - impl ::core::convert::From for BarCalls { - fn from(value: OriginWithExpectedOriginCall) -> Self { - Self::OriginWithExpectedOrigin(value) + impl ::core::convert::From for SimpleRegistryCalls { + fn from(value: SetFeeCall) -> Self { + Self::SetFee(value) } } - impl ::core::convert::From for BarCalls { - fn from(value: TotalSupplyCall) -> Self { - Self::TotalSupply(value) - } - } - ///Container type for all return fields from the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct BalanceOfReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd` + ///Container type for all return fields from the `controller` function with signature `controller()` and selector `0xf77c4791` #[derive( Clone, ::ethers::contract::EthAbiType, @@ -1675,5 +1673,5 @@ pub mod bar { Eq, Hash )] - pub struct TotalSupplyReturn(pub ::ethers::core::types::U256); + pub struct ControllerReturn(pub ::ethers::core::types::Address); } diff --git a/crates/bindings/src/std_invariant.rs b/crates/bindings/src/std_invariant.rs deleted file mode 100644 index cec96dfe..00000000 --- a/crates/bindings/src/std_invariant.rs +++ /dev/null @@ -1,4686 +0,0 @@ -pub use std_invariant::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types, -)] -pub mod std_invariant { - #[rustfmt::skip] - const __ABI: &str = "[{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"excludeArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"excludedArtifacts_\",\"type\":\"string[]\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"excludeContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedContracts_\",\"type\":\"address[]\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"excludeSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedSenders_\",\"type\":\"address[]\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"targetArtifactSelectors\",\"outputs\":[{\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedArtifactSelectors_\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\",\"components\":[]}]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"targetArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"targetedArtifacts_\",\"type\":\"string[]\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"targetContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedContracts_\",\"type\":\"address[]\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"targetSelectors\",\"outputs\":[{\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedSelectors_\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\",\"components\":[]}]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"targetSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedSenders_\",\"type\":\"address[]\",\"components\":[]}]}]"; - ///The parsed JSON ABI of the contract. - pub static STDINVARIANT_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| - ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); - #[rustfmt::skip] - const __BYTECODE: &[u8] = &[ - 96, - 128, - 96, - 64, - 82, - 52, - 128, - 21, - 97, - 0, - 16, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 7, - 246, - 128, - 97, - 0, - 32, - 96, - 0, - 57, - 96, - 0, - 243, - 254, - 96, - 128, - 96, - 64, - 82, - 52, - 128, - 21, - 97, - 0, - 16, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 96, - 4, - 54, - 16, - 97, - 0, - 136, - 87, - 96, - 0, - 53, - 96, - 224, - 28, - 128, - 99, - 133, - 34, - 108, - 129, - 17, - 97, - 0, - 91, - 87, - 128, - 99, - 133, - 34, - 108, - 129, - 20, - 97, - 0, - 208, - 87, - 128, - 99, - 145, - 106, - 23, - 198, - 20, - 97, - 0, - 229, - 87, - 128, - 99, - 181, - 80, - 138, - 169, - 20, - 97, - 0, - 237, - 87, - 128, - 99, - 226, - 12, - 159, - 113, - 20, - 97, - 0, - 245, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 99, - 30, - 215, - 131, - 28, - 20, - 97, - 0, - 141, - 87, - 128, - 99, - 62, - 94, - 60, - 35, - 20, - 97, - 0, - 171, - 87, - 128, - 99, - 63, - 114, - 134, - 244, - 20, - 97, - 0, - 179, - 87, - 128, - 99, - 102, - 217, - 169, - 160, - 20, - 97, - 0, - 187, - 87, - 91, - 96, - 0, - 128, - 253, - 91, - 97, - 0, - 149, - 97, - 0, - 253, - 86, - 91, - 96, - 64, - 81, - 97, - 0, - 162, - 145, - 144, - 97, - 5, - 244, - 86, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 243, - 91, - 97, - 0, - 149, - 97, - 1, - 95, - 86, - 91, - 97, - 0, - 149, - 97, - 1, - 191, - 86, - 91, - 97, - 0, - 195, - 97, - 2, - 31, - 86, - 91, - 96, - 64, - 81, - 97, - 0, - 162, - 145, - 144, - 97, - 6, - 65, - 86, - 91, - 97, - 0, - 216, - 97, - 3, - 14, - 86, - 91, - 96, - 64, - 81, - 97, - 0, - 162, - 145, - 144, - 97, - 6, - 244, - 86, - 91, - 97, - 0, - 195, - 97, - 3, - 222, - 86, - 91, - 97, - 0, - 216, - 97, - 4, - 196, - 86, - 91, - 97, - 0, - 149, - 97, - 5, - 148, - 86, - 91, - 96, - 96, - 96, - 1, - 128, - 84, - 128, - 96, - 32, - 2, - 96, - 32, - 1, - 96, - 64, - 81, - 144, - 129, - 1, - 96, - 64, - 82, - 128, - 146, - 145, - 144, - 129, - 129, - 82, - 96, - 32, - 1, - 130, - 128, - 84, - 128, - 21, - 97, - 1, - 85, - 87, - 96, - 32, - 2, - 130, - 1, - 145, - 144, - 96, - 0, - 82, - 96, - 32, - 96, - 0, - 32, - 144, - 91, - 129, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 1, - 144, - 145, - 1, - 144, - 96, - 32, - 1, - 128, - 131, - 17, - 97, - 1, - 55, - 87, - 91, - 80, - 80, - 80, - 80, - 80, - 144, - 80, - 144, - 86, - 91, - 96, - 96, - 96, - 3, - 128, - 84, - 128, - 96, - 32, - 2, - 96, - 32, - 1, - 96, - 64, - 81, - 144, - 129, - 1, - 96, - 64, - 82, - 128, - 146, - 145, - 144, - 129, - 129, - 82, - 96, - 32, - 1, - 130, - 128, - 84, - 128, - 21, - 97, - 1, - 85, - 87, - 96, - 32, - 2, - 130, - 1, - 145, - 144, - 96, - 0, - 82, - 96, - 32, - 96, - 0, - 32, - 144, - 129, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 1, - 144, - 145, - 1, - 144, - 96, - 32, - 1, - 128, - 131, - 17, - 97, - 1, - 55, - 87, - 80, - 80, - 80, - 80, - 80, - 144, - 80, - 144, - 86, - 91, - 96, - 96, - 96, - 2, - 128, - 84, - 128, - 96, - 32, - 2, - 96, - 32, - 1, - 96, - 64, - 81, - 144, - 129, - 1, - 96, - 64, - 82, - 128, - 146, - 145, - 144, - 129, - 129, - 82, - 96, - 32, - 1, - 130, - 128, - 84, - 128, - 21, - 97, - 1, - 85, - 87, - 96, - 32, - 2, - 130, - 1, - 145, - 144, - 96, - 0, - 82, - 96, - 32, - 96, - 0, - 32, - 144, - 129, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 1, - 144, - 145, - 1, - 144, - 96, - 32, - 1, - 128, - 131, - 17, - 97, - 1, - 55, - 87, - 80, - 80, - 80, - 80, - 80, - 144, - 80, - 144, - 86, - 91, - 96, - 96, - 96, - 6, - 128, - 84, - 128, - 96, - 32, - 2, - 96, - 32, - 1, - 96, - 64, - 81, - 144, - 129, - 1, - 96, - 64, - 82, - 128, - 146, - 145, - 144, - 129, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 144, - 91, - 130, - 130, - 16, - 21, - 97, - 3, - 5, - 87, - 96, - 0, - 132, - 129, - 82, - 96, - 32, - 144, - 129, - 144, - 32, - 96, - 64, - 128, - 81, - 128, - 130, - 1, - 130, - 82, - 96, - 2, - 134, - 2, - 144, - 146, - 1, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 131, - 82, - 96, - 1, - 129, - 1, - 128, - 84, - 131, - 81, - 129, - 135, - 2, - 129, - 1, - 135, - 1, - 144, - 148, - 82, - 128, - 132, - 82, - 147, - 148, - 145, - 147, - 133, - 131, - 1, - 147, - 146, - 131, - 1, - 130, - 130, - 128, - 21, - 97, - 2, - 237, - 87, - 96, - 32, - 2, - 130, - 1, - 145, - 144, - 96, - 0, - 82, - 96, - 32, - 96, - 0, - 32, - 144, - 96, - 0, - 144, - 91, - 130, - 130, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 224, - 27, - 96, - 1, - 96, - 1, - 96, - 224, - 27, - 3, - 25, - 22, - 129, - 82, - 96, - 32, - 1, - 144, - 96, - 4, - 1, - 144, - 96, - 32, - 130, - 96, - 3, - 1, - 4, - 146, - 131, - 1, - 146, - 96, - 1, - 3, - 130, - 2, - 145, - 80, - 128, - 132, - 17, - 97, - 2, - 175, - 87, - 144, - 80, - 91, - 80, - 80, - 80, - 80, - 80, - 129, - 82, - 80, - 80, - 129, - 82, - 96, - 32, - 1, - 144, - 96, - 1, - 1, - 144, - 97, - 2, - 67, - 86, - 91, - 80, - 80, - 80, - 80, - 144, - 80, - 144, - 86, - 91, - 96, - 96, - 96, - 5, - 128, - 84, - 128, - 96, - 32, - 2, - 96, - 32, - 1, - 96, - 64, - 81, - 144, - 129, - 1, - 96, - 64, - 82, - 128, - 146, - 145, - 144, - 129, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 144, - 91, - 130, - 130, - 16, - 21, - 97, - 3, - 5, - 87, - 131, - 130, - 144, - 96, - 0, - 82, - 96, - 32, - 96, - 0, - 32, - 1, - 128, - 84, - 97, - 3, - 81, - 144, - 97, - 7, - 134, - 86, - 91, - 128, - 96, - 31, - 1, - 96, - 32, - 128, - 145, - 4, - 2, - 96, - 32, - 1, - 96, - 64, - 81, - 144, - 129, - 1, - 96, - 64, - 82, - 128, - 146, - 145, - 144, - 129, - 129, - 82, - 96, - 32, - 1, - 130, - 128, - 84, - 97, - 3, - 125, - 144, - 97, - 7, - 134, - 86, - 91, - 128, - 21, - 97, - 3, - 202, - 87, - 128, - 96, - 31, - 16, - 97, - 3, - 159, - 87, - 97, - 1, - 0, - 128, - 131, - 84, - 4, - 2, - 131, - 82, - 145, - 96, - 32, - 1, - 145, - 97, - 3, - 202, - 86, - 91, - 130, - 1, - 145, - 144, - 96, - 0, - 82, - 96, - 32, - 96, - 0, - 32, - 144, - 91, - 129, - 84, - 129, - 82, - 144, - 96, - 1, - 1, - 144, - 96, - 32, - 1, - 128, - 131, - 17, - 97, - 3, - 173, - 87, - 130, - 144, - 3, - 96, - 31, - 22, - 130, - 1, - 145, - 91, - 80, - 80, - 80, - 80, - 80, - 129, - 82, - 96, - 32, - 1, - 144, - 96, - 1, - 1, - 144, - 97, - 3, - 50, - 86, - 91, - 96, - 96, - 96, - 7, - 128, - 84, - 128, - 96, - 32, - 2, - 96, - 32, - 1, - 96, - 64, - 81, - 144, - 129, - 1, - 96, - 64, - 82, - 128, - 146, - 145, - 144, - 129, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 144, - 91, - 130, - 130, - 16, - 21, - 97, - 3, - 5, - 87, - 96, - 0, - 132, - 129, - 82, - 96, - 32, - 144, - 129, - 144, - 32, - 96, - 64, - 128, - 81, - 128, - 130, - 1, - 130, - 82, - 96, - 2, - 134, - 2, - 144, - 146, - 1, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 131, - 82, - 96, - 1, - 129, - 1, - 128, - 84, - 131, - 81, - 129, - 135, - 2, - 129, - 1, - 135, - 1, - 144, - 148, - 82, - 128, - 132, - 82, - 147, - 148, - 145, - 147, - 133, - 131, - 1, - 147, - 146, - 131, - 1, - 130, - 130, - 128, - 21, - 97, - 4, - 172, - 87, - 96, - 32, - 2, - 130, - 1, - 145, - 144, - 96, - 0, - 82, - 96, - 32, - 96, - 0, - 32, - 144, - 96, - 0, - 144, - 91, - 130, - 130, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 224, - 27, - 96, - 1, - 96, - 1, - 96, - 224, - 27, - 3, - 25, - 22, - 129, - 82, - 96, - 32, - 1, - 144, - 96, - 4, - 1, - 144, - 96, - 32, - 130, - 96, - 3, - 1, - 4, - 146, - 131, - 1, - 146, - 96, - 1, - 3, - 130, - 2, - 145, - 80, - 128, - 132, - 17, - 97, - 4, - 110, - 87, - 144, - 80, - 91, - 80, - 80, - 80, - 80, - 80, - 129, - 82, - 80, - 80, - 129, - 82, - 96, - 32, - 1, - 144, - 96, - 1, - 1, - 144, - 97, - 4, - 2, - 86, - 91, - 96, - 96, - 96, - 4, - 128, - 84, - 128, - 96, - 32, - 2, - 96, - 32, - 1, - 96, - 64, - 81, - 144, - 129, - 1, - 96, - 64, - 82, - 128, - 146, - 145, - 144, - 129, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 144, - 91, - 130, - 130, - 16, - 21, - 97, - 3, - 5, - 87, - 131, - 130, - 144, - 96, - 0, - 82, - 96, - 32, - 96, - 0, - 32, - 1, - 128, - 84, - 97, - 5, - 7, - 144, - 97, - 7, - 134, - 86, - 91, - 128, - 96, - 31, - 1, - 96, - 32, - 128, - 145, - 4, - 2, - 96, - 32, - 1, - 96, - 64, - 81, - 144, - 129, - 1, - 96, - 64, - 82, - 128, - 146, - 145, - 144, - 129, - 129, - 82, - 96, - 32, - 1, - 130, - 128, - 84, - 97, - 5, - 51, - 144, - 97, - 7, - 134, - 86, - 91, - 128, - 21, - 97, - 5, - 128, - 87, - 128, - 96, - 31, - 16, - 97, - 5, - 85, - 87, - 97, - 1, - 0, - 128, - 131, - 84, - 4, - 2, - 131, - 82, - 145, - 96, - 32, - 1, - 145, - 97, - 5, - 128, - 86, - 91, - 130, - 1, - 145, - 144, - 96, - 0, - 82, - 96, - 32, - 96, - 0, - 32, - 144, - 91, - 129, - 84, - 129, - 82, - 144, - 96, - 1, - 1, - 144, - 96, - 32, - 1, - 128, - 131, - 17, - 97, - 5, - 99, - 87, - 130, - 144, - 3, - 96, - 31, - 22, - 130, - 1, - 145, - 91, - 80, - 80, - 80, - 80, - 80, - 129, - 82, - 96, - 32, - 1, - 144, - 96, - 1, - 1, - 144, - 97, - 4, - 232, - 86, - 91, - 96, - 96, - 96, - 0, - 128, - 84, - 128, - 96, - 32, - 2, - 96, - 32, - 1, - 96, - 64, - 81, - 144, - 129, - 1, - 96, - 64, - 82, - 128, - 146, - 145, - 144, - 129, - 129, - 82, - 96, - 32, - 1, - 130, - 128, - 84, - 128, - 21, - 97, - 1, - 85, - 87, - 96, - 32, - 2, - 130, - 1, - 145, - 144, - 96, - 0, - 82, - 96, - 32, - 96, - 0, - 32, - 144, - 129, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 1, - 144, - 145, - 1, - 144, - 96, - 32, - 1, - 128, - 131, - 17, - 97, - 1, - 55, - 87, - 80, - 80, - 80, - 80, - 80, - 144, - 80, - 144, - 86, - 91, - 96, - 32, - 128, - 130, - 82, - 130, - 81, - 130, - 130, - 1, - 129, - 144, - 82, - 96, - 0, - 145, - 144, - 132, - 130, - 1, - 144, - 96, - 64, - 133, - 1, - 144, - 132, - 91, - 129, - 129, - 16, - 21, - 97, - 6, - 53, - 87, - 131, - 81, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 131, - 82, - 146, - 132, - 1, - 146, - 145, - 132, - 1, - 145, - 96, - 1, - 1, - 97, - 6, - 16, - 86, - 91, - 80, - 144, - 150, - 149, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 96, - 32, - 128, - 131, - 1, - 129, - 132, - 82, - 128, - 133, - 81, - 128, - 131, - 82, - 96, - 64, - 146, - 80, - 130, - 134, - 1, - 145, - 80, - 130, - 129, - 96, - 5, - 27, - 135, - 1, - 1, - 132, - 136, - 1, - 96, - 0, - 128, - 91, - 132, - 129, - 16, - 21, - 97, - 6, - 229, - 87, - 137, - 132, - 3, - 96, - 63, - 25, - 1, - 134, - 82, - 130, - 81, - 128, - 81, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 133, - 82, - 136, - 1, - 81, - 136, - 133, - 1, - 136, - 144, - 82, - 128, - 81, - 136, - 134, - 1, - 129, - 144, - 82, - 144, - 137, - 1, - 144, - 131, - 144, - 96, - 96, - 135, - 1, - 144, - 91, - 128, - 131, - 16, - 21, - 97, - 6, - 208, - 87, - 131, - 81, - 96, - 1, - 96, - 1, - 96, - 224, - 27, - 3, - 25, - 22, - 130, - 82, - 146, - 139, - 1, - 146, - 96, - 1, - 146, - 144, - 146, - 1, - 145, - 144, - 139, - 1, - 144, - 97, - 6, - 166, - 86, - 91, - 80, - 151, - 138, - 1, - 151, - 149, - 80, - 80, - 80, - 145, - 135, - 1, - 145, - 96, - 1, - 1, - 97, - 6, - 105, - 86, - 91, - 80, - 145, - 153, - 152, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 96, - 32, - 128, - 131, - 1, - 129, - 132, - 82, - 128, - 133, - 81, - 128, - 131, - 82, - 96, - 64, - 134, - 1, - 145, - 80, - 96, - 64, - 129, - 96, - 5, - 27, - 135, - 1, - 1, - 146, - 80, - 131, - 135, - 1, - 96, - 0, - 128, - 91, - 131, - 129, - 16, - 21, - 97, - 7, - 120, - 87, - 136, - 134, - 3, - 96, - 63, - 25, - 1, - 133, - 82, - 130, - 81, - 128, - 81, - 128, - 136, - 82, - 131, - 91, - 129, - 129, - 16, - 21, - 97, - 7, - 81, - 87, - 130, - 129, - 1, - 138, - 1, - 81, - 137, - 130, - 1, - 139, - 1, - 82, - 137, - 1, - 97, - 7, - 54, - 86, - 91, - 80, - 135, - 129, - 1, - 137, - 1, - 132, - 144, - 82, - 96, - 31, - 1, - 96, - 31, - 25, - 22, - 144, - 150, - 1, - 135, - 1, - 149, - 80, - 147, - 134, - 1, - 147, - 145, - 134, - 1, - 145, - 96, - 1, - 1, - 97, - 7, - 28, - 86, - 91, - 80, - 147, - 152, - 151, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 1, - 129, - 129, - 28, - 144, - 130, - 22, - 128, - 97, - 7, - 154, - 87, - 96, - 127, - 130, - 22, - 145, - 80, - 91, - 96, - 32, - 130, - 16, - 129, - 3, - 97, - 7, - 186, - 87, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 34, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 80, - 145, - 144, - 80, - 86, - 254, - 162, - 100, - 105, - 112, - 102, - 115, - 88, - 34, - 18, - 32, - 149, - 33, - 172, - 137, - 33, - 31, - 220, - 17, - 217, - 126, - 230, - 71, - 244, - 207, - 56, - 101, - 84, - 113, - 115, - 53, - 155, - 58, - 17, - 111, - 51, - 61, - 27, - 206, - 140, - 51, - 1, - 213, - 100, - 115, - 111, - 108, - 99, - 67, - 0, - 8, - 19, - 0, - 51, - ]; - ///The bytecode of the contract. - pub static STDINVARIANT_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( - __BYTECODE, - ); - #[rustfmt::skip] - const __DEPLOYED_BYTECODE: &[u8] = &[ - 96, - 128, - 96, - 64, - 82, - 52, - 128, - 21, - 97, - 0, - 16, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 96, - 4, - 54, - 16, - 97, - 0, - 136, - 87, - 96, - 0, - 53, - 96, - 224, - 28, - 128, - 99, - 133, - 34, - 108, - 129, - 17, - 97, - 0, - 91, - 87, - 128, - 99, - 133, - 34, - 108, - 129, - 20, - 97, - 0, - 208, - 87, - 128, - 99, - 145, - 106, - 23, - 198, - 20, - 97, - 0, - 229, - 87, - 128, - 99, - 181, - 80, - 138, - 169, - 20, - 97, - 0, - 237, - 87, - 128, - 99, - 226, - 12, - 159, - 113, - 20, - 97, - 0, - 245, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 99, - 30, - 215, - 131, - 28, - 20, - 97, - 0, - 141, - 87, - 128, - 99, - 62, - 94, - 60, - 35, - 20, - 97, - 0, - 171, - 87, - 128, - 99, - 63, - 114, - 134, - 244, - 20, - 97, - 0, - 179, - 87, - 128, - 99, - 102, - 217, - 169, - 160, - 20, - 97, - 0, - 187, - 87, - 91, - 96, - 0, - 128, - 253, - 91, - 97, - 0, - 149, - 97, - 0, - 253, - 86, - 91, - 96, - 64, - 81, - 97, - 0, - 162, - 145, - 144, - 97, - 5, - 244, - 86, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 243, - 91, - 97, - 0, - 149, - 97, - 1, - 95, - 86, - 91, - 97, - 0, - 149, - 97, - 1, - 191, - 86, - 91, - 97, - 0, - 195, - 97, - 2, - 31, - 86, - 91, - 96, - 64, - 81, - 97, - 0, - 162, - 145, - 144, - 97, - 6, - 65, - 86, - 91, - 97, - 0, - 216, - 97, - 3, - 14, - 86, - 91, - 96, - 64, - 81, - 97, - 0, - 162, - 145, - 144, - 97, - 6, - 244, - 86, - 91, - 97, - 0, - 195, - 97, - 3, - 222, - 86, - 91, - 97, - 0, - 216, - 97, - 4, - 196, - 86, - 91, - 97, - 0, - 149, - 97, - 5, - 148, - 86, - 91, - 96, - 96, - 96, - 1, - 128, - 84, - 128, - 96, - 32, - 2, - 96, - 32, - 1, - 96, - 64, - 81, - 144, - 129, - 1, - 96, - 64, - 82, - 128, - 146, - 145, - 144, - 129, - 129, - 82, - 96, - 32, - 1, - 130, - 128, - 84, - 128, - 21, - 97, - 1, - 85, - 87, - 96, - 32, - 2, - 130, - 1, - 145, - 144, - 96, - 0, - 82, - 96, - 32, - 96, - 0, - 32, - 144, - 91, - 129, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 1, - 144, - 145, - 1, - 144, - 96, - 32, - 1, - 128, - 131, - 17, - 97, - 1, - 55, - 87, - 91, - 80, - 80, - 80, - 80, - 80, - 144, - 80, - 144, - 86, - 91, - 96, - 96, - 96, - 3, - 128, - 84, - 128, - 96, - 32, - 2, - 96, - 32, - 1, - 96, - 64, - 81, - 144, - 129, - 1, - 96, - 64, - 82, - 128, - 146, - 145, - 144, - 129, - 129, - 82, - 96, - 32, - 1, - 130, - 128, - 84, - 128, - 21, - 97, - 1, - 85, - 87, - 96, - 32, - 2, - 130, - 1, - 145, - 144, - 96, - 0, - 82, - 96, - 32, - 96, - 0, - 32, - 144, - 129, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 1, - 144, - 145, - 1, - 144, - 96, - 32, - 1, - 128, - 131, - 17, - 97, - 1, - 55, - 87, - 80, - 80, - 80, - 80, - 80, - 144, - 80, - 144, - 86, - 91, - 96, - 96, - 96, - 2, - 128, - 84, - 128, - 96, - 32, - 2, - 96, - 32, - 1, - 96, - 64, - 81, - 144, - 129, - 1, - 96, - 64, - 82, - 128, - 146, - 145, - 144, - 129, - 129, - 82, - 96, - 32, - 1, - 130, - 128, - 84, - 128, - 21, - 97, - 1, - 85, - 87, - 96, - 32, - 2, - 130, - 1, - 145, - 144, - 96, - 0, - 82, - 96, - 32, - 96, - 0, - 32, - 144, - 129, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 1, - 144, - 145, - 1, - 144, - 96, - 32, - 1, - 128, - 131, - 17, - 97, - 1, - 55, - 87, - 80, - 80, - 80, - 80, - 80, - 144, - 80, - 144, - 86, - 91, - 96, - 96, - 96, - 6, - 128, - 84, - 128, - 96, - 32, - 2, - 96, - 32, - 1, - 96, - 64, - 81, - 144, - 129, - 1, - 96, - 64, - 82, - 128, - 146, - 145, - 144, - 129, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 144, - 91, - 130, - 130, - 16, - 21, - 97, - 3, - 5, - 87, - 96, - 0, - 132, - 129, - 82, - 96, - 32, - 144, - 129, - 144, - 32, - 96, - 64, - 128, - 81, - 128, - 130, - 1, - 130, - 82, - 96, - 2, - 134, - 2, - 144, - 146, - 1, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 131, - 82, - 96, - 1, - 129, - 1, - 128, - 84, - 131, - 81, - 129, - 135, - 2, - 129, - 1, - 135, - 1, - 144, - 148, - 82, - 128, - 132, - 82, - 147, - 148, - 145, - 147, - 133, - 131, - 1, - 147, - 146, - 131, - 1, - 130, - 130, - 128, - 21, - 97, - 2, - 237, - 87, - 96, - 32, - 2, - 130, - 1, - 145, - 144, - 96, - 0, - 82, - 96, - 32, - 96, - 0, - 32, - 144, - 96, - 0, - 144, - 91, - 130, - 130, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 224, - 27, - 96, - 1, - 96, - 1, - 96, - 224, - 27, - 3, - 25, - 22, - 129, - 82, - 96, - 32, - 1, - 144, - 96, - 4, - 1, - 144, - 96, - 32, - 130, - 96, - 3, - 1, - 4, - 146, - 131, - 1, - 146, - 96, - 1, - 3, - 130, - 2, - 145, - 80, - 128, - 132, - 17, - 97, - 2, - 175, - 87, - 144, - 80, - 91, - 80, - 80, - 80, - 80, - 80, - 129, - 82, - 80, - 80, - 129, - 82, - 96, - 32, - 1, - 144, - 96, - 1, - 1, - 144, - 97, - 2, - 67, - 86, - 91, - 80, - 80, - 80, - 80, - 144, - 80, - 144, - 86, - 91, - 96, - 96, - 96, - 5, - 128, - 84, - 128, - 96, - 32, - 2, - 96, - 32, - 1, - 96, - 64, - 81, - 144, - 129, - 1, - 96, - 64, - 82, - 128, - 146, - 145, - 144, - 129, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 144, - 91, - 130, - 130, - 16, - 21, - 97, - 3, - 5, - 87, - 131, - 130, - 144, - 96, - 0, - 82, - 96, - 32, - 96, - 0, - 32, - 1, - 128, - 84, - 97, - 3, - 81, - 144, - 97, - 7, - 134, - 86, - 91, - 128, - 96, - 31, - 1, - 96, - 32, - 128, - 145, - 4, - 2, - 96, - 32, - 1, - 96, - 64, - 81, - 144, - 129, - 1, - 96, - 64, - 82, - 128, - 146, - 145, - 144, - 129, - 129, - 82, - 96, - 32, - 1, - 130, - 128, - 84, - 97, - 3, - 125, - 144, - 97, - 7, - 134, - 86, - 91, - 128, - 21, - 97, - 3, - 202, - 87, - 128, - 96, - 31, - 16, - 97, - 3, - 159, - 87, - 97, - 1, - 0, - 128, - 131, - 84, - 4, - 2, - 131, - 82, - 145, - 96, - 32, - 1, - 145, - 97, - 3, - 202, - 86, - 91, - 130, - 1, - 145, - 144, - 96, - 0, - 82, - 96, - 32, - 96, - 0, - 32, - 144, - 91, - 129, - 84, - 129, - 82, - 144, - 96, - 1, - 1, - 144, - 96, - 32, - 1, - 128, - 131, - 17, - 97, - 3, - 173, - 87, - 130, - 144, - 3, - 96, - 31, - 22, - 130, - 1, - 145, - 91, - 80, - 80, - 80, - 80, - 80, - 129, - 82, - 96, - 32, - 1, - 144, - 96, - 1, - 1, - 144, - 97, - 3, - 50, - 86, - 91, - 96, - 96, - 96, - 7, - 128, - 84, - 128, - 96, - 32, - 2, - 96, - 32, - 1, - 96, - 64, - 81, - 144, - 129, - 1, - 96, - 64, - 82, - 128, - 146, - 145, - 144, - 129, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 144, - 91, - 130, - 130, - 16, - 21, - 97, - 3, - 5, - 87, - 96, - 0, - 132, - 129, - 82, - 96, - 32, - 144, - 129, - 144, - 32, - 96, - 64, - 128, - 81, - 128, - 130, - 1, - 130, - 82, - 96, - 2, - 134, - 2, - 144, - 146, - 1, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 131, - 82, - 96, - 1, - 129, - 1, - 128, - 84, - 131, - 81, - 129, - 135, - 2, - 129, - 1, - 135, - 1, - 144, - 148, - 82, - 128, - 132, - 82, - 147, - 148, - 145, - 147, - 133, - 131, - 1, - 147, - 146, - 131, - 1, - 130, - 130, - 128, - 21, - 97, - 4, - 172, - 87, - 96, - 32, - 2, - 130, - 1, - 145, - 144, - 96, - 0, - 82, - 96, - 32, - 96, - 0, - 32, - 144, - 96, - 0, - 144, - 91, - 130, - 130, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 224, - 27, - 96, - 1, - 96, - 1, - 96, - 224, - 27, - 3, - 25, - 22, - 129, - 82, - 96, - 32, - 1, - 144, - 96, - 4, - 1, - 144, - 96, - 32, - 130, - 96, - 3, - 1, - 4, - 146, - 131, - 1, - 146, - 96, - 1, - 3, - 130, - 2, - 145, - 80, - 128, - 132, - 17, - 97, - 4, - 110, - 87, - 144, - 80, - 91, - 80, - 80, - 80, - 80, - 80, - 129, - 82, - 80, - 80, - 129, - 82, - 96, - 32, - 1, - 144, - 96, - 1, - 1, - 144, - 97, - 4, - 2, - 86, - 91, - 96, - 96, - 96, - 4, - 128, - 84, - 128, - 96, - 32, - 2, - 96, - 32, - 1, - 96, - 64, - 81, - 144, - 129, - 1, - 96, - 64, - 82, - 128, - 146, - 145, - 144, - 129, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 144, - 91, - 130, - 130, - 16, - 21, - 97, - 3, - 5, - 87, - 131, - 130, - 144, - 96, - 0, - 82, - 96, - 32, - 96, - 0, - 32, - 1, - 128, - 84, - 97, - 5, - 7, - 144, - 97, - 7, - 134, - 86, - 91, - 128, - 96, - 31, - 1, - 96, - 32, - 128, - 145, - 4, - 2, - 96, - 32, - 1, - 96, - 64, - 81, - 144, - 129, - 1, - 96, - 64, - 82, - 128, - 146, - 145, - 144, - 129, - 129, - 82, - 96, - 32, - 1, - 130, - 128, - 84, - 97, - 5, - 51, - 144, - 97, - 7, - 134, - 86, - 91, - 128, - 21, - 97, - 5, - 128, - 87, - 128, - 96, - 31, - 16, - 97, - 5, - 85, - 87, - 97, - 1, - 0, - 128, - 131, - 84, - 4, - 2, - 131, - 82, - 145, - 96, - 32, - 1, - 145, - 97, - 5, - 128, - 86, - 91, - 130, - 1, - 145, - 144, - 96, - 0, - 82, - 96, - 32, - 96, - 0, - 32, - 144, - 91, - 129, - 84, - 129, - 82, - 144, - 96, - 1, - 1, - 144, - 96, - 32, - 1, - 128, - 131, - 17, - 97, - 5, - 99, - 87, - 130, - 144, - 3, - 96, - 31, - 22, - 130, - 1, - 145, - 91, - 80, - 80, - 80, - 80, - 80, - 129, - 82, - 96, - 32, - 1, - 144, - 96, - 1, - 1, - 144, - 97, - 4, - 232, - 86, - 91, - 96, - 96, - 96, - 0, - 128, - 84, - 128, - 96, - 32, - 2, - 96, - 32, - 1, - 96, - 64, - 81, - 144, - 129, - 1, - 96, - 64, - 82, - 128, - 146, - 145, - 144, - 129, - 129, - 82, - 96, - 32, - 1, - 130, - 128, - 84, - 128, - 21, - 97, - 1, - 85, - 87, - 96, - 32, - 2, - 130, - 1, - 145, - 144, - 96, - 0, - 82, - 96, - 32, - 96, - 0, - 32, - 144, - 129, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 1, - 144, - 145, - 1, - 144, - 96, - 32, - 1, - 128, - 131, - 17, - 97, - 1, - 55, - 87, - 80, - 80, - 80, - 80, - 80, - 144, - 80, - 144, - 86, - 91, - 96, - 32, - 128, - 130, - 82, - 130, - 81, - 130, - 130, - 1, - 129, - 144, - 82, - 96, - 0, - 145, - 144, - 132, - 130, - 1, - 144, - 96, - 64, - 133, - 1, - 144, - 132, - 91, - 129, - 129, - 16, - 21, - 97, - 6, - 53, - 87, - 131, - 81, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 131, - 82, - 146, - 132, - 1, - 146, - 145, - 132, - 1, - 145, - 96, - 1, - 1, - 97, - 6, - 16, - 86, - 91, - 80, - 144, - 150, - 149, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 96, - 32, - 128, - 131, - 1, - 129, - 132, - 82, - 128, - 133, - 81, - 128, - 131, - 82, - 96, - 64, - 146, - 80, - 130, - 134, - 1, - 145, - 80, - 130, - 129, - 96, - 5, - 27, - 135, - 1, - 1, - 132, - 136, - 1, - 96, - 0, - 128, - 91, - 132, - 129, - 16, - 21, - 97, - 6, - 229, - 87, - 137, - 132, - 3, - 96, - 63, - 25, - 1, - 134, - 82, - 130, - 81, - 128, - 81, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 133, - 82, - 136, - 1, - 81, - 136, - 133, - 1, - 136, - 144, - 82, - 128, - 81, - 136, - 134, - 1, - 129, - 144, - 82, - 144, - 137, - 1, - 144, - 131, - 144, - 96, - 96, - 135, - 1, - 144, - 91, - 128, - 131, - 16, - 21, - 97, - 6, - 208, - 87, - 131, - 81, - 96, - 1, - 96, - 1, - 96, - 224, - 27, - 3, - 25, - 22, - 130, - 82, - 146, - 139, - 1, - 146, - 96, - 1, - 146, - 144, - 146, - 1, - 145, - 144, - 139, - 1, - 144, - 97, - 6, - 166, - 86, - 91, - 80, - 151, - 138, - 1, - 151, - 149, - 80, - 80, - 80, - 145, - 135, - 1, - 145, - 96, - 1, - 1, - 97, - 6, - 105, - 86, - 91, - 80, - 145, - 153, - 152, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 96, - 32, - 128, - 131, - 1, - 129, - 132, - 82, - 128, - 133, - 81, - 128, - 131, - 82, - 96, - 64, - 134, - 1, - 145, - 80, - 96, - 64, - 129, - 96, - 5, - 27, - 135, - 1, - 1, - 146, - 80, - 131, - 135, - 1, - 96, - 0, - 128, - 91, - 131, - 129, - 16, - 21, - 97, - 7, - 120, - 87, - 136, - 134, - 3, - 96, - 63, - 25, - 1, - 133, - 82, - 130, - 81, - 128, - 81, - 128, - 136, - 82, - 131, - 91, - 129, - 129, - 16, - 21, - 97, - 7, - 81, - 87, - 130, - 129, - 1, - 138, - 1, - 81, - 137, - 130, - 1, - 139, - 1, - 82, - 137, - 1, - 97, - 7, - 54, - 86, - 91, - 80, - 135, - 129, - 1, - 137, - 1, - 132, - 144, - 82, - 96, - 31, - 1, - 96, - 31, - 25, - 22, - 144, - 150, - 1, - 135, - 1, - 149, - 80, - 147, - 134, - 1, - 147, - 145, - 134, - 1, - 145, - 96, - 1, - 1, - 97, - 7, - 28, - 86, - 91, - 80, - 147, - 152, - 151, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 1, - 129, - 129, - 28, - 144, - 130, - 22, - 128, - 97, - 7, - 154, - 87, - 96, - 127, - 130, - 22, - 145, - 80, - 91, - 96, - 32, - 130, - 16, - 129, - 3, - 97, - 7, - 186, - 87, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 34, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 80, - 145, - 144, - 80, - 86, - 254, - 162, - 100, - 105, - 112, - 102, - 115, - 88, - 34, - 18, - 32, - 149, - 33, - 172, - 137, - 33, - 31, - 220, - 17, - 217, - 126, - 230, - 71, - 244, - 207, - 56, - 101, - 84, - 113, - 115, - 53, - 155, - 58, - 17, - 111, - 51, - 61, - 27, - 206, - 140, - 51, - 1, - 213, - 100, - 115, - 111, - 108, - 99, - 67, - 0, - 8, - 19, - 0, - 51, - ]; - ///The deployed bytecode of the contract. - pub static STDINVARIANT_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( - __DEPLOYED_BYTECODE, - ); - pub struct StdInvariant(::ethers::contract::Contract); - impl ::core::clone::Clone for StdInvariant { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for StdInvariant { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for StdInvariant { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for StdInvariant { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(stringify!(StdInvariant)).field(&self.address()).finish() - } - } - impl StdInvariant { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self( - ::ethers::contract::Contract::new( - address.into(), - STDINVARIANT_ABI.clone(), - client, - ), - ) - } - /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. - /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction - /// - /// Notes: - /// - If there are no constructor arguments, you should pass `()` as the argument. - /// - The default poll duration is 7 seconds. - /// - The default number of confirmations is 1 block. - /// - /// - /// # Example - /// - /// Generate contract bindings with `abigen!` and deploy a new contract instance. - /// - /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. - /// - /// ```ignore - /// # async fn deploy(client: ::std::sync::Arc) { - /// abigen!(Greeter, "../greeter.json"); - /// - /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); - /// let msg = greeter_contract.greet().call().await.unwrap(); - /// # } - /// ``` - pub fn deploy( - client: ::std::sync::Arc, - constructor_args: T, - ) -> ::core::result::Result< - ::ethers::contract::builders::ContractDeployer, - ::ethers::contract::ContractError, - > { - let factory = ::ethers::contract::ContractFactory::new( - STDINVARIANT_ABI.clone(), - STDINVARIANT_BYTECODE.clone().into(), - client, - ); - let deployer = factory.deploy(constructor_args)?; - let deployer = ::ethers::contract::ContractDeployer::new(deployer); - Ok(deployer) - } - ///Calls the contract's `excludeArtifacts` (0xb5508aa9) function - pub fn exclude_artifacts( - &self, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::std::vec::Vec<::std::string::String>, - > { - self.0 - .method_hash([181, 80, 138, 169], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `excludeContracts` (0xe20c9f71) function - pub fn exclude_contracts( - &self, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::std::vec::Vec<::ethers::core::types::Address>, - > { - self.0 - .method_hash([226, 12, 159, 113], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `excludeSenders` (0x1ed7831c) function - pub fn exclude_senders( - &self, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::std::vec::Vec<::ethers::core::types::Address>, - > { - self.0 - .method_hash([30, 215, 131, 28], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `targetArtifactSelectors` (0x66d9a9a0) function - pub fn target_artifact_selectors( - &self, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::std::vec::Vec, - > { - self.0 - .method_hash([102, 217, 169, 160], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `targetArtifacts` (0x85226c81) function - pub fn target_artifacts( - &self, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::std::vec::Vec<::std::string::String>, - > { - self.0 - .method_hash([133, 34, 108, 129], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `targetContracts` (0x3f7286f4) function - pub fn target_contracts( - &self, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::std::vec::Vec<::ethers::core::types::Address>, - > { - self.0 - .method_hash([63, 114, 134, 244], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `targetSelectors` (0x916a17c6) function - pub fn target_selectors( - &self, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::std::vec::Vec, - > { - self.0 - .method_hash([145, 106, 23, 198], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `targetSenders` (0x3e5e3c23) function - pub fn target_senders( - &self, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::std::vec::Vec<::ethers::core::types::Address>, - > { - self.0 - .method_hash([62, 94, 60, 35], ()) - .expect("method not found (this should never happen)") - } - } - impl From<::ethers::contract::Contract> - for StdInvariant { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - ///Container type for all input parameters for the `excludeArtifacts` function with signature `excludeArtifacts()` and selector `0xb5508aa9` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "excludeArtifacts", abi = "excludeArtifacts()")] - pub struct ExcludeArtifactsCall; - ///Container type for all input parameters for the `excludeContracts` function with signature `excludeContracts()` and selector `0xe20c9f71` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "excludeContracts", abi = "excludeContracts()")] - pub struct ExcludeContractsCall; - ///Container type for all input parameters for the `excludeSenders` function with signature `excludeSenders()` and selector `0x1ed7831c` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "excludeSenders", abi = "excludeSenders()")] - pub struct ExcludeSendersCall; - ///Container type for all input parameters for the `targetArtifactSelectors` function with signature `targetArtifactSelectors()` and selector `0x66d9a9a0` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "targetArtifactSelectors", abi = "targetArtifactSelectors()")] - pub struct TargetArtifactSelectorsCall; - ///Container type for all input parameters for the `targetArtifacts` function with signature `targetArtifacts()` and selector `0x85226c81` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "targetArtifacts", abi = "targetArtifacts()")] - pub struct TargetArtifactsCall; - ///Container type for all input parameters for the `targetContracts` function with signature `targetContracts()` and selector `0x3f7286f4` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "targetContracts", abi = "targetContracts()")] - pub struct TargetContractsCall; - ///Container type for all input parameters for the `targetSelectors` function with signature `targetSelectors()` and selector `0x916a17c6` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "targetSelectors", abi = "targetSelectors()")] - pub struct TargetSelectorsCall; - ///Container type for all input parameters for the `targetSenders` function with signature `targetSenders()` and selector `0x3e5e3c23` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "targetSenders", abi = "targetSenders()")] - pub struct TargetSendersCall; - ///Container type for all of the contract's call - #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] - pub enum StdInvariantCalls { - ExcludeArtifacts(ExcludeArtifactsCall), - ExcludeContracts(ExcludeContractsCall), - ExcludeSenders(ExcludeSendersCall), - TargetArtifactSelectors(TargetArtifactSelectorsCall), - TargetArtifacts(TargetArtifactsCall), - TargetContracts(TargetContractsCall), - TargetSelectors(TargetSelectorsCall), - TargetSenders(TargetSendersCall), - } - impl ::ethers::core::abi::AbiDecode for StdInvariantCalls { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) - = ::decode( - data, - ) { - return Ok(Self::ExcludeArtifacts(decoded)); - } - if let Ok(decoded) - = ::decode( - data, - ) { - return Ok(Self::ExcludeContracts(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::ExcludeSenders(decoded)); - } - if let Ok(decoded) - = ::decode( - data, - ) { - return Ok(Self::TargetArtifactSelectors(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::TargetArtifacts(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::TargetContracts(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::TargetSelectors(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::TargetSenders(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for StdInvariantCalls { - fn encode(self) -> Vec { - match self { - Self::ExcludeArtifacts(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::ExcludeContracts(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::ExcludeSenders(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::TargetArtifactSelectors(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::TargetArtifacts(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::TargetContracts(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::TargetSelectors(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::TargetSenders(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - } - } - } - impl ::core::fmt::Display for StdInvariantCalls { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::ExcludeArtifacts(element) => ::core::fmt::Display::fmt(element, f), - Self::ExcludeContracts(element) => ::core::fmt::Display::fmt(element, f), - Self::ExcludeSenders(element) => ::core::fmt::Display::fmt(element, f), - Self::TargetArtifactSelectors(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::TargetArtifacts(element) => ::core::fmt::Display::fmt(element, f), - Self::TargetContracts(element) => ::core::fmt::Display::fmt(element, f), - Self::TargetSelectors(element) => ::core::fmt::Display::fmt(element, f), - Self::TargetSenders(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for StdInvariantCalls { - fn from(value: ExcludeArtifactsCall) -> Self { - Self::ExcludeArtifacts(value) - } - } - impl ::core::convert::From for StdInvariantCalls { - fn from(value: ExcludeContractsCall) -> Self { - Self::ExcludeContracts(value) - } - } - impl ::core::convert::From for StdInvariantCalls { - fn from(value: ExcludeSendersCall) -> Self { - Self::ExcludeSenders(value) - } - } - impl ::core::convert::From for StdInvariantCalls { - fn from(value: TargetArtifactSelectorsCall) -> Self { - Self::TargetArtifactSelectors(value) - } - } - impl ::core::convert::From for StdInvariantCalls { - fn from(value: TargetArtifactsCall) -> Self { - Self::TargetArtifacts(value) - } - } - impl ::core::convert::From for StdInvariantCalls { - fn from(value: TargetContractsCall) -> Self { - Self::TargetContracts(value) - } - } - impl ::core::convert::From for StdInvariantCalls { - fn from(value: TargetSelectorsCall) -> Self { - Self::TargetSelectors(value) - } - } - impl ::core::convert::From for StdInvariantCalls { - fn from(value: TargetSendersCall) -> Self { - Self::TargetSenders(value) - } - } - ///Container type for all return fields from the `excludeArtifacts` function with signature `excludeArtifacts()` and selector `0xb5508aa9` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct ExcludeArtifactsReturn { - pub excluded_artifacts: ::std::vec::Vec<::std::string::String>, - } - ///Container type for all return fields from the `excludeContracts` function with signature `excludeContracts()` and selector `0xe20c9f71` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct ExcludeContractsReturn { - pub excluded_contracts: ::std::vec::Vec<::ethers::core::types::Address>, - } - ///Container type for all return fields from the `excludeSenders` function with signature `excludeSenders()` and selector `0x1ed7831c` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct ExcludeSendersReturn { - pub excluded_senders: ::std::vec::Vec<::ethers::core::types::Address>, - } - ///Container type for all return fields from the `targetArtifactSelectors` function with signature `targetArtifactSelectors()` and selector `0x66d9a9a0` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct TargetArtifactSelectorsReturn { - pub targeted_artifact_selectors: ::std::vec::Vec, - } - ///Container type for all return fields from the `targetArtifacts` function with signature `targetArtifacts()` and selector `0x85226c81` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct TargetArtifactsReturn { - pub targeted_artifacts: ::std::vec::Vec<::std::string::String>, - } - ///Container type for all return fields from the `targetContracts` function with signature `targetContracts()` and selector `0x3f7286f4` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct TargetContractsReturn { - pub targeted_contracts: ::std::vec::Vec<::ethers::core::types::Address>, - } - ///Container type for all return fields from the `targetSelectors` function with signature `targetSelectors()` and selector `0x916a17c6` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct TargetSelectorsReturn { - pub targeted_selectors: ::std::vec::Vec, - } - ///Container type for all return fields from the `targetSenders` function with signature `targetSenders()` and selector `0x3e5e3c23` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct TargetSendersReturn { - pub targeted_senders: ::std::vec::Vec<::ethers::core::types::Address>, - } - ///`FuzzSelector(address,bytes4[])` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct FuzzSelector { - pub addr: ::ethers::core::types::Address, - pub selectors: ::std::vec::Vec<[u8; 4]>, - } -} diff --git a/crates/bindings/src/units.rs b/crates/bindings/src/units.rs new file mode 100644 index 00000000..ea06bc56 --- /dev/null +++ b/crates/bindings/src/units.rs @@ -0,0 +1,62 @@ +pub use units::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod units { + #[rustfmt::skip] + const __ABI: &str = "[]"; + ///The parsed JSON ABI of the contract. + pub static UNITS_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| + ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); + pub struct Units(::ethers::contract::Contract); + impl ::core::clone::Clone for Units { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for Units { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for Units { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for Units { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(stringify!(Units)).field(&self.address()).finish() + } + } + impl Units { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + UNITS_ABI.clone(), + client, + ), + ) + } + } + impl From<::ethers::contract::Contract> + for Units { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } +} diff --git a/crates/bindings/src/weth9.rs b/crates/bindings/src/weth9.rs index 52e6d0db..8218098e 100644 --- a/crates/bindings/src/weth9.rs +++ b/crates/bindings/src/weth9.rs @@ -1938,38 +1938,38 @@ pub mod weth9 { 48, 88, 32, - 103, - 156, - 203, - 9, - 67, - 114, - 223, - 129, - 118, - 17, - 56, - 175, - 29, - 58, - 184, - 194, - 18, - 181, - 211, - 228, - 82, - 174, - 197, + 60, + 46, + 146, + 190, 116, + 6, + 160, 156, - 211, - 244, + 52, + 115, + 108, + 122, + 120, + 184, + 200, + 161, + 216, + 167, + 247, 240, - 70, - 189, - 244, - 75, + 156, + 223, + 222, + 21, + 139, + 255, + 106, + 149, + 47, + 17, + 226, + 119, 0, 41, ]; @@ -3567,38 +3567,38 @@ pub mod weth9 { 48, 88, 32, - 103, - 156, - 203, - 9, - 67, - 114, - 223, - 129, - 118, - 17, - 56, - 175, - 29, - 58, - 184, - 194, - 18, - 181, - 211, - 228, - 82, - 174, - 197, + 60, + 46, + 146, + 190, 116, + 6, + 160, 156, - 211, - 244, + 52, + 115, + 108, + 122, + 120, + 184, + 200, + 161, + 216, + 167, + 247, 240, - 70, - 189, - 244, - 75, + 156, + 223, + 222, + 21, + 139, + 255, + 106, + 149, + 47, + 17, + 226, + 119, 0, 41, ]; diff --git a/crates/bindings/src/writer.rs b/crates/bindings/src/writer.rs index e9e056b6..ef1b8c53 100644 --- a/crates/bindings/src/writer.rs +++ b/crates/bindings/src/writer.rs @@ -971,38 +971,38 @@ pub mod writer { 34, 18, 32, - 222, - 145, - 151, - 114, + 135, + 202, + 33, + 89, + 219, + 68, + 250, + 4, + 86, + 98, + 55, + 188, + 62, + 64, + 208, + 74, + 53, + 108, + 137, 147, + 3, + 67, + 235, + 235, + 220, + 21, + 238, + 255, + 122, 231, - 144, - 239, - 38, - 45, - 143, - 188, - 131, - 127, - 139, - 24, - 126, - 144, - 110, - 69, - 40, - 149, - 58, - 187, - 36, - 105, - 160, - 248, - 118, - 100, - 124, - 142, + 29, + 1, 100, 115, 111, @@ -1943,38 +1943,38 @@ pub mod writer { 34, 18, 32, - 222, - 145, - 151, - 114, + 135, + 202, + 33, + 89, + 219, + 68, + 250, + 4, + 86, + 98, + 55, + 188, + 62, + 64, + 208, + 74, + 53, + 108, + 137, 147, + 3, + 67, + 235, + 235, + 220, + 21, + 238, + 255, + 122, 231, - 144, - 239, - 38, - 45, - 143, - 188, - 131, - 127, - 139, - 24, - 126, - 144, - 110, - 69, - 40, - 149, - 58, - 187, - 36, - 105, - 160, - 248, - 118, - 100, - 124, - 142, + 29, + 1, 100, 115, 111, diff --git a/crates/cli/src/main.rs b/crates/cli/src/main.rs index 5b68733a..406db9ae 100644 --- a/crates/cli/src/main.rs +++ b/crates/cli/src/main.rs @@ -8,7 +8,7 @@ use simulate::{ environment::{recast_address, SimulationContract, SimulationManager}, price_simulation::PriceSimulation, }; -use bindings::{weth9}; +use bindings::{weth9, simple_registry, rmm01_portfolio}; mod config; #[derive(Parser)] @@ -61,8 +61,8 @@ async fn main() -> Result<()> { // Deploy the registry contract. let registry = SimulationContract::new( - BaseContract::from(bindings::simple_registry::SIMPLEREGISTRY_ABI.clone()), - bindings::simple_registry::SIMPLEREGISTRY_BYTECODE + BaseContract::from(simple_registry::SIMPLEREGISTRY_ABI.clone()), + simple_registry::SIMPLEREGISTRY_BYTECODE .clone() .into_iter() .collect(), @@ -72,8 +72,8 @@ async fn main() -> Result<()> { // Deploy the portfolio contract. let portfolio = SimulationContract::new( - BaseContract::from(bindings::rmm01_portfolio::RMM01PORTFOLIO_ABI.clone()), - bindings::rmm01_portfolio::RMM01PORTFOLIO_BYTECODE + BaseContract::from(rmm01_portfolio::RMM01PORTFOLIO_ABI.clone()), + rmm01_portfolio::RMM01PORTFOLIO_BYTECODE .clone() .into_iter() .collect(), diff --git a/generate_bindings.sh b/generate_bindings.sh new file mode 100755 index 00000000..63526c9b --- /dev/null +++ b/generate_bindings.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +# Define the source directories for your contracts +contracts_dir_1=/lib/arbmod/contracts/ +contracts_dir_2=/lib/portfolio/contracts/ + +# Loop through each directory and generate contracts +for contracts_dir in contracts_dir_1 contracts_dir_2 +do + echo "Generating contracts in $contracts_dir" + forge bind \ + -C $contracts_dir + # -b "/bindings/" \ + # --crate-name bindings +done + +echo "Done!" From a6d7a53808a705867b7724c15228d7dd6b78564d Mon Sep 17 00:00:00 2001 From: Colin Roberts Date: Thu, 23 Mar 2023 16:15:12 -0600 Subject: [PATCH 3/8] Update arbmod --- lib/arbmod | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/arbmod b/lib/arbmod index a8c6e980..1834b7be 160000 --- a/lib/arbmod +++ b/lib/arbmod @@ -1 +1 @@ -Subproject commit a8c6e980e0e12ff756e0b63f21273c5f6834787d +Subproject commit 1834b7be623e31b5b62e761a3a79f99477676429 From ad528f08f01938e3193bacd1d60eb3a00cb19be7 Mon Sep 17 00:00:00 2001 From: Colin Roberts Date: Thu, 23 Mar 2023 16:25:13 -0600 Subject: [PATCH 4/8] Fixed license --- crates/bindings/LICENSE | 201 ++++++++++++++++++++++++++++++++++++++++ lib/arbmod | 2 +- 2 files changed, 202 insertions(+), 1 deletion(-) create mode 100644 crates/bindings/LICENSE diff --git a/crates/bindings/LICENSE b/crates/bindings/LICENSE new file mode 100644 index 00000000..f49a4e16 --- /dev/null +++ b/crates/bindings/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. \ No newline at end of file diff --git a/lib/arbmod b/lib/arbmod index 1834b7be..66897b90 160000 --- a/lib/arbmod +++ b/lib/arbmod @@ -1 +1 @@ -Subproject commit 1834b7be623e31b5b62e761a3a79f99477676429 +Subproject commit 66897b907c3090a91288b55d54e774b319967871 From aa724da6e711cfd14177323d24ff8e7882bf1e07 Mon Sep 17 00:00:00 2001 From: Colin Roberts Date: Thu, 23 Mar 2023 16:26:18 -0600 Subject: [PATCH 5/8] Delete shell script --- generate_bindings.sh | 17 ----------------- 1 file changed, 17 deletions(-) delete mode 100755 generate_bindings.sh diff --git a/generate_bindings.sh b/generate_bindings.sh deleted file mode 100755 index 63526c9b..00000000 --- a/generate_bindings.sh +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/bash - -# Define the source directories for your contracts -contracts_dir_1=/lib/arbmod/contracts/ -contracts_dir_2=/lib/portfolio/contracts/ - -# Loop through each directory and generate contracts -for contracts_dir in contracts_dir_1 contracts_dir_2 -do - echo "Generating contracts in $contracts_dir" - forge bind \ - -C $contracts_dir - # -b "/bindings/" \ - # --crate-name bindings -done - -echo "Done!" From 1449af4e928d5d2eec348758c5d57d74338909ee Mon Sep 17 00:00:00 2001 From: Colin Roberts Date: Thu, 23 Mar 2023 16:41:50 -0600 Subject: [PATCH 6/8] switch to single file crate --- bind.sh | 6 + crates/bindings/LICENSE | 201 - crates/bindings/src/account_lib.rs | 62 - crates/bindings/src/arbiter_token.rs | 6322 - crates/bindings/src/assembly_lib.rs | 342 - crates/bindings/src/context.rs | 62 - crates/bindings/src/echidna_erc20.rs | 7961 - crates/bindings/src/erc20.rs | 770 - crates/bindings/src/fee_on_transfer_token.rs | 8349 - crates/bindings/src/fixed_point_math_lib.rs | 346 - crates/bindings/src/fvm_lib.rs | 62 - crates/bindings/src/gaussian.rs | 479 - crates/bindings/src/i_portfolio.rs | 1877 - crates/bindings/src/i_portfolio_actions.rs | 324 - crates/bindings/src/i_portfolio_events.rs | 637 - crates/bindings/src/i_portfolio_getters.rs | 1077 - crates/bindings/src/i_portfolio_registry.rs | 102 - crates/bindings/src/ierc20.rs | 535 - crates/bindings/src/ierc20_metadata.rs | 629 - .../bindings/src/infinitely_liquid_market.rs | 608 - crates/bindings/src/invariant.rs | 355 - crates/bindings/src/iweth.rs | 155 - crates/bindings/src/lib.rs | 130249 ++++++++++++++- crates/bindings/src/mock_erc20.rs | 8009 - crates/bindings/src/objective.rs | 2180 - crates/bindings/src/portfolio_lib.rs | 62 - crates/bindings/src/portfolio_like.rs | 162 - crates/bindings/src/portfolio_virtual.rs | 3152 - crates/bindings/src/rmm01_extended_lib.rs | 346 - crates/bindings/src/rmm01_lib.rs | 452 - crates/bindings/src/rmm01_portfolio.rs | 75797 --------- crates/bindings/src/safe_cast_lib.rs | 342 - crates/bindings/src/safe_transfer_lib.rs | 342 - crates/bindings/src/shared_types.rs | 38 - crates/bindings/src/simple_registry.rs | 1677 - crates/bindings/src/units.rs | 62 - crates/bindings/src/weth9.rs | 4390 - crates/bindings/src/writer.rs | 2147 - 38 files changed, 130220 insertions(+), 130448 deletions(-) create mode 100755 bind.sh delete mode 100644 crates/bindings/LICENSE delete mode 100644 crates/bindings/src/account_lib.rs delete mode 100644 crates/bindings/src/arbiter_token.rs delete mode 100644 crates/bindings/src/assembly_lib.rs delete mode 100644 crates/bindings/src/context.rs delete mode 100644 crates/bindings/src/echidna_erc20.rs delete mode 100644 crates/bindings/src/erc20.rs delete mode 100644 crates/bindings/src/fee_on_transfer_token.rs delete mode 100644 crates/bindings/src/fixed_point_math_lib.rs delete mode 100644 crates/bindings/src/fvm_lib.rs delete mode 100644 crates/bindings/src/gaussian.rs delete mode 100644 crates/bindings/src/i_portfolio.rs delete mode 100644 crates/bindings/src/i_portfolio_actions.rs delete mode 100644 crates/bindings/src/i_portfolio_events.rs delete mode 100644 crates/bindings/src/i_portfolio_getters.rs delete mode 100644 crates/bindings/src/i_portfolio_registry.rs delete mode 100644 crates/bindings/src/ierc20.rs delete mode 100644 crates/bindings/src/ierc20_metadata.rs delete mode 100644 crates/bindings/src/infinitely_liquid_market.rs delete mode 100644 crates/bindings/src/invariant.rs delete mode 100644 crates/bindings/src/iweth.rs delete mode 100644 crates/bindings/src/mock_erc20.rs delete mode 100644 crates/bindings/src/objective.rs delete mode 100644 crates/bindings/src/portfolio_lib.rs delete mode 100644 crates/bindings/src/portfolio_like.rs delete mode 100644 crates/bindings/src/portfolio_virtual.rs delete mode 100644 crates/bindings/src/rmm01_extended_lib.rs delete mode 100644 crates/bindings/src/rmm01_lib.rs delete mode 100644 crates/bindings/src/rmm01_portfolio.rs delete mode 100644 crates/bindings/src/safe_cast_lib.rs delete mode 100644 crates/bindings/src/safe_transfer_lib.rs delete mode 100644 crates/bindings/src/shared_types.rs delete mode 100644 crates/bindings/src/simple_registry.rs delete mode 100644 crates/bindings/src/units.rs delete mode 100644 crates/bindings/src/weth9.rs delete mode 100644 crates/bindings/src/writer.rs diff --git a/bind.sh b/bind.sh new file mode 100755 index 00000000..a05d1ea0 --- /dev/null +++ b/bind.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +forge bind -C lib/arbmod/contracts -b crates/bindings/ --crate-name bindings --overwrite --single-file --skip-cargo-toml +echo "Generated bindings for arbmod" +forge bind -C lib/portfolio/contracts -b crates/bindings/ --crate-name bindings --overwrite --single-file --skip-cargo-toml +echo "Generated bindings for portfolio" \ No newline at end of file diff --git a/crates/bindings/LICENSE b/crates/bindings/LICENSE deleted file mode 100644 index f49a4e16..00000000 --- a/crates/bindings/LICENSE +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. \ No newline at end of file diff --git a/crates/bindings/src/account_lib.rs b/crates/bindings/src/account_lib.rs deleted file mode 100644 index 34c3e918..00000000 --- a/crates/bindings/src/account_lib.rs +++ /dev/null @@ -1,62 +0,0 @@ -pub use account_lib::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types, -)] -pub mod account_lib { - #[rustfmt::skip] - const __ABI: &str = "[]"; - ///The parsed JSON ABI of the contract. - pub static ACCOUNTLIB_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| - ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); - pub struct AccountLib(::ethers::contract::Contract); - impl ::core::clone::Clone for AccountLib { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for AccountLib { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for AccountLib { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for AccountLib { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(stringify!(AccountLib)).field(&self.address()).finish() - } - } - impl AccountLib { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self( - ::ethers::contract::Contract::new( - address.into(), - ACCOUNTLIB_ABI.clone(), - client, - ), - ) - } - } - impl From<::ethers::contract::Contract> - for AccountLib { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } -} diff --git a/crates/bindings/src/arbiter_token.rs b/crates/bindings/src/arbiter_token.rs deleted file mode 100644 index af39e808..00000000 --- a/crates/bindings/src/arbiter_token.rs +++ /dev/null @@ -1,6322 +0,0 @@ -pub use arbiter_token::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types, -)] -pub mod arbiter_token { - #[rustfmt::skip] - const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\",\"components\":[]},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Approval\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Transfer\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"mint\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]}]"; - ///The parsed JSON ABI of the contract. - pub static ARBITERTOKEN_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| - ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); - #[rustfmt::skip] - const __BYTECODE: &[u8] = &[ - 96, - 128, - 96, - 64, - 82, - 52, - 128, - 21, - 98, - 0, - 0, - 17, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 96, - 64, - 81, - 98, - 0, - 12, - 55, - 56, - 3, - 128, - 98, - 0, - 12, - 55, - 131, - 57, - 129, - 1, - 96, - 64, - 129, - 144, - 82, - 98, - 0, - 0, - 52, - 145, - 98, - 0, - 1, - 35, - 86, - 91, - 129, - 129, - 96, - 3, - 98, - 0, - 0, - 68, - 131, - 130, - 98, - 0, - 2, - 28, - 86, - 91, - 80, - 96, - 4, - 98, - 0, - 0, - 83, - 130, - 130, - 98, - 0, - 2, - 28, - 86, - 91, - 80, - 80, - 80, - 80, - 80, - 98, - 0, - 2, - 232, - 86, - 91, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 65, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 96, - 0, - 130, - 96, - 31, - 131, - 1, - 18, - 98, - 0, - 0, - 134, - 87, - 96, - 0, - 128, - 253, - 91, - 129, - 81, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 128, - 130, - 17, - 21, - 98, - 0, - 0, - 163, - 87, - 98, - 0, - 0, - 163, - 98, - 0, - 0, - 94, - 86, - 91, - 96, - 64, - 81, - 96, - 31, - 131, - 1, - 96, - 31, - 25, - 144, - 129, - 22, - 96, - 63, - 1, - 22, - 129, - 1, - 144, - 130, - 130, - 17, - 129, - 131, - 16, - 23, - 21, - 98, - 0, - 0, - 206, - 87, - 98, - 0, - 0, - 206, - 98, - 0, - 0, - 94, - 86, - 91, - 129, - 96, - 64, - 82, - 131, - 129, - 82, - 96, - 32, - 146, - 80, - 134, - 131, - 133, - 136, - 1, - 1, - 17, - 21, - 98, - 0, - 0, - 235, - 87, - 96, - 0, - 128, - 253, - 91, - 96, - 0, - 145, - 80, - 91, - 131, - 130, - 16, - 21, - 98, - 0, - 1, - 15, - 87, - 133, - 130, - 1, - 131, - 1, - 81, - 129, - 131, - 1, - 132, - 1, - 82, - 144, - 130, - 1, - 144, - 98, - 0, - 0, - 240, - 86, - 91, - 96, - 0, - 147, - 129, - 1, - 144, - 146, - 1, - 146, - 144, - 146, - 82, - 148, - 147, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 64, - 131, - 133, - 3, - 18, - 21, - 98, - 0, - 1, - 55, - 87, - 96, - 0, - 128, - 253, - 91, - 130, - 81, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 128, - 130, - 17, - 21, - 98, - 0, - 1, - 79, - 87, - 96, - 0, - 128, - 253, - 91, - 98, - 0, - 1, - 93, - 134, - 131, - 135, - 1, - 98, - 0, - 0, - 116, - 86, - 91, - 147, - 80, - 96, - 32, - 133, - 1, - 81, - 145, - 80, - 128, - 130, - 17, - 21, - 98, - 0, - 1, - 116, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 98, - 0, - 1, - 131, - 133, - 130, - 134, - 1, - 98, - 0, - 0, - 116, - 86, - 91, - 145, - 80, - 80, - 146, - 80, - 146, - 144, - 80, - 86, - 91, - 96, - 1, - 129, - 129, - 28, - 144, - 130, - 22, - 128, - 98, - 0, - 1, - 162, - 87, - 96, - 127, - 130, - 22, - 145, - 80, - 91, - 96, - 32, - 130, - 16, - 129, - 3, - 98, - 0, - 1, - 195, - 87, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 34, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 80, - 145, - 144, - 80, - 86, - 91, - 96, - 31, - 130, - 17, - 21, - 98, - 0, - 2, - 23, - 87, - 96, - 0, - 129, - 129, - 82, - 96, - 32, - 129, - 32, - 96, - 31, - 133, - 1, - 96, - 5, - 28, - 129, - 1, - 96, - 32, - 134, - 16, - 21, - 98, - 0, - 1, - 242, - 87, - 80, - 128, - 91, - 96, - 31, - 133, - 1, - 96, - 5, - 28, - 130, - 1, - 145, - 80, - 91, - 129, - 129, - 16, - 21, - 98, - 0, - 2, - 19, - 87, - 130, - 129, - 85, - 96, - 1, - 1, - 98, - 0, - 1, - 254, - 86, - 91, - 80, - 80, - 80, - 91, - 80, - 80, - 80, - 86, - 91, - 129, - 81, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 129, - 17, - 21, - 98, - 0, - 2, - 56, - 87, - 98, - 0, - 2, - 56, - 98, - 0, - 0, - 94, - 86, - 91, - 98, - 0, - 2, - 80, - 129, - 98, - 0, - 2, - 73, - 132, - 84, - 98, - 0, - 1, - 141, - 86, - 91, - 132, - 98, - 0, - 1, - 201, - 86, - 91, - 96, - 32, - 128, - 96, - 31, - 131, - 17, - 96, - 1, - 129, - 20, - 98, - 0, - 2, - 136, - 87, - 96, - 0, - 132, - 21, - 98, - 0, - 2, - 111, - 87, - 80, - 133, - 131, - 1, - 81, - 91, - 96, - 0, - 25, - 96, - 3, - 134, - 144, - 27, - 28, - 25, - 22, - 96, - 1, - 133, - 144, - 27, - 23, - 133, - 85, - 98, - 0, - 2, - 19, - 86, - 91, - 96, - 0, - 133, - 129, - 82, - 96, - 32, - 129, - 32, - 96, - 31, - 25, - 134, - 22, - 145, - 91, - 130, - 129, - 16, - 21, - 98, - 0, - 2, - 185, - 87, - 136, - 134, - 1, - 81, - 130, - 85, - 148, - 132, - 1, - 148, - 96, - 1, - 144, - 145, - 1, - 144, - 132, - 1, - 98, - 0, - 2, - 152, - 86, - 91, - 80, - 133, - 130, - 16, - 21, - 98, - 0, - 2, - 216, - 87, - 135, - 133, - 1, - 81, - 96, - 0, - 25, - 96, - 3, - 136, - 144, - 27, - 96, - 248, - 22, - 28, - 25, - 22, - 129, - 85, - 91, - 80, - 80, - 80, - 80, - 80, - 96, - 1, - 144, - 129, - 27, - 1, - 144, - 85, - 80, - 86, - 91, - 97, - 9, - 63, - 128, - 98, - 0, - 2, - 248, - 96, - 0, - 57, - 96, - 0, - 243, - 254, - 96, - 128, - 96, - 64, - 82, - 52, - 128, - 21, - 97, - 0, - 16, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 96, - 4, - 54, - 16, - 97, - 0, - 180, - 87, - 96, - 0, - 53, - 96, - 224, - 28, - 128, - 99, - 64, - 193, - 15, - 25, - 17, - 97, - 0, - 113, - 87, - 128, - 99, - 64, - 193, - 15, - 25, - 20, - 97, - 1, - 65, - 87, - 128, - 99, - 112, - 160, - 130, - 49, - 20, - 97, - 1, - 86, - 87, - 128, - 99, - 149, - 216, - 155, - 65, - 20, - 97, - 1, - 127, - 87, - 128, - 99, - 164, - 87, - 194, - 215, - 20, - 97, - 1, - 135, - 87, - 128, - 99, - 169, - 5, - 156, - 187, - 20, - 97, - 1, - 154, - 87, - 128, - 99, - 221, - 98, - 237, - 62, - 20, - 97, - 1, - 173, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 99, - 6, - 253, - 222, - 3, - 20, - 97, - 0, - 185, - 87, - 128, - 99, - 9, - 94, - 167, - 179, - 20, - 97, - 0, - 215, - 87, - 128, - 99, - 24, - 22, - 13, - 221, - 20, - 97, - 0, - 250, - 87, - 128, - 99, - 35, - 184, - 114, - 221, - 20, - 97, - 1, - 12, - 87, - 128, - 99, - 49, - 60, - 229, - 103, - 20, - 97, - 1, - 31, - 87, - 128, - 99, - 57, - 80, - 147, - 81, - 20, - 97, - 1, - 46, - 87, - 91, - 96, - 0, - 128, - 253, - 91, - 97, - 0, - 193, - 97, - 1, - 192, - 86, - 91, - 96, - 64, - 81, - 97, - 0, - 206, - 145, - 144, - 97, - 7, - 137, - 86, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 243, - 91, - 97, - 0, - 234, - 97, - 0, - 229, - 54, - 96, - 4, - 97, - 7, - 243, - 86, - 91, - 97, - 2, - 82, - 86, - 91, - 96, - 64, - 81, - 144, - 21, - 21, - 129, - 82, - 96, - 32, - 1, - 97, - 0, - 206, - 86, - 91, - 96, - 2, - 84, - 91, - 96, - 64, - 81, - 144, - 129, - 82, - 96, - 32, - 1, - 97, - 0, - 206, - 86, - 91, - 97, - 0, - 234, - 97, - 1, - 26, - 54, - 96, - 4, - 97, - 8, - 29, - 86, - 91, - 97, - 2, - 108, - 86, - 91, - 96, - 64, - 81, - 96, - 18, - 129, - 82, - 96, - 32, - 1, - 97, - 0, - 206, - 86, - 91, - 97, - 0, - 234, - 97, - 1, - 60, - 54, - 96, - 4, - 97, - 7, - 243, - 86, - 91, - 97, - 2, - 144, - 86, - 91, - 97, - 1, - 84, - 97, - 1, - 79, - 54, - 96, - 4, - 97, - 7, - 243, - 86, - 91, - 97, - 2, - 178, - 86, - 91, - 0, - 91, - 97, - 0, - 254, - 97, - 1, - 100, - 54, - 96, - 4, - 97, - 8, - 89, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 32, - 129, - 144, - 82, - 96, - 64, - 144, - 32, - 84, - 144, - 86, - 91, - 97, - 0, - 193, - 97, - 2, - 192, - 86, - 91, - 97, - 0, - 234, - 97, - 1, - 149, - 54, - 96, - 4, - 97, - 7, - 243, - 86, - 91, - 97, - 2, - 207, - 86, - 91, - 97, - 0, - 234, - 97, - 1, - 168, - 54, - 96, - 4, - 97, - 7, - 243, - 86, - 91, - 97, - 3, - 79, - 86, - 91, - 97, - 0, - 254, - 97, - 1, - 187, - 54, - 96, - 4, - 97, - 8, - 123, - 86, - 91, - 97, - 3, - 93, - 86, - 91, - 96, - 96, - 96, - 3, - 128, - 84, - 97, - 1, - 207, - 144, - 97, - 8, - 174, - 86, - 91, - 128, - 96, - 31, - 1, - 96, - 32, - 128, - 145, - 4, - 2, - 96, - 32, - 1, - 96, - 64, - 81, - 144, - 129, - 1, - 96, - 64, - 82, - 128, - 146, - 145, - 144, - 129, - 129, - 82, - 96, - 32, - 1, - 130, - 128, - 84, - 97, - 1, - 251, - 144, - 97, - 8, - 174, - 86, - 91, - 128, - 21, - 97, - 2, - 72, - 87, - 128, - 96, - 31, - 16, - 97, - 2, - 29, - 87, - 97, - 1, - 0, - 128, - 131, - 84, - 4, - 2, - 131, - 82, - 145, - 96, - 32, - 1, - 145, - 97, - 2, - 72, - 86, - 91, - 130, - 1, - 145, - 144, - 96, - 0, - 82, - 96, - 32, - 96, - 0, - 32, - 144, - 91, - 129, - 84, - 129, - 82, - 144, - 96, - 1, - 1, - 144, - 96, - 32, - 1, - 128, - 131, - 17, - 97, - 2, - 43, - 87, - 130, - 144, - 3, - 96, - 31, - 22, - 130, - 1, - 145, - 91, - 80, - 80, - 80, - 80, - 80, - 144, - 80, - 144, - 86, - 91, - 96, - 0, - 51, - 97, - 2, - 96, - 129, - 133, - 133, - 97, - 3, - 136, - 86, - 91, - 96, - 1, - 145, - 80, - 80, - 91, - 146, - 145, - 80, - 80, - 86, - 91, - 96, - 0, - 51, - 97, - 2, - 122, - 133, - 130, - 133, - 97, - 4, - 172, - 86, - 91, - 97, - 2, - 133, - 133, - 133, - 133, - 97, - 5, - 38, - 86, - 91, - 80, - 96, - 1, - 148, - 147, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 51, - 97, - 2, - 96, - 129, - 133, - 133, - 97, - 2, - 163, - 131, - 131, - 97, - 3, - 93, - 86, - 91, - 97, - 2, - 173, - 145, - 144, - 97, - 8, - 232, - 86, - 91, - 97, - 3, - 136, - 86, - 91, - 97, - 2, - 188, - 130, - 130, - 97, - 6, - 202, - 86, - 91, - 80, - 80, - 86, - 91, - 96, - 96, - 96, - 4, - 128, - 84, - 97, - 1, - 207, - 144, - 97, - 8, - 174, - 86, - 91, - 96, - 0, - 51, - 129, - 97, - 2, - 221, - 130, - 134, - 97, - 3, - 93, - 86, - 91, - 144, - 80, - 131, - 129, - 16, - 21, - 97, - 3, - 66, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 37, - 96, - 36, - 130, - 1, - 82, - 127, - 69, - 82, - 67, - 50, - 48, - 58, - 32, - 100, - 101, - 99, - 114, - 101, - 97, - 115, - 101, - 100, - 32, - 97, - 108, - 108, - 111, - 119, - 97, - 110, - 99, - 101, - 32, - 98, - 101, - 108, - 111, - 119, - 96, - 68, - 130, - 1, - 82, - 100, - 32, - 122, - 101, - 114, - 111, - 96, - 216, - 27, - 96, - 100, - 130, - 1, - 82, - 96, - 132, - 1, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 97, - 2, - 133, - 130, - 134, - 134, - 132, - 3, - 97, - 3, - 136, - 86, - 91, - 96, - 0, - 51, - 97, - 2, - 96, - 129, - 133, - 133, - 97, - 5, - 38, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 145, - 130, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 1, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 147, - 144, - 148, - 22, - 130, - 82, - 145, - 144, - 145, - 82, - 32, - 84, - 144, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 131, - 22, - 97, - 3, - 234, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 36, - 128, - 130, - 1, - 82, - 127, - 69, - 82, - 67, - 50, - 48, - 58, - 32, - 97, - 112, - 112, - 114, - 111, - 118, - 101, - 32, - 102, - 114, - 111, - 109, - 32, - 116, - 104, - 101, - 32, - 122, - 101, - 114, - 111, - 32, - 97, - 100, - 100, - 96, - 68, - 130, - 1, - 82, - 99, - 114, - 101, - 115, - 115, - 96, - 224, - 27, - 96, - 100, - 130, - 1, - 82, - 96, - 132, - 1, - 97, - 3, - 57, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 130, - 22, - 97, - 4, - 75, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 34, - 96, - 36, - 130, - 1, - 82, - 127, - 69, - 82, - 67, - 50, - 48, - 58, - 32, - 97, - 112, - 112, - 114, - 111, - 118, - 101, - 32, - 116, - 111, - 32, - 116, - 104, - 101, - 32, - 122, - 101, - 114, - 111, - 32, - 97, - 100, - 100, - 114, - 101, - 96, - 68, - 130, - 1, - 82, - 97, - 115, - 115, - 96, - 240, - 27, - 96, - 100, - 130, - 1, - 82, - 96, - 132, - 1, - 97, - 3, - 57, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 131, - 129, - 22, - 96, - 0, - 129, - 129, - 82, - 96, - 1, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 148, - 135, - 22, - 128, - 132, - 82, - 148, - 130, - 82, - 145, - 130, - 144, - 32, - 133, - 144, - 85, - 144, - 81, - 132, - 129, - 82, - 127, - 140, - 91, - 225, - 229, - 235, - 236, - 125, - 91, - 209, - 79, - 113, - 66, - 125, - 30, - 132, - 243, - 221, - 3, - 20, - 192, - 247, - 178, - 41, - 30, - 91, - 32, - 10, - 200, - 199, - 195, - 185, - 37, - 145, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 163, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 97, - 4, - 184, - 132, - 132, - 97, - 3, - 93, - 86, - 91, - 144, - 80, - 96, - 0, - 25, - 129, - 20, - 97, - 5, - 32, - 87, - 129, - 129, - 16, - 21, - 97, - 5, - 19, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 29, - 96, - 36, - 130, - 1, - 82, - 127, - 69, - 82, - 67, - 50, - 48, - 58, - 32, - 105, - 110, - 115, - 117, - 102, - 102, - 105, - 99, - 105, - 101, - 110, - 116, - 32, - 97, - 108, - 108, - 111, - 119, - 97, - 110, - 99, - 101, - 0, - 0, - 0, - 96, - 68, - 130, - 1, - 82, - 96, - 100, - 1, - 97, - 3, - 57, - 86, - 91, - 97, - 5, - 32, - 132, - 132, - 132, - 132, - 3, - 97, - 3, - 136, - 86, - 91, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 131, - 22, - 97, - 5, - 138, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 37, - 96, - 36, - 130, - 1, - 82, - 127, - 69, - 82, - 67, - 50, - 48, - 58, - 32, - 116, - 114, - 97, - 110, - 115, - 102, - 101, - 114, - 32, - 102, - 114, - 111, - 109, - 32, - 116, - 104, - 101, - 32, - 122, - 101, - 114, - 111, - 32, - 97, - 100, - 96, - 68, - 130, - 1, - 82, - 100, - 100, - 114, - 101, - 115, - 115, - 96, - 216, - 27, - 96, - 100, - 130, - 1, - 82, - 96, - 132, - 1, - 97, - 3, - 57, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 130, - 22, - 97, - 5, - 236, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 35, - 96, - 36, - 130, - 1, - 82, - 127, - 69, - 82, - 67, - 50, - 48, - 58, - 32, - 116, - 114, - 97, - 110, - 115, - 102, - 101, - 114, - 32, - 116, - 111, - 32, - 116, - 104, - 101, - 32, - 122, - 101, - 114, - 111, - 32, - 97, - 100, - 100, - 114, - 96, - 68, - 130, - 1, - 82, - 98, - 101, - 115, - 115, - 96, - 232, - 27, - 96, - 100, - 130, - 1, - 82, - 96, - 132, - 1, - 97, - 3, - 57, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 131, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 32, - 129, - 144, - 82, - 96, - 64, - 144, - 32, - 84, - 129, - 129, - 16, - 21, - 97, - 6, - 100, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 38, - 96, - 36, - 130, - 1, - 82, - 127, - 69, - 82, - 67, - 50, - 48, - 58, - 32, - 116, - 114, - 97, - 110, - 115, - 102, - 101, - 114, - 32, - 97, - 109, - 111, - 117, - 110, - 116, - 32, - 101, - 120, - 99, - 101, - 101, - 100, - 115, - 32, - 98, - 96, - 68, - 130, - 1, - 82, - 101, - 97, - 108, - 97, - 110, - 99, - 101, - 96, - 208, - 27, - 96, - 100, - 130, - 1, - 82, - 96, - 132, - 1, - 97, - 3, - 57, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 132, - 129, - 22, - 96, - 0, - 129, - 129, - 82, - 96, - 32, - 129, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 135, - 135, - 3, - 144, - 85, - 147, - 135, - 22, - 128, - 131, - 82, - 145, - 132, - 144, - 32, - 128, - 84, - 135, - 1, - 144, - 85, - 146, - 81, - 133, - 129, - 82, - 144, - 146, - 127, - 221, - 242, - 82, - 173, - 27, - 226, - 200, - 155, - 105, - 194, - 176, - 104, - 252, - 55, - 141, - 170, - 149, - 43, - 167, - 241, - 99, - 196, - 161, - 22, - 40, - 245, - 90, - 77, - 245, - 35, - 179, - 239, - 145, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 163, - 97, - 5, - 32, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 130, - 22, - 97, - 7, - 32, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 31, - 96, - 36, - 130, - 1, - 82, - 127, - 69, - 82, - 67, - 50, - 48, - 58, - 32, - 109, - 105, - 110, - 116, - 32, - 116, - 111, - 32, - 116, - 104, - 101, - 32, - 122, - 101, - 114, - 111, - 32, - 97, - 100, - 100, - 114, - 101, - 115, - 115, - 0, - 96, - 68, - 130, - 1, - 82, - 96, - 100, - 1, - 97, - 3, - 57, - 86, - 91, - 128, - 96, - 2, - 96, - 0, - 130, - 130, - 84, - 97, - 7, - 50, - 145, - 144, - 97, - 8, - 232, - 86, - 91, - 144, - 145, - 85, - 80, - 80, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 130, - 22, - 96, - 0, - 129, - 129, - 82, - 96, - 32, - 129, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 128, - 84, - 134, - 1, - 144, - 85, - 81, - 132, - 129, - 82, - 127, - 221, - 242, - 82, - 173, - 27, - 226, - 200, - 155, - 105, - 194, - 176, - 104, - 252, - 55, - 141, - 170, - 149, - 43, - 167, - 241, - 99, - 196, - 161, - 22, - 40, - 245, - 90, - 77, - 245, - 35, - 179, - 239, - 145, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 163, - 80, - 80, - 86, - 91, - 96, - 0, - 96, - 32, - 128, - 131, - 82, - 131, - 81, - 128, - 130, - 133, - 1, - 82, - 96, - 0, - 91, - 129, - 129, - 16, - 21, - 97, - 7, - 182, - 87, - 133, - 129, - 1, - 131, - 1, - 81, - 133, - 130, - 1, - 96, - 64, - 1, - 82, - 130, - 1, - 97, - 7, - 154, - 86, - 91, - 80, - 96, - 0, - 96, - 64, - 130, - 134, - 1, - 1, - 82, - 96, - 64, - 96, - 31, - 25, - 96, - 31, - 131, - 1, - 22, - 133, - 1, - 1, - 146, - 80, - 80, - 80, - 146, - 145, - 80, - 80, - 86, - 91, - 128, - 53, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 129, - 22, - 129, - 20, - 97, - 7, - 238, - 87, - 96, - 0, - 128, - 253, - 91, - 145, - 144, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 64, - 131, - 133, - 3, - 18, - 21, - 97, - 8, - 6, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 8, - 15, - 131, - 97, - 7, - 215, - 86, - 91, - 148, - 96, - 32, - 147, - 144, - 147, - 1, - 53, - 147, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 96, - 96, - 132, - 134, - 3, - 18, - 21, - 97, - 8, - 50, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 8, - 59, - 132, - 97, - 7, - 215, - 86, - 91, - 146, - 80, - 97, - 8, - 73, - 96, - 32, - 133, - 1, - 97, - 7, - 215, - 86, - 91, - 145, - 80, - 96, - 64, - 132, - 1, - 53, - 144, - 80, - 146, - 80, - 146, - 80, - 146, - 86, - 91, - 96, - 0, - 96, - 32, - 130, - 132, - 3, - 18, - 21, - 97, - 8, - 107, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 8, - 116, - 130, - 97, - 7, - 215, - 86, - 91, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 64, - 131, - 133, - 3, - 18, - 21, - 97, - 8, - 142, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 8, - 151, - 131, - 97, - 7, - 215, - 86, - 91, - 145, - 80, - 97, - 8, - 165, - 96, - 32, - 132, - 1, - 97, - 7, - 215, - 86, - 91, - 144, - 80, - 146, - 80, - 146, - 144, - 80, - 86, - 91, - 96, - 1, - 129, - 129, - 28, - 144, - 130, - 22, - 128, - 97, - 8, - 194, - 87, - 96, - 127, - 130, - 22, - 145, - 80, - 91, - 96, - 32, - 130, - 16, - 129, - 3, - 97, - 8, - 226, - 87, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 34, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 80, - 145, - 144, - 80, - 86, - 91, - 128, - 130, - 1, - 128, - 130, - 17, - 21, - 97, - 2, - 102, - 87, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 17, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 254, - 162, - 100, - 105, - 112, - 102, - 115, - 88, - 34, - 18, - 32, - 168, - 118, - 56, - 225, - 102, - 69, - 151, - 88, - 138, - 92, - 145, - 175, - 36, - 148, - 74, - 82, - 157, - 206, - 19, - 225, - 210, - 135, - 45, - 235, - 250, - 41, - 178, - 131, - 55, - 18, - 8, - 235, - 100, - 115, - 111, - 108, - 99, - 67, - 0, - 8, - 19, - 0, - 51, - ]; - ///The bytecode of the contract. - pub static ARBITERTOKEN_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( - __BYTECODE, - ); - #[rustfmt::skip] - const __DEPLOYED_BYTECODE: &[u8] = &[ - 96, - 128, - 96, - 64, - 82, - 52, - 128, - 21, - 97, - 0, - 16, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 96, - 4, - 54, - 16, - 97, - 0, - 180, - 87, - 96, - 0, - 53, - 96, - 224, - 28, - 128, - 99, - 64, - 193, - 15, - 25, - 17, - 97, - 0, - 113, - 87, - 128, - 99, - 64, - 193, - 15, - 25, - 20, - 97, - 1, - 65, - 87, - 128, - 99, - 112, - 160, - 130, - 49, - 20, - 97, - 1, - 86, - 87, - 128, - 99, - 149, - 216, - 155, - 65, - 20, - 97, - 1, - 127, - 87, - 128, - 99, - 164, - 87, - 194, - 215, - 20, - 97, - 1, - 135, - 87, - 128, - 99, - 169, - 5, - 156, - 187, - 20, - 97, - 1, - 154, - 87, - 128, - 99, - 221, - 98, - 237, - 62, - 20, - 97, - 1, - 173, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 99, - 6, - 253, - 222, - 3, - 20, - 97, - 0, - 185, - 87, - 128, - 99, - 9, - 94, - 167, - 179, - 20, - 97, - 0, - 215, - 87, - 128, - 99, - 24, - 22, - 13, - 221, - 20, - 97, - 0, - 250, - 87, - 128, - 99, - 35, - 184, - 114, - 221, - 20, - 97, - 1, - 12, - 87, - 128, - 99, - 49, - 60, - 229, - 103, - 20, - 97, - 1, - 31, - 87, - 128, - 99, - 57, - 80, - 147, - 81, - 20, - 97, - 1, - 46, - 87, - 91, - 96, - 0, - 128, - 253, - 91, - 97, - 0, - 193, - 97, - 1, - 192, - 86, - 91, - 96, - 64, - 81, - 97, - 0, - 206, - 145, - 144, - 97, - 7, - 137, - 86, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 243, - 91, - 97, - 0, - 234, - 97, - 0, - 229, - 54, - 96, - 4, - 97, - 7, - 243, - 86, - 91, - 97, - 2, - 82, - 86, - 91, - 96, - 64, - 81, - 144, - 21, - 21, - 129, - 82, - 96, - 32, - 1, - 97, - 0, - 206, - 86, - 91, - 96, - 2, - 84, - 91, - 96, - 64, - 81, - 144, - 129, - 82, - 96, - 32, - 1, - 97, - 0, - 206, - 86, - 91, - 97, - 0, - 234, - 97, - 1, - 26, - 54, - 96, - 4, - 97, - 8, - 29, - 86, - 91, - 97, - 2, - 108, - 86, - 91, - 96, - 64, - 81, - 96, - 18, - 129, - 82, - 96, - 32, - 1, - 97, - 0, - 206, - 86, - 91, - 97, - 0, - 234, - 97, - 1, - 60, - 54, - 96, - 4, - 97, - 7, - 243, - 86, - 91, - 97, - 2, - 144, - 86, - 91, - 97, - 1, - 84, - 97, - 1, - 79, - 54, - 96, - 4, - 97, - 7, - 243, - 86, - 91, - 97, - 2, - 178, - 86, - 91, - 0, - 91, - 97, - 0, - 254, - 97, - 1, - 100, - 54, - 96, - 4, - 97, - 8, - 89, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 32, - 129, - 144, - 82, - 96, - 64, - 144, - 32, - 84, - 144, - 86, - 91, - 97, - 0, - 193, - 97, - 2, - 192, - 86, - 91, - 97, - 0, - 234, - 97, - 1, - 149, - 54, - 96, - 4, - 97, - 7, - 243, - 86, - 91, - 97, - 2, - 207, - 86, - 91, - 97, - 0, - 234, - 97, - 1, - 168, - 54, - 96, - 4, - 97, - 7, - 243, - 86, - 91, - 97, - 3, - 79, - 86, - 91, - 97, - 0, - 254, - 97, - 1, - 187, - 54, - 96, - 4, - 97, - 8, - 123, - 86, - 91, - 97, - 3, - 93, - 86, - 91, - 96, - 96, - 96, - 3, - 128, - 84, - 97, - 1, - 207, - 144, - 97, - 8, - 174, - 86, - 91, - 128, - 96, - 31, - 1, - 96, - 32, - 128, - 145, - 4, - 2, - 96, - 32, - 1, - 96, - 64, - 81, - 144, - 129, - 1, - 96, - 64, - 82, - 128, - 146, - 145, - 144, - 129, - 129, - 82, - 96, - 32, - 1, - 130, - 128, - 84, - 97, - 1, - 251, - 144, - 97, - 8, - 174, - 86, - 91, - 128, - 21, - 97, - 2, - 72, - 87, - 128, - 96, - 31, - 16, - 97, - 2, - 29, - 87, - 97, - 1, - 0, - 128, - 131, - 84, - 4, - 2, - 131, - 82, - 145, - 96, - 32, - 1, - 145, - 97, - 2, - 72, - 86, - 91, - 130, - 1, - 145, - 144, - 96, - 0, - 82, - 96, - 32, - 96, - 0, - 32, - 144, - 91, - 129, - 84, - 129, - 82, - 144, - 96, - 1, - 1, - 144, - 96, - 32, - 1, - 128, - 131, - 17, - 97, - 2, - 43, - 87, - 130, - 144, - 3, - 96, - 31, - 22, - 130, - 1, - 145, - 91, - 80, - 80, - 80, - 80, - 80, - 144, - 80, - 144, - 86, - 91, - 96, - 0, - 51, - 97, - 2, - 96, - 129, - 133, - 133, - 97, - 3, - 136, - 86, - 91, - 96, - 1, - 145, - 80, - 80, - 91, - 146, - 145, - 80, - 80, - 86, - 91, - 96, - 0, - 51, - 97, - 2, - 122, - 133, - 130, - 133, - 97, - 4, - 172, - 86, - 91, - 97, - 2, - 133, - 133, - 133, - 133, - 97, - 5, - 38, - 86, - 91, - 80, - 96, - 1, - 148, - 147, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 51, - 97, - 2, - 96, - 129, - 133, - 133, - 97, - 2, - 163, - 131, - 131, - 97, - 3, - 93, - 86, - 91, - 97, - 2, - 173, - 145, - 144, - 97, - 8, - 232, - 86, - 91, - 97, - 3, - 136, - 86, - 91, - 97, - 2, - 188, - 130, - 130, - 97, - 6, - 202, - 86, - 91, - 80, - 80, - 86, - 91, - 96, - 96, - 96, - 4, - 128, - 84, - 97, - 1, - 207, - 144, - 97, - 8, - 174, - 86, - 91, - 96, - 0, - 51, - 129, - 97, - 2, - 221, - 130, - 134, - 97, - 3, - 93, - 86, - 91, - 144, - 80, - 131, - 129, - 16, - 21, - 97, - 3, - 66, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 37, - 96, - 36, - 130, - 1, - 82, - 127, - 69, - 82, - 67, - 50, - 48, - 58, - 32, - 100, - 101, - 99, - 114, - 101, - 97, - 115, - 101, - 100, - 32, - 97, - 108, - 108, - 111, - 119, - 97, - 110, - 99, - 101, - 32, - 98, - 101, - 108, - 111, - 119, - 96, - 68, - 130, - 1, - 82, - 100, - 32, - 122, - 101, - 114, - 111, - 96, - 216, - 27, - 96, - 100, - 130, - 1, - 82, - 96, - 132, - 1, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 97, - 2, - 133, - 130, - 134, - 134, - 132, - 3, - 97, - 3, - 136, - 86, - 91, - 96, - 0, - 51, - 97, - 2, - 96, - 129, - 133, - 133, - 97, - 5, - 38, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 145, - 130, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 1, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 147, - 144, - 148, - 22, - 130, - 82, - 145, - 144, - 145, - 82, - 32, - 84, - 144, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 131, - 22, - 97, - 3, - 234, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 36, - 128, - 130, - 1, - 82, - 127, - 69, - 82, - 67, - 50, - 48, - 58, - 32, - 97, - 112, - 112, - 114, - 111, - 118, - 101, - 32, - 102, - 114, - 111, - 109, - 32, - 116, - 104, - 101, - 32, - 122, - 101, - 114, - 111, - 32, - 97, - 100, - 100, - 96, - 68, - 130, - 1, - 82, - 99, - 114, - 101, - 115, - 115, - 96, - 224, - 27, - 96, - 100, - 130, - 1, - 82, - 96, - 132, - 1, - 97, - 3, - 57, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 130, - 22, - 97, - 4, - 75, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 34, - 96, - 36, - 130, - 1, - 82, - 127, - 69, - 82, - 67, - 50, - 48, - 58, - 32, - 97, - 112, - 112, - 114, - 111, - 118, - 101, - 32, - 116, - 111, - 32, - 116, - 104, - 101, - 32, - 122, - 101, - 114, - 111, - 32, - 97, - 100, - 100, - 114, - 101, - 96, - 68, - 130, - 1, - 82, - 97, - 115, - 115, - 96, - 240, - 27, - 96, - 100, - 130, - 1, - 82, - 96, - 132, - 1, - 97, - 3, - 57, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 131, - 129, - 22, - 96, - 0, - 129, - 129, - 82, - 96, - 1, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 148, - 135, - 22, - 128, - 132, - 82, - 148, - 130, - 82, - 145, - 130, - 144, - 32, - 133, - 144, - 85, - 144, - 81, - 132, - 129, - 82, - 127, - 140, - 91, - 225, - 229, - 235, - 236, - 125, - 91, - 209, - 79, - 113, - 66, - 125, - 30, - 132, - 243, - 221, - 3, - 20, - 192, - 247, - 178, - 41, - 30, - 91, - 32, - 10, - 200, - 199, - 195, - 185, - 37, - 145, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 163, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 97, - 4, - 184, - 132, - 132, - 97, - 3, - 93, - 86, - 91, - 144, - 80, - 96, - 0, - 25, - 129, - 20, - 97, - 5, - 32, - 87, - 129, - 129, - 16, - 21, - 97, - 5, - 19, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 29, - 96, - 36, - 130, - 1, - 82, - 127, - 69, - 82, - 67, - 50, - 48, - 58, - 32, - 105, - 110, - 115, - 117, - 102, - 102, - 105, - 99, - 105, - 101, - 110, - 116, - 32, - 97, - 108, - 108, - 111, - 119, - 97, - 110, - 99, - 101, - 0, - 0, - 0, - 96, - 68, - 130, - 1, - 82, - 96, - 100, - 1, - 97, - 3, - 57, - 86, - 91, - 97, - 5, - 32, - 132, - 132, - 132, - 132, - 3, - 97, - 3, - 136, - 86, - 91, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 131, - 22, - 97, - 5, - 138, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 37, - 96, - 36, - 130, - 1, - 82, - 127, - 69, - 82, - 67, - 50, - 48, - 58, - 32, - 116, - 114, - 97, - 110, - 115, - 102, - 101, - 114, - 32, - 102, - 114, - 111, - 109, - 32, - 116, - 104, - 101, - 32, - 122, - 101, - 114, - 111, - 32, - 97, - 100, - 96, - 68, - 130, - 1, - 82, - 100, - 100, - 114, - 101, - 115, - 115, - 96, - 216, - 27, - 96, - 100, - 130, - 1, - 82, - 96, - 132, - 1, - 97, - 3, - 57, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 130, - 22, - 97, - 5, - 236, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 35, - 96, - 36, - 130, - 1, - 82, - 127, - 69, - 82, - 67, - 50, - 48, - 58, - 32, - 116, - 114, - 97, - 110, - 115, - 102, - 101, - 114, - 32, - 116, - 111, - 32, - 116, - 104, - 101, - 32, - 122, - 101, - 114, - 111, - 32, - 97, - 100, - 100, - 114, - 96, - 68, - 130, - 1, - 82, - 98, - 101, - 115, - 115, - 96, - 232, - 27, - 96, - 100, - 130, - 1, - 82, - 96, - 132, - 1, - 97, - 3, - 57, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 131, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 32, - 129, - 144, - 82, - 96, - 64, - 144, - 32, - 84, - 129, - 129, - 16, - 21, - 97, - 6, - 100, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 38, - 96, - 36, - 130, - 1, - 82, - 127, - 69, - 82, - 67, - 50, - 48, - 58, - 32, - 116, - 114, - 97, - 110, - 115, - 102, - 101, - 114, - 32, - 97, - 109, - 111, - 117, - 110, - 116, - 32, - 101, - 120, - 99, - 101, - 101, - 100, - 115, - 32, - 98, - 96, - 68, - 130, - 1, - 82, - 101, - 97, - 108, - 97, - 110, - 99, - 101, - 96, - 208, - 27, - 96, - 100, - 130, - 1, - 82, - 96, - 132, - 1, - 97, - 3, - 57, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 132, - 129, - 22, - 96, - 0, - 129, - 129, - 82, - 96, - 32, - 129, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 135, - 135, - 3, - 144, - 85, - 147, - 135, - 22, - 128, - 131, - 82, - 145, - 132, - 144, - 32, - 128, - 84, - 135, - 1, - 144, - 85, - 146, - 81, - 133, - 129, - 82, - 144, - 146, - 127, - 221, - 242, - 82, - 173, - 27, - 226, - 200, - 155, - 105, - 194, - 176, - 104, - 252, - 55, - 141, - 170, - 149, - 43, - 167, - 241, - 99, - 196, - 161, - 22, - 40, - 245, - 90, - 77, - 245, - 35, - 179, - 239, - 145, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 163, - 97, - 5, - 32, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 130, - 22, - 97, - 7, - 32, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 31, - 96, - 36, - 130, - 1, - 82, - 127, - 69, - 82, - 67, - 50, - 48, - 58, - 32, - 109, - 105, - 110, - 116, - 32, - 116, - 111, - 32, - 116, - 104, - 101, - 32, - 122, - 101, - 114, - 111, - 32, - 97, - 100, - 100, - 114, - 101, - 115, - 115, - 0, - 96, - 68, - 130, - 1, - 82, - 96, - 100, - 1, - 97, - 3, - 57, - 86, - 91, - 128, - 96, - 2, - 96, - 0, - 130, - 130, - 84, - 97, - 7, - 50, - 145, - 144, - 97, - 8, - 232, - 86, - 91, - 144, - 145, - 85, - 80, - 80, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 130, - 22, - 96, - 0, - 129, - 129, - 82, - 96, - 32, - 129, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 128, - 84, - 134, - 1, - 144, - 85, - 81, - 132, - 129, - 82, - 127, - 221, - 242, - 82, - 173, - 27, - 226, - 200, - 155, - 105, - 194, - 176, - 104, - 252, - 55, - 141, - 170, - 149, - 43, - 167, - 241, - 99, - 196, - 161, - 22, - 40, - 245, - 90, - 77, - 245, - 35, - 179, - 239, - 145, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 163, - 80, - 80, - 86, - 91, - 96, - 0, - 96, - 32, - 128, - 131, - 82, - 131, - 81, - 128, - 130, - 133, - 1, - 82, - 96, - 0, - 91, - 129, - 129, - 16, - 21, - 97, - 7, - 182, - 87, - 133, - 129, - 1, - 131, - 1, - 81, - 133, - 130, - 1, - 96, - 64, - 1, - 82, - 130, - 1, - 97, - 7, - 154, - 86, - 91, - 80, - 96, - 0, - 96, - 64, - 130, - 134, - 1, - 1, - 82, - 96, - 64, - 96, - 31, - 25, - 96, - 31, - 131, - 1, - 22, - 133, - 1, - 1, - 146, - 80, - 80, - 80, - 146, - 145, - 80, - 80, - 86, - 91, - 128, - 53, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 129, - 22, - 129, - 20, - 97, - 7, - 238, - 87, - 96, - 0, - 128, - 253, - 91, - 145, - 144, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 64, - 131, - 133, - 3, - 18, - 21, - 97, - 8, - 6, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 8, - 15, - 131, - 97, - 7, - 215, - 86, - 91, - 148, - 96, - 32, - 147, - 144, - 147, - 1, - 53, - 147, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 96, - 96, - 132, - 134, - 3, - 18, - 21, - 97, - 8, - 50, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 8, - 59, - 132, - 97, - 7, - 215, - 86, - 91, - 146, - 80, - 97, - 8, - 73, - 96, - 32, - 133, - 1, - 97, - 7, - 215, - 86, - 91, - 145, - 80, - 96, - 64, - 132, - 1, - 53, - 144, - 80, - 146, - 80, - 146, - 80, - 146, - 86, - 91, - 96, - 0, - 96, - 32, - 130, - 132, - 3, - 18, - 21, - 97, - 8, - 107, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 8, - 116, - 130, - 97, - 7, - 215, - 86, - 91, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 64, - 131, - 133, - 3, - 18, - 21, - 97, - 8, - 142, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 8, - 151, - 131, - 97, - 7, - 215, - 86, - 91, - 145, - 80, - 97, - 8, - 165, - 96, - 32, - 132, - 1, - 97, - 7, - 215, - 86, - 91, - 144, - 80, - 146, - 80, - 146, - 144, - 80, - 86, - 91, - 96, - 1, - 129, - 129, - 28, - 144, - 130, - 22, - 128, - 97, - 8, - 194, - 87, - 96, - 127, - 130, - 22, - 145, - 80, - 91, - 96, - 32, - 130, - 16, - 129, - 3, - 97, - 8, - 226, - 87, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 34, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 80, - 145, - 144, - 80, - 86, - 91, - 128, - 130, - 1, - 128, - 130, - 17, - 21, - 97, - 2, - 102, - 87, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 17, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 254, - 162, - 100, - 105, - 112, - 102, - 115, - 88, - 34, - 18, - 32, - 168, - 118, - 56, - 225, - 102, - 69, - 151, - 88, - 138, - 92, - 145, - 175, - 36, - 148, - 74, - 82, - 157, - 206, - 19, - 225, - 210, - 135, - 45, - 235, - 250, - 41, - 178, - 131, - 55, - 18, - 8, - 235, - 100, - 115, - 111, - 108, - 99, - 67, - 0, - 8, - 19, - 0, - 51, - ]; - ///The deployed bytecode of the contract. - pub static ARBITERTOKEN_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( - __DEPLOYED_BYTECODE, - ); - pub struct ArbiterToken(::ethers::contract::Contract); - impl ::core::clone::Clone for ArbiterToken { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for ArbiterToken { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for ArbiterToken { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for ArbiterToken { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(stringify!(ArbiterToken)).field(&self.address()).finish() - } - } - impl ArbiterToken { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self( - ::ethers::contract::Contract::new( - address.into(), - ARBITERTOKEN_ABI.clone(), - client, - ), - ) - } - /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. - /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction - /// - /// Notes: - /// - If there are no constructor arguments, you should pass `()` as the argument. - /// - The default poll duration is 7 seconds. - /// - The default number of confirmations is 1 block. - /// - /// - /// # Example - /// - /// Generate contract bindings with `abigen!` and deploy a new contract instance. - /// - /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. - /// - /// ```ignore - /// # async fn deploy(client: ::std::sync::Arc) { - /// abigen!(Greeter, "../greeter.json"); - /// - /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); - /// let msg = greeter_contract.greet().call().await.unwrap(); - /// # } - /// ``` - pub fn deploy( - client: ::std::sync::Arc, - constructor_args: T, - ) -> ::core::result::Result< - ::ethers::contract::builders::ContractDeployer, - ::ethers::contract::ContractError, - > { - let factory = ::ethers::contract::ContractFactory::new( - ARBITERTOKEN_ABI.clone(), - ARBITERTOKEN_BYTECODE.clone().into(), - client, - ); - let deployer = factory.deploy(constructor_args)?; - let deployer = ::ethers::contract::ContractDeployer::new(deployer); - Ok(deployer) - } - ///Calls the contract's `allowance` (0xdd62ed3e) function - pub fn allowance( - &self, - owner: ::ethers::core::types::Address, - spender: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([221, 98, 237, 62], (owner, spender)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `approve` (0x095ea7b3) function - pub fn approve( - &self, - spender: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([9, 94, 167, 179], (spender, amount)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `balanceOf` (0x70a08231) function - pub fn balance_of( - &self, - account: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([112, 160, 130, 49], account) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `decimals` (0x313ce567) function - pub fn decimals(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([49, 60, 229, 103], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `decreaseAllowance` (0xa457c2d7) function - pub fn decrease_allowance( - &self, - spender: ::ethers::core::types::Address, - subtracted_value: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([164, 87, 194, 215], (spender, subtracted_value)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `increaseAllowance` (0x39509351) function - pub fn increase_allowance( - &self, - spender: ::ethers::core::types::Address, - added_value: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([57, 80, 147, 81], (spender, added_value)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `mint` (0x40c10f19) function - pub fn mint( - &self, - receiver: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([64, 193, 15, 25], (receiver, amount)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `name` (0x06fdde03) function - pub fn name( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([6, 253, 222, 3], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `symbol` (0x95d89b41) function - pub fn symbol( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([149, 216, 155, 65], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `totalSupply` (0x18160ddd) function - pub fn total_supply( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([24, 22, 13, 221], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `transfer` (0xa9059cbb) function - pub fn transfer( - &self, - to: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([169, 5, 156, 187], (to, amount)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `transferFrom` (0x23b872dd) function - pub fn transfer_from( - &self, - from: ::ethers::core::types::Address, - to: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([35, 184, 114, 221], (from, to, amount)) - .expect("method not found (this should never happen)") - } - ///Gets the contract's `Approval` event - pub fn approval_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - ApprovalFilter, - > { - self.0.event() - } - ///Gets the contract's `Transfer` event - pub fn transfer_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - TransferFilter, - > { - self.0.event() - } - /// Returns an `Event` builder for all the events of this contract. - pub fn events( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - ArbiterTokenEvents, - > { - self.0.event_with_filter(::core::default::Default::default()) - } - } - impl From<::ethers::contract::Contract> - for ArbiterToken { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "Approval", abi = "Approval(address,address,uint256)")] - pub struct ApprovalFilter { - #[ethevent(indexed)] - pub owner: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub spender: ::ethers::core::types::Address, - pub value: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "Transfer", abi = "Transfer(address,address,uint256)")] - pub struct TransferFilter { - #[ethevent(indexed)] - pub from: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub to: ::ethers::core::types::Address, - pub value: ::ethers::core::types::U256, - } - ///Container type for all of the contract's events - #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] - pub enum ArbiterTokenEvents { - ApprovalFilter(ApprovalFilter), - TransferFilter(TransferFilter), - } - impl ::ethers::contract::EthLogDecode for ArbiterTokenEvents { - fn decode_log( - log: &::ethers::core::abi::RawLog, - ) -> ::core::result::Result { - if let Ok(decoded) = ApprovalFilter::decode_log(log) { - return Ok(ArbiterTokenEvents::ApprovalFilter(decoded)); - } - if let Ok(decoded) = TransferFilter::decode_log(log) { - return Ok(ArbiterTokenEvents::TransferFilter(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData) - } - } - impl ::core::fmt::Display for ArbiterTokenEvents { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::ApprovalFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::TransferFilter(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for ArbiterTokenEvents { - fn from(value: ApprovalFilter) -> Self { - Self::ApprovalFilter(value) - } - } - impl ::core::convert::From for ArbiterTokenEvents { - fn from(value: TransferFilter) -> Self { - Self::TransferFilter(value) - } - } - ///Container type for all input parameters for the `allowance` function with signature `allowance(address,address)` and selector `0xdd62ed3e` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "allowance", abi = "allowance(address,address)")] - pub struct AllowanceCall { - pub owner: ::ethers::core::types::Address, - pub spender: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "approve", abi = "approve(address,uint256)")] - pub struct ApproveCall { - pub spender: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "balanceOf", abi = "balanceOf(address)")] - pub struct BalanceOfCall { - pub account: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `decimals` function with signature `decimals()` and selector `0x313ce567` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "decimals", abi = "decimals()")] - pub struct DecimalsCall; - ///Container type for all input parameters for the `decreaseAllowance` function with signature `decreaseAllowance(address,uint256)` and selector `0xa457c2d7` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "decreaseAllowance", abi = "decreaseAllowance(address,uint256)")] - pub struct DecreaseAllowanceCall { - pub spender: ::ethers::core::types::Address, - pub subtracted_value: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `increaseAllowance` function with signature `increaseAllowance(address,uint256)` and selector `0x39509351` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "increaseAllowance", abi = "increaseAllowance(address,uint256)")] - pub struct IncreaseAllowanceCall { - pub spender: ::ethers::core::types::Address, - pub added_value: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `mint` function with signature `mint(address,uint256)` and selector `0x40c10f19` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "mint", abi = "mint(address,uint256)")] - pub struct MintCall { - pub receiver: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `name` function with signature `name()` and selector `0x06fdde03` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "name", abi = "name()")] - pub struct NameCall; - ///Container type for all input parameters for the `symbol` function with signature `symbol()` and selector `0x95d89b41` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "symbol", abi = "symbol()")] - pub struct SymbolCall; - ///Container type for all input parameters for the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "totalSupply", abi = "totalSupply()")] - pub struct TotalSupplyCall; - ///Container type for all input parameters for the `transfer` function with signature `transfer(address,uint256)` and selector `0xa9059cbb` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "transfer", abi = "transfer(address,uint256)")] - pub struct TransferCall { - pub to: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "transferFrom", abi = "transferFrom(address,address,uint256)")] - pub struct TransferFromCall { - pub from: ::ethers::core::types::Address, - pub to: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - ///Container type for all of the contract's call - #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] - pub enum ArbiterTokenCalls { - Allowance(AllowanceCall), - Approve(ApproveCall), - BalanceOf(BalanceOfCall), - Decimals(DecimalsCall), - DecreaseAllowance(DecreaseAllowanceCall), - IncreaseAllowance(IncreaseAllowanceCall), - Mint(MintCall), - Name(NameCall), - Symbol(SymbolCall), - TotalSupply(TotalSupplyCall), - Transfer(TransferCall), - TransferFrom(TransferFromCall), - } - impl ::ethers::core::abi::AbiDecode for ArbiterTokenCalls { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Allowance(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Approve(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::BalanceOf(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Decimals(decoded)); - } - if let Ok(decoded) - = ::decode( - data, - ) { - return Ok(Self::DecreaseAllowance(decoded)); - } - if let Ok(decoded) - = ::decode( - data, - ) { - return Ok(Self::IncreaseAllowance(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Mint(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Name(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Symbol(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::TotalSupply(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Transfer(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::TransferFrom(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for ArbiterTokenCalls { - fn encode(self) -> Vec { - match self { - Self::Allowance(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Approve(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::BalanceOf(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Decimals(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::DecreaseAllowance(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::IncreaseAllowance(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Mint(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Name(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Symbol(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::TotalSupply(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Transfer(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::TransferFrom(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - } - } - } - impl ::core::fmt::Display for ArbiterTokenCalls { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::Allowance(element) => ::core::fmt::Display::fmt(element, f), - Self::Approve(element) => ::core::fmt::Display::fmt(element, f), - Self::BalanceOf(element) => ::core::fmt::Display::fmt(element, f), - Self::Decimals(element) => ::core::fmt::Display::fmt(element, f), - Self::DecreaseAllowance(element) => ::core::fmt::Display::fmt(element, f), - Self::IncreaseAllowance(element) => ::core::fmt::Display::fmt(element, f), - Self::Mint(element) => ::core::fmt::Display::fmt(element, f), - Self::Name(element) => ::core::fmt::Display::fmt(element, f), - Self::Symbol(element) => ::core::fmt::Display::fmt(element, f), - Self::TotalSupply(element) => ::core::fmt::Display::fmt(element, f), - Self::Transfer(element) => ::core::fmt::Display::fmt(element, f), - Self::TransferFrom(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for ArbiterTokenCalls { - fn from(value: AllowanceCall) -> Self { - Self::Allowance(value) - } - } - impl ::core::convert::From for ArbiterTokenCalls { - fn from(value: ApproveCall) -> Self { - Self::Approve(value) - } - } - impl ::core::convert::From for ArbiterTokenCalls { - fn from(value: BalanceOfCall) -> Self { - Self::BalanceOf(value) - } - } - impl ::core::convert::From for ArbiterTokenCalls { - fn from(value: DecimalsCall) -> Self { - Self::Decimals(value) - } - } - impl ::core::convert::From for ArbiterTokenCalls { - fn from(value: DecreaseAllowanceCall) -> Self { - Self::DecreaseAllowance(value) - } - } - impl ::core::convert::From for ArbiterTokenCalls { - fn from(value: IncreaseAllowanceCall) -> Self { - Self::IncreaseAllowance(value) - } - } - impl ::core::convert::From for ArbiterTokenCalls { - fn from(value: MintCall) -> Self { - Self::Mint(value) - } - } - impl ::core::convert::From for ArbiterTokenCalls { - fn from(value: NameCall) -> Self { - Self::Name(value) - } - } - impl ::core::convert::From for ArbiterTokenCalls { - fn from(value: SymbolCall) -> Self { - Self::Symbol(value) - } - } - impl ::core::convert::From for ArbiterTokenCalls { - fn from(value: TotalSupplyCall) -> Self { - Self::TotalSupply(value) - } - } - impl ::core::convert::From for ArbiterTokenCalls { - fn from(value: TransferCall) -> Self { - Self::Transfer(value) - } - } - impl ::core::convert::From for ArbiterTokenCalls { - fn from(value: TransferFromCall) -> Self { - Self::TransferFrom(value) - } - } - ///Container type for all return fields from the `allowance` function with signature `allowance(address,address)` and selector `0xdd62ed3e` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct AllowanceReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct ApproveReturn(pub bool); - ///Container type for all return fields from the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct BalanceOfReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `decimals` function with signature `decimals()` and selector `0x313ce567` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct DecimalsReturn(pub u8); - ///Container type for all return fields from the `decreaseAllowance` function with signature `decreaseAllowance(address,uint256)` and selector `0xa457c2d7` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct DecreaseAllowanceReturn(pub bool); - ///Container type for all return fields from the `increaseAllowance` function with signature `increaseAllowance(address,uint256)` and selector `0x39509351` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct IncreaseAllowanceReturn(pub bool); - ///Container type for all return fields from the `name` function with signature `name()` and selector `0x06fdde03` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct NameReturn(pub ::std::string::String); - ///Container type for all return fields from the `symbol` function with signature `symbol()` and selector `0x95d89b41` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct SymbolReturn(pub ::std::string::String); - ///Container type for all return fields from the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct TotalSupplyReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `transfer` function with signature `transfer(address,uint256)` and selector `0xa9059cbb` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct TransferReturn(pub bool); - ///Container type for all return fields from the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct TransferFromReturn(pub bool); -} diff --git a/crates/bindings/src/assembly_lib.rs b/crates/bindings/src/assembly_lib.rs deleted file mode 100644 index a306f726..00000000 --- a/crates/bindings/src/assembly_lib.rs +++ /dev/null @@ -1,342 +0,0 @@ -pub use assembly_lib::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types, -)] -pub mod assembly_lib { - #[rustfmt::skip] - const __ABI: &str = "[]"; - ///The parsed JSON ABI of the contract. - pub static ASSEMBLYLIB_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| - ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); - #[rustfmt::skip] - const __BYTECODE: &[u8] = &[ - 96, - 86, - 96, - 55, - 96, - 11, - 130, - 130, - 130, - 57, - 128, - 81, - 96, - 0, - 26, - 96, - 115, - 20, - 96, - 42, - 87, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 0, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 48, - 96, - 0, - 82, - 96, - 115, - 129, - 83, - 130, - 129, - 243, - 254, - 115, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 48, - 20, - 96, - 128, - 96, - 64, - 82, - 96, - 0, - 128, - 253, - 254, - 162, - 100, - 105, - 112, - 102, - 115, - 88, - 34, - 18, - 32, - 143, - 200, - 46, - 223, - 198, - 118, - 250, - 200, - 172, - 149, - 61, - 122, - 82, - 83, - 57, - 219, - 143, - 223, - 250, - 38, - 4, - 96, - 143, - 160, - 123, - 56, - 2, - 160, - 98, - 74, - 43, - 217, - 100, - 115, - 111, - 108, - 99, - 67, - 0, - 8, - 13, - 0, - 51, - ]; - ///The bytecode of the contract. - pub static ASSEMBLYLIB_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( - __BYTECODE, - ); - #[rustfmt::skip] - const __DEPLOYED_BYTECODE: &[u8] = &[ - 115, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 48, - 20, - 96, - 128, - 96, - 64, - 82, - 96, - 0, - 128, - 253, - 254, - 162, - 100, - 105, - 112, - 102, - 115, - 88, - 34, - 18, - 32, - 143, - 200, - 46, - 223, - 198, - 118, - 250, - 200, - 172, - 149, - 61, - 122, - 82, - 83, - 57, - 219, - 143, - 223, - 250, - 38, - 4, - 96, - 143, - 160, - 123, - 56, - 2, - 160, - 98, - 74, - 43, - 217, - 100, - 115, - 111, - 108, - 99, - 67, - 0, - 8, - 13, - 0, - 51, - ]; - ///The deployed bytecode of the contract. - pub static ASSEMBLYLIB_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( - __DEPLOYED_BYTECODE, - ); - pub struct AssemblyLib(::ethers::contract::Contract); - impl ::core::clone::Clone for AssemblyLib { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for AssemblyLib { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for AssemblyLib { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for AssemblyLib { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(stringify!(AssemblyLib)).field(&self.address()).finish() - } - } - impl AssemblyLib { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self( - ::ethers::contract::Contract::new( - address.into(), - ASSEMBLYLIB_ABI.clone(), - client, - ), - ) - } - /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. - /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction - /// - /// Notes: - /// - If there are no constructor arguments, you should pass `()` as the argument. - /// - The default poll duration is 7 seconds. - /// - The default number of confirmations is 1 block. - /// - /// - /// # Example - /// - /// Generate contract bindings with `abigen!` and deploy a new contract instance. - /// - /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. - /// - /// ```ignore - /// # async fn deploy(client: ::std::sync::Arc) { - /// abigen!(Greeter, "../greeter.json"); - /// - /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); - /// let msg = greeter_contract.greet().call().await.unwrap(); - /// # } - /// ``` - pub fn deploy( - client: ::std::sync::Arc, - constructor_args: T, - ) -> ::core::result::Result< - ::ethers::contract::builders::ContractDeployer, - ::ethers::contract::ContractError, - > { - let factory = ::ethers::contract::ContractFactory::new( - ASSEMBLYLIB_ABI.clone(), - ASSEMBLYLIB_BYTECODE.clone().into(), - client, - ); - let deployer = factory.deploy(constructor_args)?; - let deployer = ::ethers::contract::ContractDeployer::new(deployer); - Ok(deployer) - } - } - impl From<::ethers::contract::Contract> - for AssemblyLib { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } -} diff --git a/crates/bindings/src/context.rs b/crates/bindings/src/context.rs deleted file mode 100644 index dc4fd33b..00000000 --- a/crates/bindings/src/context.rs +++ /dev/null @@ -1,62 +0,0 @@ -pub use context::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types, -)] -pub mod context { - #[rustfmt::skip] - const __ABI: &str = "[]"; - ///The parsed JSON ABI of the contract. - pub static CONTEXT_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| - ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); - pub struct Context(::ethers::contract::Contract); - impl ::core::clone::Clone for Context { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for Context { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for Context { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for Context { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(stringify!(Context)).field(&self.address()).finish() - } - } - impl Context { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self( - ::ethers::contract::Contract::new( - address.into(), - CONTEXT_ABI.clone(), - client, - ), - ) - } - } - impl From<::ethers::contract::Contract> - for Context { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } -} diff --git a/crates/bindings/src/echidna_erc20.rs b/crates/bindings/src/echidna_erc20.rs deleted file mode 100644 index cb41bffd..00000000 --- a/crates/bindings/src/echidna_erc20.rs +++ /dev/null @@ -1,7961 +0,0 @@ -pub use echidna_erc20::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types, -)] -pub mod echidna_erc20 { - #[rustfmt::skip] - const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\",\"components\":[]},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimals_\",\"type\":\"uint8\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"_Portfolio\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Approval\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Transfer\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"Portfolio\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"burn\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"mint\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"decimals_\",\"type\":\"uint8\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"setDecimals\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]}]"; - ///The parsed JSON ABI of the contract. - pub static ECHIDNAERC20_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| - ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); - #[rustfmt::skip] - const __BYTECODE: &[u8] = &[ - 96, - 128, - 96, - 64, - 82, - 52, - 128, - 21, - 98, - 0, - 0, - 17, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 96, - 64, - 81, - 98, - 0, - 15, - 43, - 56, - 3, - 128, - 98, - 0, - 15, - 43, - 131, - 57, - 129, - 1, - 96, - 64, - 129, - 144, - 82, - 98, - 0, - 0, - 52, - 145, - 98, - 0, - 2, - 7, - 86, - 91, - 131, - 81, - 98, - 0, - 0, - 73, - 144, - 96, - 3, - 144, - 96, - 32, - 135, - 1, - 144, - 98, - 0, - 0, - 148, - 86, - 91, - 80, - 130, - 81, - 98, - 0, - 0, - 95, - 144, - 96, - 4, - 144, - 96, - 32, - 134, - 1, - 144, - 98, - 0, - 0, - 148, - 86, - 91, - 80, - 96, - 5, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 144, - 146, - 22, - 97, - 1, - 0, - 2, - 96, - 1, - 96, - 1, - 96, - 168, - 27, - 3, - 25, - 144, - 146, - 22, - 96, - 255, - 144, - 147, - 22, - 146, - 144, - 146, - 23, - 23, - 144, - 85, - 80, - 98, - 0, - 2, - 231, - 144, - 80, - 86, - 91, - 130, - 128, - 84, - 98, - 0, - 0, - 162, - 144, - 98, - 0, - 2, - 171, - 86, - 91, - 144, - 96, - 0, - 82, - 96, - 32, - 96, - 0, - 32, - 144, - 96, - 31, - 1, - 96, - 32, - 144, - 4, - 129, - 1, - 146, - 130, - 98, - 0, - 0, - 198, - 87, - 96, - 0, - 133, - 85, - 98, - 0, - 1, - 17, - 86, - 91, - 130, - 96, - 31, - 16, - 98, - 0, - 0, - 225, - 87, - 128, - 81, - 96, - 255, - 25, - 22, - 131, - 128, - 1, - 23, - 133, - 85, - 98, - 0, - 1, - 17, - 86, - 91, - 130, - 128, - 1, - 96, - 1, - 1, - 133, - 85, - 130, - 21, - 98, - 0, - 1, - 17, - 87, - 145, - 130, - 1, - 91, - 130, - 129, - 17, - 21, - 98, - 0, - 1, - 17, - 87, - 130, - 81, - 130, - 85, - 145, - 96, - 32, - 1, - 145, - 144, - 96, - 1, - 1, - 144, - 98, - 0, - 0, - 244, - 86, - 91, - 80, - 98, - 0, - 1, - 31, - 146, - 145, - 80, - 98, - 0, - 1, - 35, - 86, - 91, - 80, - 144, - 86, - 91, - 91, - 128, - 130, - 17, - 21, - 98, - 0, - 1, - 31, - 87, - 96, - 0, - 129, - 85, - 96, - 1, - 1, - 98, - 0, - 1, - 36, - 86, - 91, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 65, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 96, - 0, - 130, - 96, - 31, - 131, - 1, - 18, - 98, - 0, - 1, - 98, - 87, - 96, - 0, - 128, - 253, - 91, - 129, - 81, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 128, - 130, - 17, - 21, - 98, - 0, - 1, - 127, - 87, - 98, - 0, - 1, - 127, - 98, - 0, - 1, - 58, - 86, - 91, - 96, - 64, - 81, - 96, - 31, - 131, - 1, - 96, - 31, - 25, - 144, - 129, - 22, - 96, - 63, - 1, - 22, - 129, - 1, - 144, - 130, - 130, - 17, - 129, - 131, - 16, - 23, - 21, - 98, - 0, - 1, - 170, - 87, - 98, - 0, - 1, - 170, - 98, - 0, - 1, - 58, - 86, - 91, - 129, - 96, - 64, - 82, - 131, - 129, - 82, - 96, - 32, - 146, - 80, - 134, - 131, - 133, - 136, - 1, - 1, - 17, - 21, - 98, - 0, - 1, - 199, - 87, - 96, - 0, - 128, - 253, - 91, - 96, - 0, - 145, - 80, - 91, - 131, - 130, - 16, - 21, - 98, - 0, - 1, - 235, - 87, - 133, - 130, - 1, - 131, - 1, - 81, - 129, - 131, - 1, - 132, - 1, - 82, - 144, - 130, - 1, - 144, - 98, - 0, - 1, - 204, - 86, - 91, - 131, - 130, - 17, - 21, - 98, - 0, - 1, - 253, - 87, - 96, - 0, - 131, - 133, - 131, - 1, - 1, - 82, - 91, - 150, - 149, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 128, - 96, - 128, - 133, - 135, - 3, - 18, - 21, - 98, - 0, - 2, - 30, - 87, - 96, - 0, - 128, - 253, - 91, - 132, - 81, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 128, - 130, - 17, - 21, - 98, - 0, - 2, - 54, - 87, - 96, - 0, - 128, - 253, - 91, - 98, - 0, - 2, - 68, - 136, - 131, - 137, - 1, - 98, - 0, - 1, - 80, - 86, - 91, - 149, - 80, - 96, - 32, - 135, - 1, - 81, - 145, - 80, - 128, - 130, - 17, - 21, - 98, - 0, - 2, - 91, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 98, - 0, - 2, - 106, - 135, - 130, - 136, - 1, - 98, - 0, - 1, - 80, - 86, - 91, - 147, - 80, - 80, - 96, - 64, - 133, - 1, - 81, - 96, - 255, - 129, - 22, - 129, - 20, - 98, - 0, - 2, - 130, - 87, - 96, - 0, - 128, - 253, - 91, - 96, - 96, - 134, - 1, - 81, - 144, - 146, - 80, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 129, - 22, - 129, - 20, - 98, - 0, - 2, - 160, - 87, - 96, - 0, - 128, - 253, - 91, - 147, - 150, - 146, - 149, - 80, - 144, - 147, - 80, - 80, - 86, - 91, - 96, - 1, - 129, - 129, - 28, - 144, - 130, - 22, - 128, - 98, - 0, - 2, - 192, - 87, - 96, - 127, - 130, - 22, - 145, - 80, - 91, - 96, - 32, - 130, - 16, - 129, - 3, - 98, - 0, - 2, - 225, - 87, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 34, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 80, - 145, - 144, - 80, - 86, - 91, - 97, - 12, - 52, - 128, - 98, - 0, - 2, - 247, - 96, - 0, - 57, - 96, - 0, - 243, - 254, - 96, - 128, - 96, - 64, - 82, - 52, - 128, - 21, - 97, - 0, - 16, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 96, - 4, - 54, - 16, - 97, - 0, - 245, - 87, - 96, - 0, - 53, - 96, - 224, - 28, - 128, - 99, - 80, - 211, - 244, - 124, - 17, - 97, - 0, - 151, - 87, - 128, - 99, - 157, - 194, - 159, - 172, - 17, - 97, - 0, - 102, - 87, - 128, - 99, - 157, - 194, - 159, - 172, - 20, - 97, - 2, - 44, - 87, - 128, - 99, - 164, - 87, - 194, - 215, - 20, - 97, - 2, - 63, - 87, - 128, - 99, - 169, - 5, - 156, - 187, - 20, - 97, - 2, - 82, - 87, - 128, - 99, - 221, - 98, - 237, - 62, - 20, - 97, - 2, - 101, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 99, - 80, - 211, - 244, - 124, - 20, - 97, - 1, - 167, - 87, - 128, - 99, - 112, - 160, - 130, - 49, - 20, - 97, - 1, - 215, - 87, - 128, - 99, - 122, - 19, - 149, - 170, - 20, - 97, - 2, - 0, - 87, - 128, - 99, - 149, - 216, - 155, - 65, - 20, - 97, - 2, - 36, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 99, - 35, - 184, - 114, - 221, - 17, - 97, - 0, - 211, - 87, - 128, - 99, - 35, - 184, - 114, - 221, - 20, - 97, - 1, - 77, - 87, - 128, - 99, - 49, - 60, - 229, - 103, - 20, - 97, - 1, - 96, - 87, - 128, - 99, - 57, - 80, - 147, - 81, - 20, - 97, - 1, - 127, - 87, - 128, - 99, - 64, - 193, - 15, - 25, - 20, - 97, - 1, - 146, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 99, - 6, - 253, - 222, - 3, - 20, - 97, - 0, - 250, - 87, - 128, - 99, - 9, - 94, - 167, - 179, - 20, - 97, - 1, - 24, - 87, - 128, - 99, - 24, - 22, - 13, - 221, - 20, - 97, - 1, - 59, - 87, - 91, - 96, - 0, - 128, - 253, - 91, - 97, - 1, - 2, - 97, - 2, - 158, - 86, - 91, - 96, - 64, - 81, - 97, - 1, - 15, - 145, - 144, - 97, - 10, - 48, - 86, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 243, - 91, - 97, - 1, - 43, - 97, - 1, - 38, - 54, - 96, - 4, - 97, - 10, - 161, - 86, - 91, - 97, - 3, - 44, - 86, - 91, - 96, - 64, - 81, - 144, - 21, - 21, - 129, - 82, - 96, - 32, - 1, - 97, - 1, - 15, - 86, - 91, - 96, - 2, - 84, - 91, - 96, - 64, - 81, - 144, - 129, - 82, - 96, - 32, - 1, - 97, - 1, - 15, - 86, - 91, - 97, - 1, - 43, - 97, - 1, - 91, - 54, - 96, - 4, - 97, - 10, - 203, - 86, - 91, - 97, - 3, - 66, - 86, - 91, - 96, - 5, - 84, - 97, - 1, - 109, - 144, - 96, - 255, - 22, - 129, - 86, - 91, - 96, - 64, - 81, - 96, - 255, - 144, - 145, - 22, - 129, - 82, - 96, - 32, - 1, - 97, - 1, - 15, - 86, - 91, - 97, - 1, - 43, - 97, - 1, - 141, - 54, - 96, - 4, - 97, - 10, - 161, - 86, - 91, - 97, - 3, - 241, - 86, - 91, - 97, - 1, - 165, - 97, - 1, - 160, - 54, - 96, - 4, - 97, - 10, - 161, - 86, - 91, - 97, - 4, - 45, - 86, - 91, - 0, - 91, - 96, - 5, - 84, - 97, - 1, - 191, - 144, - 97, - 1, - 0, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 86, - 91, - 96, - 64, - 81, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 144, - 145, - 22, - 129, - 82, - 96, - 32, - 1, - 97, - 1, - 15, - 86, - 91, - 97, - 1, - 63, - 97, - 1, - 229, - 54, - 96, - 4, - 97, - 11, - 7, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 32, - 129, - 144, - 82, - 96, - 64, - 144, - 32, - 84, - 144, - 86, - 91, - 97, - 1, - 165, - 97, - 2, - 14, - 54, - 96, - 4, - 97, - 11, - 41, - 86, - 91, - 96, - 5, - 128, - 84, - 96, - 255, - 25, - 22, - 96, - 255, - 146, - 144, - 146, - 22, - 145, - 144, - 145, - 23, - 144, - 85, - 86, - 91, - 97, - 1, - 2, - 97, - 4, - 90, - 86, - 91, - 97, - 1, - 165, - 97, - 2, - 58, - 54, - 96, - 4, - 97, - 10, - 161, - 86, - 91, - 97, - 4, - 103, - 86, - 91, - 97, - 1, - 43, - 97, - 2, - 77, - 54, - 96, - 4, - 97, - 10, - 161, - 86, - 91, - 97, - 4, - 113, - 86, - 91, - 97, - 1, - 43, - 97, - 2, - 96, - 54, - 96, - 4, - 97, - 10, - 161, - 86, - 91, - 97, - 5, - 10, - 86, - 91, - 97, - 1, - 63, - 97, - 2, - 115, - 54, - 96, - 4, - 97, - 11, - 76, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 145, - 130, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 1, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 147, - 144, - 148, - 22, - 130, - 82, - 145, - 144, - 145, - 82, - 32, - 84, - 144, - 86, - 91, - 96, - 3, - 128, - 84, - 97, - 2, - 171, - 144, - 97, - 11, - 127, - 86, - 91, - 128, - 96, - 31, - 1, - 96, - 32, - 128, - 145, - 4, - 2, - 96, - 32, - 1, - 96, - 64, - 81, - 144, - 129, - 1, - 96, - 64, - 82, - 128, - 146, - 145, - 144, - 129, - 129, - 82, - 96, - 32, - 1, - 130, - 128, - 84, - 97, - 2, - 215, - 144, - 97, - 11, - 127, - 86, - 91, - 128, - 21, - 97, - 3, - 36, - 87, - 128, - 96, - 31, - 16, - 97, - 2, - 249, - 87, - 97, - 1, - 0, - 128, - 131, - 84, - 4, - 2, - 131, - 82, - 145, - 96, - 32, - 1, - 145, - 97, - 3, - 36, - 86, - 91, - 130, - 1, - 145, - 144, - 96, - 0, - 82, - 96, - 32, - 96, - 0, - 32, - 144, - 91, - 129, - 84, - 129, - 82, - 144, - 96, - 1, - 1, - 144, - 96, - 32, - 1, - 128, - 131, - 17, - 97, - 3, - 7, - 87, - 130, - 144, - 3, - 96, - 31, - 22, - 130, - 1, - 145, - 91, - 80, - 80, - 80, - 80, - 80, - 129, - 86, - 91, - 96, - 0, - 97, - 3, - 57, - 51, - 132, - 132, - 97, - 5, - 23, - 86, - 91, - 80, - 96, - 1, - 146, - 145, - 80, - 80, - 86, - 91, - 96, - 0, - 97, - 3, - 79, - 132, - 132, - 132, - 97, - 6, - 60, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 132, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 1, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 51, - 132, - 82, - 144, - 145, - 82, - 144, - 32, - 84, - 130, - 129, - 16, - 21, - 97, - 3, - 217, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 40, - 96, - 36, - 130, - 1, - 82, - 127, - 69, - 82, - 67, - 50, - 48, - 58, - 32, - 116, - 114, - 97, - 110, - 115, - 102, - 101, - 114, - 32, - 97, - 109, - 111, - 117, - 110, - 116, - 32, - 101, - 120, - 99, - 101, - 101, - 100, - 115, - 32, - 97, - 96, - 68, - 130, - 1, - 82, - 103, - 108, - 108, - 111, - 119, - 97, - 110, - 99, - 101, - 96, - 192, - 27, - 96, - 100, - 130, - 1, - 82, - 96, - 132, - 1, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 97, - 3, - 230, - 133, - 51, - 133, - 132, - 3, - 97, - 5, - 23, - 86, - 91, - 80, - 96, - 1, - 148, - 147, - 80, - 80, - 80, - 80, - 86, - 91, - 51, - 96, - 0, - 129, - 129, - 82, - 96, - 1, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 135, - 22, - 132, - 82, - 144, - 145, - 82, - 129, - 32, - 84, - 144, - 145, - 97, - 3, - 57, - 145, - 133, - 144, - 97, - 4, - 40, - 144, - 134, - 144, - 97, - 11, - 207, - 86, - 91, - 97, - 5, - 23, - 86, - 91, - 96, - 5, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 97, - 1, - 0, - 144, - 145, - 4, - 129, - 22, - 144, - 131, - 22, - 3, - 97, - 4, - 76, - 87, - 80, - 80, - 86, - 91, - 97, - 4, - 86, - 130, - 130, - 97, - 8, - 11, - 86, - 91, - 80, - 80, - 86, - 91, - 96, - 4, - 128, - 84, - 97, - 2, - 171, - 144, - 97, - 11, - 127, - 86, - 91, - 97, - 4, - 86, - 130, - 130, - 97, - 8, - 234, - 86, - 91, - 51, - 96, - 0, - 144, - 129, - 82, - 96, - 1, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 134, - 22, - 132, - 82, - 144, - 145, - 82, - 129, - 32, - 84, - 130, - 129, - 16, - 21, - 97, - 4, - 243, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 37, - 96, - 36, - 130, - 1, - 82, - 127, - 69, - 82, - 67, - 50, - 48, - 58, - 32, - 100, - 101, - 99, - 114, - 101, - 97, - 115, - 101, - 100, - 32, - 97, - 108, - 108, - 111, - 119, - 97, - 110, - 99, - 101, - 32, - 98, - 101, - 108, - 111, - 119, - 96, - 68, - 130, - 1, - 82, - 100, - 32, - 122, - 101, - 114, - 111, - 96, - 216, - 27, - 96, - 100, - 130, - 1, - 82, - 96, - 132, - 1, - 97, - 3, - 208, - 86, - 91, - 97, - 5, - 0, - 51, - 133, - 133, - 132, - 3, - 97, - 5, - 23, - 86, - 91, - 80, - 96, - 1, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 97, - 3, - 57, - 51, - 132, - 132, - 97, - 6, - 60, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 131, - 22, - 97, - 5, - 121, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 36, - 128, - 130, - 1, - 82, - 127, - 69, - 82, - 67, - 50, - 48, - 58, - 32, - 97, - 112, - 112, - 114, - 111, - 118, - 101, - 32, - 102, - 114, - 111, - 109, - 32, - 116, - 104, - 101, - 32, - 122, - 101, - 114, - 111, - 32, - 97, - 100, - 100, - 96, - 68, - 130, - 1, - 82, - 99, - 114, - 101, - 115, - 115, - 96, - 224, - 27, - 96, - 100, - 130, - 1, - 82, - 96, - 132, - 1, - 97, - 3, - 208, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 130, - 22, - 97, - 5, - 218, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 34, - 96, - 36, - 130, - 1, - 82, - 127, - 69, - 82, - 67, - 50, - 48, - 58, - 32, - 97, - 112, - 112, - 114, - 111, - 118, - 101, - 32, - 116, - 111, - 32, - 116, - 104, - 101, - 32, - 122, - 101, - 114, - 111, - 32, - 97, - 100, - 100, - 114, - 101, - 96, - 68, - 130, - 1, - 82, - 97, - 115, - 115, - 96, - 240, - 27, - 96, - 100, - 130, - 1, - 82, - 96, - 132, - 1, - 97, - 3, - 208, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 131, - 129, - 22, - 96, - 0, - 129, - 129, - 82, - 96, - 1, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 148, - 135, - 22, - 128, - 132, - 82, - 148, - 130, - 82, - 145, - 130, - 144, - 32, - 133, - 144, - 85, - 144, - 81, - 132, - 129, - 82, - 127, - 140, - 91, - 225, - 229, - 235, - 236, - 125, - 91, - 209, - 79, - 113, - 66, - 125, - 30, - 132, - 243, - 221, - 3, - 20, - 192, - 247, - 178, - 41, - 30, - 91, - 32, - 10, - 200, - 199, - 195, - 185, - 37, - 145, - 1, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 163, - 80, - 80, - 80, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 131, - 22, - 97, - 6, - 160, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 37, - 96, - 36, - 130, - 1, - 82, - 127, - 69, - 82, - 67, - 50, - 48, - 58, - 32, - 116, - 114, - 97, - 110, - 115, - 102, - 101, - 114, - 32, - 102, - 114, - 111, - 109, - 32, - 116, - 104, - 101, - 32, - 122, - 101, - 114, - 111, - 32, - 97, - 100, - 96, - 68, - 130, - 1, - 82, - 100, - 100, - 114, - 101, - 115, - 115, - 96, - 216, - 27, - 96, - 100, - 130, - 1, - 82, - 96, - 132, - 1, - 97, - 3, - 208, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 130, - 22, - 97, - 7, - 2, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 35, - 96, - 36, - 130, - 1, - 82, - 127, - 69, - 82, - 67, - 50, - 48, - 58, - 32, - 116, - 114, - 97, - 110, - 115, - 102, - 101, - 114, - 32, - 116, - 111, - 32, - 116, - 104, - 101, - 32, - 122, - 101, - 114, - 111, - 32, - 97, - 100, - 100, - 114, - 96, - 68, - 130, - 1, - 82, - 98, - 101, - 115, - 115, - 96, - 232, - 27, - 96, - 100, - 130, - 1, - 82, - 96, - 132, - 1, - 97, - 3, - 208, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 131, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 32, - 129, - 144, - 82, - 96, - 64, - 144, - 32, - 84, - 129, - 129, - 16, - 21, - 97, - 7, - 122, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 38, - 96, - 36, - 130, - 1, - 82, - 127, - 69, - 82, - 67, - 50, - 48, - 58, - 32, - 116, - 114, - 97, - 110, - 115, - 102, - 101, - 114, - 32, - 97, - 109, - 111, - 117, - 110, - 116, - 32, - 101, - 120, - 99, - 101, - 101, - 100, - 115, - 32, - 98, - 96, - 68, - 130, - 1, - 82, - 101, - 97, - 108, - 97, - 110, - 99, - 101, - 96, - 208, - 27, - 96, - 100, - 130, - 1, - 82, - 96, - 132, - 1, - 97, - 3, - 208, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 128, - 133, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 32, - 129, - 144, - 82, - 96, - 64, - 128, - 130, - 32, - 133, - 133, - 3, - 144, - 85, - 145, - 133, - 22, - 129, - 82, - 144, - 129, - 32, - 128, - 84, - 132, - 146, - 144, - 97, - 7, - 177, - 144, - 132, - 144, - 97, - 11, - 207, - 86, - 91, - 146, - 80, - 80, - 129, - 144, - 85, - 80, - 130, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 132, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 127, - 221, - 242, - 82, - 173, - 27, - 226, - 200, - 155, - 105, - 194, - 176, - 104, - 252, - 55, - 141, - 170, - 149, - 43, - 167, - 241, - 99, - 196, - 161, - 22, - 40, - 245, - 90, - 77, - 245, - 35, - 179, - 239, - 132, - 96, - 64, - 81, - 97, - 7, - 253, - 145, - 129, - 82, - 96, - 32, - 1, - 144, - 86, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 163, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 130, - 22, - 97, - 8, - 97, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 31, - 96, - 36, - 130, - 1, - 82, - 127, - 69, - 82, - 67, - 50, - 48, - 58, - 32, - 109, - 105, - 110, - 116, - 32, - 116, - 111, - 32, - 116, - 104, - 101, - 32, - 122, - 101, - 114, - 111, - 32, - 97, - 100, - 100, - 114, - 101, - 115, - 115, - 0, - 96, - 68, - 130, - 1, - 82, - 96, - 100, - 1, - 97, - 3, - 208, - 86, - 91, - 128, - 96, - 2, - 96, - 0, - 130, - 130, - 84, - 97, - 8, - 115, - 145, - 144, - 97, - 11, - 207, - 86, - 91, - 144, - 145, - 85, - 80, - 80, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 130, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 32, - 129, - 144, - 82, - 96, - 64, - 129, - 32, - 128, - 84, - 131, - 146, - 144, - 97, - 8, - 160, - 144, - 132, - 144, - 97, - 11, - 207, - 86, - 91, - 144, - 145, - 85, - 80, - 80, - 96, - 64, - 81, - 129, - 129, - 82, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 131, - 22, - 144, - 96, - 0, - 144, - 127, - 221, - 242, - 82, - 173, - 27, - 226, - 200, - 155, - 105, - 194, - 176, - 104, - 252, - 55, - 141, - 170, - 149, - 43, - 167, - 241, - 99, - 196, - 161, - 22, - 40, - 245, - 90, - 77, - 245, - 35, - 179, - 239, - 144, - 96, - 32, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 163, - 80, - 80, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 130, - 22, - 97, - 9, - 74, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 33, - 96, - 36, - 130, - 1, - 82, - 127, - 69, - 82, - 67, - 50, - 48, - 58, - 32, - 98, - 117, - 114, - 110, - 32, - 102, - 114, - 111, - 109, - 32, - 116, - 104, - 101, - 32, - 122, - 101, - 114, - 111, - 32, - 97, - 100, - 100, - 114, - 101, - 115, - 96, - 68, - 130, - 1, - 82, - 96, - 115, - 96, - 248, - 27, - 96, - 100, - 130, - 1, - 82, - 96, - 132, - 1, - 97, - 3, - 208, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 130, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 32, - 129, - 144, - 82, - 96, - 64, - 144, - 32, - 84, - 129, - 129, - 16, - 21, - 97, - 9, - 190, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 34, - 96, - 36, - 130, - 1, - 82, - 127, - 69, - 82, - 67, - 50, - 48, - 58, - 32, - 98, - 117, - 114, - 110, - 32, - 97, - 109, - 111, - 117, - 110, - 116, - 32, - 101, - 120, - 99, - 101, - 101, - 100, - 115, - 32, - 98, - 97, - 108, - 97, - 110, - 96, - 68, - 130, - 1, - 82, - 97, - 99, - 101, - 96, - 240, - 27, - 96, - 100, - 130, - 1, - 82, - 96, - 132, - 1, - 97, - 3, - 208, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 131, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 32, - 129, - 144, - 82, - 96, - 64, - 129, - 32, - 131, - 131, - 3, - 144, - 85, - 96, - 2, - 128, - 84, - 132, - 146, - 144, - 97, - 9, - 237, - 144, - 132, - 144, - 97, - 11, - 231, - 86, - 91, - 144, - 145, - 85, - 80, - 80, - 96, - 64, - 81, - 130, - 129, - 82, - 96, - 0, - 144, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 133, - 22, - 144, - 127, - 221, - 242, - 82, - 173, - 27, - 226, - 200, - 155, - 105, - 194, - 176, - 104, - 252, - 55, - 141, - 170, - 149, - 43, - 167, - 241, - 99, - 196, - 161, - 22, - 40, - 245, - 90, - 77, - 245, - 35, - 179, - 239, - 144, - 96, - 32, - 1, - 97, - 6, - 47, - 86, - 91, - 96, - 0, - 96, - 32, - 128, - 131, - 82, - 131, - 81, - 128, - 130, - 133, - 1, - 82, - 96, - 0, - 91, - 129, - 129, - 16, - 21, - 97, - 10, - 93, - 87, - 133, - 129, - 1, - 131, - 1, - 81, - 133, - 130, - 1, - 96, - 64, - 1, - 82, - 130, - 1, - 97, - 10, - 65, - 86, - 91, - 129, - 129, - 17, - 21, - 97, - 10, - 111, - 87, - 96, - 0, - 96, - 64, - 131, - 135, - 1, - 1, - 82, - 91, - 80, - 96, - 31, - 1, - 96, - 31, - 25, - 22, - 146, - 144, - 146, - 1, - 96, - 64, - 1, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 128, - 53, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 129, - 22, - 129, - 20, - 97, - 10, - 156, - 87, - 96, - 0, - 128, - 253, - 91, - 145, - 144, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 64, - 131, - 133, - 3, - 18, - 21, - 97, - 10, - 180, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 10, - 189, - 131, - 97, - 10, - 133, - 86, - 91, - 148, - 96, - 32, - 147, - 144, - 147, - 1, - 53, - 147, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 96, - 96, - 132, - 134, - 3, - 18, - 21, - 97, - 10, - 224, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 10, - 233, - 132, - 97, - 10, - 133, - 86, - 91, - 146, - 80, - 97, - 10, - 247, - 96, - 32, - 133, - 1, - 97, - 10, - 133, - 86, - 91, - 145, - 80, - 96, - 64, - 132, - 1, - 53, - 144, - 80, - 146, - 80, - 146, - 80, - 146, - 86, - 91, - 96, - 0, - 96, - 32, - 130, - 132, - 3, - 18, - 21, - 97, - 11, - 25, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 11, - 34, - 130, - 97, - 10, - 133, - 86, - 91, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 96, - 32, - 130, - 132, - 3, - 18, - 21, - 97, - 11, - 59, - 87, - 96, - 0, - 128, - 253, - 91, - 129, - 53, - 96, - 255, - 129, - 22, - 129, - 20, - 97, - 11, - 34, - 87, - 96, - 0, - 128, - 253, - 91, - 96, - 0, - 128, - 96, - 64, - 131, - 133, - 3, - 18, - 21, - 97, - 11, - 95, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 11, - 104, - 131, - 97, - 10, - 133, - 86, - 91, - 145, - 80, - 97, - 11, - 118, - 96, - 32, - 132, - 1, - 97, - 10, - 133, - 86, - 91, - 144, - 80, - 146, - 80, - 146, - 144, - 80, - 86, - 91, - 96, - 1, - 129, - 129, - 28, - 144, - 130, - 22, - 128, - 97, - 11, - 147, - 87, - 96, - 127, - 130, - 22, - 145, - 80, - 91, - 96, - 32, - 130, - 16, - 129, - 3, - 97, - 11, - 179, - 87, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 34, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 80, - 145, - 144, - 80, - 86, - 91, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 17, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 96, - 0, - 130, - 25, - 130, - 17, - 21, - 97, - 11, - 226, - 87, - 97, - 11, - 226, - 97, - 11, - 185, - 86, - 91, - 80, - 1, - 144, - 86, - 91, - 96, - 0, - 130, - 130, - 16, - 21, - 97, - 11, - 249, - 87, - 97, - 11, - 249, - 97, - 11, - 185, - 86, - 91, - 80, - 3, - 144, - 86, - 254, - 162, - 100, - 105, - 112, - 102, - 115, - 88, - 34, - 18, - 32, - 137, - 143, - 186, - 19, - 26, - 145, - 115, - 79, - 169, - 109, - 93, - 52, - 125, - 203, - 215, - 78, - 120, - 22, - 42, - 134, - 159, - 66, - 54, - 122, - 86, - 172, - 145, - 69, - 60, - 254, - 6, - 69, - 100, - 115, - 111, - 108, - 99, - 67, - 0, - 8, - 13, - 0, - 51, - ]; - ///The bytecode of the contract. - pub static ECHIDNAERC20_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( - __BYTECODE, - ); - #[rustfmt::skip] - const __DEPLOYED_BYTECODE: &[u8] = &[ - 96, - 128, - 96, - 64, - 82, - 52, - 128, - 21, - 97, - 0, - 16, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 96, - 4, - 54, - 16, - 97, - 0, - 245, - 87, - 96, - 0, - 53, - 96, - 224, - 28, - 128, - 99, - 80, - 211, - 244, - 124, - 17, - 97, - 0, - 151, - 87, - 128, - 99, - 157, - 194, - 159, - 172, - 17, - 97, - 0, - 102, - 87, - 128, - 99, - 157, - 194, - 159, - 172, - 20, - 97, - 2, - 44, - 87, - 128, - 99, - 164, - 87, - 194, - 215, - 20, - 97, - 2, - 63, - 87, - 128, - 99, - 169, - 5, - 156, - 187, - 20, - 97, - 2, - 82, - 87, - 128, - 99, - 221, - 98, - 237, - 62, - 20, - 97, - 2, - 101, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 99, - 80, - 211, - 244, - 124, - 20, - 97, - 1, - 167, - 87, - 128, - 99, - 112, - 160, - 130, - 49, - 20, - 97, - 1, - 215, - 87, - 128, - 99, - 122, - 19, - 149, - 170, - 20, - 97, - 2, - 0, - 87, - 128, - 99, - 149, - 216, - 155, - 65, - 20, - 97, - 2, - 36, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 99, - 35, - 184, - 114, - 221, - 17, - 97, - 0, - 211, - 87, - 128, - 99, - 35, - 184, - 114, - 221, - 20, - 97, - 1, - 77, - 87, - 128, - 99, - 49, - 60, - 229, - 103, - 20, - 97, - 1, - 96, - 87, - 128, - 99, - 57, - 80, - 147, - 81, - 20, - 97, - 1, - 127, - 87, - 128, - 99, - 64, - 193, - 15, - 25, - 20, - 97, - 1, - 146, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 99, - 6, - 253, - 222, - 3, - 20, - 97, - 0, - 250, - 87, - 128, - 99, - 9, - 94, - 167, - 179, - 20, - 97, - 1, - 24, - 87, - 128, - 99, - 24, - 22, - 13, - 221, - 20, - 97, - 1, - 59, - 87, - 91, - 96, - 0, - 128, - 253, - 91, - 97, - 1, - 2, - 97, - 2, - 158, - 86, - 91, - 96, - 64, - 81, - 97, - 1, - 15, - 145, - 144, - 97, - 10, - 48, - 86, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 243, - 91, - 97, - 1, - 43, - 97, - 1, - 38, - 54, - 96, - 4, - 97, - 10, - 161, - 86, - 91, - 97, - 3, - 44, - 86, - 91, - 96, - 64, - 81, - 144, - 21, - 21, - 129, - 82, - 96, - 32, - 1, - 97, - 1, - 15, - 86, - 91, - 96, - 2, - 84, - 91, - 96, - 64, - 81, - 144, - 129, - 82, - 96, - 32, - 1, - 97, - 1, - 15, - 86, - 91, - 97, - 1, - 43, - 97, - 1, - 91, - 54, - 96, - 4, - 97, - 10, - 203, - 86, - 91, - 97, - 3, - 66, - 86, - 91, - 96, - 5, - 84, - 97, - 1, - 109, - 144, - 96, - 255, - 22, - 129, - 86, - 91, - 96, - 64, - 81, - 96, - 255, - 144, - 145, - 22, - 129, - 82, - 96, - 32, - 1, - 97, - 1, - 15, - 86, - 91, - 97, - 1, - 43, - 97, - 1, - 141, - 54, - 96, - 4, - 97, - 10, - 161, - 86, - 91, - 97, - 3, - 241, - 86, - 91, - 97, - 1, - 165, - 97, - 1, - 160, - 54, - 96, - 4, - 97, - 10, - 161, - 86, - 91, - 97, - 4, - 45, - 86, - 91, - 0, - 91, - 96, - 5, - 84, - 97, - 1, - 191, - 144, - 97, - 1, - 0, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 86, - 91, - 96, - 64, - 81, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 144, - 145, - 22, - 129, - 82, - 96, - 32, - 1, - 97, - 1, - 15, - 86, - 91, - 97, - 1, - 63, - 97, - 1, - 229, - 54, - 96, - 4, - 97, - 11, - 7, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 32, - 129, - 144, - 82, - 96, - 64, - 144, - 32, - 84, - 144, - 86, - 91, - 97, - 1, - 165, - 97, - 2, - 14, - 54, - 96, - 4, - 97, - 11, - 41, - 86, - 91, - 96, - 5, - 128, - 84, - 96, - 255, - 25, - 22, - 96, - 255, - 146, - 144, - 146, - 22, - 145, - 144, - 145, - 23, - 144, - 85, - 86, - 91, - 97, - 1, - 2, - 97, - 4, - 90, - 86, - 91, - 97, - 1, - 165, - 97, - 2, - 58, - 54, - 96, - 4, - 97, - 10, - 161, - 86, - 91, - 97, - 4, - 103, - 86, - 91, - 97, - 1, - 43, - 97, - 2, - 77, - 54, - 96, - 4, - 97, - 10, - 161, - 86, - 91, - 97, - 4, - 113, - 86, - 91, - 97, - 1, - 43, - 97, - 2, - 96, - 54, - 96, - 4, - 97, - 10, - 161, - 86, - 91, - 97, - 5, - 10, - 86, - 91, - 97, - 1, - 63, - 97, - 2, - 115, - 54, - 96, - 4, - 97, - 11, - 76, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 145, - 130, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 1, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 147, - 144, - 148, - 22, - 130, - 82, - 145, - 144, - 145, - 82, - 32, - 84, - 144, - 86, - 91, - 96, - 3, - 128, - 84, - 97, - 2, - 171, - 144, - 97, - 11, - 127, - 86, - 91, - 128, - 96, - 31, - 1, - 96, - 32, - 128, - 145, - 4, - 2, - 96, - 32, - 1, - 96, - 64, - 81, - 144, - 129, - 1, - 96, - 64, - 82, - 128, - 146, - 145, - 144, - 129, - 129, - 82, - 96, - 32, - 1, - 130, - 128, - 84, - 97, - 2, - 215, - 144, - 97, - 11, - 127, - 86, - 91, - 128, - 21, - 97, - 3, - 36, - 87, - 128, - 96, - 31, - 16, - 97, - 2, - 249, - 87, - 97, - 1, - 0, - 128, - 131, - 84, - 4, - 2, - 131, - 82, - 145, - 96, - 32, - 1, - 145, - 97, - 3, - 36, - 86, - 91, - 130, - 1, - 145, - 144, - 96, - 0, - 82, - 96, - 32, - 96, - 0, - 32, - 144, - 91, - 129, - 84, - 129, - 82, - 144, - 96, - 1, - 1, - 144, - 96, - 32, - 1, - 128, - 131, - 17, - 97, - 3, - 7, - 87, - 130, - 144, - 3, - 96, - 31, - 22, - 130, - 1, - 145, - 91, - 80, - 80, - 80, - 80, - 80, - 129, - 86, - 91, - 96, - 0, - 97, - 3, - 57, - 51, - 132, - 132, - 97, - 5, - 23, - 86, - 91, - 80, - 96, - 1, - 146, - 145, - 80, - 80, - 86, - 91, - 96, - 0, - 97, - 3, - 79, - 132, - 132, - 132, - 97, - 6, - 60, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 132, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 1, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 51, - 132, - 82, - 144, - 145, - 82, - 144, - 32, - 84, - 130, - 129, - 16, - 21, - 97, - 3, - 217, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 40, - 96, - 36, - 130, - 1, - 82, - 127, - 69, - 82, - 67, - 50, - 48, - 58, - 32, - 116, - 114, - 97, - 110, - 115, - 102, - 101, - 114, - 32, - 97, - 109, - 111, - 117, - 110, - 116, - 32, - 101, - 120, - 99, - 101, - 101, - 100, - 115, - 32, - 97, - 96, - 68, - 130, - 1, - 82, - 103, - 108, - 108, - 111, - 119, - 97, - 110, - 99, - 101, - 96, - 192, - 27, - 96, - 100, - 130, - 1, - 82, - 96, - 132, - 1, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 97, - 3, - 230, - 133, - 51, - 133, - 132, - 3, - 97, - 5, - 23, - 86, - 91, - 80, - 96, - 1, - 148, - 147, - 80, - 80, - 80, - 80, - 86, - 91, - 51, - 96, - 0, - 129, - 129, - 82, - 96, - 1, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 135, - 22, - 132, - 82, - 144, - 145, - 82, - 129, - 32, - 84, - 144, - 145, - 97, - 3, - 57, - 145, - 133, - 144, - 97, - 4, - 40, - 144, - 134, - 144, - 97, - 11, - 207, - 86, - 91, - 97, - 5, - 23, - 86, - 91, - 96, - 5, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 97, - 1, - 0, - 144, - 145, - 4, - 129, - 22, - 144, - 131, - 22, - 3, - 97, - 4, - 76, - 87, - 80, - 80, - 86, - 91, - 97, - 4, - 86, - 130, - 130, - 97, - 8, - 11, - 86, - 91, - 80, - 80, - 86, - 91, - 96, - 4, - 128, - 84, - 97, - 2, - 171, - 144, - 97, - 11, - 127, - 86, - 91, - 97, - 4, - 86, - 130, - 130, - 97, - 8, - 234, - 86, - 91, - 51, - 96, - 0, - 144, - 129, - 82, - 96, - 1, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 134, - 22, - 132, - 82, - 144, - 145, - 82, - 129, - 32, - 84, - 130, - 129, - 16, - 21, - 97, - 4, - 243, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 37, - 96, - 36, - 130, - 1, - 82, - 127, - 69, - 82, - 67, - 50, - 48, - 58, - 32, - 100, - 101, - 99, - 114, - 101, - 97, - 115, - 101, - 100, - 32, - 97, - 108, - 108, - 111, - 119, - 97, - 110, - 99, - 101, - 32, - 98, - 101, - 108, - 111, - 119, - 96, - 68, - 130, - 1, - 82, - 100, - 32, - 122, - 101, - 114, - 111, - 96, - 216, - 27, - 96, - 100, - 130, - 1, - 82, - 96, - 132, - 1, - 97, - 3, - 208, - 86, - 91, - 97, - 5, - 0, - 51, - 133, - 133, - 132, - 3, - 97, - 5, - 23, - 86, - 91, - 80, - 96, - 1, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 97, - 3, - 57, - 51, - 132, - 132, - 97, - 6, - 60, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 131, - 22, - 97, - 5, - 121, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 36, - 128, - 130, - 1, - 82, - 127, - 69, - 82, - 67, - 50, - 48, - 58, - 32, - 97, - 112, - 112, - 114, - 111, - 118, - 101, - 32, - 102, - 114, - 111, - 109, - 32, - 116, - 104, - 101, - 32, - 122, - 101, - 114, - 111, - 32, - 97, - 100, - 100, - 96, - 68, - 130, - 1, - 82, - 99, - 114, - 101, - 115, - 115, - 96, - 224, - 27, - 96, - 100, - 130, - 1, - 82, - 96, - 132, - 1, - 97, - 3, - 208, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 130, - 22, - 97, - 5, - 218, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 34, - 96, - 36, - 130, - 1, - 82, - 127, - 69, - 82, - 67, - 50, - 48, - 58, - 32, - 97, - 112, - 112, - 114, - 111, - 118, - 101, - 32, - 116, - 111, - 32, - 116, - 104, - 101, - 32, - 122, - 101, - 114, - 111, - 32, - 97, - 100, - 100, - 114, - 101, - 96, - 68, - 130, - 1, - 82, - 97, - 115, - 115, - 96, - 240, - 27, - 96, - 100, - 130, - 1, - 82, - 96, - 132, - 1, - 97, - 3, - 208, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 131, - 129, - 22, - 96, - 0, - 129, - 129, - 82, - 96, - 1, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 148, - 135, - 22, - 128, - 132, - 82, - 148, - 130, - 82, - 145, - 130, - 144, - 32, - 133, - 144, - 85, - 144, - 81, - 132, - 129, - 82, - 127, - 140, - 91, - 225, - 229, - 235, - 236, - 125, - 91, - 209, - 79, - 113, - 66, - 125, - 30, - 132, - 243, - 221, - 3, - 20, - 192, - 247, - 178, - 41, - 30, - 91, - 32, - 10, - 200, - 199, - 195, - 185, - 37, - 145, - 1, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 163, - 80, - 80, - 80, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 131, - 22, - 97, - 6, - 160, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 37, - 96, - 36, - 130, - 1, - 82, - 127, - 69, - 82, - 67, - 50, - 48, - 58, - 32, - 116, - 114, - 97, - 110, - 115, - 102, - 101, - 114, - 32, - 102, - 114, - 111, - 109, - 32, - 116, - 104, - 101, - 32, - 122, - 101, - 114, - 111, - 32, - 97, - 100, - 96, - 68, - 130, - 1, - 82, - 100, - 100, - 114, - 101, - 115, - 115, - 96, - 216, - 27, - 96, - 100, - 130, - 1, - 82, - 96, - 132, - 1, - 97, - 3, - 208, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 130, - 22, - 97, - 7, - 2, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 35, - 96, - 36, - 130, - 1, - 82, - 127, - 69, - 82, - 67, - 50, - 48, - 58, - 32, - 116, - 114, - 97, - 110, - 115, - 102, - 101, - 114, - 32, - 116, - 111, - 32, - 116, - 104, - 101, - 32, - 122, - 101, - 114, - 111, - 32, - 97, - 100, - 100, - 114, - 96, - 68, - 130, - 1, - 82, - 98, - 101, - 115, - 115, - 96, - 232, - 27, - 96, - 100, - 130, - 1, - 82, - 96, - 132, - 1, - 97, - 3, - 208, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 131, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 32, - 129, - 144, - 82, - 96, - 64, - 144, - 32, - 84, - 129, - 129, - 16, - 21, - 97, - 7, - 122, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 38, - 96, - 36, - 130, - 1, - 82, - 127, - 69, - 82, - 67, - 50, - 48, - 58, - 32, - 116, - 114, - 97, - 110, - 115, - 102, - 101, - 114, - 32, - 97, - 109, - 111, - 117, - 110, - 116, - 32, - 101, - 120, - 99, - 101, - 101, - 100, - 115, - 32, - 98, - 96, - 68, - 130, - 1, - 82, - 101, - 97, - 108, - 97, - 110, - 99, - 101, - 96, - 208, - 27, - 96, - 100, - 130, - 1, - 82, - 96, - 132, - 1, - 97, - 3, - 208, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 128, - 133, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 32, - 129, - 144, - 82, - 96, - 64, - 128, - 130, - 32, - 133, - 133, - 3, - 144, - 85, - 145, - 133, - 22, - 129, - 82, - 144, - 129, - 32, - 128, - 84, - 132, - 146, - 144, - 97, - 7, - 177, - 144, - 132, - 144, - 97, - 11, - 207, - 86, - 91, - 146, - 80, - 80, - 129, - 144, - 85, - 80, - 130, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 132, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 127, - 221, - 242, - 82, - 173, - 27, - 226, - 200, - 155, - 105, - 194, - 176, - 104, - 252, - 55, - 141, - 170, - 149, - 43, - 167, - 241, - 99, - 196, - 161, - 22, - 40, - 245, - 90, - 77, - 245, - 35, - 179, - 239, - 132, - 96, - 64, - 81, - 97, - 7, - 253, - 145, - 129, - 82, - 96, - 32, - 1, - 144, - 86, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 163, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 130, - 22, - 97, - 8, - 97, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 31, - 96, - 36, - 130, - 1, - 82, - 127, - 69, - 82, - 67, - 50, - 48, - 58, - 32, - 109, - 105, - 110, - 116, - 32, - 116, - 111, - 32, - 116, - 104, - 101, - 32, - 122, - 101, - 114, - 111, - 32, - 97, - 100, - 100, - 114, - 101, - 115, - 115, - 0, - 96, - 68, - 130, - 1, - 82, - 96, - 100, - 1, - 97, - 3, - 208, - 86, - 91, - 128, - 96, - 2, - 96, - 0, - 130, - 130, - 84, - 97, - 8, - 115, - 145, - 144, - 97, - 11, - 207, - 86, - 91, - 144, - 145, - 85, - 80, - 80, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 130, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 32, - 129, - 144, - 82, - 96, - 64, - 129, - 32, - 128, - 84, - 131, - 146, - 144, - 97, - 8, - 160, - 144, - 132, - 144, - 97, - 11, - 207, - 86, - 91, - 144, - 145, - 85, - 80, - 80, - 96, - 64, - 81, - 129, - 129, - 82, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 131, - 22, - 144, - 96, - 0, - 144, - 127, - 221, - 242, - 82, - 173, - 27, - 226, - 200, - 155, - 105, - 194, - 176, - 104, - 252, - 55, - 141, - 170, - 149, - 43, - 167, - 241, - 99, - 196, - 161, - 22, - 40, - 245, - 90, - 77, - 245, - 35, - 179, - 239, - 144, - 96, - 32, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 163, - 80, - 80, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 130, - 22, - 97, - 9, - 74, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 33, - 96, - 36, - 130, - 1, - 82, - 127, - 69, - 82, - 67, - 50, - 48, - 58, - 32, - 98, - 117, - 114, - 110, - 32, - 102, - 114, - 111, - 109, - 32, - 116, - 104, - 101, - 32, - 122, - 101, - 114, - 111, - 32, - 97, - 100, - 100, - 114, - 101, - 115, - 96, - 68, - 130, - 1, - 82, - 96, - 115, - 96, - 248, - 27, - 96, - 100, - 130, - 1, - 82, - 96, - 132, - 1, - 97, - 3, - 208, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 130, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 32, - 129, - 144, - 82, - 96, - 64, - 144, - 32, - 84, - 129, - 129, - 16, - 21, - 97, - 9, - 190, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 34, - 96, - 36, - 130, - 1, - 82, - 127, - 69, - 82, - 67, - 50, - 48, - 58, - 32, - 98, - 117, - 114, - 110, - 32, - 97, - 109, - 111, - 117, - 110, - 116, - 32, - 101, - 120, - 99, - 101, - 101, - 100, - 115, - 32, - 98, - 97, - 108, - 97, - 110, - 96, - 68, - 130, - 1, - 82, - 97, - 99, - 101, - 96, - 240, - 27, - 96, - 100, - 130, - 1, - 82, - 96, - 132, - 1, - 97, - 3, - 208, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 131, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 32, - 129, - 144, - 82, - 96, - 64, - 129, - 32, - 131, - 131, - 3, - 144, - 85, - 96, - 2, - 128, - 84, - 132, - 146, - 144, - 97, - 9, - 237, - 144, - 132, - 144, - 97, - 11, - 231, - 86, - 91, - 144, - 145, - 85, - 80, - 80, - 96, - 64, - 81, - 130, - 129, - 82, - 96, - 0, - 144, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 133, - 22, - 144, - 127, - 221, - 242, - 82, - 173, - 27, - 226, - 200, - 155, - 105, - 194, - 176, - 104, - 252, - 55, - 141, - 170, - 149, - 43, - 167, - 241, - 99, - 196, - 161, - 22, - 40, - 245, - 90, - 77, - 245, - 35, - 179, - 239, - 144, - 96, - 32, - 1, - 97, - 6, - 47, - 86, - 91, - 96, - 0, - 96, - 32, - 128, - 131, - 82, - 131, - 81, - 128, - 130, - 133, - 1, - 82, - 96, - 0, - 91, - 129, - 129, - 16, - 21, - 97, - 10, - 93, - 87, - 133, - 129, - 1, - 131, - 1, - 81, - 133, - 130, - 1, - 96, - 64, - 1, - 82, - 130, - 1, - 97, - 10, - 65, - 86, - 91, - 129, - 129, - 17, - 21, - 97, - 10, - 111, - 87, - 96, - 0, - 96, - 64, - 131, - 135, - 1, - 1, - 82, - 91, - 80, - 96, - 31, - 1, - 96, - 31, - 25, - 22, - 146, - 144, - 146, - 1, - 96, - 64, - 1, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 128, - 53, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 129, - 22, - 129, - 20, - 97, - 10, - 156, - 87, - 96, - 0, - 128, - 253, - 91, - 145, - 144, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 64, - 131, - 133, - 3, - 18, - 21, - 97, - 10, - 180, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 10, - 189, - 131, - 97, - 10, - 133, - 86, - 91, - 148, - 96, - 32, - 147, - 144, - 147, - 1, - 53, - 147, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 96, - 96, - 132, - 134, - 3, - 18, - 21, - 97, - 10, - 224, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 10, - 233, - 132, - 97, - 10, - 133, - 86, - 91, - 146, - 80, - 97, - 10, - 247, - 96, - 32, - 133, - 1, - 97, - 10, - 133, - 86, - 91, - 145, - 80, - 96, - 64, - 132, - 1, - 53, - 144, - 80, - 146, - 80, - 146, - 80, - 146, - 86, - 91, - 96, - 0, - 96, - 32, - 130, - 132, - 3, - 18, - 21, - 97, - 11, - 25, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 11, - 34, - 130, - 97, - 10, - 133, - 86, - 91, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 96, - 32, - 130, - 132, - 3, - 18, - 21, - 97, - 11, - 59, - 87, - 96, - 0, - 128, - 253, - 91, - 129, - 53, - 96, - 255, - 129, - 22, - 129, - 20, - 97, - 11, - 34, - 87, - 96, - 0, - 128, - 253, - 91, - 96, - 0, - 128, - 96, - 64, - 131, - 133, - 3, - 18, - 21, - 97, - 11, - 95, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 11, - 104, - 131, - 97, - 10, - 133, - 86, - 91, - 145, - 80, - 97, - 11, - 118, - 96, - 32, - 132, - 1, - 97, - 10, - 133, - 86, - 91, - 144, - 80, - 146, - 80, - 146, - 144, - 80, - 86, - 91, - 96, - 1, - 129, - 129, - 28, - 144, - 130, - 22, - 128, - 97, - 11, - 147, - 87, - 96, - 127, - 130, - 22, - 145, - 80, - 91, - 96, - 32, - 130, - 16, - 129, - 3, - 97, - 11, - 179, - 87, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 34, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 80, - 145, - 144, - 80, - 86, - 91, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 17, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 96, - 0, - 130, - 25, - 130, - 17, - 21, - 97, - 11, - 226, - 87, - 97, - 11, - 226, - 97, - 11, - 185, - 86, - 91, - 80, - 1, - 144, - 86, - 91, - 96, - 0, - 130, - 130, - 16, - 21, - 97, - 11, - 249, - 87, - 97, - 11, - 249, - 97, - 11, - 185, - 86, - 91, - 80, - 3, - 144, - 86, - 254, - 162, - 100, - 105, - 112, - 102, - 115, - 88, - 34, - 18, - 32, - 137, - 143, - 186, - 19, - 26, - 145, - 115, - 79, - 169, - 109, - 93, - 52, - 125, - 203, - 215, - 78, - 120, - 22, - 42, - 134, - 159, - 66, - 54, - 122, - 86, - 172, - 145, - 69, - 60, - 254, - 6, - 69, - 100, - 115, - 111, - 108, - 99, - 67, - 0, - 8, - 13, - 0, - 51, - ]; - ///The deployed bytecode of the contract. - pub static ECHIDNAERC20_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( - __DEPLOYED_BYTECODE, - ); - pub struct EchidnaERC20(::ethers::contract::Contract); - impl ::core::clone::Clone for EchidnaERC20 { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for EchidnaERC20 { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for EchidnaERC20 { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for EchidnaERC20 { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(stringify!(EchidnaERC20)).field(&self.address()).finish() - } - } - impl EchidnaERC20 { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self( - ::ethers::contract::Contract::new( - address.into(), - ECHIDNAERC20_ABI.clone(), - client, - ), - ) - } - /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. - /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction - /// - /// Notes: - /// - If there are no constructor arguments, you should pass `()` as the argument. - /// - The default poll duration is 7 seconds. - /// - The default number of confirmations is 1 block. - /// - /// - /// # Example - /// - /// Generate contract bindings with `abigen!` and deploy a new contract instance. - /// - /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. - /// - /// ```ignore - /// # async fn deploy(client: ::std::sync::Arc) { - /// abigen!(Greeter, "../greeter.json"); - /// - /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); - /// let msg = greeter_contract.greet().call().await.unwrap(); - /// # } - /// ``` - pub fn deploy( - client: ::std::sync::Arc, - constructor_args: T, - ) -> ::core::result::Result< - ::ethers::contract::builders::ContractDeployer, - ::ethers::contract::ContractError, - > { - let factory = ::ethers::contract::ContractFactory::new( - ECHIDNAERC20_ABI.clone(), - ECHIDNAERC20_BYTECODE.clone().into(), - client, - ); - let deployer = factory.deploy(constructor_args)?; - let deployer = ::ethers::contract::ContractDeployer::new(deployer); - Ok(deployer) - } - ///Calls the contract's `Portfolio` (0x50d3f47c) function - pub fn portfolio( - &self, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::ethers::core::types::Address, - > { - self.0 - .method_hash([80, 211, 244, 124], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `allowance` (0xdd62ed3e) function - pub fn allowance( - &self, - owner: ::ethers::core::types::Address, - spender: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([221, 98, 237, 62], (owner, spender)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `approve` (0x095ea7b3) function - pub fn approve( - &self, - spender: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([9, 94, 167, 179], (spender, amount)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `balanceOf` (0x70a08231) function - pub fn balance_of( - &self, - account: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([112, 160, 130, 49], account) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `burn` (0x9dc29fac) function - pub fn burn( - &self, - to: ::ethers::core::types::Address, - wad: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([157, 194, 159, 172], (to, wad)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `decimals` (0x313ce567) function - pub fn decimals(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([49, 60, 229, 103], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `decreaseAllowance` (0xa457c2d7) function - pub fn decrease_allowance( - &self, - spender: ::ethers::core::types::Address, - subtracted_value: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([164, 87, 194, 215], (spender, subtracted_value)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `increaseAllowance` (0x39509351) function - pub fn increase_allowance( - &self, - spender: ::ethers::core::types::Address, - added_value: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([57, 80, 147, 81], (spender, added_value)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `mint` (0x40c10f19) function - pub fn mint( - &self, - to: ::ethers::core::types::Address, - wad: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([64, 193, 15, 25], (to, wad)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `name` (0x06fdde03) function - pub fn name( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([6, 253, 222, 3], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `setDecimals` (0x7a1395aa) function - pub fn set_decimals( - &self, - decimals: u8, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([122, 19, 149, 170], decimals) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `symbol` (0x95d89b41) function - pub fn symbol( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([149, 216, 155, 65], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `totalSupply` (0x18160ddd) function - pub fn total_supply( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([24, 22, 13, 221], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `transfer` (0xa9059cbb) function - pub fn transfer( - &self, - recipient: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([169, 5, 156, 187], (recipient, amount)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `transferFrom` (0x23b872dd) function - pub fn transfer_from( - &self, - sender: ::ethers::core::types::Address, - recipient: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([35, 184, 114, 221], (sender, recipient, amount)) - .expect("method not found (this should never happen)") - } - ///Gets the contract's `Approval` event - pub fn approval_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - ApprovalFilter, - > { - self.0.event() - } - ///Gets the contract's `Transfer` event - pub fn transfer_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - TransferFilter, - > { - self.0.event() - } - /// Returns an `Event` builder for all the events of this contract. - pub fn events( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - EchidnaERC20Events, - > { - self.0.event_with_filter(::core::default::Default::default()) - } - } - impl From<::ethers::contract::Contract> - for EchidnaERC20 { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "Approval", abi = "Approval(address,address,uint256)")] - pub struct ApprovalFilter { - #[ethevent(indexed)] - pub owner: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub spender: ::ethers::core::types::Address, - pub value: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "Transfer", abi = "Transfer(address,address,uint256)")] - pub struct TransferFilter { - #[ethevent(indexed)] - pub from: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub to: ::ethers::core::types::Address, - pub value: ::ethers::core::types::U256, - } - ///Container type for all of the contract's events - #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] - pub enum EchidnaERC20Events { - ApprovalFilter(ApprovalFilter), - TransferFilter(TransferFilter), - } - impl ::ethers::contract::EthLogDecode for EchidnaERC20Events { - fn decode_log( - log: &::ethers::core::abi::RawLog, - ) -> ::core::result::Result { - if let Ok(decoded) = ApprovalFilter::decode_log(log) { - return Ok(EchidnaERC20Events::ApprovalFilter(decoded)); - } - if let Ok(decoded) = TransferFilter::decode_log(log) { - return Ok(EchidnaERC20Events::TransferFilter(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData) - } - } - impl ::core::fmt::Display for EchidnaERC20Events { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::ApprovalFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::TransferFilter(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for EchidnaERC20Events { - fn from(value: ApprovalFilter) -> Self { - Self::ApprovalFilter(value) - } - } - impl ::core::convert::From for EchidnaERC20Events { - fn from(value: TransferFilter) -> Self { - Self::TransferFilter(value) - } - } - ///Container type for all input parameters for the `Portfolio` function with signature `Portfolio()` and selector `0x50d3f47c` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "Portfolio", abi = "Portfolio()")] - pub struct PortfolioCall; - ///Container type for all input parameters for the `allowance` function with signature `allowance(address,address)` and selector `0xdd62ed3e` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "allowance", abi = "allowance(address,address)")] - pub struct AllowanceCall { - pub owner: ::ethers::core::types::Address, - pub spender: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "approve", abi = "approve(address,uint256)")] - pub struct ApproveCall { - pub spender: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "balanceOf", abi = "balanceOf(address)")] - pub struct BalanceOfCall { - pub account: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `burn` function with signature `burn(address,uint256)` and selector `0x9dc29fac` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "burn", abi = "burn(address,uint256)")] - pub struct BurnCall { - pub to: ::ethers::core::types::Address, - pub wad: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `decimals` function with signature `decimals()` and selector `0x313ce567` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "decimals", abi = "decimals()")] - pub struct DecimalsCall; - ///Container type for all input parameters for the `decreaseAllowance` function with signature `decreaseAllowance(address,uint256)` and selector `0xa457c2d7` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "decreaseAllowance", abi = "decreaseAllowance(address,uint256)")] - pub struct DecreaseAllowanceCall { - pub spender: ::ethers::core::types::Address, - pub subtracted_value: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `increaseAllowance` function with signature `increaseAllowance(address,uint256)` and selector `0x39509351` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "increaseAllowance", abi = "increaseAllowance(address,uint256)")] - pub struct IncreaseAllowanceCall { - pub spender: ::ethers::core::types::Address, - pub added_value: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `mint` function with signature `mint(address,uint256)` and selector `0x40c10f19` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "mint", abi = "mint(address,uint256)")] - pub struct MintCall { - pub to: ::ethers::core::types::Address, - pub wad: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `name` function with signature `name()` and selector `0x06fdde03` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "name", abi = "name()")] - pub struct NameCall; - ///Container type for all input parameters for the `setDecimals` function with signature `setDecimals(uint8)` and selector `0x7a1395aa` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "setDecimals", abi = "setDecimals(uint8)")] - pub struct SetDecimalsCall { - pub decimals: u8, - } - ///Container type for all input parameters for the `symbol` function with signature `symbol()` and selector `0x95d89b41` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "symbol", abi = "symbol()")] - pub struct SymbolCall; - ///Container type for all input parameters for the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "totalSupply", abi = "totalSupply()")] - pub struct TotalSupplyCall; - ///Container type for all input parameters for the `transfer` function with signature `transfer(address,uint256)` and selector `0xa9059cbb` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "transfer", abi = "transfer(address,uint256)")] - pub struct TransferCall { - pub recipient: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "transferFrom", abi = "transferFrom(address,address,uint256)")] - pub struct TransferFromCall { - pub sender: ::ethers::core::types::Address, - pub recipient: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - ///Container type for all of the contract's call - #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] - pub enum EchidnaERC20Calls { - Portfolio(PortfolioCall), - Allowance(AllowanceCall), - Approve(ApproveCall), - BalanceOf(BalanceOfCall), - Burn(BurnCall), - Decimals(DecimalsCall), - DecreaseAllowance(DecreaseAllowanceCall), - IncreaseAllowance(IncreaseAllowanceCall), - Mint(MintCall), - Name(NameCall), - SetDecimals(SetDecimalsCall), - Symbol(SymbolCall), - TotalSupply(TotalSupplyCall), - Transfer(TransferCall), - TransferFrom(TransferFromCall), - } - impl ::ethers::core::abi::AbiDecode for EchidnaERC20Calls { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Portfolio(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Allowance(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Approve(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::BalanceOf(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Burn(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Decimals(decoded)); - } - if let Ok(decoded) - = ::decode( - data, - ) { - return Ok(Self::DecreaseAllowance(decoded)); - } - if let Ok(decoded) - = ::decode( - data, - ) { - return Ok(Self::IncreaseAllowance(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Mint(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Name(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::SetDecimals(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Symbol(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::TotalSupply(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Transfer(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::TransferFrom(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for EchidnaERC20Calls { - fn encode(self) -> Vec { - match self { - Self::Portfolio(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Allowance(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Approve(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::BalanceOf(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Burn(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Decimals(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::DecreaseAllowance(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::IncreaseAllowance(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Mint(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Name(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::SetDecimals(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Symbol(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::TotalSupply(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Transfer(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::TransferFrom(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - } - } - } - impl ::core::fmt::Display for EchidnaERC20Calls { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::Portfolio(element) => ::core::fmt::Display::fmt(element, f), - Self::Allowance(element) => ::core::fmt::Display::fmt(element, f), - Self::Approve(element) => ::core::fmt::Display::fmt(element, f), - Self::BalanceOf(element) => ::core::fmt::Display::fmt(element, f), - Self::Burn(element) => ::core::fmt::Display::fmt(element, f), - Self::Decimals(element) => ::core::fmt::Display::fmt(element, f), - Self::DecreaseAllowance(element) => ::core::fmt::Display::fmt(element, f), - Self::IncreaseAllowance(element) => ::core::fmt::Display::fmt(element, f), - Self::Mint(element) => ::core::fmt::Display::fmt(element, f), - Self::Name(element) => ::core::fmt::Display::fmt(element, f), - Self::SetDecimals(element) => ::core::fmt::Display::fmt(element, f), - Self::Symbol(element) => ::core::fmt::Display::fmt(element, f), - Self::TotalSupply(element) => ::core::fmt::Display::fmt(element, f), - Self::Transfer(element) => ::core::fmt::Display::fmt(element, f), - Self::TransferFrom(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for EchidnaERC20Calls { - fn from(value: PortfolioCall) -> Self { - Self::Portfolio(value) - } - } - impl ::core::convert::From for EchidnaERC20Calls { - fn from(value: AllowanceCall) -> Self { - Self::Allowance(value) - } - } - impl ::core::convert::From for EchidnaERC20Calls { - fn from(value: ApproveCall) -> Self { - Self::Approve(value) - } - } - impl ::core::convert::From for EchidnaERC20Calls { - fn from(value: BalanceOfCall) -> Self { - Self::BalanceOf(value) - } - } - impl ::core::convert::From for EchidnaERC20Calls { - fn from(value: BurnCall) -> Self { - Self::Burn(value) - } - } - impl ::core::convert::From for EchidnaERC20Calls { - fn from(value: DecimalsCall) -> Self { - Self::Decimals(value) - } - } - impl ::core::convert::From for EchidnaERC20Calls { - fn from(value: DecreaseAllowanceCall) -> Self { - Self::DecreaseAllowance(value) - } - } - impl ::core::convert::From for EchidnaERC20Calls { - fn from(value: IncreaseAllowanceCall) -> Self { - Self::IncreaseAllowance(value) - } - } - impl ::core::convert::From for EchidnaERC20Calls { - fn from(value: MintCall) -> Self { - Self::Mint(value) - } - } - impl ::core::convert::From for EchidnaERC20Calls { - fn from(value: NameCall) -> Self { - Self::Name(value) - } - } - impl ::core::convert::From for EchidnaERC20Calls { - fn from(value: SetDecimalsCall) -> Self { - Self::SetDecimals(value) - } - } - impl ::core::convert::From for EchidnaERC20Calls { - fn from(value: SymbolCall) -> Self { - Self::Symbol(value) - } - } - impl ::core::convert::From for EchidnaERC20Calls { - fn from(value: TotalSupplyCall) -> Self { - Self::TotalSupply(value) - } - } - impl ::core::convert::From for EchidnaERC20Calls { - fn from(value: TransferCall) -> Self { - Self::Transfer(value) - } - } - impl ::core::convert::From for EchidnaERC20Calls { - fn from(value: TransferFromCall) -> Self { - Self::TransferFrom(value) - } - } - ///Container type for all return fields from the `Portfolio` function with signature `Portfolio()` and selector `0x50d3f47c` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct PortfolioReturn(pub ::ethers::core::types::Address); - ///Container type for all return fields from the `allowance` function with signature `allowance(address,address)` and selector `0xdd62ed3e` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct AllowanceReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct ApproveReturn(pub bool); - ///Container type for all return fields from the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct BalanceOfReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `decimals` function with signature `decimals()` and selector `0x313ce567` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct DecimalsReturn(pub u8); - ///Container type for all return fields from the `decreaseAllowance` function with signature `decreaseAllowance(address,uint256)` and selector `0xa457c2d7` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct DecreaseAllowanceReturn(pub bool); - ///Container type for all return fields from the `increaseAllowance` function with signature `increaseAllowance(address,uint256)` and selector `0x39509351` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct IncreaseAllowanceReturn(pub bool); - ///Container type for all return fields from the `name` function with signature `name()` and selector `0x06fdde03` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct NameReturn(pub ::std::string::String); - ///Container type for all return fields from the `symbol` function with signature `symbol()` and selector `0x95d89b41` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct SymbolReturn(pub ::std::string::String); - ///Container type for all return fields from the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct TotalSupplyReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `transfer` function with signature `transfer(address,uint256)` and selector `0xa9059cbb` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct TransferReturn(pub bool); - ///Container type for all return fields from the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct TransferFromReturn(pub bool); -} diff --git a/crates/bindings/src/erc20.rs b/crates/bindings/src/erc20.rs deleted file mode 100644 index bdab330f..00000000 --- a/crates/bindings/src/erc20.rs +++ /dev/null @@ -1,770 +0,0 @@ -pub use erc20::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types, -)] -pub mod erc20 { - #[rustfmt::skip] - const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Approval\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Transfer\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\",\"components\":[]},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\",\"components\":[]},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"permit\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]}]"; - ///The parsed JSON ABI of the contract. - pub static ERC20_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| - ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); - pub struct ERC20(::ethers::contract::Contract); - impl ::core::clone::Clone for ERC20 { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for ERC20 { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for ERC20 { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for ERC20 { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(stringify!(ERC20)).field(&self.address()).finish() - } - } - impl ERC20 { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self( - ::ethers::contract::Contract::new( - address.into(), - ERC20_ABI.clone(), - client, - ), - ) - } - ///Calls the contract's `DOMAIN_SEPARATOR` (0x3644e515) function - pub fn domain_separator( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([54, 68, 229, 21], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `allowance` (0xdd62ed3e) function - pub fn allowance( - &self, - p0: ::ethers::core::types::Address, - p1: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([221, 98, 237, 62], (p0, p1)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `approve` (0x095ea7b3) function - pub fn approve( - &self, - spender: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([9, 94, 167, 179], (spender, amount)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `balanceOf` (0x70a08231) function - pub fn balance_of( - &self, - p0: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([112, 160, 130, 49], p0) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `decimals` (0x313ce567) function - pub fn decimals(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([49, 60, 229, 103], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `name` (0x06fdde03) function - pub fn name( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([6, 253, 222, 3], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `nonces` (0x7ecebe00) function - pub fn nonces( - &self, - p0: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([126, 206, 190, 0], p0) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `permit` (0xd505accf) function - pub fn permit( - &self, - owner: ::ethers::core::types::Address, - spender: ::ethers::core::types::Address, - value: ::ethers::core::types::U256, - deadline: ::ethers::core::types::U256, - v: u8, - r: [u8; 32], - s: [u8; 32], - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash( - [213, 5, 172, 207], - (owner, spender, value, deadline, v, r, s), - ) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `symbol` (0x95d89b41) function - pub fn symbol( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([149, 216, 155, 65], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `totalSupply` (0x18160ddd) function - pub fn total_supply( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([24, 22, 13, 221], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `transfer` (0xa9059cbb) function - pub fn transfer( - &self, - to: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([169, 5, 156, 187], (to, amount)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `transferFrom` (0x23b872dd) function - pub fn transfer_from( - &self, - from: ::ethers::core::types::Address, - to: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([35, 184, 114, 221], (from, to, amount)) - .expect("method not found (this should never happen)") - } - ///Gets the contract's `Approval` event - pub fn approval_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - ApprovalFilter, - > { - self.0.event() - } - ///Gets the contract's `Transfer` event - pub fn transfer_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - TransferFilter, - > { - self.0.event() - } - /// Returns an `Event` builder for all the events of this contract. - pub fn events( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, ERC20Events> { - self.0.event_with_filter(::core::default::Default::default()) - } - } - impl From<::ethers::contract::Contract> - for ERC20 { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "Approval", abi = "Approval(address,address,uint256)")] - pub struct ApprovalFilter { - #[ethevent(indexed)] - pub owner: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub spender: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "Transfer", abi = "Transfer(address,address,uint256)")] - pub struct TransferFilter { - #[ethevent(indexed)] - pub from: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub to: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - ///Container type for all of the contract's events - #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] - pub enum ERC20Events { - ApprovalFilter(ApprovalFilter), - TransferFilter(TransferFilter), - } - impl ::ethers::contract::EthLogDecode for ERC20Events { - fn decode_log( - log: &::ethers::core::abi::RawLog, - ) -> ::core::result::Result { - if let Ok(decoded) = ApprovalFilter::decode_log(log) { - return Ok(ERC20Events::ApprovalFilter(decoded)); - } - if let Ok(decoded) = TransferFilter::decode_log(log) { - return Ok(ERC20Events::TransferFilter(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData) - } - } - impl ::core::fmt::Display for ERC20Events { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::ApprovalFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::TransferFilter(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for ERC20Events { - fn from(value: ApprovalFilter) -> Self { - Self::ApprovalFilter(value) - } - } - impl ::core::convert::From for ERC20Events { - fn from(value: TransferFilter) -> Self { - Self::TransferFilter(value) - } - } - ///Container type for all input parameters for the `DOMAIN_SEPARATOR` function with signature `DOMAIN_SEPARATOR()` and selector `0x3644e515` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "DOMAIN_SEPARATOR", abi = "DOMAIN_SEPARATOR()")] - pub struct DomainSeparatorCall; - ///Container type for all input parameters for the `allowance` function with signature `allowance(address,address)` and selector `0xdd62ed3e` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "allowance", abi = "allowance(address,address)")] - pub struct AllowanceCall( - pub ::ethers::core::types::Address, - pub ::ethers::core::types::Address, - ); - ///Container type for all input parameters for the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "approve", abi = "approve(address,uint256)")] - pub struct ApproveCall { - pub spender: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "balanceOf", abi = "balanceOf(address)")] - pub struct BalanceOfCall(pub ::ethers::core::types::Address); - ///Container type for all input parameters for the `decimals` function with signature `decimals()` and selector `0x313ce567` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "decimals", abi = "decimals()")] - pub struct DecimalsCall; - ///Container type for all input parameters for the `name` function with signature `name()` and selector `0x06fdde03` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "name", abi = "name()")] - pub struct NameCall; - ///Container type for all input parameters for the `nonces` function with signature `nonces(address)` and selector `0x7ecebe00` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "nonces", abi = "nonces(address)")] - pub struct NoncesCall(pub ::ethers::core::types::Address); - ///Container type for all input parameters for the `permit` function with signature `permit(address,address,uint256,uint256,uint8,bytes32,bytes32)` and selector `0xd505accf` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall( - name = "permit", - abi = "permit(address,address,uint256,uint256,uint8,bytes32,bytes32)" - )] - pub struct PermitCall { - pub owner: ::ethers::core::types::Address, - pub spender: ::ethers::core::types::Address, - pub value: ::ethers::core::types::U256, - pub deadline: ::ethers::core::types::U256, - pub v: u8, - pub r: [u8; 32], - pub s: [u8; 32], - } - ///Container type for all input parameters for the `symbol` function with signature `symbol()` and selector `0x95d89b41` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "symbol", abi = "symbol()")] - pub struct SymbolCall; - ///Container type for all input parameters for the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "totalSupply", abi = "totalSupply()")] - pub struct TotalSupplyCall; - ///Container type for all input parameters for the `transfer` function with signature `transfer(address,uint256)` and selector `0xa9059cbb` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "transfer", abi = "transfer(address,uint256)")] - pub struct TransferCall { - pub to: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "transferFrom", abi = "transferFrom(address,address,uint256)")] - pub struct TransferFromCall { - pub from: ::ethers::core::types::Address, - pub to: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - ///Container type for all of the contract's call - #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] - pub enum ERC20Calls { - DomainSeparator(DomainSeparatorCall), - Allowance(AllowanceCall), - Approve(ApproveCall), - BalanceOf(BalanceOfCall), - Decimals(DecimalsCall), - Name(NameCall), - Nonces(NoncesCall), - Permit(PermitCall), - Symbol(SymbolCall), - TotalSupply(TotalSupplyCall), - Transfer(TransferCall), - TransferFrom(TransferFromCall), - } - impl ::ethers::core::abi::AbiDecode for ERC20Calls { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::DomainSeparator(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Allowance(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Approve(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::BalanceOf(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Decimals(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Name(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Nonces(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Permit(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Symbol(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::TotalSupply(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Transfer(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::TransferFrom(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for ERC20Calls { - fn encode(self) -> Vec { - match self { - Self::DomainSeparator(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Allowance(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Approve(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::BalanceOf(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Decimals(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Name(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Nonces(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Permit(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Symbol(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::TotalSupply(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Transfer(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::TransferFrom(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - } - } - } - impl ::core::fmt::Display for ERC20Calls { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::DomainSeparator(element) => ::core::fmt::Display::fmt(element, f), - Self::Allowance(element) => ::core::fmt::Display::fmt(element, f), - Self::Approve(element) => ::core::fmt::Display::fmt(element, f), - Self::BalanceOf(element) => ::core::fmt::Display::fmt(element, f), - Self::Decimals(element) => ::core::fmt::Display::fmt(element, f), - Self::Name(element) => ::core::fmt::Display::fmt(element, f), - Self::Nonces(element) => ::core::fmt::Display::fmt(element, f), - Self::Permit(element) => ::core::fmt::Display::fmt(element, f), - Self::Symbol(element) => ::core::fmt::Display::fmt(element, f), - Self::TotalSupply(element) => ::core::fmt::Display::fmt(element, f), - Self::Transfer(element) => ::core::fmt::Display::fmt(element, f), - Self::TransferFrom(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for ERC20Calls { - fn from(value: DomainSeparatorCall) -> Self { - Self::DomainSeparator(value) - } - } - impl ::core::convert::From for ERC20Calls { - fn from(value: AllowanceCall) -> Self { - Self::Allowance(value) - } - } - impl ::core::convert::From for ERC20Calls { - fn from(value: ApproveCall) -> Self { - Self::Approve(value) - } - } - impl ::core::convert::From for ERC20Calls { - fn from(value: BalanceOfCall) -> Self { - Self::BalanceOf(value) - } - } - impl ::core::convert::From for ERC20Calls { - fn from(value: DecimalsCall) -> Self { - Self::Decimals(value) - } - } - impl ::core::convert::From for ERC20Calls { - fn from(value: NameCall) -> Self { - Self::Name(value) - } - } - impl ::core::convert::From for ERC20Calls { - fn from(value: NoncesCall) -> Self { - Self::Nonces(value) - } - } - impl ::core::convert::From for ERC20Calls { - fn from(value: PermitCall) -> Self { - Self::Permit(value) - } - } - impl ::core::convert::From for ERC20Calls { - fn from(value: SymbolCall) -> Self { - Self::Symbol(value) - } - } - impl ::core::convert::From for ERC20Calls { - fn from(value: TotalSupplyCall) -> Self { - Self::TotalSupply(value) - } - } - impl ::core::convert::From for ERC20Calls { - fn from(value: TransferCall) -> Self { - Self::Transfer(value) - } - } - impl ::core::convert::From for ERC20Calls { - fn from(value: TransferFromCall) -> Self { - Self::TransferFrom(value) - } - } - ///Container type for all return fields from the `DOMAIN_SEPARATOR` function with signature `DOMAIN_SEPARATOR()` and selector `0x3644e515` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct DomainSeparatorReturn(pub [u8; 32]); - ///Container type for all return fields from the `allowance` function with signature `allowance(address,address)` and selector `0xdd62ed3e` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct AllowanceReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct ApproveReturn(pub bool); - ///Container type for all return fields from the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct BalanceOfReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `decimals` function with signature `decimals()` and selector `0x313ce567` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct DecimalsReturn(pub u8); - ///Container type for all return fields from the `name` function with signature `name()` and selector `0x06fdde03` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct NameReturn(pub ::std::string::String); - ///Container type for all return fields from the `nonces` function with signature `nonces(address)` and selector `0x7ecebe00` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct NoncesReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `symbol` function with signature `symbol()` and selector `0x95d89b41` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct SymbolReturn(pub ::std::string::String); - ///Container type for all return fields from the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct TotalSupplyReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `transfer` function with signature `transfer(address,uint256)` and selector `0xa9059cbb` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct TransferReturn(pub bool); - ///Container type for all return fields from the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct TransferFromReturn(pub bool); -} diff --git a/crates/bindings/src/fee_on_transfer_token.rs b/crates/bindings/src/fee_on_transfer_token.rs deleted file mode 100644 index 86661f56..00000000 --- a/crates/bindings/src/fee_on_transfer_token.rs +++ /dev/null @@ -1,8349 +0,0 @@ -pub use fee_on_transfer_token::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types, -)] -pub mod fee_on_transfer_token { - #[rustfmt::skip] - const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\",\"components\":[]},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Approval\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Transfer\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"burn\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"mint\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\",\"components\":[]},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\",\"components\":[]},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"permit\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]}]"; - ///The parsed JSON ABI of the contract. - pub static FEEONTRANSFERTOKEN_ABI: ::ethers::contract::Lazy< - ::ethers::core::abi::Abi, - > = ::ethers::contract::Lazy::new(|| { - ::ethers::core::utils::__serde_json::from_str(__ABI) - .expect("ABI is always valid") - }); - #[rustfmt::skip] - const __BYTECODE: &[u8] = &[ - 96, - 224, - 96, - 64, - 82, - 52, - 128, - 21, - 98, - 0, - 0, - 17, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 96, - 64, - 81, - 98, - 0, - 16, - 163, - 56, - 3, - 128, - 98, - 0, - 16, - 163, - 131, - 57, - 129, - 1, - 96, - 64, - 129, - 144, - 82, - 98, - 0, - 0, - 52, - 145, - 98, - 0, - 2, - 160, - 86, - 91, - 130, - 130, - 130, - 130, - 130, - 130, - 130, - 96, - 0, - 144, - 128, - 81, - 144, - 96, - 32, - 1, - 144, - 98, - 0, - 0, - 82, - 146, - 145, - 144, - 98, - 0, - 1, - 45, - 86, - 91, - 80, - 129, - 81, - 98, - 0, - 0, - 104, - 144, - 96, - 1, - 144, - 96, - 32, - 133, - 1, - 144, - 98, - 0, - 1, - 45, - 86, - 91, - 80, - 96, - 255, - 129, - 22, - 96, - 128, - 82, - 70, - 96, - 160, - 82, - 98, - 0, - 0, - 126, - 98, - 0, - 0, - 145, - 86, - 91, - 96, - 192, - 82, - 80, - 98, - 0, - 4, - 4, - 151, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 127, - 139, - 115, - 195, - 198, - 155, - 184, - 254, - 61, - 81, - 46, - 204, - 76, - 247, - 89, - 204, - 121, - 35, - 159, - 123, - 23, - 155, - 15, - 250, - 202, - 169, - 167, - 93, - 82, - 43, - 57, - 64, - 15, - 96, - 0, - 96, - 64, - 81, - 98, - 0, - 0, - 197, - 145, - 144, - 98, - 0, - 3, - 97, - 86, - 91, - 96, - 64, - 128, - 81, - 145, - 130, - 144, - 3, - 130, - 32, - 96, - 32, - 131, - 1, - 147, - 144, - 147, - 82, - 129, - 1, - 145, - 144, - 145, - 82, - 127, - 200, - 158, - 253, - 170, - 84, - 192, - 242, - 12, - 122, - 223, - 97, - 40, - 130, - 223, - 9, - 80, - 245, - 169, - 81, - 99, - 126, - 3, - 7, - 205, - 203, - 76, - 103, - 47, - 41, - 139, - 139, - 198, - 96, - 96, - 130, - 1, - 82, - 70, - 96, - 128, - 130, - 1, - 82, - 48, - 96, - 160, - 130, - 1, - 82, - 96, - 192, - 1, - 96, - 64, - 81, - 96, - 32, - 129, - 131, - 3, - 3, - 129, - 82, - 144, - 96, - 64, - 82, - 128, - 81, - 144, - 96, - 32, - 1, - 32, - 144, - 80, - 144, - 86, - 91, - 130, - 128, - 84, - 98, - 0, - 1, - 59, - 144, - 98, - 0, - 3, - 37, - 86, - 91, - 144, - 96, - 0, - 82, - 96, - 32, - 96, - 0, - 32, - 144, - 96, - 31, - 1, - 96, - 32, - 144, - 4, - 129, - 1, - 146, - 130, - 98, - 0, - 1, - 95, - 87, - 96, - 0, - 133, - 85, - 98, - 0, - 1, - 170, - 86, - 91, - 130, - 96, - 31, - 16, - 98, - 0, - 1, - 122, - 87, - 128, - 81, - 96, - 255, - 25, - 22, - 131, - 128, - 1, - 23, - 133, - 85, - 98, - 0, - 1, - 170, - 86, - 91, - 130, - 128, - 1, - 96, - 1, - 1, - 133, - 85, - 130, - 21, - 98, - 0, - 1, - 170, - 87, - 145, - 130, - 1, - 91, - 130, - 129, - 17, - 21, - 98, - 0, - 1, - 170, - 87, - 130, - 81, - 130, - 85, - 145, - 96, - 32, - 1, - 145, - 144, - 96, - 1, - 1, - 144, - 98, - 0, - 1, - 141, - 86, - 91, - 80, - 98, - 0, - 1, - 184, - 146, - 145, - 80, - 98, - 0, - 1, - 188, - 86, - 91, - 80, - 144, - 86, - 91, - 91, - 128, - 130, - 17, - 21, - 98, - 0, - 1, - 184, - 87, - 96, - 0, - 129, - 85, - 96, - 1, - 1, - 98, - 0, - 1, - 189, - 86, - 91, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 65, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 96, - 0, - 130, - 96, - 31, - 131, - 1, - 18, - 98, - 0, - 1, - 251, - 87, - 96, - 0, - 128, - 253, - 91, - 129, - 81, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 128, - 130, - 17, - 21, - 98, - 0, - 2, - 24, - 87, - 98, - 0, - 2, - 24, - 98, - 0, - 1, - 211, - 86, - 91, - 96, - 64, - 81, - 96, - 31, - 131, - 1, - 96, - 31, - 25, - 144, - 129, - 22, - 96, - 63, - 1, - 22, - 129, - 1, - 144, - 130, - 130, - 17, - 129, - 131, - 16, - 23, - 21, - 98, - 0, - 2, - 67, - 87, - 98, - 0, - 2, - 67, - 98, - 0, - 1, - 211, - 86, - 91, - 129, - 96, - 64, - 82, - 131, - 129, - 82, - 96, - 32, - 146, - 80, - 134, - 131, - 133, - 136, - 1, - 1, - 17, - 21, - 98, - 0, - 2, - 96, - 87, - 96, - 0, - 128, - 253, - 91, - 96, - 0, - 145, - 80, - 91, - 131, - 130, - 16, - 21, - 98, - 0, - 2, - 132, - 87, - 133, - 130, - 1, - 131, - 1, - 81, - 129, - 131, - 1, - 132, - 1, - 82, - 144, - 130, - 1, - 144, - 98, - 0, - 2, - 101, - 86, - 91, - 131, - 130, - 17, - 21, - 98, - 0, - 2, - 150, - 87, - 96, - 0, - 131, - 133, - 131, - 1, - 1, - 82, - 91, - 150, - 149, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 96, - 96, - 132, - 134, - 3, - 18, - 21, - 98, - 0, - 2, - 182, - 87, - 96, - 0, - 128, - 253, - 91, - 131, - 81, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 128, - 130, - 17, - 21, - 98, - 0, - 2, - 206, - 87, - 96, - 0, - 128, - 253, - 91, - 98, - 0, - 2, - 220, - 135, - 131, - 136, - 1, - 98, - 0, - 1, - 233, - 86, - 91, - 148, - 80, - 96, - 32, - 134, - 1, - 81, - 145, - 80, - 128, - 130, - 17, - 21, - 98, - 0, - 2, - 243, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 98, - 0, - 3, - 2, - 134, - 130, - 135, - 1, - 98, - 0, - 1, - 233, - 86, - 91, - 146, - 80, - 80, - 96, - 64, - 132, - 1, - 81, - 96, - 255, - 129, - 22, - 129, - 20, - 98, - 0, - 3, - 26, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 145, - 80, - 80, - 146, - 80, - 146, - 80, - 146, - 86, - 91, - 96, - 1, - 129, - 129, - 28, - 144, - 130, - 22, - 128, - 98, - 0, - 3, - 58, - 87, - 96, - 127, - 130, - 22, - 145, - 80, - 91, - 96, - 32, - 130, - 16, - 129, - 3, - 98, - 0, - 3, - 91, - 87, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 34, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 80, - 145, - 144, - 80, - 86, - 91, - 96, - 0, - 128, - 131, - 84, - 129, - 96, - 1, - 130, - 129, - 28, - 145, - 80, - 128, - 131, - 22, - 128, - 98, - 0, - 3, - 126, - 87, - 96, - 127, - 131, - 22, - 146, - 80, - 91, - 96, - 32, - 128, - 132, - 16, - 130, - 3, - 98, - 0, - 3, - 158, - 87, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 134, - 82, - 96, - 34, - 96, - 4, - 82, - 96, - 36, - 134, - 253, - 91, - 129, - 128, - 21, - 98, - 0, - 3, - 181, - 87, - 96, - 1, - 129, - 20, - 98, - 0, - 3, - 199, - 87, - 98, - 0, - 3, - 246, - 86, - 91, - 96, - 255, - 25, - 134, - 22, - 137, - 82, - 132, - 137, - 1, - 150, - 80, - 98, - 0, - 3, - 246, - 86, - 91, - 96, - 0, - 138, - 129, - 82, - 96, - 32, - 144, - 32, - 96, - 0, - 91, - 134, - 129, - 16, - 21, - 98, - 0, - 3, - 238, - 87, - 129, - 84, - 139, - 130, - 1, - 82, - 144, - 133, - 1, - 144, - 131, - 1, - 98, - 0, - 3, - 211, - 86, - 91, - 80, - 80, - 132, - 137, - 1, - 150, - 80, - 91, - 80, - 148, - 152, - 151, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 128, - 81, - 96, - 160, - 81, - 96, - 192, - 81, - 97, - 12, - 111, - 98, - 0, - 4, - 52, - 96, - 0, - 57, - 96, - 0, - 97, - 3, - 243, - 1, - 82, - 96, - 0, - 97, - 3, - 190, - 1, - 82, - 96, - 0, - 97, - 1, - 95, - 1, - 82, - 97, - 12, - 111, - 96, - 0, - 243, - 254, - 96, - 128, - 96, - 64, - 82, - 52, - 128, - 21, - 97, - 0, - 16, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 96, - 4, - 54, - 16, - 97, - 0, - 234, - 87, - 96, - 0, - 53, - 96, - 224, - 28, - 128, - 99, - 112, - 160, - 130, - 49, - 17, - 97, - 0, - 140, - 87, - 128, - 99, - 157, - 194, - 159, - 172, - 17, - 97, - 0, - 102, - 87, - 128, - 99, - 157, - 194, - 159, - 172, - 20, - 97, - 1, - 248, - 87, - 128, - 99, - 169, - 5, - 156, - 187, - 20, - 97, - 2, - 11, - 87, - 128, - 99, - 213, - 5, - 172, - 207, - 20, - 97, - 2, - 30, - 87, - 128, - 99, - 221, - 98, - 237, - 62, - 20, - 97, - 2, - 49, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 99, - 112, - 160, - 130, - 49, - 20, - 97, - 1, - 176, - 87, - 128, - 99, - 126, - 206, - 190, - 0, - 20, - 97, - 1, - 208, - 87, - 128, - 99, - 149, - 216, - 155, - 65, - 20, - 97, - 1, - 240, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 99, - 35, - 184, - 114, - 221, - 17, - 97, - 0, - 200, - 87, - 128, - 99, - 35, - 184, - 114, - 221, - 20, - 97, - 1, - 71, - 87, - 128, - 99, - 49, - 60, - 229, - 103, - 20, - 97, - 1, - 90, - 87, - 128, - 99, - 54, - 68, - 229, - 21, - 20, - 97, - 1, - 147, - 87, - 128, - 99, - 64, - 193, - 15, - 25, - 20, - 97, - 1, - 155, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 99, - 6, - 253, - 222, - 3, - 20, - 97, - 0, - 239, - 87, - 128, - 99, - 9, - 94, - 167, - 179, - 20, - 97, - 1, - 13, - 87, - 128, - 99, - 24, - 22, - 13, - 221, - 20, - 97, - 1, - 48, - 87, - 91, - 96, - 0, - 128, - 253, - 91, - 97, - 0, - 247, - 97, - 2, - 92, - 86, - 91, - 96, - 64, - 81, - 97, - 1, - 4, - 145, - 144, - 97, - 9, - 31, - 86, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 243, - 91, - 97, - 1, - 32, - 97, - 1, - 27, - 54, - 96, - 4, - 97, - 9, - 144, - 86, - 91, - 97, - 2, - 234, - 86, - 91, - 96, - 64, - 81, - 144, - 21, - 21, - 129, - 82, - 96, - 32, - 1, - 97, - 1, - 4, - 86, - 91, - 97, - 1, - 57, - 96, - 2, - 84, - 129, - 86, - 91, - 96, - 64, - 81, - 144, - 129, - 82, - 96, - 32, - 1, - 97, - 1, - 4, - 86, - 91, - 97, - 1, - 32, - 97, - 1, - 85, - 54, - 96, - 4, - 97, - 9, - 186, - 86, - 91, - 97, - 3, - 86, - 86, - 91, - 97, - 1, - 129, - 127, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 129, - 86, - 91, - 96, - 64, - 81, - 96, - 255, - 144, - 145, - 22, - 129, - 82, - 96, - 32, - 1, - 97, - 1, - 4, - 86, - 91, - 97, - 1, - 57, - 97, - 3, - 186, - 86, - 91, - 97, - 1, - 174, - 97, - 1, - 169, - 54, - 96, - 4, - 97, - 9, - 144, - 86, - 91, - 97, - 4, - 21, - 86, - 91, - 0, - 91, - 97, - 1, - 57, - 97, - 1, - 190, - 54, - 96, - 4, - 97, - 9, - 246, - 86, - 91, - 96, - 3, - 96, - 32, - 82, - 96, - 0, - 144, - 129, - 82, - 96, - 64, - 144, - 32, - 84, - 129, - 86, - 91, - 97, - 1, - 57, - 97, - 1, - 222, - 54, - 96, - 4, - 97, - 9, - 246, - 86, - 91, - 96, - 5, - 96, - 32, - 82, - 96, - 0, - 144, - 129, - 82, - 96, - 64, - 144, - 32, - 84, - 129, - 86, - 91, - 97, - 0, - 247, - 97, - 4, - 35, - 86, - 91, - 97, - 1, - 174, - 97, - 2, - 6, - 54, - 96, - 4, - 97, - 9, - 144, - 86, - 91, - 97, - 4, - 48, - 86, - 91, - 97, - 1, - 32, - 97, - 2, - 25, - 54, - 96, - 4, - 97, - 9, - 144, - 86, - 91, - 97, - 4, - 58, - 86, - 91, - 97, - 1, - 174, - 97, - 2, - 44, - 54, - 96, - 4, - 97, - 10, - 24, - 86, - 91, - 97, - 4, - 160, - 86, - 91, - 97, - 1, - 57, - 97, - 2, - 63, - 54, - 96, - 4, - 97, - 10, - 139, - 86, - 91, - 96, - 4, - 96, - 32, - 144, - 129, - 82, - 96, - 0, - 146, - 131, - 82, - 96, - 64, - 128, - 132, - 32, - 144, - 145, - 82, - 144, - 130, - 82, - 144, - 32, - 84, - 129, - 86, - 91, - 96, - 0, - 128, - 84, - 97, - 2, - 105, - 144, - 97, - 10, - 190, - 86, - 91, - 128, - 96, - 31, - 1, - 96, - 32, - 128, - 145, - 4, - 2, - 96, - 32, - 1, - 96, - 64, - 81, - 144, - 129, - 1, - 96, - 64, - 82, - 128, - 146, - 145, - 144, - 129, - 129, - 82, - 96, - 32, - 1, - 130, - 128, - 84, - 97, - 2, - 149, - 144, - 97, - 10, - 190, - 86, - 91, - 128, - 21, - 97, - 2, - 226, - 87, - 128, - 96, - 31, - 16, - 97, - 2, - 183, - 87, - 97, - 1, - 0, - 128, - 131, - 84, - 4, - 2, - 131, - 82, - 145, - 96, - 32, - 1, - 145, - 97, - 2, - 226, - 86, - 91, - 130, - 1, - 145, - 144, - 96, - 0, - 82, - 96, - 32, - 96, - 0, - 32, - 144, - 91, - 129, - 84, - 129, - 82, - 144, - 96, - 1, - 1, - 144, - 96, - 32, - 1, - 128, - 131, - 17, - 97, - 2, - 197, - 87, - 130, - 144, - 3, - 96, - 31, - 22, - 130, - 1, - 145, - 91, - 80, - 80, - 80, - 80, - 80, - 129, - 86, - 91, - 51, - 96, - 0, - 129, - 129, - 82, - 96, - 4, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 135, - 22, - 128, - 133, - 82, - 146, - 82, - 128, - 131, - 32, - 133, - 144, - 85, - 81, - 145, - 146, - 144, - 145, - 127, - 140, - 91, - 225, - 229, - 235, - 236, - 125, - 91, - 209, - 79, - 113, - 66, - 125, - 30, - 132, - 243, - 221, - 3, - 20, - 192, - 247, - 178, - 41, - 30, - 91, - 32, - 10, - 200, - 199, - 195, - 185, - 37, - 144, - 97, - 3, - 69, - 144, - 134, - 129, - 82, - 96, - 32, - 1, - 144, - 86, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 163, - 80, - 96, - 1, - 146, - 145, - 80, - 80, - 86, - 91, - 96, - 0, - 97, - 3, - 99, - 132, - 132, - 132, - 97, - 6, - 233, - 86, - 91, - 80, - 96, - 0, - 96, - 100, - 97, - 3, - 115, - 132, - 96, - 1, - 97, - 11, - 14, - 86, - 91, - 97, - 3, - 125, - 145, - 144, - 97, - 11, - 45, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 133, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 3, - 96, - 32, - 82, - 96, - 64, - 129, - 32, - 128, - 84, - 146, - 147, - 80, - 131, - 146, - 144, - 145, - 144, - 97, - 3, - 170, - 144, - 132, - 144, - 97, - 11, - 79, - 86, - 91, - 144, - 145, - 85, - 80, - 96, - 1, - 150, - 149, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 127, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 70, - 20, - 97, - 3, - 240, - 87, - 97, - 3, - 235, - 97, - 7, - 201, - 86, - 91, - 144, - 80, - 144, - 86, - 91, - 80, - 127, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 144, - 86, - 91, - 97, - 4, - 31, - 130, - 130, - 97, - 8, - 99, - 86, - 91, - 80, - 80, - 86, - 91, - 96, - 1, - 128, - 84, - 97, - 2, - 105, - 144, - 97, - 10, - 190, - 86, - 91, - 97, - 4, - 31, - 130, - 130, - 97, - 8, - 189, - 86, - 91, - 51, - 96, - 0, - 144, - 129, - 82, - 96, - 3, - 96, - 32, - 82, - 96, - 64, - 129, - 32, - 128, - 84, - 131, - 145, - 144, - 131, - 144, - 97, - 4, - 91, - 144, - 132, - 144, - 97, - 11, - 79, - 86, - 91, - 144, - 145, - 85, - 80, - 80, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 131, - 22, - 96, - 0, - 129, - 129, - 82, - 96, - 3, - 96, - 32, - 82, - 96, - 64, - 144, - 129, - 144, - 32, - 128, - 84, - 133, - 1, - 144, - 85, - 81, - 51, - 144, - 96, - 0, - 128, - 81, - 96, - 32, - 97, - 12, - 26, - 131, - 57, - 129, - 81, - 145, - 82, - 144, - 97, - 3, - 69, - 144, - 134, - 129, - 82, - 96, - 32, - 1, - 144, - 86, - 91, - 66, - 132, - 16, - 21, - 97, - 4, - 245, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 23, - 96, - 36, - 130, - 1, - 82, - 127, - 80, - 69, - 82, - 77, - 73, - 84, - 95, - 68, - 69, - 65, - 68, - 76, - 73, - 78, - 69, - 95, - 69, - 88, - 80, - 73, - 82, - 69, - 68, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 96, - 68, - 130, - 1, - 82, - 96, - 100, - 1, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 0, - 96, - 1, - 97, - 5, - 1, - 97, - 3, - 186, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 138, - 129, - 22, - 96, - 0, - 129, - 129, - 82, - 96, - 5, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 145, - 130, - 144, - 32, - 128, - 84, - 96, - 1, - 129, - 1, - 144, - 145, - 85, - 130, - 81, - 127, - 110, - 113, - 237, - 174, - 18, - 177, - 185, - 127, - 77, - 31, - 96, - 55, - 15, - 239, - 16, - 16, - 95, - 162, - 250, - 174, - 1, - 38, - 17, - 74, - 22, - 156, - 100, - 132, - 93, - 97, - 38, - 201, - 129, - 132, - 1, - 82, - 128, - 132, - 1, - 148, - 144, - 148, - 82, - 147, - 141, - 22, - 96, - 96, - 132, - 1, - 82, - 96, - 128, - 131, - 1, - 140, - 144, - 82, - 96, - 160, - 131, - 1, - 147, - 144, - 147, - 82, - 96, - 192, - 128, - 131, - 1, - 139, - 144, - 82, - 129, - 81, - 128, - 132, - 3, - 144, - 145, - 1, - 129, - 82, - 96, - 224, - 131, - 1, - 144, - 145, - 82, - 128, - 81, - 146, - 1, - 145, - 144, - 145, - 32, - 97, - 25, - 1, - 96, - 240, - 27, - 97, - 1, - 0, - 131, - 1, - 82, - 97, - 1, - 2, - 130, - 1, - 146, - 144, - 146, - 82, - 97, - 1, - 34, - 129, - 1, - 145, - 144, - 145, - 82, - 97, - 1, - 66, - 1, - 96, - 64, - 128, - 81, - 96, - 31, - 25, - 129, - 132, - 3, - 1, - 129, - 82, - 130, - 130, - 82, - 128, - 81, - 96, - 32, - 145, - 130, - 1, - 32, - 96, - 0, - 132, - 82, - 144, - 131, - 1, - 128, - 131, - 82, - 82, - 96, - 255, - 135, - 22, - 144, - 130, - 1, - 82, - 96, - 96, - 129, - 1, - 133, - 144, - 82, - 96, - 128, - 129, - 1, - 132, - 144, - 82, - 96, - 160, - 1, - 96, - 32, - 96, - 64, - 81, - 96, - 32, - 129, - 3, - 144, - 128, - 132, - 3, - 144, - 133, - 90, - 250, - 21, - 128, - 21, - 97, - 6, - 13, - 87, - 61, - 96, - 0, - 128, - 62, - 61, - 96, - 0, - 253, - 91, - 80, - 80, - 96, - 64, - 81, - 96, - 31, - 25, - 1, - 81, - 145, - 80, - 80, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 129, - 22, - 21, - 128, - 21, - 144, - 97, - 6, - 67, - 87, - 80, - 135, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 20, - 91, - 97, - 6, - 128, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 14, - 96, - 36, - 130, - 1, - 82, - 109, - 36, - 167, - 43, - 32, - 166, - 36, - 162, - 47, - 169, - 164, - 163, - 167, - 34, - 169, - 96, - 145, - 27, - 96, - 68, - 130, - 1, - 82, - 96, - 100, - 1, - 97, - 4, - 236, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 144, - 129, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 4, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 138, - 133, - 22, - 128, - 133, - 82, - 144, - 131, - 82, - 146, - 129, - 144, - 32, - 137, - 144, - 85, - 81, - 136, - 129, - 82, - 145, - 146, - 138, - 22, - 145, - 127, - 140, - 91, - 225, - 229, - 235, - 236, - 125, - 91, - 209, - 79, - 113, - 66, - 125, - 30, - 132, - 243, - 221, - 3, - 20, - 192, - 247, - 178, - 41, - 30, - 91, - 32, - 10, - 200, - 199, - 195, - 185, - 37, - 145, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 163, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 131, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 4, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 51, - 132, - 82, - 144, - 145, - 82, - 129, - 32, - 84, - 96, - 0, - 25, - 129, - 20, - 97, - 7, - 69, - 87, - 97, - 7, - 32, - 131, - 130, - 97, - 11, - 79, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 134, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 4, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 51, - 132, - 82, - 144, - 145, - 82, - 144, - 32, - 85, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 133, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 3, - 96, - 32, - 82, - 96, - 64, - 129, - 32, - 128, - 84, - 133, - 146, - 144, - 97, - 7, - 109, - 144, - 132, - 144, - 97, - 11, - 79, - 86, - 91, - 144, - 145, - 85, - 80, - 80, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 128, - 133, - 22, - 96, - 0, - 129, - 129, - 82, - 96, - 3, - 96, - 32, - 82, - 96, - 64, - 144, - 129, - 144, - 32, - 128, - 84, - 135, - 1, - 144, - 85, - 81, - 144, - 145, - 135, - 22, - 144, - 96, - 0, - 128, - 81, - 96, - 32, - 97, - 12, - 26, - 131, - 57, - 129, - 81, - 145, - 82, - 144, - 97, - 7, - 182, - 144, - 135, - 129, - 82, - 96, - 32, - 1, - 144, - 86, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 163, - 80, - 96, - 1, - 148, - 147, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 127, - 139, - 115, - 195, - 198, - 155, - 184, - 254, - 61, - 81, - 46, - 204, - 76, - 247, - 89, - 204, - 121, - 35, - 159, - 123, - 23, - 155, - 15, - 250, - 202, - 169, - 167, - 93, - 82, - 43, - 57, - 64, - 15, - 96, - 0, - 96, - 64, - 81, - 97, - 7, - 251, - 145, - 144, - 97, - 11, - 102, - 86, - 91, - 96, - 64, - 128, - 81, - 145, - 130, - 144, - 3, - 130, - 32, - 96, - 32, - 131, - 1, - 147, - 144, - 147, - 82, - 129, - 1, - 145, - 144, - 145, - 82, - 127, - 200, - 158, - 253, - 170, - 84, - 192, - 242, - 12, - 122, - 223, - 97, - 40, - 130, - 223, - 9, - 80, - 245, - 169, - 81, - 99, - 126, - 3, - 7, - 205, - 203, - 76, - 103, - 47, - 41, - 139, - 139, - 198, - 96, - 96, - 130, - 1, - 82, - 70, - 96, - 128, - 130, - 1, - 82, - 48, - 96, - 160, - 130, - 1, - 82, - 96, - 192, - 1, - 96, - 64, - 81, - 96, - 32, - 129, - 131, - 3, - 3, - 129, - 82, - 144, - 96, - 64, - 82, - 128, - 81, - 144, - 96, - 32, - 1, - 32, - 144, - 80, - 144, - 86, - 91, - 128, - 96, - 2, - 96, - 0, - 130, - 130, - 84, - 97, - 8, - 117, - 145, - 144, - 97, - 12, - 1, - 86, - 91, - 144, - 145, - 85, - 80, - 80, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 130, - 22, - 96, - 0, - 129, - 129, - 82, - 96, - 3, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 128, - 84, - 134, - 1, - 144, - 85, - 81, - 132, - 129, - 82, - 96, - 0, - 128, - 81, - 96, - 32, - 97, - 12, - 26, - 131, - 57, - 129, - 81, - 145, - 82, - 145, - 1, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 163, - 80, - 80, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 130, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 3, - 96, - 32, - 82, - 96, - 64, - 129, - 32, - 128, - 84, - 131, - 146, - 144, - 97, - 8, - 229, - 144, - 132, - 144, - 97, - 11, - 79, - 86, - 91, - 144, - 145, - 85, - 80, - 80, - 96, - 2, - 128, - 84, - 130, - 144, - 3, - 144, - 85, - 96, - 64, - 81, - 129, - 129, - 82, - 96, - 0, - 144, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 132, - 22, - 144, - 96, - 0, - 128, - 81, - 96, - 32, - 97, - 12, - 26, - 131, - 57, - 129, - 81, - 145, - 82, - 144, - 96, - 32, - 1, - 97, - 8, - 177, - 86, - 91, - 96, - 0, - 96, - 32, - 128, - 131, - 82, - 131, - 81, - 128, - 130, - 133, - 1, - 82, - 96, - 0, - 91, - 129, - 129, - 16, - 21, - 97, - 9, - 76, - 87, - 133, - 129, - 1, - 131, - 1, - 81, - 133, - 130, - 1, - 96, - 64, - 1, - 82, - 130, - 1, - 97, - 9, - 48, - 86, - 91, - 129, - 129, - 17, - 21, - 97, - 9, - 94, - 87, - 96, - 0, - 96, - 64, - 131, - 135, - 1, - 1, - 82, - 91, - 80, - 96, - 31, - 1, - 96, - 31, - 25, - 22, - 146, - 144, - 146, - 1, - 96, - 64, - 1, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 128, - 53, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 129, - 22, - 129, - 20, - 97, - 9, - 139, - 87, - 96, - 0, - 128, - 253, - 91, - 145, - 144, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 64, - 131, - 133, - 3, - 18, - 21, - 97, - 9, - 163, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 9, - 172, - 131, - 97, - 9, - 116, - 86, - 91, - 148, - 96, - 32, - 147, - 144, - 147, - 1, - 53, - 147, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 96, - 96, - 132, - 134, - 3, - 18, - 21, - 97, - 9, - 207, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 9, - 216, - 132, - 97, - 9, - 116, - 86, - 91, - 146, - 80, - 97, - 9, - 230, - 96, - 32, - 133, - 1, - 97, - 9, - 116, - 86, - 91, - 145, - 80, - 96, - 64, - 132, - 1, - 53, - 144, - 80, - 146, - 80, - 146, - 80, - 146, - 86, - 91, - 96, - 0, - 96, - 32, - 130, - 132, - 3, - 18, - 21, - 97, - 10, - 8, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 10, - 17, - 130, - 97, - 9, - 116, - 86, - 91, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 128, - 96, - 0, - 128, - 96, - 0, - 96, - 224, - 136, - 138, - 3, - 18, - 21, - 97, - 10, - 51, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 10, - 60, - 136, - 97, - 9, - 116, - 86, - 91, - 150, - 80, - 97, - 10, - 74, - 96, - 32, - 137, - 1, - 97, - 9, - 116, - 86, - 91, - 149, - 80, - 96, - 64, - 136, - 1, - 53, - 148, - 80, - 96, - 96, - 136, - 1, - 53, - 147, - 80, - 96, - 128, - 136, - 1, - 53, - 96, - 255, - 129, - 22, - 129, - 20, - 97, - 10, - 110, - 87, - 96, - 0, - 128, - 253, - 91, - 150, - 153, - 149, - 152, - 80, - 147, - 150, - 146, - 149, - 148, - 96, - 160, - 132, - 1, - 53, - 148, - 80, - 96, - 192, - 144, - 147, - 1, - 53, - 146, - 145, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 64, - 131, - 133, - 3, - 18, - 21, - 97, - 10, - 158, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 10, - 167, - 131, - 97, - 9, - 116, - 86, - 91, - 145, - 80, - 97, - 10, - 181, - 96, - 32, - 132, - 1, - 97, - 9, - 116, - 86, - 91, - 144, - 80, - 146, - 80, - 146, - 144, - 80, - 86, - 91, - 96, - 1, - 129, - 129, - 28, - 144, - 130, - 22, - 128, - 97, - 10, - 210, - 87, - 96, - 127, - 130, - 22, - 145, - 80, - 91, - 96, - 32, - 130, - 16, - 129, - 3, - 97, - 10, - 242, - 87, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 34, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 80, - 145, - 144, - 80, - 86, - 91, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 17, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 96, - 0, - 129, - 96, - 0, - 25, - 4, - 131, - 17, - 130, - 21, - 21, - 22, - 21, - 97, - 11, - 40, - 87, - 97, - 11, - 40, - 97, - 10, - 248, - 86, - 91, - 80, - 2, - 144, - 86, - 91, - 96, - 0, - 130, - 97, - 11, - 74, - 87, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 18, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 80, - 4, - 144, - 86, - 91, - 96, - 0, - 130, - 130, - 16, - 21, - 97, - 11, - 97, - 87, - 97, - 11, - 97, - 97, - 10, - 248, - 86, - 91, - 80, - 3, - 144, - 86, - 91, - 96, - 0, - 128, - 131, - 84, - 129, - 96, - 1, - 130, - 129, - 28, - 145, - 80, - 128, - 131, - 22, - 128, - 97, - 11, - 130, - 87, - 96, - 127, - 131, - 22, - 146, - 80, - 91, - 96, - 32, - 128, - 132, - 16, - 130, - 3, - 97, - 11, - 161, - 87, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 134, - 82, - 96, - 34, - 96, - 4, - 82, - 96, - 36, - 134, - 253, - 91, - 129, - 128, - 21, - 97, - 11, - 181, - 87, - 96, - 1, - 129, - 20, - 97, - 11, - 198, - 87, - 97, - 11, - 243, - 86, - 91, - 96, - 255, - 25, - 134, - 22, - 137, - 82, - 132, - 137, - 1, - 150, - 80, - 97, - 11, - 243, - 86, - 91, - 96, - 0, - 138, - 129, - 82, - 96, - 32, - 144, - 32, - 96, - 0, - 91, - 134, - 129, - 16, - 21, - 97, - 11, - 235, - 87, - 129, - 84, - 139, - 130, - 1, - 82, - 144, - 133, - 1, - 144, - 131, - 1, - 97, - 11, - 210, - 86, - 91, - 80, - 80, - 132, - 137, - 1, - 150, - 80, - 91, - 80, - 148, - 152, - 151, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 130, - 25, - 130, - 17, - 21, - 97, - 12, - 20, - 87, - 97, - 12, - 20, - 97, - 10, - 248, - 86, - 91, - 80, - 1, - 144, - 86, - 254, - 221, - 242, - 82, - 173, - 27, - 226, - 200, - 155, - 105, - 194, - 176, - 104, - 252, - 55, - 141, - 170, - 149, - 43, - 167, - 241, - 99, - 196, - 161, - 22, - 40, - 245, - 90, - 77, - 245, - 35, - 179, - 239, - 162, - 100, - 105, - 112, - 102, - 115, - 88, - 34, - 18, - 32, - 164, - 58, - 27, - 68, - 152, - 101, - 234, - 102, - 167, - 171, - 28, - 247, - 96, - 214, - 58, - 195, - 219, - 250, - 63, - 173, - 150, - 252, - 3, - 204, - 97, - 234, - 63, - 226, - 188, - 181, - 93, - 150, - 100, - 115, - 111, - 108, - 99, - 67, - 0, - 8, - 13, - 0, - 51, - ]; - ///The bytecode of the contract. - pub static FEEONTRANSFERTOKEN_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( - __BYTECODE, - ); - #[rustfmt::skip] - const __DEPLOYED_BYTECODE: &[u8] = &[ - 96, - 128, - 96, - 64, - 82, - 52, - 128, - 21, - 97, - 0, - 16, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 96, - 4, - 54, - 16, - 97, - 0, - 234, - 87, - 96, - 0, - 53, - 96, - 224, - 28, - 128, - 99, - 112, - 160, - 130, - 49, - 17, - 97, - 0, - 140, - 87, - 128, - 99, - 157, - 194, - 159, - 172, - 17, - 97, - 0, - 102, - 87, - 128, - 99, - 157, - 194, - 159, - 172, - 20, - 97, - 1, - 248, - 87, - 128, - 99, - 169, - 5, - 156, - 187, - 20, - 97, - 2, - 11, - 87, - 128, - 99, - 213, - 5, - 172, - 207, - 20, - 97, - 2, - 30, - 87, - 128, - 99, - 221, - 98, - 237, - 62, - 20, - 97, - 2, - 49, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 99, - 112, - 160, - 130, - 49, - 20, - 97, - 1, - 176, - 87, - 128, - 99, - 126, - 206, - 190, - 0, - 20, - 97, - 1, - 208, - 87, - 128, - 99, - 149, - 216, - 155, - 65, - 20, - 97, - 1, - 240, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 99, - 35, - 184, - 114, - 221, - 17, - 97, - 0, - 200, - 87, - 128, - 99, - 35, - 184, - 114, - 221, - 20, - 97, - 1, - 71, - 87, - 128, - 99, - 49, - 60, - 229, - 103, - 20, - 97, - 1, - 90, - 87, - 128, - 99, - 54, - 68, - 229, - 21, - 20, - 97, - 1, - 147, - 87, - 128, - 99, - 64, - 193, - 15, - 25, - 20, - 97, - 1, - 155, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 99, - 6, - 253, - 222, - 3, - 20, - 97, - 0, - 239, - 87, - 128, - 99, - 9, - 94, - 167, - 179, - 20, - 97, - 1, - 13, - 87, - 128, - 99, - 24, - 22, - 13, - 221, - 20, - 97, - 1, - 48, - 87, - 91, - 96, - 0, - 128, - 253, - 91, - 97, - 0, - 247, - 97, - 2, - 92, - 86, - 91, - 96, - 64, - 81, - 97, - 1, - 4, - 145, - 144, - 97, - 9, - 31, - 86, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 243, - 91, - 97, - 1, - 32, - 97, - 1, - 27, - 54, - 96, - 4, - 97, - 9, - 144, - 86, - 91, - 97, - 2, - 234, - 86, - 91, - 96, - 64, - 81, - 144, - 21, - 21, - 129, - 82, - 96, - 32, - 1, - 97, - 1, - 4, - 86, - 91, - 97, - 1, - 57, - 96, - 2, - 84, - 129, - 86, - 91, - 96, - 64, - 81, - 144, - 129, - 82, - 96, - 32, - 1, - 97, - 1, - 4, - 86, - 91, - 97, - 1, - 32, - 97, - 1, - 85, - 54, - 96, - 4, - 97, - 9, - 186, - 86, - 91, - 97, - 3, - 86, - 86, - 91, - 97, - 1, - 129, - 127, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 129, - 86, - 91, - 96, - 64, - 81, - 96, - 255, - 144, - 145, - 22, - 129, - 82, - 96, - 32, - 1, - 97, - 1, - 4, - 86, - 91, - 97, - 1, - 57, - 97, - 3, - 186, - 86, - 91, - 97, - 1, - 174, - 97, - 1, - 169, - 54, - 96, - 4, - 97, - 9, - 144, - 86, - 91, - 97, - 4, - 21, - 86, - 91, - 0, - 91, - 97, - 1, - 57, - 97, - 1, - 190, - 54, - 96, - 4, - 97, - 9, - 246, - 86, - 91, - 96, - 3, - 96, - 32, - 82, - 96, - 0, - 144, - 129, - 82, - 96, - 64, - 144, - 32, - 84, - 129, - 86, - 91, - 97, - 1, - 57, - 97, - 1, - 222, - 54, - 96, - 4, - 97, - 9, - 246, - 86, - 91, - 96, - 5, - 96, - 32, - 82, - 96, - 0, - 144, - 129, - 82, - 96, - 64, - 144, - 32, - 84, - 129, - 86, - 91, - 97, - 0, - 247, - 97, - 4, - 35, - 86, - 91, - 97, - 1, - 174, - 97, - 2, - 6, - 54, - 96, - 4, - 97, - 9, - 144, - 86, - 91, - 97, - 4, - 48, - 86, - 91, - 97, - 1, - 32, - 97, - 2, - 25, - 54, - 96, - 4, - 97, - 9, - 144, - 86, - 91, - 97, - 4, - 58, - 86, - 91, - 97, - 1, - 174, - 97, - 2, - 44, - 54, - 96, - 4, - 97, - 10, - 24, - 86, - 91, - 97, - 4, - 160, - 86, - 91, - 97, - 1, - 57, - 97, - 2, - 63, - 54, - 96, - 4, - 97, - 10, - 139, - 86, - 91, - 96, - 4, - 96, - 32, - 144, - 129, - 82, - 96, - 0, - 146, - 131, - 82, - 96, - 64, - 128, - 132, - 32, - 144, - 145, - 82, - 144, - 130, - 82, - 144, - 32, - 84, - 129, - 86, - 91, - 96, - 0, - 128, - 84, - 97, - 2, - 105, - 144, - 97, - 10, - 190, - 86, - 91, - 128, - 96, - 31, - 1, - 96, - 32, - 128, - 145, - 4, - 2, - 96, - 32, - 1, - 96, - 64, - 81, - 144, - 129, - 1, - 96, - 64, - 82, - 128, - 146, - 145, - 144, - 129, - 129, - 82, - 96, - 32, - 1, - 130, - 128, - 84, - 97, - 2, - 149, - 144, - 97, - 10, - 190, - 86, - 91, - 128, - 21, - 97, - 2, - 226, - 87, - 128, - 96, - 31, - 16, - 97, - 2, - 183, - 87, - 97, - 1, - 0, - 128, - 131, - 84, - 4, - 2, - 131, - 82, - 145, - 96, - 32, - 1, - 145, - 97, - 2, - 226, - 86, - 91, - 130, - 1, - 145, - 144, - 96, - 0, - 82, - 96, - 32, - 96, - 0, - 32, - 144, - 91, - 129, - 84, - 129, - 82, - 144, - 96, - 1, - 1, - 144, - 96, - 32, - 1, - 128, - 131, - 17, - 97, - 2, - 197, - 87, - 130, - 144, - 3, - 96, - 31, - 22, - 130, - 1, - 145, - 91, - 80, - 80, - 80, - 80, - 80, - 129, - 86, - 91, - 51, - 96, - 0, - 129, - 129, - 82, - 96, - 4, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 135, - 22, - 128, - 133, - 82, - 146, - 82, - 128, - 131, - 32, - 133, - 144, - 85, - 81, - 145, - 146, - 144, - 145, - 127, - 140, - 91, - 225, - 229, - 235, - 236, - 125, - 91, - 209, - 79, - 113, - 66, - 125, - 30, - 132, - 243, - 221, - 3, - 20, - 192, - 247, - 178, - 41, - 30, - 91, - 32, - 10, - 200, - 199, - 195, - 185, - 37, - 144, - 97, - 3, - 69, - 144, - 134, - 129, - 82, - 96, - 32, - 1, - 144, - 86, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 163, - 80, - 96, - 1, - 146, - 145, - 80, - 80, - 86, - 91, - 96, - 0, - 97, - 3, - 99, - 132, - 132, - 132, - 97, - 6, - 233, - 86, - 91, - 80, - 96, - 0, - 96, - 100, - 97, - 3, - 115, - 132, - 96, - 1, - 97, - 11, - 14, - 86, - 91, - 97, - 3, - 125, - 145, - 144, - 97, - 11, - 45, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 133, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 3, - 96, - 32, - 82, - 96, - 64, - 129, - 32, - 128, - 84, - 146, - 147, - 80, - 131, - 146, - 144, - 145, - 144, - 97, - 3, - 170, - 144, - 132, - 144, - 97, - 11, - 79, - 86, - 91, - 144, - 145, - 85, - 80, - 96, - 1, - 150, - 149, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 127, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 70, - 20, - 97, - 3, - 240, - 87, - 97, - 3, - 235, - 97, - 7, - 201, - 86, - 91, - 144, - 80, - 144, - 86, - 91, - 80, - 127, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 144, - 86, - 91, - 97, - 4, - 31, - 130, - 130, - 97, - 8, - 99, - 86, - 91, - 80, - 80, - 86, - 91, - 96, - 1, - 128, - 84, - 97, - 2, - 105, - 144, - 97, - 10, - 190, - 86, - 91, - 97, - 4, - 31, - 130, - 130, - 97, - 8, - 189, - 86, - 91, - 51, - 96, - 0, - 144, - 129, - 82, - 96, - 3, - 96, - 32, - 82, - 96, - 64, - 129, - 32, - 128, - 84, - 131, - 145, - 144, - 131, - 144, - 97, - 4, - 91, - 144, - 132, - 144, - 97, - 11, - 79, - 86, - 91, - 144, - 145, - 85, - 80, - 80, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 131, - 22, - 96, - 0, - 129, - 129, - 82, - 96, - 3, - 96, - 32, - 82, - 96, - 64, - 144, - 129, - 144, - 32, - 128, - 84, - 133, - 1, - 144, - 85, - 81, - 51, - 144, - 96, - 0, - 128, - 81, - 96, - 32, - 97, - 12, - 26, - 131, - 57, - 129, - 81, - 145, - 82, - 144, - 97, - 3, - 69, - 144, - 134, - 129, - 82, - 96, - 32, - 1, - 144, - 86, - 91, - 66, - 132, - 16, - 21, - 97, - 4, - 245, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 23, - 96, - 36, - 130, - 1, - 82, - 127, - 80, - 69, - 82, - 77, - 73, - 84, - 95, - 68, - 69, - 65, - 68, - 76, - 73, - 78, - 69, - 95, - 69, - 88, - 80, - 73, - 82, - 69, - 68, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 96, - 68, - 130, - 1, - 82, - 96, - 100, - 1, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 0, - 96, - 1, - 97, - 5, - 1, - 97, - 3, - 186, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 138, - 129, - 22, - 96, - 0, - 129, - 129, - 82, - 96, - 5, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 145, - 130, - 144, - 32, - 128, - 84, - 96, - 1, - 129, - 1, - 144, - 145, - 85, - 130, - 81, - 127, - 110, - 113, - 237, - 174, - 18, - 177, - 185, - 127, - 77, - 31, - 96, - 55, - 15, - 239, - 16, - 16, - 95, - 162, - 250, - 174, - 1, - 38, - 17, - 74, - 22, - 156, - 100, - 132, - 93, - 97, - 38, - 201, - 129, - 132, - 1, - 82, - 128, - 132, - 1, - 148, - 144, - 148, - 82, - 147, - 141, - 22, - 96, - 96, - 132, - 1, - 82, - 96, - 128, - 131, - 1, - 140, - 144, - 82, - 96, - 160, - 131, - 1, - 147, - 144, - 147, - 82, - 96, - 192, - 128, - 131, - 1, - 139, - 144, - 82, - 129, - 81, - 128, - 132, - 3, - 144, - 145, - 1, - 129, - 82, - 96, - 224, - 131, - 1, - 144, - 145, - 82, - 128, - 81, - 146, - 1, - 145, - 144, - 145, - 32, - 97, - 25, - 1, - 96, - 240, - 27, - 97, - 1, - 0, - 131, - 1, - 82, - 97, - 1, - 2, - 130, - 1, - 146, - 144, - 146, - 82, - 97, - 1, - 34, - 129, - 1, - 145, - 144, - 145, - 82, - 97, - 1, - 66, - 1, - 96, - 64, - 128, - 81, - 96, - 31, - 25, - 129, - 132, - 3, - 1, - 129, - 82, - 130, - 130, - 82, - 128, - 81, - 96, - 32, - 145, - 130, - 1, - 32, - 96, - 0, - 132, - 82, - 144, - 131, - 1, - 128, - 131, - 82, - 82, - 96, - 255, - 135, - 22, - 144, - 130, - 1, - 82, - 96, - 96, - 129, - 1, - 133, - 144, - 82, - 96, - 128, - 129, - 1, - 132, - 144, - 82, - 96, - 160, - 1, - 96, - 32, - 96, - 64, - 81, - 96, - 32, - 129, - 3, - 144, - 128, - 132, - 3, - 144, - 133, - 90, - 250, - 21, - 128, - 21, - 97, - 6, - 13, - 87, - 61, - 96, - 0, - 128, - 62, - 61, - 96, - 0, - 253, - 91, - 80, - 80, - 96, - 64, - 81, - 96, - 31, - 25, - 1, - 81, - 145, - 80, - 80, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 129, - 22, - 21, - 128, - 21, - 144, - 97, - 6, - 67, - 87, - 80, - 135, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 20, - 91, - 97, - 6, - 128, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 14, - 96, - 36, - 130, - 1, - 82, - 109, - 36, - 167, - 43, - 32, - 166, - 36, - 162, - 47, - 169, - 164, - 163, - 167, - 34, - 169, - 96, - 145, - 27, - 96, - 68, - 130, - 1, - 82, - 96, - 100, - 1, - 97, - 4, - 236, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 144, - 129, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 4, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 138, - 133, - 22, - 128, - 133, - 82, - 144, - 131, - 82, - 146, - 129, - 144, - 32, - 137, - 144, - 85, - 81, - 136, - 129, - 82, - 145, - 146, - 138, - 22, - 145, - 127, - 140, - 91, - 225, - 229, - 235, - 236, - 125, - 91, - 209, - 79, - 113, - 66, - 125, - 30, - 132, - 243, - 221, - 3, - 20, - 192, - 247, - 178, - 41, - 30, - 91, - 32, - 10, - 200, - 199, - 195, - 185, - 37, - 145, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 163, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 131, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 4, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 51, - 132, - 82, - 144, - 145, - 82, - 129, - 32, - 84, - 96, - 0, - 25, - 129, - 20, - 97, - 7, - 69, - 87, - 97, - 7, - 32, - 131, - 130, - 97, - 11, - 79, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 134, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 4, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 51, - 132, - 82, - 144, - 145, - 82, - 144, - 32, - 85, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 133, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 3, - 96, - 32, - 82, - 96, - 64, - 129, - 32, - 128, - 84, - 133, - 146, - 144, - 97, - 7, - 109, - 144, - 132, - 144, - 97, - 11, - 79, - 86, - 91, - 144, - 145, - 85, - 80, - 80, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 128, - 133, - 22, - 96, - 0, - 129, - 129, - 82, - 96, - 3, - 96, - 32, - 82, - 96, - 64, - 144, - 129, - 144, - 32, - 128, - 84, - 135, - 1, - 144, - 85, - 81, - 144, - 145, - 135, - 22, - 144, - 96, - 0, - 128, - 81, - 96, - 32, - 97, - 12, - 26, - 131, - 57, - 129, - 81, - 145, - 82, - 144, - 97, - 7, - 182, - 144, - 135, - 129, - 82, - 96, - 32, - 1, - 144, - 86, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 163, - 80, - 96, - 1, - 148, - 147, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 127, - 139, - 115, - 195, - 198, - 155, - 184, - 254, - 61, - 81, - 46, - 204, - 76, - 247, - 89, - 204, - 121, - 35, - 159, - 123, - 23, - 155, - 15, - 250, - 202, - 169, - 167, - 93, - 82, - 43, - 57, - 64, - 15, - 96, - 0, - 96, - 64, - 81, - 97, - 7, - 251, - 145, - 144, - 97, - 11, - 102, - 86, - 91, - 96, - 64, - 128, - 81, - 145, - 130, - 144, - 3, - 130, - 32, - 96, - 32, - 131, - 1, - 147, - 144, - 147, - 82, - 129, - 1, - 145, - 144, - 145, - 82, - 127, - 200, - 158, - 253, - 170, - 84, - 192, - 242, - 12, - 122, - 223, - 97, - 40, - 130, - 223, - 9, - 80, - 245, - 169, - 81, - 99, - 126, - 3, - 7, - 205, - 203, - 76, - 103, - 47, - 41, - 139, - 139, - 198, - 96, - 96, - 130, - 1, - 82, - 70, - 96, - 128, - 130, - 1, - 82, - 48, - 96, - 160, - 130, - 1, - 82, - 96, - 192, - 1, - 96, - 64, - 81, - 96, - 32, - 129, - 131, - 3, - 3, - 129, - 82, - 144, - 96, - 64, - 82, - 128, - 81, - 144, - 96, - 32, - 1, - 32, - 144, - 80, - 144, - 86, - 91, - 128, - 96, - 2, - 96, - 0, - 130, - 130, - 84, - 97, - 8, - 117, - 145, - 144, - 97, - 12, - 1, - 86, - 91, - 144, - 145, - 85, - 80, - 80, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 130, - 22, - 96, - 0, - 129, - 129, - 82, - 96, - 3, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 128, - 84, - 134, - 1, - 144, - 85, - 81, - 132, - 129, - 82, - 96, - 0, - 128, - 81, - 96, - 32, - 97, - 12, - 26, - 131, - 57, - 129, - 81, - 145, - 82, - 145, - 1, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 163, - 80, - 80, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 130, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 3, - 96, - 32, - 82, - 96, - 64, - 129, - 32, - 128, - 84, - 131, - 146, - 144, - 97, - 8, - 229, - 144, - 132, - 144, - 97, - 11, - 79, - 86, - 91, - 144, - 145, - 85, - 80, - 80, - 96, - 2, - 128, - 84, - 130, - 144, - 3, - 144, - 85, - 96, - 64, - 81, - 129, - 129, - 82, - 96, - 0, - 144, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 132, - 22, - 144, - 96, - 0, - 128, - 81, - 96, - 32, - 97, - 12, - 26, - 131, - 57, - 129, - 81, - 145, - 82, - 144, - 96, - 32, - 1, - 97, - 8, - 177, - 86, - 91, - 96, - 0, - 96, - 32, - 128, - 131, - 82, - 131, - 81, - 128, - 130, - 133, - 1, - 82, - 96, - 0, - 91, - 129, - 129, - 16, - 21, - 97, - 9, - 76, - 87, - 133, - 129, - 1, - 131, - 1, - 81, - 133, - 130, - 1, - 96, - 64, - 1, - 82, - 130, - 1, - 97, - 9, - 48, - 86, - 91, - 129, - 129, - 17, - 21, - 97, - 9, - 94, - 87, - 96, - 0, - 96, - 64, - 131, - 135, - 1, - 1, - 82, - 91, - 80, - 96, - 31, - 1, - 96, - 31, - 25, - 22, - 146, - 144, - 146, - 1, - 96, - 64, - 1, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 128, - 53, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 129, - 22, - 129, - 20, - 97, - 9, - 139, - 87, - 96, - 0, - 128, - 253, - 91, - 145, - 144, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 64, - 131, - 133, - 3, - 18, - 21, - 97, - 9, - 163, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 9, - 172, - 131, - 97, - 9, - 116, - 86, - 91, - 148, - 96, - 32, - 147, - 144, - 147, - 1, - 53, - 147, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 96, - 96, - 132, - 134, - 3, - 18, - 21, - 97, - 9, - 207, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 9, - 216, - 132, - 97, - 9, - 116, - 86, - 91, - 146, - 80, - 97, - 9, - 230, - 96, - 32, - 133, - 1, - 97, - 9, - 116, - 86, - 91, - 145, - 80, - 96, - 64, - 132, - 1, - 53, - 144, - 80, - 146, - 80, - 146, - 80, - 146, - 86, - 91, - 96, - 0, - 96, - 32, - 130, - 132, - 3, - 18, - 21, - 97, - 10, - 8, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 10, - 17, - 130, - 97, - 9, - 116, - 86, - 91, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 128, - 96, - 0, - 128, - 96, - 0, - 96, - 224, - 136, - 138, - 3, - 18, - 21, - 97, - 10, - 51, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 10, - 60, - 136, - 97, - 9, - 116, - 86, - 91, - 150, - 80, - 97, - 10, - 74, - 96, - 32, - 137, - 1, - 97, - 9, - 116, - 86, - 91, - 149, - 80, - 96, - 64, - 136, - 1, - 53, - 148, - 80, - 96, - 96, - 136, - 1, - 53, - 147, - 80, - 96, - 128, - 136, - 1, - 53, - 96, - 255, - 129, - 22, - 129, - 20, - 97, - 10, - 110, - 87, - 96, - 0, - 128, - 253, - 91, - 150, - 153, - 149, - 152, - 80, - 147, - 150, - 146, - 149, - 148, - 96, - 160, - 132, - 1, - 53, - 148, - 80, - 96, - 192, - 144, - 147, - 1, - 53, - 146, - 145, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 64, - 131, - 133, - 3, - 18, - 21, - 97, - 10, - 158, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 10, - 167, - 131, - 97, - 9, - 116, - 86, - 91, - 145, - 80, - 97, - 10, - 181, - 96, - 32, - 132, - 1, - 97, - 9, - 116, - 86, - 91, - 144, - 80, - 146, - 80, - 146, - 144, - 80, - 86, - 91, - 96, - 1, - 129, - 129, - 28, - 144, - 130, - 22, - 128, - 97, - 10, - 210, - 87, - 96, - 127, - 130, - 22, - 145, - 80, - 91, - 96, - 32, - 130, - 16, - 129, - 3, - 97, - 10, - 242, - 87, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 34, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 80, - 145, - 144, - 80, - 86, - 91, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 17, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 96, - 0, - 129, - 96, - 0, - 25, - 4, - 131, - 17, - 130, - 21, - 21, - 22, - 21, - 97, - 11, - 40, - 87, - 97, - 11, - 40, - 97, - 10, - 248, - 86, - 91, - 80, - 2, - 144, - 86, - 91, - 96, - 0, - 130, - 97, - 11, - 74, - 87, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 18, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 80, - 4, - 144, - 86, - 91, - 96, - 0, - 130, - 130, - 16, - 21, - 97, - 11, - 97, - 87, - 97, - 11, - 97, - 97, - 10, - 248, - 86, - 91, - 80, - 3, - 144, - 86, - 91, - 96, - 0, - 128, - 131, - 84, - 129, - 96, - 1, - 130, - 129, - 28, - 145, - 80, - 128, - 131, - 22, - 128, - 97, - 11, - 130, - 87, - 96, - 127, - 131, - 22, - 146, - 80, - 91, - 96, - 32, - 128, - 132, - 16, - 130, - 3, - 97, - 11, - 161, - 87, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 134, - 82, - 96, - 34, - 96, - 4, - 82, - 96, - 36, - 134, - 253, - 91, - 129, - 128, - 21, - 97, - 11, - 181, - 87, - 96, - 1, - 129, - 20, - 97, - 11, - 198, - 87, - 97, - 11, - 243, - 86, - 91, - 96, - 255, - 25, - 134, - 22, - 137, - 82, - 132, - 137, - 1, - 150, - 80, - 97, - 11, - 243, - 86, - 91, - 96, - 0, - 138, - 129, - 82, - 96, - 32, - 144, - 32, - 96, - 0, - 91, - 134, - 129, - 16, - 21, - 97, - 11, - 235, - 87, - 129, - 84, - 139, - 130, - 1, - 82, - 144, - 133, - 1, - 144, - 131, - 1, - 97, - 11, - 210, - 86, - 91, - 80, - 80, - 132, - 137, - 1, - 150, - 80, - 91, - 80, - 148, - 152, - 151, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 130, - 25, - 130, - 17, - 21, - 97, - 12, - 20, - 87, - 97, - 12, - 20, - 97, - 10, - 248, - 86, - 91, - 80, - 1, - 144, - 86, - 254, - 221, - 242, - 82, - 173, - 27, - 226, - 200, - 155, - 105, - 194, - 176, - 104, - 252, - 55, - 141, - 170, - 149, - 43, - 167, - 241, - 99, - 196, - 161, - 22, - 40, - 245, - 90, - 77, - 245, - 35, - 179, - 239, - 162, - 100, - 105, - 112, - 102, - 115, - 88, - 34, - 18, - 32, - 164, - 58, - 27, - 68, - 152, - 101, - 234, - 102, - 167, - 171, - 28, - 247, - 96, - 214, - 58, - 195, - 219, - 250, - 63, - 173, - 150, - 252, - 3, - 204, - 97, - 234, - 63, - 226, - 188, - 181, - 93, - 150, - 100, - 115, - 111, - 108, - 99, - 67, - 0, - 8, - 13, - 0, - 51, - ]; - ///The deployed bytecode of the contract. - pub static FEEONTRANSFERTOKEN_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( - __DEPLOYED_BYTECODE, - ); - pub struct FeeOnTransferToken(::ethers::contract::Contract); - impl ::core::clone::Clone for FeeOnTransferToken { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for FeeOnTransferToken { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for FeeOnTransferToken { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for FeeOnTransferToken { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(stringify!(FeeOnTransferToken)).field(&self.address()).finish() - } - } - impl FeeOnTransferToken { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self( - ::ethers::contract::Contract::new( - address.into(), - FEEONTRANSFERTOKEN_ABI.clone(), - client, - ), - ) - } - /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. - /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction - /// - /// Notes: - /// - If there are no constructor arguments, you should pass `()` as the argument. - /// - The default poll duration is 7 seconds. - /// - The default number of confirmations is 1 block. - /// - /// - /// # Example - /// - /// Generate contract bindings with `abigen!` and deploy a new contract instance. - /// - /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. - /// - /// ```ignore - /// # async fn deploy(client: ::std::sync::Arc) { - /// abigen!(Greeter, "../greeter.json"); - /// - /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); - /// let msg = greeter_contract.greet().call().await.unwrap(); - /// # } - /// ``` - pub fn deploy( - client: ::std::sync::Arc, - constructor_args: T, - ) -> ::core::result::Result< - ::ethers::contract::builders::ContractDeployer, - ::ethers::contract::ContractError, - > { - let factory = ::ethers::contract::ContractFactory::new( - FEEONTRANSFERTOKEN_ABI.clone(), - FEEONTRANSFERTOKEN_BYTECODE.clone().into(), - client, - ); - let deployer = factory.deploy(constructor_args)?; - let deployer = ::ethers::contract::ContractDeployer::new(deployer); - Ok(deployer) - } - ///Calls the contract's `DOMAIN_SEPARATOR` (0x3644e515) function - pub fn domain_separator( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([54, 68, 229, 21], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `allowance` (0xdd62ed3e) function - pub fn allowance( - &self, - p0: ::ethers::core::types::Address, - p1: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([221, 98, 237, 62], (p0, p1)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `approve` (0x095ea7b3) function - pub fn approve( - &self, - spender: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([9, 94, 167, 179], (spender, amount)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `balanceOf` (0x70a08231) function - pub fn balance_of( - &self, - p0: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([112, 160, 130, 49], p0) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `burn` (0x9dc29fac) function - pub fn burn( - &self, - from: ::ethers::core::types::Address, - value: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([157, 194, 159, 172], (from, value)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `decimals` (0x313ce567) function - pub fn decimals(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([49, 60, 229, 103], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `mint` (0x40c10f19) function - pub fn mint( - &self, - to: ::ethers::core::types::Address, - value: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([64, 193, 15, 25], (to, value)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `name` (0x06fdde03) function - pub fn name( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([6, 253, 222, 3], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `nonces` (0x7ecebe00) function - pub fn nonces( - &self, - p0: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([126, 206, 190, 0], p0) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `permit` (0xd505accf) function - pub fn permit( - &self, - owner: ::ethers::core::types::Address, - spender: ::ethers::core::types::Address, - value: ::ethers::core::types::U256, - deadline: ::ethers::core::types::U256, - v: u8, - r: [u8; 32], - s: [u8; 32], - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash( - [213, 5, 172, 207], - (owner, spender, value, deadline, v, r, s), - ) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `symbol` (0x95d89b41) function - pub fn symbol( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([149, 216, 155, 65], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `totalSupply` (0x18160ddd) function - pub fn total_supply( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([24, 22, 13, 221], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `transfer` (0xa9059cbb) function - pub fn transfer( - &self, - to: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([169, 5, 156, 187], (to, amount)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `transferFrom` (0x23b872dd) function - pub fn transfer_from( - &self, - from: ::ethers::core::types::Address, - to: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([35, 184, 114, 221], (from, to, amount)) - .expect("method not found (this should never happen)") - } - ///Gets the contract's `Approval` event - pub fn approval_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - ApprovalFilter, - > { - self.0.event() - } - ///Gets the contract's `Transfer` event - pub fn transfer_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - TransferFilter, - > { - self.0.event() - } - /// Returns an `Event` builder for all the events of this contract. - pub fn events( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - FeeOnTransferTokenEvents, - > { - self.0.event_with_filter(::core::default::Default::default()) - } - } - impl From<::ethers::contract::Contract> - for FeeOnTransferToken { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "Approval", abi = "Approval(address,address,uint256)")] - pub struct ApprovalFilter { - #[ethevent(indexed)] - pub owner: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub spender: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "Transfer", abi = "Transfer(address,address,uint256)")] - pub struct TransferFilter { - #[ethevent(indexed)] - pub from: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub to: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - ///Container type for all of the contract's events - #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] - pub enum FeeOnTransferTokenEvents { - ApprovalFilter(ApprovalFilter), - TransferFilter(TransferFilter), - } - impl ::ethers::contract::EthLogDecode for FeeOnTransferTokenEvents { - fn decode_log( - log: &::ethers::core::abi::RawLog, - ) -> ::core::result::Result { - if let Ok(decoded) = ApprovalFilter::decode_log(log) { - return Ok(FeeOnTransferTokenEvents::ApprovalFilter(decoded)); - } - if let Ok(decoded) = TransferFilter::decode_log(log) { - return Ok(FeeOnTransferTokenEvents::TransferFilter(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData) - } - } - impl ::core::fmt::Display for FeeOnTransferTokenEvents { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::ApprovalFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::TransferFilter(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for FeeOnTransferTokenEvents { - fn from(value: ApprovalFilter) -> Self { - Self::ApprovalFilter(value) - } - } - impl ::core::convert::From for FeeOnTransferTokenEvents { - fn from(value: TransferFilter) -> Self { - Self::TransferFilter(value) - } - } - ///Container type for all input parameters for the `DOMAIN_SEPARATOR` function with signature `DOMAIN_SEPARATOR()` and selector `0x3644e515` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "DOMAIN_SEPARATOR", abi = "DOMAIN_SEPARATOR()")] - pub struct DomainSeparatorCall; - ///Container type for all input parameters for the `allowance` function with signature `allowance(address,address)` and selector `0xdd62ed3e` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "allowance", abi = "allowance(address,address)")] - pub struct AllowanceCall( - pub ::ethers::core::types::Address, - pub ::ethers::core::types::Address, - ); - ///Container type for all input parameters for the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "approve", abi = "approve(address,uint256)")] - pub struct ApproveCall { - pub spender: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "balanceOf", abi = "balanceOf(address)")] - pub struct BalanceOfCall(pub ::ethers::core::types::Address); - ///Container type for all input parameters for the `burn` function with signature `burn(address,uint256)` and selector `0x9dc29fac` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "burn", abi = "burn(address,uint256)")] - pub struct BurnCall { - pub from: ::ethers::core::types::Address, - pub value: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `decimals` function with signature `decimals()` and selector `0x313ce567` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "decimals", abi = "decimals()")] - pub struct DecimalsCall; - ///Container type for all input parameters for the `mint` function with signature `mint(address,uint256)` and selector `0x40c10f19` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "mint", abi = "mint(address,uint256)")] - pub struct MintCall { - pub to: ::ethers::core::types::Address, - pub value: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `name` function with signature `name()` and selector `0x06fdde03` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "name", abi = "name()")] - pub struct NameCall; - ///Container type for all input parameters for the `nonces` function with signature `nonces(address)` and selector `0x7ecebe00` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "nonces", abi = "nonces(address)")] - pub struct NoncesCall(pub ::ethers::core::types::Address); - ///Container type for all input parameters for the `permit` function with signature `permit(address,address,uint256,uint256,uint8,bytes32,bytes32)` and selector `0xd505accf` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall( - name = "permit", - abi = "permit(address,address,uint256,uint256,uint8,bytes32,bytes32)" - )] - pub struct PermitCall { - pub owner: ::ethers::core::types::Address, - pub spender: ::ethers::core::types::Address, - pub value: ::ethers::core::types::U256, - pub deadline: ::ethers::core::types::U256, - pub v: u8, - pub r: [u8; 32], - pub s: [u8; 32], - } - ///Container type for all input parameters for the `symbol` function with signature `symbol()` and selector `0x95d89b41` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "symbol", abi = "symbol()")] - pub struct SymbolCall; - ///Container type for all input parameters for the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "totalSupply", abi = "totalSupply()")] - pub struct TotalSupplyCall; - ///Container type for all input parameters for the `transfer` function with signature `transfer(address,uint256)` and selector `0xa9059cbb` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "transfer", abi = "transfer(address,uint256)")] - pub struct TransferCall { - pub to: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "transferFrom", abi = "transferFrom(address,address,uint256)")] - pub struct TransferFromCall { - pub from: ::ethers::core::types::Address, - pub to: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - ///Container type for all of the contract's call - #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] - pub enum FeeOnTransferTokenCalls { - DomainSeparator(DomainSeparatorCall), - Allowance(AllowanceCall), - Approve(ApproveCall), - BalanceOf(BalanceOfCall), - Burn(BurnCall), - Decimals(DecimalsCall), - Mint(MintCall), - Name(NameCall), - Nonces(NoncesCall), - Permit(PermitCall), - Symbol(SymbolCall), - TotalSupply(TotalSupplyCall), - Transfer(TransferCall), - TransferFrom(TransferFromCall), - } - impl ::ethers::core::abi::AbiDecode for FeeOnTransferTokenCalls { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::DomainSeparator(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Allowance(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Approve(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::BalanceOf(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Burn(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Decimals(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Mint(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Name(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Nonces(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Permit(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Symbol(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::TotalSupply(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Transfer(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::TransferFrom(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for FeeOnTransferTokenCalls { - fn encode(self) -> Vec { - match self { - Self::DomainSeparator(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Allowance(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Approve(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::BalanceOf(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Burn(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Decimals(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Mint(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Name(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Nonces(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Permit(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Symbol(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::TotalSupply(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Transfer(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::TransferFrom(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - } - } - } - impl ::core::fmt::Display for FeeOnTransferTokenCalls { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::DomainSeparator(element) => ::core::fmt::Display::fmt(element, f), - Self::Allowance(element) => ::core::fmt::Display::fmt(element, f), - Self::Approve(element) => ::core::fmt::Display::fmt(element, f), - Self::BalanceOf(element) => ::core::fmt::Display::fmt(element, f), - Self::Burn(element) => ::core::fmt::Display::fmt(element, f), - Self::Decimals(element) => ::core::fmt::Display::fmt(element, f), - Self::Mint(element) => ::core::fmt::Display::fmt(element, f), - Self::Name(element) => ::core::fmt::Display::fmt(element, f), - Self::Nonces(element) => ::core::fmt::Display::fmt(element, f), - Self::Permit(element) => ::core::fmt::Display::fmt(element, f), - Self::Symbol(element) => ::core::fmt::Display::fmt(element, f), - Self::TotalSupply(element) => ::core::fmt::Display::fmt(element, f), - Self::Transfer(element) => ::core::fmt::Display::fmt(element, f), - Self::TransferFrom(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for FeeOnTransferTokenCalls { - fn from(value: DomainSeparatorCall) -> Self { - Self::DomainSeparator(value) - } - } - impl ::core::convert::From for FeeOnTransferTokenCalls { - fn from(value: AllowanceCall) -> Self { - Self::Allowance(value) - } - } - impl ::core::convert::From for FeeOnTransferTokenCalls { - fn from(value: ApproveCall) -> Self { - Self::Approve(value) - } - } - impl ::core::convert::From for FeeOnTransferTokenCalls { - fn from(value: BalanceOfCall) -> Self { - Self::BalanceOf(value) - } - } - impl ::core::convert::From for FeeOnTransferTokenCalls { - fn from(value: BurnCall) -> Self { - Self::Burn(value) - } - } - impl ::core::convert::From for FeeOnTransferTokenCalls { - fn from(value: DecimalsCall) -> Self { - Self::Decimals(value) - } - } - impl ::core::convert::From for FeeOnTransferTokenCalls { - fn from(value: MintCall) -> Self { - Self::Mint(value) - } - } - impl ::core::convert::From for FeeOnTransferTokenCalls { - fn from(value: NameCall) -> Self { - Self::Name(value) - } - } - impl ::core::convert::From for FeeOnTransferTokenCalls { - fn from(value: NoncesCall) -> Self { - Self::Nonces(value) - } - } - impl ::core::convert::From for FeeOnTransferTokenCalls { - fn from(value: PermitCall) -> Self { - Self::Permit(value) - } - } - impl ::core::convert::From for FeeOnTransferTokenCalls { - fn from(value: SymbolCall) -> Self { - Self::Symbol(value) - } - } - impl ::core::convert::From for FeeOnTransferTokenCalls { - fn from(value: TotalSupplyCall) -> Self { - Self::TotalSupply(value) - } - } - impl ::core::convert::From for FeeOnTransferTokenCalls { - fn from(value: TransferCall) -> Self { - Self::Transfer(value) - } - } - impl ::core::convert::From for FeeOnTransferTokenCalls { - fn from(value: TransferFromCall) -> Self { - Self::TransferFrom(value) - } - } - ///Container type for all return fields from the `DOMAIN_SEPARATOR` function with signature `DOMAIN_SEPARATOR()` and selector `0x3644e515` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct DomainSeparatorReturn(pub [u8; 32]); - ///Container type for all return fields from the `allowance` function with signature `allowance(address,address)` and selector `0xdd62ed3e` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct AllowanceReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct ApproveReturn(pub bool); - ///Container type for all return fields from the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct BalanceOfReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `decimals` function with signature `decimals()` and selector `0x313ce567` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct DecimalsReturn(pub u8); - ///Container type for all return fields from the `name` function with signature `name()` and selector `0x06fdde03` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct NameReturn(pub ::std::string::String); - ///Container type for all return fields from the `nonces` function with signature `nonces(address)` and selector `0x7ecebe00` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct NoncesReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `symbol` function with signature `symbol()` and selector `0x95d89b41` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct SymbolReturn(pub ::std::string::String); - ///Container type for all return fields from the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct TotalSupplyReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `transfer` function with signature `transfer(address,uint256)` and selector `0xa9059cbb` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct TransferReturn(pub bool); - ///Container type for all return fields from the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct TransferFromReturn(pub bool); -} diff --git a/crates/bindings/src/fixed_point_math_lib.rs b/crates/bindings/src/fixed_point_math_lib.rs deleted file mode 100644 index 0bff2f29..00000000 --- a/crates/bindings/src/fixed_point_math_lib.rs +++ /dev/null @@ -1,346 +0,0 @@ -pub use fixed_point_math_lib::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types, -)] -pub mod fixed_point_math_lib { - #[rustfmt::skip] - const __ABI: &str = "[]"; - ///The parsed JSON ABI of the contract. - pub static FIXEDPOINTMATHLIB_ABI: ::ethers::contract::Lazy< - ::ethers::core::abi::Abi, - > = ::ethers::contract::Lazy::new(|| { - ::ethers::core::utils::__serde_json::from_str(__ABI) - .expect("ABI is always valid") - }); - #[rustfmt::skip] - const __BYTECODE: &[u8] = &[ - 96, - 86, - 96, - 55, - 96, - 11, - 130, - 130, - 130, - 57, - 128, - 81, - 96, - 0, - 26, - 96, - 115, - 20, - 96, - 42, - 87, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 0, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 48, - 96, - 0, - 82, - 96, - 115, - 129, - 83, - 130, - 129, - 243, - 254, - 115, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 48, - 20, - 96, - 128, - 96, - 64, - 82, - 96, - 0, - 128, - 253, - 254, - 162, - 100, - 105, - 112, - 102, - 115, - 88, - 34, - 18, - 32, - 179, - 57, - 13, - 16, - 88, - 48, - 27, - 105, - 123, - 27, - 186, - 51, - 30, - 187, - 174, - 68, - 233, - 146, - 251, - 61, - 250, - 111, - 203, - 105, - 140, - 23, - 0, - 140, - 141, - 135, - 222, - 94, - 100, - 115, - 111, - 108, - 99, - 67, - 0, - 8, - 13, - 0, - 51, - ]; - ///The bytecode of the contract. - pub static FIXEDPOINTMATHLIB_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( - __BYTECODE, - ); - #[rustfmt::skip] - const __DEPLOYED_BYTECODE: &[u8] = &[ - 115, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 48, - 20, - 96, - 128, - 96, - 64, - 82, - 96, - 0, - 128, - 253, - 254, - 162, - 100, - 105, - 112, - 102, - 115, - 88, - 34, - 18, - 32, - 179, - 57, - 13, - 16, - 88, - 48, - 27, - 105, - 123, - 27, - 186, - 51, - 30, - 187, - 174, - 68, - 233, - 146, - 251, - 61, - 250, - 111, - 203, - 105, - 140, - 23, - 0, - 140, - 141, - 135, - 222, - 94, - 100, - 115, - 111, - 108, - 99, - 67, - 0, - 8, - 13, - 0, - 51, - ]; - ///The deployed bytecode of the contract. - pub static FIXEDPOINTMATHLIB_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( - __DEPLOYED_BYTECODE, - ); - pub struct FixedPointMathLib(::ethers::contract::Contract); - impl ::core::clone::Clone for FixedPointMathLib { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for FixedPointMathLib { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for FixedPointMathLib { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for FixedPointMathLib { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(stringify!(FixedPointMathLib)).field(&self.address()).finish() - } - } - impl FixedPointMathLib { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self( - ::ethers::contract::Contract::new( - address.into(), - FIXEDPOINTMATHLIB_ABI.clone(), - client, - ), - ) - } - /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. - /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction - /// - /// Notes: - /// - If there are no constructor arguments, you should pass `()` as the argument. - /// - The default poll duration is 7 seconds. - /// - The default number of confirmations is 1 block. - /// - /// - /// # Example - /// - /// Generate contract bindings with `abigen!` and deploy a new contract instance. - /// - /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. - /// - /// ```ignore - /// # async fn deploy(client: ::std::sync::Arc) { - /// abigen!(Greeter, "../greeter.json"); - /// - /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); - /// let msg = greeter_contract.greet().call().await.unwrap(); - /// # } - /// ``` - pub fn deploy( - client: ::std::sync::Arc, - constructor_args: T, - ) -> ::core::result::Result< - ::ethers::contract::builders::ContractDeployer, - ::ethers::contract::ContractError, - > { - let factory = ::ethers::contract::ContractFactory::new( - FIXEDPOINTMATHLIB_ABI.clone(), - FIXEDPOINTMATHLIB_BYTECODE.clone().into(), - client, - ); - let deployer = factory.deploy(constructor_args)?; - let deployer = ::ethers::contract::ContractDeployer::new(deployer); - Ok(deployer) - } - } - impl From<::ethers::contract::Contract> - for FixedPointMathLib { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } -} diff --git a/crates/bindings/src/fvm_lib.rs b/crates/bindings/src/fvm_lib.rs deleted file mode 100644 index cc22bbf5..00000000 --- a/crates/bindings/src/fvm_lib.rs +++ /dev/null @@ -1,62 +0,0 @@ -pub use fvm_lib::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types, -)] -pub mod fvm_lib { - #[rustfmt::skip] - const __ABI: &str = "[]"; - ///The parsed JSON ABI of the contract. - pub static FVMLIB_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| - ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); - pub struct FVMLib(::ethers::contract::Contract); - impl ::core::clone::Clone for FVMLib { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for FVMLib { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for FVMLib { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for FVMLib { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(stringify!(FVMLib)).field(&self.address()).finish() - } - } - impl FVMLib { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self( - ::ethers::contract::Contract::new( - address.into(), - FVMLIB_ABI.clone(), - client, - ), - ) - } - } - impl From<::ethers::contract::Contract> - for FVMLib { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } -} diff --git a/crates/bindings/src/gaussian.rs b/crates/bindings/src/gaussian.rs deleted file mode 100644 index b3ba04a5..00000000 --- a/crates/bindings/src/gaussian.rs +++ /dev/null @@ -1,479 +0,0 @@ -pub use gaussian::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types, -)] -pub mod gaussian { - #[rustfmt::skip] - const __ABI: &str = "[{\"inputs\":[],\"type\":\"error\",\"name\":\"Infinity\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"NegativeInfinity\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"OutOfBounds\",\"outputs\":[]}]"; - ///The parsed JSON ABI of the contract. - pub static GAUSSIAN_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| - ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); - #[rustfmt::skip] - const __BYTECODE: &[u8] = &[ - 96, - 86, - 96, - 55, - 96, - 11, - 130, - 130, - 130, - 57, - 128, - 81, - 96, - 0, - 26, - 96, - 115, - 20, - 96, - 42, - 87, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 0, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 48, - 96, - 0, - 82, - 96, - 115, - 129, - 83, - 130, - 129, - 243, - 254, - 115, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 48, - 20, - 96, - 128, - 96, - 64, - 82, - 96, - 0, - 128, - 253, - 254, - 162, - 100, - 105, - 112, - 102, - 115, - 88, - 34, - 18, - 32, - 85, - 151, - 143, - 125, - 73, - 175, - 216, - 84, - 232, - 75, - 6, - 199, - 76, - 165, - 165, - 201, - 152, - 128, - 191, - 75, - 105, - 203, - 211, - 129, - 58, - 142, - 121, - 163, - 95, - 231, - 155, - 124, - 100, - 115, - 111, - 108, - 99, - 67, - 0, - 8, - 13, - 0, - 51, - ]; - ///The bytecode of the contract. - pub static GAUSSIAN_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( - __BYTECODE, - ); - #[rustfmt::skip] - const __DEPLOYED_BYTECODE: &[u8] = &[ - 115, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 48, - 20, - 96, - 128, - 96, - 64, - 82, - 96, - 0, - 128, - 253, - 254, - 162, - 100, - 105, - 112, - 102, - 115, - 88, - 34, - 18, - 32, - 85, - 151, - 143, - 125, - 73, - 175, - 216, - 84, - 232, - 75, - 6, - 199, - 76, - 165, - 165, - 201, - 152, - 128, - 191, - 75, - 105, - 203, - 211, - 129, - 58, - 142, - 121, - 163, - 95, - 231, - 155, - 124, - 100, - 115, - 111, - 108, - 99, - 67, - 0, - 8, - 13, - 0, - 51, - ]; - ///The deployed bytecode of the contract. - pub static GAUSSIAN_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( - __DEPLOYED_BYTECODE, - ); - pub struct Gaussian(::ethers::contract::Contract); - impl ::core::clone::Clone for Gaussian { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for Gaussian { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for Gaussian { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for Gaussian { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(stringify!(Gaussian)).field(&self.address()).finish() - } - } - impl Gaussian { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self( - ::ethers::contract::Contract::new( - address.into(), - GAUSSIAN_ABI.clone(), - client, - ), - ) - } - /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. - /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction - /// - /// Notes: - /// - If there are no constructor arguments, you should pass `()` as the argument. - /// - The default poll duration is 7 seconds. - /// - The default number of confirmations is 1 block. - /// - /// - /// # Example - /// - /// Generate contract bindings with `abigen!` and deploy a new contract instance. - /// - /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. - /// - /// ```ignore - /// # async fn deploy(client: ::std::sync::Arc) { - /// abigen!(Greeter, "../greeter.json"); - /// - /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); - /// let msg = greeter_contract.greet().call().await.unwrap(); - /// # } - /// ``` - pub fn deploy( - client: ::std::sync::Arc, - constructor_args: T, - ) -> ::core::result::Result< - ::ethers::contract::builders::ContractDeployer, - ::ethers::contract::ContractError, - > { - let factory = ::ethers::contract::ContractFactory::new( - GAUSSIAN_ABI.clone(), - GAUSSIAN_BYTECODE.clone().into(), - client, - ); - let deployer = factory.deploy(constructor_args)?; - let deployer = ::ethers::contract::ContractDeployer::new(deployer); - Ok(deployer) - } - } - impl From<::ethers::contract::Contract> - for Gaussian { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - ///Custom Error type `Infinity` with signature `Infinity()` and selector `0x07a02127` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "Infinity", abi = "Infinity()")] - pub struct Infinity; - ///Custom Error type `NegativeInfinity` with signature `NegativeInfinity()` and selector `0x8bb56614` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "NegativeInfinity", abi = "NegativeInfinity()")] - pub struct NegativeInfinity; - ///Custom Error type `OutOfBounds` with signature `OutOfBounds()` and selector `0xb4120f14` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "OutOfBounds", abi = "OutOfBounds()")] - pub struct OutOfBounds; - ///Container type for all of the contract's custom errors - #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] - pub enum GaussianErrors { - Infinity(Infinity), - NegativeInfinity(NegativeInfinity), - OutOfBounds(OutOfBounds), - /// The standard solidity revert string, with selector - /// Error(string) -- 0x08c379a0 - RevertString(::std::string::String), - } - impl ::ethers::core::abi::AbiDecode for GaussianErrors { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) - = <::std::string::String as ::ethers::core::abi::AbiDecode>::decode( - data, - ) { - return Ok(Self::RevertString(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Infinity(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::NegativeInfinity(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::OutOfBounds(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for GaussianErrors { - fn encode(self) -> ::std::vec::Vec { - match self { - Self::Infinity(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::NegativeInfinity(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::OutOfBounds(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::RevertString(s) => ::ethers::core::abi::AbiEncode::encode(s), - } - } - } - impl ::ethers::contract::ContractRevert for GaussianErrors { - fn valid_selector(selector: [u8; 4]) -> bool { - match selector { - [0x08, 0xc3, 0x79, 0xa0] => true, - _ if selector - == ::selector() => true, - _ if selector - == ::selector() => { - true - } - _ if selector - == ::selector() => true, - _ => false, - } - } - } - impl ::core::fmt::Display for GaussianErrors { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::Infinity(element) => ::core::fmt::Display::fmt(element, f), - Self::NegativeInfinity(element) => ::core::fmt::Display::fmt(element, f), - Self::OutOfBounds(element) => ::core::fmt::Display::fmt(element, f), - Self::RevertString(s) => ::core::fmt::Display::fmt(s, f), - } - } - } - impl ::core::convert::From<::std::string::String> for GaussianErrors { - fn from(value: String) -> Self { - Self::RevertString(value) - } - } - impl ::core::convert::From for GaussianErrors { - fn from(value: Infinity) -> Self { - Self::Infinity(value) - } - } - impl ::core::convert::From for GaussianErrors { - fn from(value: NegativeInfinity) -> Self { - Self::NegativeInfinity(value) - } - } - impl ::core::convert::From for GaussianErrors { - fn from(value: OutOfBounds) -> Self { - Self::OutOfBounds(value) - } - } -} diff --git a/crates/bindings/src/i_portfolio.rs b/crates/bindings/src/i_portfolio.rs deleted file mode 100644 index 55c89dc6..00000000 --- a/crates/bindings/src/i_portfolio.rs +++ /dev/null @@ -1,1877 +0,0 @@ -pub use i_portfolio::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types, -)] -pub mod i_portfolio { - pub use super::super::shared_types::*; - #[rustfmt::skip] - const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaLiquidity\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Allocate\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint16\",\"name\":\"priorityFee\",\"type\":\"uint16\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint16\",\"name\":\"fee\",\"type\":\"uint16\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint16\",\"name\":\"jit\",\"type\":\"uint16\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"ChangeParameters\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"feeAssetDec\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"feeQuoteDec\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true}],\"type\":\"event\",\"name\":\"Collect\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"pairId\",\"type\":\"uint24\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint8\",\"name\":\"decimalsAsset\",\"type\":\"uint8\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint8\",\"name\":\"decimalsQuote\",\"type\":\"uint8\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"CreatePair\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"bool\",\"name\":\"isMutable\",\"type\":\"bool\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"CreatePool\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaLiquidity\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Deallocate\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"DecreaseReserveBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"DecreaseUserBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Deposit\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"IncreaseReserveBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"IncreaseUserBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"sellAsset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"input\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"tokenOut\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"output\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"feeAmountDec\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"int256\",\"name\":\"invariantWad\",\"type\":\"int256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Swap\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"prevFee\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"nextFee\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"UpdateProtocolFee\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\",\"name\":\"VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"WETH\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"priorityFee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"fee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"jit\",\"type\":\"uint16\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"changeParameters\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"deposit\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"draw\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"fund\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"bool\",\"name\":\"sellAsset\",\"type\":\"bool\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getAmountOut\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"int128\",\"name\":\"deltaLiquidity\",\"type\":\"int128\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getLiquidityDeltas\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"deltaAsset\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"deltaQuote\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getMaxLiquidity\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"deltaLiquidity\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getNetBalance\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPairId\",\"outputs\":[{\"internalType\":\"uint24\",\"name\":\"pairId\",\"type\":\"uint24\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPairNonce\",\"outputs\":[{\"internalType\":\"uint24\",\"name\":\"\",\"type\":\"uint24\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"pairNonce\",\"type\":\"uint24\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPoolNonce\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPoolReserves\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getReserve\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getVirtualPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getVirtualReservesPerLiquidity\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"deltaAsset\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"deltaQuote\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\",\"components\":[]}],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"multiprocess\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"pairId\",\"type\":\"uint24\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"pairs\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"tokenAsset\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsAsset\",\"type\":\"uint8\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"tokenQuote\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsQuote\",\"type\":\"uint8\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"pools\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"virtualX\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"virtualY\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"liquidity\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint32\",\"name\":\"lastTimestamp\",\"type\":\"uint32\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"controller\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"invariantGrowthGlobal\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthGlobalAsset\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthGlobalQuote\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"struct PortfolioCurve\",\"name\":\"\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"uint128\",\"name\":\"maxPrice\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"jit\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"fee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"duration\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"volatility\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"priorityFee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint32\",\"name\":\"createdAt\",\"type\":\"uint32\",\"components\":[]},{\"internalType\":\"bool\",\"name\":\"perpetual\",\"type\":\"bool\",\"components\":[]}]},{\"internalType\":\"struct PortfolioPair\",\"name\":\"\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"address\",\"name\":\"tokenAsset\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsAsset\",\"type\":\"uint8\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"tokenQuote\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsQuote\",\"type\":\"uint8\",\"components\":[]}]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"positions\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"freeLiquidity\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint32\",\"name\":\"lastTimestamp\",\"type\":\"uint32\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"invariantGrowthLast\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthAssetLast\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthQuoteLast\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"tokensOwedAsset\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"tokensOwedQuote\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"invariantOwed\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"setProtocolFee\",\"outputs\":[]}]"; - ///The parsed JSON ABI of the contract. - pub static IPORTFOLIO_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| - ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); - pub struct IPortfolio(::ethers::contract::Contract); - impl ::core::clone::Clone for IPortfolio { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for IPortfolio { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for IPortfolio { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for IPortfolio { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(stringify!(IPortfolio)).field(&self.address()).finish() - } - } - impl IPortfolio { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self( - ::ethers::contract::Contract::new( - address.into(), - IPORTFOLIO_ABI.clone(), - client, - ), - ) - } - ///Calls the contract's `REGISTRY` (0x06433b1b) function - pub fn registry( - &self, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::ethers::core::types::Address, - > { - self.0 - .method_hash([6, 67, 59, 27], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `VERSION` (0xffa1ad74) function - pub fn version( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([255, 161, 173, 116], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `WETH` (0xad5c4648) function - pub fn weth( - &self, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::ethers::core::types::Address, - > { - self.0 - .method_hash([173, 92, 70, 72], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `changeParameters` (0xaf777855) function - pub fn change_parameters( - &self, - pool_id: u64, - priority_fee: u16, - fee: u16, - jit: u16, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([175, 119, 120, 85], (pool_id, priority_fee, fee, jit)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `deposit` (0xd0e30db0) function - pub fn deposit(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([208, 227, 13, 176], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `draw` (0xad24d6a0) function - pub fn draw( - &self, - token: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - to: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([173, 36, 214, 160], (token, amount, to)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `fund` (0x7b1837de) function - pub fn fund( - &self, - token: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([123, 24, 55, 222], (token, amount)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getAmountOut` (0x7dae4890) function - pub fn get_amount_out( - &self, - pool_id: u64, - sell_asset: bool, - amount_in: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([125, 174, 72, 144], (pool_id, sell_asset, amount_in)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getBalance` (0xd4fac45d) function - pub fn get_balance( - &self, - owner: ::ethers::core::types::Address, - token: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([212, 250, 196, 93], (owner, token)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getLiquidityDeltas` (0x8992f20a) function - pub fn get_liquidity_deltas( - &self, - pool_id: u64, - delta_liquidity: i128, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([137, 146, 242, 10], (pool_id, delta_liquidity)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getMaxLiquidity` (0xd6b7dec5) function - pub fn get_max_liquidity( - &self, - pool_id: u64, - delta_asset: ::ethers::core::types::U256, - delta_quote: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([214, 183, 222, 197], (pool_id, delta_asset, delta_quote)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getNetBalance` (0x4dc68a90) function - pub fn get_net_balance( - &self, - token: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([77, 198, 138, 144], token) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getPairId` (0x3f92a339) function - pub fn get_pair_id( - &self, - asset: ::ethers::core::types::Address, - quote: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([63, 146, 163, 57], (asset, quote)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getPairNonce` (0x078888d6) function - pub fn get_pair_nonce( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([7, 136, 136, 214], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getPoolNonce` (0xa5cd8a49) function - pub fn get_pool_nonce( - &self, - pair_nonce: u32, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([165, 205, 138, 73], pair_nonce) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getPoolReserves` (0x2afb9df8) function - pub fn get_pool_reserves( - &self, - pool_id: u64, - ) -> ::ethers::contract::builders::ContractCall< - M, - (::ethers::core::types::U256, ::ethers::core::types::U256), - > { - self.0 - .method_hash([42, 251, 157, 248], pool_id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getReserve` (0xc9a396e9) function - pub fn get_reserve( - &self, - token: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([201, 163, 150, 233], token) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getVirtualPrice` (0x61b7ea6a) function - pub fn get_virtual_price( - &self, - pool_id: u64, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([97, 183, 234, 106], pool_id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getVirtualReservesPerLiquidity` (0x1a4b905b) function - pub fn get_virtual_reserves_per_liquidity( - &self, - pool_id: u64, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([26, 75, 144, 91], pool_id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `multiprocess` (0xa0fdf413) function - pub fn multiprocess( - &self, - data: ::ethers::core::types::Bytes, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([160, 253, 244, 19], data) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `pairs` (0x5e47663c) function - pub fn pairs( - &self, - pair_id: u32, - ) -> ::ethers::contract::builders::ContractCall< - M, - (::ethers::core::types::Address, u8, ::ethers::core::types::Address, u8), - > { - self.0 - .method_hash([94, 71, 102, 60], pair_id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `pools` (0x89a5f084) function - pub fn pools( - &self, - pool_id: u64, - ) -> ::ethers::contract::builders::ContractCall< - M, - ( - u128, - u128, - u128, - u32, - ::ethers::core::types::Address, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - PortfolioCurve, - PortfolioPair, - ), - > { - self.0 - .method_hash([137, 165, 240, 132], pool_id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `positions` (0xb68513ea) function - pub fn positions( - &self, - owner: ::ethers::core::types::Address, - pool_id: u64, - ) -> ::ethers::contract::builders::ContractCall< - M, - ( - u128, - u32, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - u128, - u128, - u128, - ), - > { - self.0 - .method_hash([182, 133, 19, 234], (owner, pool_id)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `setProtocolFee` (0x787dce3d) function - pub fn set_protocol_fee( - &self, - fee: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([120, 125, 206, 61], fee) - .expect("method not found (this should never happen)") - } - ///Gets the contract's `Allocate` event - pub fn allocate_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - AllocateFilter, - > { - self.0.event() - } - ///Gets the contract's `ChangeParameters` event - pub fn change_parameters_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - ChangeParametersFilter, - > { - self.0.event() - } - ///Gets the contract's `Collect` event - pub fn collect_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, CollectFilter> { - self.0.event() - } - ///Gets the contract's `CreatePair` event - pub fn create_pair_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - CreatePairFilter, - > { - self.0.event() - } - ///Gets the contract's `CreatePool` event - pub fn create_pool_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - CreatePoolFilter, - > { - self.0.event() - } - ///Gets the contract's `Deallocate` event - pub fn deallocate_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - DeallocateFilter, - > { - self.0.event() - } - ///Gets the contract's `DecreaseReserveBalance` event - pub fn decrease_reserve_balance_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - DecreaseReserveBalanceFilter, - > { - self.0.event() - } - ///Gets the contract's `DecreaseUserBalance` event - pub fn decrease_user_balance_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - DecreaseUserBalanceFilter, - > { - self.0.event() - } - ///Gets the contract's `Deposit` event - pub fn deposit_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, DepositFilter> { - self.0.event() - } - ///Gets the contract's `IncreaseReserveBalance` event - pub fn increase_reserve_balance_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - IncreaseReserveBalanceFilter, - > { - self.0.event() - } - ///Gets the contract's `IncreaseUserBalance` event - pub fn increase_user_balance_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - IncreaseUserBalanceFilter, - > { - self.0.event() - } - ///Gets the contract's `Swap` event - pub fn swap_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, SwapFilter> { - self.0.event() - } - ///Gets the contract's `UpdateProtocolFee` event - pub fn update_protocol_fee_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - UpdateProtocolFeeFilter, - > { - self.0.event() - } - /// Returns an `Event` builder for all the events of this contract. - pub fn events( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - IPortfolioEvents, - > { - self.0.event_with_filter(::core::default::Default::default()) - } - } - impl From<::ethers::contract::Contract> - for IPortfolio { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent( - name = "Allocate", - abi = "Allocate(uint64,address,address,uint256,uint256,uint256)" - )] - pub struct AllocateFilter { - #[ethevent(indexed)] - pub pool_id: u64, - #[ethevent(indexed)] - pub asset: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub quote: ::ethers::core::types::Address, - pub delta_asset: ::ethers::core::types::U256, - pub delta_quote: ::ethers::core::types::U256, - pub delta_liquidity: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent( - name = "ChangeParameters", - abi = "ChangeParameters(uint64,uint16,uint16,uint16)" - )] - pub struct ChangeParametersFilter { - #[ethevent(indexed)] - pub pool_id: u64, - #[ethevent(indexed)] - pub priority_fee: u16, - #[ethevent(indexed)] - pub fee: u16, - pub jit: u16, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent( - name = "Collect", - abi = "Collect(uint64,address,uint256,address,uint256,address)" - )] - pub struct CollectFilter { - pub pool_id: u64, - #[ethevent(indexed)] - pub account: ::ethers::core::types::Address, - pub fee_asset_dec: ::ethers::core::types::U256, - #[ethevent(indexed)] - pub asset: ::ethers::core::types::Address, - pub fee_quote_dec: ::ethers::core::types::U256, - #[ethevent(indexed)] - pub quote: ::ethers::core::types::Address, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent( - name = "CreatePair", - abi = "CreatePair(uint24,address,address,uint8,uint8)" - )] - pub struct CreatePairFilter { - #[ethevent(indexed)] - pub pair_id: u32, - #[ethevent(indexed)] - pub asset: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub quote: ::ethers::core::types::Address, - pub decimals_asset: u8, - pub decimals_quote: u8, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent( - name = "CreatePool", - abi = "CreatePool(uint64,bool,address,address,uint256)" - )] - pub struct CreatePoolFilter { - #[ethevent(indexed)] - pub pool_id: u64, - pub is_mutable: bool, - #[ethevent(indexed)] - pub asset: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub quote: ::ethers::core::types::Address, - pub price: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent( - name = "Deallocate", - abi = "Deallocate(uint64,address,address,uint256,uint256,uint256)" - )] - pub struct DeallocateFilter { - #[ethevent(indexed)] - pub pool_id: u64, - #[ethevent(indexed)] - pub asset: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub quote: ::ethers::core::types::Address, - pub delta_asset: ::ethers::core::types::U256, - pub delta_quote: ::ethers::core::types::U256, - pub delta_liquidity: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent( - name = "DecreaseReserveBalance", - abi = "DecreaseReserveBalance(address,uint256)" - )] - pub struct DecreaseReserveBalanceFilter { - #[ethevent(indexed)] - pub token: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent( - name = "DecreaseUserBalance", - abi = "DecreaseUserBalance(address,address,uint256)" - )] - pub struct DecreaseUserBalanceFilter { - #[ethevent(indexed)] - pub account: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub token: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "Deposit", abi = "Deposit(address,uint256)")] - pub struct DepositFilter { - #[ethevent(indexed)] - pub account: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent( - name = "IncreaseReserveBalance", - abi = "IncreaseReserveBalance(address,uint256)" - )] - pub struct IncreaseReserveBalanceFilter { - #[ethevent(indexed)] - pub token: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent( - name = "IncreaseUserBalance", - abi = "IncreaseUserBalance(address,address,uint256)" - )] - pub struct IncreaseUserBalanceFilter { - #[ethevent(indexed)] - pub account: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub token: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent( - name = "Swap", - abi = "Swap(uint64,uint256,address,uint256,address,uint256,uint256,int256)" - )] - pub struct SwapFilter { - #[ethevent(indexed)] - pub pool_id: u64, - pub price: ::ethers::core::types::U256, - #[ethevent(indexed)] - pub sell_asset: ::ethers::core::types::Address, - pub input: ::ethers::core::types::U256, - #[ethevent(indexed)] - pub token_out: ::ethers::core::types::Address, - pub output: ::ethers::core::types::U256, - pub fee_amount_dec: ::ethers::core::types::U256, - pub invariant_wad: ::ethers::core::types::I256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "UpdateProtocolFee", abi = "UpdateProtocolFee(uint256,uint256)")] - pub struct UpdateProtocolFeeFilter { - pub prev_fee: ::ethers::core::types::U256, - pub next_fee: ::ethers::core::types::U256, - } - ///Container type for all of the contract's events - #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] - pub enum IPortfolioEvents { - AllocateFilter(AllocateFilter), - ChangeParametersFilter(ChangeParametersFilter), - CollectFilter(CollectFilter), - CreatePairFilter(CreatePairFilter), - CreatePoolFilter(CreatePoolFilter), - DeallocateFilter(DeallocateFilter), - DecreaseReserveBalanceFilter(DecreaseReserveBalanceFilter), - DecreaseUserBalanceFilter(DecreaseUserBalanceFilter), - DepositFilter(DepositFilter), - IncreaseReserveBalanceFilter(IncreaseReserveBalanceFilter), - IncreaseUserBalanceFilter(IncreaseUserBalanceFilter), - SwapFilter(SwapFilter), - UpdateProtocolFeeFilter(UpdateProtocolFeeFilter), - } - impl ::ethers::contract::EthLogDecode for IPortfolioEvents { - fn decode_log( - log: &::ethers::core::abi::RawLog, - ) -> ::core::result::Result { - if let Ok(decoded) = AllocateFilter::decode_log(log) { - return Ok(IPortfolioEvents::AllocateFilter(decoded)); - } - if let Ok(decoded) = ChangeParametersFilter::decode_log(log) { - return Ok(IPortfolioEvents::ChangeParametersFilter(decoded)); - } - if let Ok(decoded) = CollectFilter::decode_log(log) { - return Ok(IPortfolioEvents::CollectFilter(decoded)); - } - if let Ok(decoded) = CreatePairFilter::decode_log(log) { - return Ok(IPortfolioEvents::CreatePairFilter(decoded)); - } - if let Ok(decoded) = CreatePoolFilter::decode_log(log) { - return Ok(IPortfolioEvents::CreatePoolFilter(decoded)); - } - if let Ok(decoded) = DeallocateFilter::decode_log(log) { - return Ok(IPortfolioEvents::DeallocateFilter(decoded)); - } - if let Ok(decoded) = DecreaseReserveBalanceFilter::decode_log(log) { - return Ok(IPortfolioEvents::DecreaseReserveBalanceFilter(decoded)); - } - if let Ok(decoded) = DecreaseUserBalanceFilter::decode_log(log) { - return Ok(IPortfolioEvents::DecreaseUserBalanceFilter(decoded)); - } - if let Ok(decoded) = DepositFilter::decode_log(log) { - return Ok(IPortfolioEvents::DepositFilter(decoded)); - } - if let Ok(decoded) = IncreaseReserveBalanceFilter::decode_log(log) { - return Ok(IPortfolioEvents::IncreaseReserveBalanceFilter(decoded)); - } - if let Ok(decoded) = IncreaseUserBalanceFilter::decode_log(log) { - return Ok(IPortfolioEvents::IncreaseUserBalanceFilter(decoded)); - } - if let Ok(decoded) = SwapFilter::decode_log(log) { - return Ok(IPortfolioEvents::SwapFilter(decoded)); - } - if let Ok(decoded) = UpdateProtocolFeeFilter::decode_log(log) { - return Ok(IPortfolioEvents::UpdateProtocolFeeFilter(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData) - } - } - impl ::core::fmt::Display for IPortfolioEvents { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::AllocateFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::ChangeParametersFilter(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::CollectFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::CreatePairFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::CreatePoolFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::DeallocateFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::DecreaseReserveBalanceFilter(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::DecreaseUserBalanceFilter(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::DepositFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::IncreaseReserveBalanceFilter(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::IncreaseUserBalanceFilter(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::SwapFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::UpdateProtocolFeeFilter(element) => { - ::core::fmt::Display::fmt(element, f) - } - } - } - } - impl ::core::convert::From for IPortfolioEvents { - fn from(value: AllocateFilter) -> Self { - Self::AllocateFilter(value) - } - } - impl ::core::convert::From for IPortfolioEvents { - fn from(value: ChangeParametersFilter) -> Self { - Self::ChangeParametersFilter(value) - } - } - impl ::core::convert::From for IPortfolioEvents { - fn from(value: CollectFilter) -> Self { - Self::CollectFilter(value) - } - } - impl ::core::convert::From for IPortfolioEvents { - fn from(value: CreatePairFilter) -> Self { - Self::CreatePairFilter(value) - } - } - impl ::core::convert::From for IPortfolioEvents { - fn from(value: CreatePoolFilter) -> Self { - Self::CreatePoolFilter(value) - } - } - impl ::core::convert::From for IPortfolioEvents { - fn from(value: DeallocateFilter) -> Self { - Self::DeallocateFilter(value) - } - } - impl ::core::convert::From for IPortfolioEvents { - fn from(value: DecreaseReserveBalanceFilter) -> Self { - Self::DecreaseReserveBalanceFilter(value) - } - } - impl ::core::convert::From for IPortfolioEvents { - fn from(value: DecreaseUserBalanceFilter) -> Self { - Self::DecreaseUserBalanceFilter(value) - } - } - impl ::core::convert::From for IPortfolioEvents { - fn from(value: DepositFilter) -> Self { - Self::DepositFilter(value) - } - } - impl ::core::convert::From for IPortfolioEvents { - fn from(value: IncreaseReserveBalanceFilter) -> Self { - Self::IncreaseReserveBalanceFilter(value) - } - } - impl ::core::convert::From for IPortfolioEvents { - fn from(value: IncreaseUserBalanceFilter) -> Self { - Self::IncreaseUserBalanceFilter(value) - } - } - impl ::core::convert::From for IPortfolioEvents { - fn from(value: SwapFilter) -> Self { - Self::SwapFilter(value) - } - } - impl ::core::convert::From for IPortfolioEvents { - fn from(value: UpdateProtocolFeeFilter) -> Self { - Self::UpdateProtocolFeeFilter(value) - } - } - ///Container type for all input parameters for the `REGISTRY` function with signature `REGISTRY()` and selector `0x06433b1b` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "REGISTRY", abi = "REGISTRY()")] - pub struct RegistryCall; - ///Container type for all input parameters for the `VERSION` function with signature `VERSION()` and selector `0xffa1ad74` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "VERSION", abi = "VERSION()")] - pub struct VersionCall; - ///Container type for all input parameters for the `WETH` function with signature `WETH()` and selector `0xad5c4648` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "WETH", abi = "WETH()")] - pub struct WethCall; - ///Container type for all input parameters for the `changeParameters` function with signature `changeParameters(uint64,uint16,uint16,uint16)` and selector `0xaf777855` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall( - name = "changeParameters", - abi = "changeParameters(uint64,uint16,uint16,uint16)" - )] - pub struct ChangeParametersCall { - pub pool_id: u64, - pub priority_fee: u16, - pub fee: u16, - pub jit: u16, - } - ///Container type for all input parameters for the `deposit` function with signature `deposit()` and selector `0xd0e30db0` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "deposit", abi = "deposit()")] - pub struct DepositCall; - ///Container type for all input parameters for the `draw` function with signature `draw(address,uint256,address)` and selector `0xad24d6a0` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "draw", abi = "draw(address,uint256,address)")] - pub struct DrawCall { - pub token: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - pub to: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `fund` function with signature `fund(address,uint256)` and selector `0x7b1837de` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "fund", abi = "fund(address,uint256)")] - pub struct FundCall { - pub token: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `getAmountOut` function with signature `getAmountOut(uint64,bool,uint256)` and selector `0x7dae4890` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "getAmountOut", abi = "getAmountOut(uint64,bool,uint256)")] - pub struct GetAmountOutCall { - pub pool_id: u64, - pub sell_asset: bool, - pub amount_in: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `getBalance` function with signature `getBalance(address,address)` and selector `0xd4fac45d` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "getBalance", abi = "getBalance(address,address)")] - pub struct GetBalanceCall { - pub owner: ::ethers::core::types::Address, - pub token: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `getLiquidityDeltas` function with signature `getLiquidityDeltas(uint64,int128)` and selector `0x8992f20a` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "getLiquidityDeltas", abi = "getLiquidityDeltas(uint64,int128)")] - pub struct GetLiquidityDeltasCall { - pub pool_id: u64, - pub delta_liquidity: i128, - } - ///Container type for all input parameters for the `getMaxLiquidity` function with signature `getMaxLiquidity(uint64,uint256,uint256)` and selector `0xd6b7dec5` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "getMaxLiquidity", abi = "getMaxLiquidity(uint64,uint256,uint256)")] - pub struct GetMaxLiquidityCall { - pub pool_id: u64, - pub delta_asset: ::ethers::core::types::U256, - pub delta_quote: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `getNetBalance` function with signature `getNetBalance(address)` and selector `0x4dc68a90` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "getNetBalance", abi = "getNetBalance(address)")] - pub struct GetNetBalanceCall { - pub token: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `getPairId` function with signature `getPairId(address,address)` and selector `0x3f92a339` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "getPairId", abi = "getPairId(address,address)")] - pub struct GetPairIdCall { - pub asset: ::ethers::core::types::Address, - pub quote: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `getPairNonce` function with signature `getPairNonce()` and selector `0x078888d6` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "getPairNonce", abi = "getPairNonce()")] - pub struct GetPairNonceCall; - ///Container type for all input parameters for the `getPoolNonce` function with signature `getPoolNonce(uint24)` and selector `0xa5cd8a49` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "getPoolNonce", abi = "getPoolNonce(uint24)")] - pub struct GetPoolNonceCall { - pub pair_nonce: u32, - } - ///Container type for all input parameters for the `getPoolReserves` function with signature `getPoolReserves(uint64)` and selector `0x2afb9df8` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "getPoolReserves", abi = "getPoolReserves(uint64)")] - pub struct GetPoolReservesCall { - pub pool_id: u64, - } - ///Container type for all input parameters for the `getReserve` function with signature `getReserve(address)` and selector `0xc9a396e9` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "getReserve", abi = "getReserve(address)")] - pub struct GetReserveCall { - pub token: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `getVirtualPrice` function with signature `getVirtualPrice(uint64)` and selector `0x61b7ea6a` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "getVirtualPrice", abi = "getVirtualPrice(uint64)")] - pub struct GetVirtualPriceCall { - pub pool_id: u64, - } - ///Container type for all input parameters for the `getVirtualReservesPerLiquidity` function with signature `getVirtualReservesPerLiquidity(uint64)` and selector `0x1a4b905b` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall( - name = "getVirtualReservesPerLiquidity", - abi = "getVirtualReservesPerLiquidity(uint64)" - )] - pub struct GetVirtualReservesPerLiquidityCall { - pub pool_id: u64, - } - ///Container type for all input parameters for the `multiprocess` function with signature `multiprocess(bytes)` and selector `0xa0fdf413` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "multiprocess", abi = "multiprocess(bytes)")] - pub struct MultiprocessCall { - pub data: ::ethers::core::types::Bytes, - } - ///Container type for all input parameters for the `pairs` function with signature `pairs(uint24)` and selector `0x5e47663c` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "pairs", abi = "pairs(uint24)")] - pub struct PairsCall { - pub pair_id: u32, - } - ///Container type for all input parameters for the `pools` function with signature `pools(uint64)` and selector `0x89a5f084` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "pools", abi = "pools(uint64)")] - pub struct PoolsCall { - pub pool_id: u64, - } - ///Container type for all input parameters for the `positions` function with signature `positions(address,uint64)` and selector `0xb68513ea` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "positions", abi = "positions(address,uint64)")] - pub struct PositionsCall { - pub owner: ::ethers::core::types::Address, - pub pool_id: u64, - } - ///Container type for all input parameters for the `setProtocolFee` function with signature `setProtocolFee(uint256)` and selector `0x787dce3d` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "setProtocolFee", abi = "setProtocolFee(uint256)")] - pub struct SetProtocolFeeCall { - pub fee: ::ethers::core::types::U256, - } - ///Container type for all of the contract's call - #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] - pub enum IPortfolioCalls { - Registry(RegistryCall), - Version(VersionCall), - Weth(WethCall), - ChangeParameters(ChangeParametersCall), - Deposit(DepositCall), - Draw(DrawCall), - Fund(FundCall), - GetAmountOut(GetAmountOutCall), - GetBalance(GetBalanceCall), - GetLiquidityDeltas(GetLiquidityDeltasCall), - GetMaxLiquidity(GetMaxLiquidityCall), - GetNetBalance(GetNetBalanceCall), - GetPairId(GetPairIdCall), - GetPairNonce(GetPairNonceCall), - GetPoolNonce(GetPoolNonceCall), - GetPoolReserves(GetPoolReservesCall), - GetReserve(GetReserveCall), - GetVirtualPrice(GetVirtualPriceCall), - GetVirtualReservesPerLiquidity(GetVirtualReservesPerLiquidityCall), - Multiprocess(MultiprocessCall), - Pairs(PairsCall), - Pools(PoolsCall), - Positions(PositionsCall), - SetProtocolFee(SetProtocolFeeCall), - } - impl ::ethers::core::abi::AbiDecode for IPortfolioCalls { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Registry(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Version(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Weth(decoded)); - } - if let Ok(decoded) - = ::decode( - data, - ) { - return Ok(Self::ChangeParameters(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Deposit(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Draw(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Fund(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::GetAmountOut(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::GetBalance(decoded)); - } - if let Ok(decoded) - = ::decode( - data, - ) { - return Ok(Self::GetLiquidityDeltas(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::GetMaxLiquidity(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::GetNetBalance(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::GetPairId(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::GetPairNonce(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::GetPoolNonce(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::GetPoolReserves(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::GetReserve(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::GetVirtualPrice(decoded)); - } - if let Ok(decoded) - = ::decode( - data, - ) { - return Ok(Self::GetVirtualReservesPerLiquidity(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Multiprocess(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Pairs(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Pools(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Positions(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::SetProtocolFee(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for IPortfolioCalls { - fn encode(self) -> Vec { - match self { - Self::Registry(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Version(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Weth(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::ChangeParameters(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Deposit(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Draw(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Fund(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetAmountOut(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::GetBalance(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::GetLiquidityDeltas(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::GetMaxLiquidity(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::GetNetBalance(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::GetPairId(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::GetPairNonce(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::GetPoolNonce(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::GetPoolReserves(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::GetReserve(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::GetVirtualPrice(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::GetVirtualReservesPerLiquidity(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Multiprocess(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Pairs(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Pools(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Positions(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::SetProtocolFee(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - } - } - } - impl ::core::fmt::Display for IPortfolioCalls { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::Registry(element) => ::core::fmt::Display::fmt(element, f), - Self::Version(element) => ::core::fmt::Display::fmt(element, f), - Self::Weth(element) => ::core::fmt::Display::fmt(element, f), - Self::ChangeParameters(element) => ::core::fmt::Display::fmt(element, f), - Self::Deposit(element) => ::core::fmt::Display::fmt(element, f), - Self::Draw(element) => ::core::fmt::Display::fmt(element, f), - Self::Fund(element) => ::core::fmt::Display::fmt(element, f), - Self::GetAmountOut(element) => ::core::fmt::Display::fmt(element, f), - Self::GetBalance(element) => ::core::fmt::Display::fmt(element, f), - Self::GetLiquidityDeltas(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::GetMaxLiquidity(element) => ::core::fmt::Display::fmt(element, f), - Self::GetNetBalance(element) => ::core::fmt::Display::fmt(element, f), - Self::GetPairId(element) => ::core::fmt::Display::fmt(element, f), - Self::GetPairNonce(element) => ::core::fmt::Display::fmt(element, f), - Self::GetPoolNonce(element) => ::core::fmt::Display::fmt(element, f), - Self::GetPoolReserves(element) => ::core::fmt::Display::fmt(element, f), - Self::GetReserve(element) => ::core::fmt::Display::fmt(element, f), - Self::GetVirtualPrice(element) => ::core::fmt::Display::fmt(element, f), - Self::GetVirtualReservesPerLiquidity(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::Multiprocess(element) => ::core::fmt::Display::fmt(element, f), - Self::Pairs(element) => ::core::fmt::Display::fmt(element, f), - Self::Pools(element) => ::core::fmt::Display::fmt(element, f), - Self::Positions(element) => ::core::fmt::Display::fmt(element, f), - Self::SetProtocolFee(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for IPortfolioCalls { - fn from(value: RegistryCall) -> Self { - Self::Registry(value) - } - } - impl ::core::convert::From for IPortfolioCalls { - fn from(value: VersionCall) -> Self { - Self::Version(value) - } - } - impl ::core::convert::From for IPortfolioCalls { - fn from(value: WethCall) -> Self { - Self::Weth(value) - } - } - impl ::core::convert::From for IPortfolioCalls { - fn from(value: ChangeParametersCall) -> Self { - Self::ChangeParameters(value) - } - } - impl ::core::convert::From for IPortfolioCalls { - fn from(value: DepositCall) -> Self { - Self::Deposit(value) - } - } - impl ::core::convert::From for IPortfolioCalls { - fn from(value: DrawCall) -> Self { - Self::Draw(value) - } - } - impl ::core::convert::From for IPortfolioCalls { - fn from(value: FundCall) -> Self { - Self::Fund(value) - } - } - impl ::core::convert::From for IPortfolioCalls { - fn from(value: GetAmountOutCall) -> Self { - Self::GetAmountOut(value) - } - } - impl ::core::convert::From for IPortfolioCalls { - fn from(value: GetBalanceCall) -> Self { - Self::GetBalance(value) - } - } - impl ::core::convert::From for IPortfolioCalls { - fn from(value: GetLiquidityDeltasCall) -> Self { - Self::GetLiquidityDeltas(value) - } - } - impl ::core::convert::From for IPortfolioCalls { - fn from(value: GetMaxLiquidityCall) -> Self { - Self::GetMaxLiquidity(value) - } - } - impl ::core::convert::From for IPortfolioCalls { - fn from(value: GetNetBalanceCall) -> Self { - Self::GetNetBalance(value) - } - } - impl ::core::convert::From for IPortfolioCalls { - fn from(value: GetPairIdCall) -> Self { - Self::GetPairId(value) - } - } - impl ::core::convert::From for IPortfolioCalls { - fn from(value: GetPairNonceCall) -> Self { - Self::GetPairNonce(value) - } - } - impl ::core::convert::From for IPortfolioCalls { - fn from(value: GetPoolNonceCall) -> Self { - Self::GetPoolNonce(value) - } - } - impl ::core::convert::From for IPortfolioCalls { - fn from(value: GetPoolReservesCall) -> Self { - Self::GetPoolReserves(value) - } - } - impl ::core::convert::From for IPortfolioCalls { - fn from(value: GetReserveCall) -> Self { - Self::GetReserve(value) - } - } - impl ::core::convert::From for IPortfolioCalls { - fn from(value: GetVirtualPriceCall) -> Self { - Self::GetVirtualPrice(value) - } - } - impl ::core::convert::From for IPortfolioCalls { - fn from(value: GetVirtualReservesPerLiquidityCall) -> Self { - Self::GetVirtualReservesPerLiquidity(value) - } - } - impl ::core::convert::From for IPortfolioCalls { - fn from(value: MultiprocessCall) -> Self { - Self::Multiprocess(value) - } - } - impl ::core::convert::From for IPortfolioCalls { - fn from(value: PairsCall) -> Self { - Self::Pairs(value) - } - } - impl ::core::convert::From for IPortfolioCalls { - fn from(value: PoolsCall) -> Self { - Self::Pools(value) - } - } - impl ::core::convert::From for IPortfolioCalls { - fn from(value: PositionsCall) -> Self { - Self::Positions(value) - } - } - impl ::core::convert::From for IPortfolioCalls { - fn from(value: SetProtocolFeeCall) -> Self { - Self::SetProtocolFee(value) - } - } - ///Container type for all return fields from the `REGISTRY` function with signature `REGISTRY()` and selector `0x06433b1b` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct RegistryReturn(pub ::ethers::core::types::Address); - ///Container type for all return fields from the `VERSION` function with signature `VERSION()` and selector `0xffa1ad74` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct VersionReturn(pub ::std::string::String); - ///Container type for all return fields from the `WETH` function with signature `WETH()` and selector `0xad5c4648` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct WethReturn(pub ::ethers::core::types::Address); - ///Container type for all return fields from the `getAmountOut` function with signature `getAmountOut(uint64,bool,uint256)` and selector `0x7dae4890` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct GetAmountOutReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `getBalance` function with signature `getBalance(address,address)` and selector `0xd4fac45d` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct GetBalanceReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `getLiquidityDeltas` function with signature `getLiquidityDeltas(uint64,int128)` and selector `0x8992f20a` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct GetLiquidityDeltasReturn { - pub delta_asset: u128, - pub delta_quote: u128, - } - ///Container type for all return fields from the `getMaxLiquidity` function with signature `getMaxLiquidity(uint64,uint256,uint256)` and selector `0xd6b7dec5` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct GetMaxLiquidityReturn { - pub delta_liquidity: u128, - } - ///Container type for all return fields from the `getNetBalance` function with signature `getNetBalance(address)` and selector `0x4dc68a90` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct GetNetBalanceReturn(pub ::ethers::core::types::I256); - ///Container type for all return fields from the `getPairId` function with signature `getPairId(address,address)` and selector `0x3f92a339` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct GetPairIdReturn { - pub pair_id: u32, - } - ///Container type for all return fields from the `getPairNonce` function with signature `getPairNonce()` and selector `0x078888d6` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct GetPairNonceReturn(pub u32); - ///Container type for all return fields from the `getPoolNonce` function with signature `getPoolNonce(uint24)` and selector `0xa5cd8a49` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct GetPoolNonceReturn(pub u32); - ///Container type for all return fields from the `getPoolReserves` function with signature `getPoolReserves(uint64)` and selector `0x2afb9df8` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct GetPoolReservesReturn { - pub delta_asset: ::ethers::core::types::U256, - pub delta_quote: ::ethers::core::types::U256, - } - ///Container type for all return fields from the `getReserve` function with signature `getReserve(address)` and selector `0xc9a396e9` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct GetReserveReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `getVirtualPrice` function with signature `getVirtualPrice(uint64)` and selector `0x61b7ea6a` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct GetVirtualPriceReturn { - pub price: ::ethers::core::types::U256, - } - ///Container type for all return fields from the `getVirtualReservesPerLiquidity` function with signature `getVirtualReservesPerLiquidity(uint64)` and selector `0x1a4b905b` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct GetVirtualReservesPerLiquidityReturn { - pub delta_asset: u128, - pub delta_quote: u128, - } - ///Container type for all return fields from the `pairs` function with signature `pairs(uint24)` and selector `0x5e47663c` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct PairsReturn { - pub token_asset: ::ethers::core::types::Address, - pub decimals_asset: u8, - pub token_quote: ::ethers::core::types::Address, - pub decimals_quote: u8, - } - ///Container type for all return fields from the `pools` function with signature `pools(uint64)` and selector `0x89a5f084` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct PoolsReturn { - pub virtual_x: u128, - pub virtual_y: u128, - pub liquidity: u128, - pub last_timestamp: u32, - pub controller: ::ethers::core::types::Address, - pub invariant_growth_global: ::ethers::core::types::U256, - pub fee_growth_global_asset: ::ethers::core::types::U256, - pub fee_growth_global_quote: ::ethers::core::types::U256, - pub p8: PortfolioCurve, - pub p9: PortfolioPair, - } - ///Container type for all return fields from the `positions` function with signature `positions(address,uint64)` and selector `0xb68513ea` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct PositionsReturn { - pub free_liquidity: u128, - pub last_timestamp: u32, - pub invariant_growth_last: ::ethers::core::types::U256, - pub fee_growth_asset_last: ::ethers::core::types::U256, - pub fee_growth_quote_last: ::ethers::core::types::U256, - pub tokens_owed_asset: u128, - pub tokens_owed_quote: u128, - pub invariant_owed: u128, - } -} diff --git a/crates/bindings/src/i_portfolio_actions.rs b/crates/bindings/src/i_portfolio_actions.rs deleted file mode 100644 index 1a5ea612..00000000 --- a/crates/bindings/src/i_portfolio_actions.rs +++ /dev/null @@ -1,324 +0,0 @@ -pub use i_portfolio_actions::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types, -)] -pub mod i_portfolio_actions { - #[rustfmt::skip] - const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"priorityFee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"fee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"jit\",\"type\":\"uint16\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"changeParameters\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"deposit\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"draw\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"fund\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\",\"components\":[]}],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"multiprocess\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"setProtocolFee\",\"outputs\":[]}]"; - ///The parsed JSON ABI of the contract. - pub static IPORTFOLIOACTIONS_ABI: ::ethers::contract::Lazy< - ::ethers::core::abi::Abi, - > = ::ethers::contract::Lazy::new(|| { - ::ethers::core::utils::__serde_json::from_str(__ABI) - .expect("ABI is always valid") - }); - pub struct IPortfolioActions(::ethers::contract::Contract); - impl ::core::clone::Clone for IPortfolioActions { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for IPortfolioActions { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for IPortfolioActions { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for IPortfolioActions { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(stringify!(IPortfolioActions)).field(&self.address()).finish() - } - } - impl IPortfolioActions { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self( - ::ethers::contract::Contract::new( - address.into(), - IPORTFOLIOACTIONS_ABI.clone(), - client, - ), - ) - } - ///Calls the contract's `changeParameters` (0xaf777855) function - pub fn change_parameters( - &self, - pool_id: u64, - priority_fee: u16, - fee: u16, - jit: u16, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([175, 119, 120, 85], (pool_id, priority_fee, fee, jit)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `deposit` (0xd0e30db0) function - pub fn deposit(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([208, 227, 13, 176], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `draw` (0xad24d6a0) function - pub fn draw( - &self, - token: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - to: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([173, 36, 214, 160], (token, amount, to)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `fund` (0x7b1837de) function - pub fn fund( - &self, - token: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([123, 24, 55, 222], (token, amount)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `multiprocess` (0xa0fdf413) function - pub fn multiprocess( - &self, - data: ::ethers::core::types::Bytes, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([160, 253, 244, 19], data) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `setProtocolFee` (0x787dce3d) function - pub fn set_protocol_fee( - &self, - fee: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([120, 125, 206, 61], fee) - .expect("method not found (this should never happen)") - } - } - impl From<::ethers::contract::Contract> - for IPortfolioActions { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - ///Container type for all input parameters for the `changeParameters` function with signature `changeParameters(uint64,uint16,uint16,uint16)` and selector `0xaf777855` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall( - name = "changeParameters", - abi = "changeParameters(uint64,uint16,uint16,uint16)" - )] - pub struct ChangeParametersCall { - pub pool_id: u64, - pub priority_fee: u16, - pub fee: u16, - pub jit: u16, - } - ///Container type for all input parameters for the `deposit` function with signature `deposit()` and selector `0xd0e30db0` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "deposit", abi = "deposit()")] - pub struct DepositCall; - ///Container type for all input parameters for the `draw` function with signature `draw(address,uint256,address)` and selector `0xad24d6a0` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "draw", abi = "draw(address,uint256,address)")] - pub struct DrawCall { - pub token: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - pub to: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `fund` function with signature `fund(address,uint256)` and selector `0x7b1837de` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "fund", abi = "fund(address,uint256)")] - pub struct FundCall { - pub token: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `multiprocess` function with signature `multiprocess(bytes)` and selector `0xa0fdf413` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "multiprocess", abi = "multiprocess(bytes)")] - pub struct MultiprocessCall { - pub data: ::ethers::core::types::Bytes, - } - ///Container type for all input parameters for the `setProtocolFee` function with signature `setProtocolFee(uint256)` and selector `0x787dce3d` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "setProtocolFee", abi = "setProtocolFee(uint256)")] - pub struct SetProtocolFeeCall { - pub fee: ::ethers::core::types::U256, - } - ///Container type for all of the contract's call - #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] - pub enum IPortfolioActionsCalls { - ChangeParameters(ChangeParametersCall), - Deposit(DepositCall), - Draw(DrawCall), - Fund(FundCall), - Multiprocess(MultiprocessCall), - SetProtocolFee(SetProtocolFeeCall), - } - impl ::ethers::core::abi::AbiDecode for IPortfolioActionsCalls { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) - = ::decode( - data, - ) { - return Ok(Self::ChangeParameters(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Deposit(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Draw(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Fund(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Multiprocess(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::SetProtocolFee(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for IPortfolioActionsCalls { - fn encode(self) -> Vec { - match self { - Self::ChangeParameters(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Deposit(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Draw(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Fund(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Multiprocess(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::SetProtocolFee(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - } - } - } - impl ::core::fmt::Display for IPortfolioActionsCalls { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::ChangeParameters(element) => ::core::fmt::Display::fmt(element, f), - Self::Deposit(element) => ::core::fmt::Display::fmt(element, f), - Self::Draw(element) => ::core::fmt::Display::fmt(element, f), - Self::Fund(element) => ::core::fmt::Display::fmt(element, f), - Self::Multiprocess(element) => ::core::fmt::Display::fmt(element, f), - Self::SetProtocolFee(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for IPortfolioActionsCalls { - fn from(value: ChangeParametersCall) -> Self { - Self::ChangeParameters(value) - } - } - impl ::core::convert::From for IPortfolioActionsCalls { - fn from(value: DepositCall) -> Self { - Self::Deposit(value) - } - } - impl ::core::convert::From for IPortfolioActionsCalls { - fn from(value: DrawCall) -> Self { - Self::Draw(value) - } - } - impl ::core::convert::From for IPortfolioActionsCalls { - fn from(value: FundCall) -> Self { - Self::Fund(value) - } - } - impl ::core::convert::From for IPortfolioActionsCalls { - fn from(value: MultiprocessCall) -> Self { - Self::Multiprocess(value) - } - } - impl ::core::convert::From for IPortfolioActionsCalls { - fn from(value: SetProtocolFeeCall) -> Self { - Self::SetProtocolFee(value) - } - } -} diff --git a/crates/bindings/src/i_portfolio_events.rs b/crates/bindings/src/i_portfolio_events.rs deleted file mode 100644 index 9e889018..00000000 --- a/crates/bindings/src/i_portfolio_events.rs +++ /dev/null @@ -1,637 +0,0 @@ -pub use i_portfolio_events::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types, -)] -pub mod i_portfolio_events { - #[rustfmt::skip] - const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaLiquidity\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Allocate\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint16\",\"name\":\"priorityFee\",\"type\":\"uint16\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint16\",\"name\":\"fee\",\"type\":\"uint16\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint16\",\"name\":\"jit\",\"type\":\"uint16\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"ChangeParameters\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"feeAssetDec\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"feeQuoteDec\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true}],\"type\":\"event\",\"name\":\"Collect\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"pairId\",\"type\":\"uint24\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint8\",\"name\":\"decimalsAsset\",\"type\":\"uint8\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint8\",\"name\":\"decimalsQuote\",\"type\":\"uint8\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"CreatePair\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"bool\",\"name\":\"isMutable\",\"type\":\"bool\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"CreatePool\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaLiquidity\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Deallocate\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"DecreaseReserveBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"DecreaseUserBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Deposit\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"IncreaseReserveBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"IncreaseUserBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"sellAsset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"input\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"tokenOut\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"output\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"feeAmountDec\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"int256\",\"name\":\"invariantWad\",\"type\":\"int256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Swap\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"prevFee\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"nextFee\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"UpdateProtocolFee\",\"outputs\":[],\"anonymous\":false}]"; - ///The parsed JSON ABI of the contract. - pub static IPORTFOLIOEVENTS_ABI: ::ethers::contract::Lazy< - ::ethers::core::abi::Abi, - > = ::ethers::contract::Lazy::new(|| { - ::ethers::core::utils::__serde_json::from_str(__ABI) - .expect("ABI is always valid") - }); - pub struct IPortfolioEvents(::ethers::contract::Contract); - impl ::core::clone::Clone for IPortfolioEvents { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for IPortfolioEvents { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for IPortfolioEvents { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for IPortfolioEvents { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(stringify!(IPortfolioEvents)).field(&self.address()).finish() - } - } - impl IPortfolioEvents { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self( - ::ethers::contract::Contract::new( - address.into(), - IPORTFOLIOEVENTS_ABI.clone(), - client, - ), - ) - } - ///Gets the contract's `Allocate` event - pub fn allocate_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - AllocateFilter, - > { - self.0.event() - } - ///Gets the contract's `ChangeParameters` event - pub fn change_parameters_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - ChangeParametersFilter, - > { - self.0.event() - } - ///Gets the contract's `Collect` event - pub fn collect_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, CollectFilter> { - self.0.event() - } - ///Gets the contract's `CreatePair` event - pub fn create_pair_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - CreatePairFilter, - > { - self.0.event() - } - ///Gets the contract's `CreatePool` event - pub fn create_pool_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - CreatePoolFilter, - > { - self.0.event() - } - ///Gets the contract's `Deallocate` event - pub fn deallocate_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - DeallocateFilter, - > { - self.0.event() - } - ///Gets the contract's `DecreaseReserveBalance` event - pub fn decrease_reserve_balance_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - DecreaseReserveBalanceFilter, - > { - self.0.event() - } - ///Gets the contract's `DecreaseUserBalance` event - pub fn decrease_user_balance_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - DecreaseUserBalanceFilter, - > { - self.0.event() - } - ///Gets the contract's `Deposit` event - pub fn deposit_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, DepositFilter> { - self.0.event() - } - ///Gets the contract's `IncreaseReserveBalance` event - pub fn increase_reserve_balance_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - IncreaseReserveBalanceFilter, - > { - self.0.event() - } - ///Gets the contract's `IncreaseUserBalance` event - pub fn increase_user_balance_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - IncreaseUserBalanceFilter, - > { - self.0.event() - } - ///Gets the contract's `Swap` event - pub fn swap_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, SwapFilter> { - self.0.event() - } - ///Gets the contract's `UpdateProtocolFee` event - pub fn update_protocol_fee_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - UpdateProtocolFeeFilter, - > { - self.0.event() - } - /// Returns an `Event` builder for all the events of this contract. - pub fn events( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - IPortfolioEventsEvents, - > { - self.0.event_with_filter(::core::default::Default::default()) - } - } - impl From<::ethers::contract::Contract> - for IPortfolioEvents { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent( - name = "Allocate", - abi = "Allocate(uint64,address,address,uint256,uint256,uint256)" - )] - pub struct AllocateFilter { - #[ethevent(indexed)] - pub pool_id: u64, - #[ethevent(indexed)] - pub asset: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub quote: ::ethers::core::types::Address, - pub delta_asset: ::ethers::core::types::U256, - pub delta_quote: ::ethers::core::types::U256, - pub delta_liquidity: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent( - name = "ChangeParameters", - abi = "ChangeParameters(uint64,uint16,uint16,uint16)" - )] - pub struct ChangeParametersFilter { - #[ethevent(indexed)] - pub pool_id: u64, - #[ethevent(indexed)] - pub priority_fee: u16, - #[ethevent(indexed)] - pub fee: u16, - pub jit: u16, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent( - name = "Collect", - abi = "Collect(uint64,address,uint256,address,uint256,address)" - )] - pub struct CollectFilter { - pub pool_id: u64, - #[ethevent(indexed)] - pub account: ::ethers::core::types::Address, - pub fee_asset_dec: ::ethers::core::types::U256, - #[ethevent(indexed)] - pub asset: ::ethers::core::types::Address, - pub fee_quote_dec: ::ethers::core::types::U256, - #[ethevent(indexed)] - pub quote: ::ethers::core::types::Address, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent( - name = "CreatePair", - abi = "CreatePair(uint24,address,address,uint8,uint8)" - )] - pub struct CreatePairFilter { - #[ethevent(indexed)] - pub pair_id: u32, - #[ethevent(indexed)] - pub asset: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub quote: ::ethers::core::types::Address, - pub decimals_asset: u8, - pub decimals_quote: u8, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent( - name = "CreatePool", - abi = "CreatePool(uint64,bool,address,address,uint256)" - )] - pub struct CreatePoolFilter { - #[ethevent(indexed)] - pub pool_id: u64, - pub is_mutable: bool, - #[ethevent(indexed)] - pub asset: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub quote: ::ethers::core::types::Address, - pub price: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent( - name = "Deallocate", - abi = "Deallocate(uint64,address,address,uint256,uint256,uint256)" - )] - pub struct DeallocateFilter { - #[ethevent(indexed)] - pub pool_id: u64, - #[ethevent(indexed)] - pub asset: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub quote: ::ethers::core::types::Address, - pub delta_asset: ::ethers::core::types::U256, - pub delta_quote: ::ethers::core::types::U256, - pub delta_liquidity: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent( - name = "DecreaseReserveBalance", - abi = "DecreaseReserveBalance(address,uint256)" - )] - pub struct DecreaseReserveBalanceFilter { - #[ethevent(indexed)] - pub token: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent( - name = "DecreaseUserBalance", - abi = "DecreaseUserBalance(address,address,uint256)" - )] - pub struct DecreaseUserBalanceFilter { - #[ethevent(indexed)] - pub account: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub token: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "Deposit", abi = "Deposit(address,uint256)")] - pub struct DepositFilter { - #[ethevent(indexed)] - pub account: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent( - name = "IncreaseReserveBalance", - abi = "IncreaseReserveBalance(address,uint256)" - )] - pub struct IncreaseReserveBalanceFilter { - #[ethevent(indexed)] - pub token: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent( - name = "IncreaseUserBalance", - abi = "IncreaseUserBalance(address,address,uint256)" - )] - pub struct IncreaseUserBalanceFilter { - #[ethevent(indexed)] - pub account: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub token: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent( - name = "Swap", - abi = "Swap(uint64,uint256,address,uint256,address,uint256,uint256,int256)" - )] - pub struct SwapFilter { - #[ethevent(indexed)] - pub pool_id: u64, - pub price: ::ethers::core::types::U256, - #[ethevent(indexed)] - pub sell_asset: ::ethers::core::types::Address, - pub input: ::ethers::core::types::U256, - #[ethevent(indexed)] - pub token_out: ::ethers::core::types::Address, - pub output: ::ethers::core::types::U256, - pub fee_amount_dec: ::ethers::core::types::U256, - pub invariant_wad: ::ethers::core::types::I256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "UpdateProtocolFee", abi = "UpdateProtocolFee(uint256,uint256)")] - pub struct UpdateProtocolFeeFilter { - pub prev_fee: ::ethers::core::types::U256, - pub next_fee: ::ethers::core::types::U256, - } - ///Container type for all of the contract's events - #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] - pub enum IPortfolioEventsEvents { - AllocateFilter(AllocateFilter), - ChangeParametersFilter(ChangeParametersFilter), - CollectFilter(CollectFilter), - CreatePairFilter(CreatePairFilter), - CreatePoolFilter(CreatePoolFilter), - DeallocateFilter(DeallocateFilter), - DecreaseReserveBalanceFilter(DecreaseReserveBalanceFilter), - DecreaseUserBalanceFilter(DecreaseUserBalanceFilter), - DepositFilter(DepositFilter), - IncreaseReserveBalanceFilter(IncreaseReserveBalanceFilter), - IncreaseUserBalanceFilter(IncreaseUserBalanceFilter), - SwapFilter(SwapFilter), - UpdateProtocolFeeFilter(UpdateProtocolFeeFilter), - } - impl ::ethers::contract::EthLogDecode for IPortfolioEventsEvents { - fn decode_log( - log: &::ethers::core::abi::RawLog, - ) -> ::core::result::Result { - if let Ok(decoded) = AllocateFilter::decode_log(log) { - return Ok(IPortfolioEventsEvents::AllocateFilter(decoded)); - } - if let Ok(decoded) = ChangeParametersFilter::decode_log(log) { - return Ok(IPortfolioEventsEvents::ChangeParametersFilter(decoded)); - } - if let Ok(decoded) = CollectFilter::decode_log(log) { - return Ok(IPortfolioEventsEvents::CollectFilter(decoded)); - } - if let Ok(decoded) = CreatePairFilter::decode_log(log) { - return Ok(IPortfolioEventsEvents::CreatePairFilter(decoded)); - } - if let Ok(decoded) = CreatePoolFilter::decode_log(log) { - return Ok(IPortfolioEventsEvents::CreatePoolFilter(decoded)); - } - if let Ok(decoded) = DeallocateFilter::decode_log(log) { - return Ok(IPortfolioEventsEvents::DeallocateFilter(decoded)); - } - if let Ok(decoded) = DecreaseReserveBalanceFilter::decode_log(log) { - return Ok(IPortfolioEventsEvents::DecreaseReserveBalanceFilter(decoded)); - } - if let Ok(decoded) = DecreaseUserBalanceFilter::decode_log(log) { - return Ok(IPortfolioEventsEvents::DecreaseUserBalanceFilter(decoded)); - } - if let Ok(decoded) = DepositFilter::decode_log(log) { - return Ok(IPortfolioEventsEvents::DepositFilter(decoded)); - } - if let Ok(decoded) = IncreaseReserveBalanceFilter::decode_log(log) { - return Ok(IPortfolioEventsEvents::IncreaseReserveBalanceFilter(decoded)); - } - if let Ok(decoded) = IncreaseUserBalanceFilter::decode_log(log) { - return Ok(IPortfolioEventsEvents::IncreaseUserBalanceFilter(decoded)); - } - if let Ok(decoded) = SwapFilter::decode_log(log) { - return Ok(IPortfolioEventsEvents::SwapFilter(decoded)); - } - if let Ok(decoded) = UpdateProtocolFeeFilter::decode_log(log) { - return Ok(IPortfolioEventsEvents::UpdateProtocolFeeFilter(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData) - } - } - impl ::core::fmt::Display for IPortfolioEventsEvents { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::AllocateFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::ChangeParametersFilter(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::CollectFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::CreatePairFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::CreatePoolFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::DeallocateFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::DecreaseReserveBalanceFilter(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::DecreaseUserBalanceFilter(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::DepositFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::IncreaseReserveBalanceFilter(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::IncreaseUserBalanceFilter(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::SwapFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::UpdateProtocolFeeFilter(element) => { - ::core::fmt::Display::fmt(element, f) - } - } - } - } - impl ::core::convert::From for IPortfolioEventsEvents { - fn from(value: AllocateFilter) -> Self { - Self::AllocateFilter(value) - } - } - impl ::core::convert::From for IPortfolioEventsEvents { - fn from(value: ChangeParametersFilter) -> Self { - Self::ChangeParametersFilter(value) - } - } - impl ::core::convert::From for IPortfolioEventsEvents { - fn from(value: CollectFilter) -> Self { - Self::CollectFilter(value) - } - } - impl ::core::convert::From for IPortfolioEventsEvents { - fn from(value: CreatePairFilter) -> Self { - Self::CreatePairFilter(value) - } - } - impl ::core::convert::From for IPortfolioEventsEvents { - fn from(value: CreatePoolFilter) -> Self { - Self::CreatePoolFilter(value) - } - } - impl ::core::convert::From for IPortfolioEventsEvents { - fn from(value: DeallocateFilter) -> Self { - Self::DeallocateFilter(value) - } - } - impl ::core::convert::From for IPortfolioEventsEvents { - fn from(value: DecreaseReserveBalanceFilter) -> Self { - Self::DecreaseReserveBalanceFilter(value) - } - } - impl ::core::convert::From for IPortfolioEventsEvents { - fn from(value: DecreaseUserBalanceFilter) -> Self { - Self::DecreaseUserBalanceFilter(value) - } - } - impl ::core::convert::From for IPortfolioEventsEvents { - fn from(value: DepositFilter) -> Self { - Self::DepositFilter(value) - } - } - impl ::core::convert::From for IPortfolioEventsEvents { - fn from(value: IncreaseReserveBalanceFilter) -> Self { - Self::IncreaseReserveBalanceFilter(value) - } - } - impl ::core::convert::From for IPortfolioEventsEvents { - fn from(value: IncreaseUserBalanceFilter) -> Self { - Self::IncreaseUserBalanceFilter(value) - } - } - impl ::core::convert::From for IPortfolioEventsEvents { - fn from(value: SwapFilter) -> Self { - Self::SwapFilter(value) - } - } - impl ::core::convert::From for IPortfolioEventsEvents { - fn from(value: UpdateProtocolFeeFilter) -> Self { - Self::UpdateProtocolFeeFilter(value) - } - } -} diff --git a/crates/bindings/src/i_portfolio_getters.rs b/crates/bindings/src/i_portfolio_getters.rs deleted file mode 100644 index 769b4bef..00000000 --- a/crates/bindings/src/i_portfolio_getters.rs +++ /dev/null @@ -1,1077 +0,0 @@ -pub use i_portfolio_getters::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types, -)] -pub mod i_portfolio_getters { - pub use super::super::shared_types::*; - #[rustfmt::skip] - const __ABI: &str = "[{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\",\"name\":\"VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"WETH\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"bool\",\"name\":\"sellAsset\",\"type\":\"bool\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getAmountOut\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"int128\",\"name\":\"deltaLiquidity\",\"type\":\"int128\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getLiquidityDeltas\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"deltaAsset\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"deltaQuote\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getMaxLiquidity\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"deltaLiquidity\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getNetBalance\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPairId\",\"outputs\":[{\"internalType\":\"uint24\",\"name\":\"pairId\",\"type\":\"uint24\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPairNonce\",\"outputs\":[{\"internalType\":\"uint24\",\"name\":\"\",\"type\":\"uint24\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"pairNonce\",\"type\":\"uint24\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPoolNonce\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPoolReserves\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getReserve\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getVirtualPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getVirtualReservesPerLiquidity\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"deltaAsset\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"deltaQuote\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"pairId\",\"type\":\"uint24\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"pairs\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"tokenAsset\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsAsset\",\"type\":\"uint8\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"tokenQuote\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsQuote\",\"type\":\"uint8\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"pools\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"virtualX\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"virtualY\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"liquidity\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint32\",\"name\":\"lastTimestamp\",\"type\":\"uint32\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"controller\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"invariantGrowthGlobal\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthGlobalAsset\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthGlobalQuote\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"struct PortfolioCurve\",\"name\":\"\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"uint128\",\"name\":\"maxPrice\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"jit\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"fee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"duration\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"volatility\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"priorityFee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint32\",\"name\":\"createdAt\",\"type\":\"uint32\",\"components\":[]},{\"internalType\":\"bool\",\"name\":\"perpetual\",\"type\":\"bool\",\"components\":[]}]},{\"internalType\":\"struct PortfolioPair\",\"name\":\"\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"address\",\"name\":\"tokenAsset\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsAsset\",\"type\":\"uint8\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"tokenQuote\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsQuote\",\"type\":\"uint8\",\"components\":[]}]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"positions\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"freeLiquidity\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint32\",\"name\":\"lastTimestamp\",\"type\":\"uint32\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"invariantGrowthLast\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthAssetLast\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthQuoteLast\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"tokensOwedAsset\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"tokensOwedQuote\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"invariantOwed\",\"type\":\"uint128\",\"components\":[]}]}]"; - ///The parsed JSON ABI of the contract. - pub static IPORTFOLIOGETTERS_ABI: ::ethers::contract::Lazy< - ::ethers::core::abi::Abi, - > = ::ethers::contract::Lazy::new(|| { - ::ethers::core::utils::__serde_json::from_str(__ABI) - .expect("ABI is always valid") - }); - pub struct IPortfolioGetters(::ethers::contract::Contract); - impl ::core::clone::Clone for IPortfolioGetters { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for IPortfolioGetters { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for IPortfolioGetters { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for IPortfolioGetters { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(stringify!(IPortfolioGetters)).field(&self.address()).finish() - } - } - impl IPortfolioGetters { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self( - ::ethers::contract::Contract::new( - address.into(), - IPORTFOLIOGETTERS_ABI.clone(), - client, - ), - ) - } - ///Calls the contract's `REGISTRY` (0x06433b1b) function - pub fn registry( - &self, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::ethers::core::types::Address, - > { - self.0 - .method_hash([6, 67, 59, 27], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `VERSION` (0xffa1ad74) function - pub fn version( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([255, 161, 173, 116], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `WETH` (0xad5c4648) function - pub fn weth( - &self, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::ethers::core::types::Address, - > { - self.0 - .method_hash([173, 92, 70, 72], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getAmountOut` (0x7dae4890) function - pub fn get_amount_out( - &self, - pool_id: u64, - sell_asset: bool, - amount_in: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([125, 174, 72, 144], (pool_id, sell_asset, amount_in)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getBalance` (0xd4fac45d) function - pub fn get_balance( - &self, - owner: ::ethers::core::types::Address, - token: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([212, 250, 196, 93], (owner, token)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getLiquidityDeltas` (0x8992f20a) function - pub fn get_liquidity_deltas( - &self, - pool_id: u64, - delta_liquidity: i128, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([137, 146, 242, 10], (pool_id, delta_liquidity)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getMaxLiquidity` (0xd6b7dec5) function - pub fn get_max_liquidity( - &self, - pool_id: u64, - delta_asset: ::ethers::core::types::U256, - delta_quote: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([214, 183, 222, 197], (pool_id, delta_asset, delta_quote)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getNetBalance` (0x4dc68a90) function - pub fn get_net_balance( - &self, - token: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([77, 198, 138, 144], token) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getPairId` (0x3f92a339) function - pub fn get_pair_id( - &self, - asset: ::ethers::core::types::Address, - quote: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([63, 146, 163, 57], (asset, quote)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getPairNonce` (0x078888d6) function - pub fn get_pair_nonce( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([7, 136, 136, 214], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getPoolNonce` (0xa5cd8a49) function - pub fn get_pool_nonce( - &self, - pair_nonce: u32, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([165, 205, 138, 73], pair_nonce) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getPoolReserves` (0x2afb9df8) function - pub fn get_pool_reserves( - &self, - pool_id: u64, - ) -> ::ethers::contract::builders::ContractCall< - M, - (::ethers::core::types::U256, ::ethers::core::types::U256), - > { - self.0 - .method_hash([42, 251, 157, 248], pool_id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getReserve` (0xc9a396e9) function - pub fn get_reserve( - &self, - token: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([201, 163, 150, 233], token) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getVirtualPrice` (0x61b7ea6a) function - pub fn get_virtual_price( - &self, - pool_id: u64, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([97, 183, 234, 106], pool_id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getVirtualReservesPerLiquidity` (0x1a4b905b) function - pub fn get_virtual_reserves_per_liquidity( - &self, - pool_id: u64, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([26, 75, 144, 91], pool_id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `pairs` (0x5e47663c) function - pub fn pairs( - &self, - pair_id: u32, - ) -> ::ethers::contract::builders::ContractCall< - M, - (::ethers::core::types::Address, u8, ::ethers::core::types::Address, u8), - > { - self.0 - .method_hash([94, 71, 102, 60], pair_id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `pools` (0x89a5f084) function - pub fn pools( - &self, - pool_id: u64, - ) -> ::ethers::contract::builders::ContractCall< - M, - ( - u128, - u128, - u128, - u32, - ::ethers::core::types::Address, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - PortfolioCurve, - PortfolioPair, - ), - > { - self.0 - .method_hash([137, 165, 240, 132], pool_id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `positions` (0xb68513ea) function - pub fn positions( - &self, - owner: ::ethers::core::types::Address, - pool_id: u64, - ) -> ::ethers::contract::builders::ContractCall< - M, - ( - u128, - u32, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - u128, - u128, - u128, - ), - > { - self.0 - .method_hash([182, 133, 19, 234], (owner, pool_id)) - .expect("method not found (this should never happen)") - } - } - impl From<::ethers::contract::Contract> - for IPortfolioGetters { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - ///Container type for all input parameters for the `REGISTRY` function with signature `REGISTRY()` and selector `0x06433b1b` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "REGISTRY", abi = "REGISTRY()")] - pub struct RegistryCall; - ///Container type for all input parameters for the `VERSION` function with signature `VERSION()` and selector `0xffa1ad74` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "VERSION", abi = "VERSION()")] - pub struct VersionCall; - ///Container type for all input parameters for the `WETH` function with signature `WETH()` and selector `0xad5c4648` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "WETH", abi = "WETH()")] - pub struct WethCall; - ///Container type for all input parameters for the `getAmountOut` function with signature `getAmountOut(uint64,bool,uint256)` and selector `0x7dae4890` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "getAmountOut", abi = "getAmountOut(uint64,bool,uint256)")] - pub struct GetAmountOutCall { - pub pool_id: u64, - pub sell_asset: bool, - pub amount_in: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `getBalance` function with signature `getBalance(address,address)` and selector `0xd4fac45d` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "getBalance", abi = "getBalance(address,address)")] - pub struct GetBalanceCall { - pub owner: ::ethers::core::types::Address, - pub token: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `getLiquidityDeltas` function with signature `getLiquidityDeltas(uint64,int128)` and selector `0x8992f20a` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "getLiquidityDeltas", abi = "getLiquidityDeltas(uint64,int128)")] - pub struct GetLiquidityDeltasCall { - pub pool_id: u64, - pub delta_liquidity: i128, - } - ///Container type for all input parameters for the `getMaxLiquidity` function with signature `getMaxLiquidity(uint64,uint256,uint256)` and selector `0xd6b7dec5` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "getMaxLiquidity", abi = "getMaxLiquidity(uint64,uint256,uint256)")] - pub struct GetMaxLiquidityCall { - pub pool_id: u64, - pub delta_asset: ::ethers::core::types::U256, - pub delta_quote: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `getNetBalance` function with signature `getNetBalance(address)` and selector `0x4dc68a90` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "getNetBalance", abi = "getNetBalance(address)")] - pub struct GetNetBalanceCall { - pub token: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `getPairId` function with signature `getPairId(address,address)` and selector `0x3f92a339` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "getPairId", abi = "getPairId(address,address)")] - pub struct GetPairIdCall { - pub asset: ::ethers::core::types::Address, - pub quote: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `getPairNonce` function with signature `getPairNonce()` and selector `0x078888d6` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "getPairNonce", abi = "getPairNonce()")] - pub struct GetPairNonceCall; - ///Container type for all input parameters for the `getPoolNonce` function with signature `getPoolNonce(uint24)` and selector `0xa5cd8a49` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "getPoolNonce", abi = "getPoolNonce(uint24)")] - pub struct GetPoolNonceCall { - pub pair_nonce: u32, - } - ///Container type for all input parameters for the `getPoolReserves` function with signature `getPoolReserves(uint64)` and selector `0x2afb9df8` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "getPoolReserves", abi = "getPoolReserves(uint64)")] - pub struct GetPoolReservesCall { - pub pool_id: u64, - } - ///Container type for all input parameters for the `getReserve` function with signature `getReserve(address)` and selector `0xc9a396e9` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "getReserve", abi = "getReserve(address)")] - pub struct GetReserveCall { - pub token: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `getVirtualPrice` function with signature `getVirtualPrice(uint64)` and selector `0x61b7ea6a` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "getVirtualPrice", abi = "getVirtualPrice(uint64)")] - pub struct GetVirtualPriceCall { - pub pool_id: u64, - } - ///Container type for all input parameters for the `getVirtualReservesPerLiquidity` function with signature `getVirtualReservesPerLiquidity(uint64)` and selector `0x1a4b905b` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall( - name = "getVirtualReservesPerLiquidity", - abi = "getVirtualReservesPerLiquidity(uint64)" - )] - pub struct GetVirtualReservesPerLiquidityCall { - pub pool_id: u64, - } - ///Container type for all input parameters for the `pairs` function with signature `pairs(uint24)` and selector `0x5e47663c` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "pairs", abi = "pairs(uint24)")] - pub struct PairsCall { - pub pair_id: u32, - } - ///Container type for all input parameters for the `pools` function with signature `pools(uint64)` and selector `0x89a5f084` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "pools", abi = "pools(uint64)")] - pub struct PoolsCall { - pub pool_id: u64, - } - ///Container type for all input parameters for the `positions` function with signature `positions(address,uint64)` and selector `0xb68513ea` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "positions", abi = "positions(address,uint64)")] - pub struct PositionsCall { - pub owner: ::ethers::core::types::Address, - pub pool_id: u64, - } - ///Container type for all of the contract's call - #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] - pub enum IPortfolioGettersCalls { - Registry(RegistryCall), - Version(VersionCall), - Weth(WethCall), - GetAmountOut(GetAmountOutCall), - GetBalance(GetBalanceCall), - GetLiquidityDeltas(GetLiquidityDeltasCall), - GetMaxLiquidity(GetMaxLiquidityCall), - GetNetBalance(GetNetBalanceCall), - GetPairId(GetPairIdCall), - GetPairNonce(GetPairNonceCall), - GetPoolNonce(GetPoolNonceCall), - GetPoolReserves(GetPoolReservesCall), - GetReserve(GetReserveCall), - GetVirtualPrice(GetVirtualPriceCall), - GetVirtualReservesPerLiquidity(GetVirtualReservesPerLiquidityCall), - Pairs(PairsCall), - Pools(PoolsCall), - Positions(PositionsCall), - } - impl ::ethers::core::abi::AbiDecode for IPortfolioGettersCalls { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Registry(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Version(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Weth(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::GetAmountOut(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::GetBalance(decoded)); - } - if let Ok(decoded) - = ::decode( - data, - ) { - return Ok(Self::GetLiquidityDeltas(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::GetMaxLiquidity(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::GetNetBalance(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::GetPairId(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::GetPairNonce(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::GetPoolNonce(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::GetPoolReserves(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::GetReserve(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::GetVirtualPrice(decoded)); - } - if let Ok(decoded) - = ::decode( - data, - ) { - return Ok(Self::GetVirtualReservesPerLiquidity(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Pairs(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Pools(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Positions(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for IPortfolioGettersCalls { - fn encode(self) -> Vec { - match self { - Self::Registry(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Version(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Weth(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetAmountOut(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::GetBalance(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::GetLiquidityDeltas(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::GetMaxLiquidity(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::GetNetBalance(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::GetPairId(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::GetPairNonce(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::GetPoolNonce(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::GetPoolReserves(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::GetReserve(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::GetVirtualPrice(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::GetVirtualReservesPerLiquidity(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Pairs(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Pools(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Positions(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - } - } - } - impl ::core::fmt::Display for IPortfolioGettersCalls { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::Registry(element) => ::core::fmt::Display::fmt(element, f), - Self::Version(element) => ::core::fmt::Display::fmt(element, f), - Self::Weth(element) => ::core::fmt::Display::fmt(element, f), - Self::GetAmountOut(element) => ::core::fmt::Display::fmt(element, f), - Self::GetBalance(element) => ::core::fmt::Display::fmt(element, f), - Self::GetLiquidityDeltas(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::GetMaxLiquidity(element) => ::core::fmt::Display::fmt(element, f), - Self::GetNetBalance(element) => ::core::fmt::Display::fmt(element, f), - Self::GetPairId(element) => ::core::fmt::Display::fmt(element, f), - Self::GetPairNonce(element) => ::core::fmt::Display::fmt(element, f), - Self::GetPoolNonce(element) => ::core::fmt::Display::fmt(element, f), - Self::GetPoolReserves(element) => ::core::fmt::Display::fmt(element, f), - Self::GetReserve(element) => ::core::fmt::Display::fmt(element, f), - Self::GetVirtualPrice(element) => ::core::fmt::Display::fmt(element, f), - Self::GetVirtualReservesPerLiquidity(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::Pairs(element) => ::core::fmt::Display::fmt(element, f), - Self::Pools(element) => ::core::fmt::Display::fmt(element, f), - Self::Positions(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for IPortfolioGettersCalls { - fn from(value: RegistryCall) -> Self { - Self::Registry(value) - } - } - impl ::core::convert::From for IPortfolioGettersCalls { - fn from(value: VersionCall) -> Self { - Self::Version(value) - } - } - impl ::core::convert::From for IPortfolioGettersCalls { - fn from(value: WethCall) -> Self { - Self::Weth(value) - } - } - impl ::core::convert::From for IPortfolioGettersCalls { - fn from(value: GetAmountOutCall) -> Self { - Self::GetAmountOut(value) - } - } - impl ::core::convert::From for IPortfolioGettersCalls { - fn from(value: GetBalanceCall) -> Self { - Self::GetBalance(value) - } - } - impl ::core::convert::From for IPortfolioGettersCalls { - fn from(value: GetLiquidityDeltasCall) -> Self { - Self::GetLiquidityDeltas(value) - } - } - impl ::core::convert::From for IPortfolioGettersCalls { - fn from(value: GetMaxLiquidityCall) -> Self { - Self::GetMaxLiquidity(value) - } - } - impl ::core::convert::From for IPortfolioGettersCalls { - fn from(value: GetNetBalanceCall) -> Self { - Self::GetNetBalance(value) - } - } - impl ::core::convert::From for IPortfolioGettersCalls { - fn from(value: GetPairIdCall) -> Self { - Self::GetPairId(value) - } - } - impl ::core::convert::From for IPortfolioGettersCalls { - fn from(value: GetPairNonceCall) -> Self { - Self::GetPairNonce(value) - } - } - impl ::core::convert::From for IPortfolioGettersCalls { - fn from(value: GetPoolNonceCall) -> Self { - Self::GetPoolNonce(value) - } - } - impl ::core::convert::From for IPortfolioGettersCalls { - fn from(value: GetPoolReservesCall) -> Self { - Self::GetPoolReserves(value) - } - } - impl ::core::convert::From for IPortfolioGettersCalls { - fn from(value: GetReserveCall) -> Self { - Self::GetReserve(value) - } - } - impl ::core::convert::From for IPortfolioGettersCalls { - fn from(value: GetVirtualPriceCall) -> Self { - Self::GetVirtualPrice(value) - } - } - impl ::core::convert::From - for IPortfolioGettersCalls { - fn from(value: GetVirtualReservesPerLiquidityCall) -> Self { - Self::GetVirtualReservesPerLiquidity(value) - } - } - impl ::core::convert::From for IPortfolioGettersCalls { - fn from(value: PairsCall) -> Self { - Self::Pairs(value) - } - } - impl ::core::convert::From for IPortfolioGettersCalls { - fn from(value: PoolsCall) -> Self { - Self::Pools(value) - } - } - impl ::core::convert::From for IPortfolioGettersCalls { - fn from(value: PositionsCall) -> Self { - Self::Positions(value) - } - } - ///Container type for all return fields from the `REGISTRY` function with signature `REGISTRY()` and selector `0x06433b1b` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct RegistryReturn(pub ::ethers::core::types::Address); - ///Container type for all return fields from the `VERSION` function with signature `VERSION()` and selector `0xffa1ad74` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct VersionReturn(pub ::std::string::String); - ///Container type for all return fields from the `WETH` function with signature `WETH()` and selector `0xad5c4648` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct WethReturn(pub ::ethers::core::types::Address); - ///Container type for all return fields from the `getAmountOut` function with signature `getAmountOut(uint64,bool,uint256)` and selector `0x7dae4890` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct GetAmountOutReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `getBalance` function with signature `getBalance(address,address)` and selector `0xd4fac45d` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct GetBalanceReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `getLiquidityDeltas` function with signature `getLiquidityDeltas(uint64,int128)` and selector `0x8992f20a` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct GetLiquidityDeltasReturn { - pub delta_asset: u128, - pub delta_quote: u128, - } - ///Container type for all return fields from the `getMaxLiquidity` function with signature `getMaxLiquidity(uint64,uint256,uint256)` and selector `0xd6b7dec5` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct GetMaxLiquidityReturn { - pub delta_liquidity: u128, - } - ///Container type for all return fields from the `getNetBalance` function with signature `getNetBalance(address)` and selector `0x4dc68a90` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct GetNetBalanceReturn(pub ::ethers::core::types::I256); - ///Container type for all return fields from the `getPairId` function with signature `getPairId(address,address)` and selector `0x3f92a339` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct GetPairIdReturn { - pub pair_id: u32, - } - ///Container type for all return fields from the `getPairNonce` function with signature `getPairNonce()` and selector `0x078888d6` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct GetPairNonceReturn(pub u32); - ///Container type for all return fields from the `getPoolNonce` function with signature `getPoolNonce(uint24)` and selector `0xa5cd8a49` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct GetPoolNonceReturn(pub u32); - ///Container type for all return fields from the `getPoolReserves` function with signature `getPoolReserves(uint64)` and selector `0x2afb9df8` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct GetPoolReservesReturn { - pub delta_asset: ::ethers::core::types::U256, - pub delta_quote: ::ethers::core::types::U256, - } - ///Container type for all return fields from the `getReserve` function with signature `getReserve(address)` and selector `0xc9a396e9` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct GetReserveReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `getVirtualPrice` function with signature `getVirtualPrice(uint64)` and selector `0x61b7ea6a` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct GetVirtualPriceReturn { - pub price: ::ethers::core::types::U256, - } - ///Container type for all return fields from the `getVirtualReservesPerLiquidity` function with signature `getVirtualReservesPerLiquidity(uint64)` and selector `0x1a4b905b` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct GetVirtualReservesPerLiquidityReturn { - pub delta_asset: u128, - pub delta_quote: u128, - } - ///Container type for all return fields from the `pairs` function with signature `pairs(uint24)` and selector `0x5e47663c` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct PairsReturn { - pub token_asset: ::ethers::core::types::Address, - pub decimals_asset: u8, - pub token_quote: ::ethers::core::types::Address, - pub decimals_quote: u8, - } - ///Container type for all return fields from the `pools` function with signature `pools(uint64)` and selector `0x89a5f084` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct PoolsReturn { - pub virtual_x: u128, - pub virtual_y: u128, - pub liquidity: u128, - pub last_timestamp: u32, - pub controller: ::ethers::core::types::Address, - pub invariant_growth_global: ::ethers::core::types::U256, - pub fee_growth_global_asset: ::ethers::core::types::U256, - pub fee_growth_global_quote: ::ethers::core::types::U256, - pub p8: PortfolioCurve, - pub p9: PortfolioPair, - } - ///Container type for all return fields from the `positions` function with signature `positions(address,uint64)` and selector `0xb68513ea` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct PositionsReturn { - pub free_liquidity: u128, - pub last_timestamp: u32, - pub invariant_growth_last: ::ethers::core::types::U256, - pub fee_growth_asset_last: ::ethers::core::types::U256, - pub fee_growth_quote_last: ::ethers::core::types::U256, - pub tokens_owed_asset: u128, - pub tokens_owed_quote: u128, - pub invariant_owed: u128, - } -} diff --git a/crates/bindings/src/i_portfolio_registry.rs b/crates/bindings/src/i_portfolio_registry.rs deleted file mode 100644 index 4726a26f..00000000 --- a/crates/bindings/src/i_portfolio_registry.rs +++ /dev/null @@ -1,102 +0,0 @@ -pub use i_portfolio_registry::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types, -)] -pub mod i_portfolio_registry { - #[rustfmt::skip] - const __ABI: &str = "[{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"controller\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]}]"; - ///The parsed JSON ABI of the contract. - pub static IPORTFOLIOREGISTRY_ABI: ::ethers::contract::Lazy< - ::ethers::core::abi::Abi, - > = ::ethers::contract::Lazy::new(|| { - ::ethers::core::utils::__serde_json::from_str(__ABI) - .expect("ABI is always valid") - }); - pub struct IPortfolioRegistry(::ethers::contract::Contract); - impl ::core::clone::Clone for IPortfolioRegistry { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for IPortfolioRegistry { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for IPortfolioRegistry { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for IPortfolioRegistry { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(stringify!(IPortfolioRegistry)).field(&self.address()).finish() - } - } - impl IPortfolioRegistry { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self( - ::ethers::contract::Contract::new( - address.into(), - IPORTFOLIOREGISTRY_ABI.clone(), - client, - ), - ) - } - ///Calls the contract's `controller` (0xf77c4791) function - pub fn controller( - &self, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::ethers::core::types::Address, - > { - self.0 - .method_hash([247, 124, 71, 145], ()) - .expect("method not found (this should never happen)") - } - } - impl From<::ethers::contract::Contract> - for IPortfolioRegistry { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - ///Container type for all input parameters for the `controller` function with signature `controller()` and selector `0xf77c4791` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "controller", abi = "controller()")] - pub struct ControllerCall; - ///Container type for all return fields from the `controller` function with signature `controller()` and selector `0xf77c4791` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct ControllerReturn(pub ::ethers::core::types::Address); -} diff --git a/crates/bindings/src/ierc20.rs b/crates/bindings/src/ierc20.rs deleted file mode 100644 index b8bfa1f2..00000000 --- a/crates/bindings/src/ierc20.rs +++ /dev/null @@ -1,535 +0,0 @@ -pub use ierc20::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types, -)] -pub mod ierc20 { - #[rustfmt::skip] - const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Approval\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Transfer\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]}]"; - ///The parsed JSON ABI of the contract. - pub static IERC20_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| - ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); - pub struct IERC20(::ethers::contract::Contract); - impl ::core::clone::Clone for IERC20 { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for IERC20 { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for IERC20 { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for IERC20 { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(stringify!(IERC20)).field(&self.address()).finish() - } - } - impl IERC20 { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self( - ::ethers::contract::Contract::new( - address.into(), - IERC20_ABI.clone(), - client, - ), - ) - } - ///Calls the contract's `allowance` (0xdd62ed3e) function - pub fn allowance( - &self, - owner: ::ethers::core::types::Address, - spender: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([221, 98, 237, 62], (owner, spender)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `approve` (0x095ea7b3) function - pub fn approve( - &self, - spender: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([9, 94, 167, 179], (spender, amount)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `balanceOf` (0x70a08231) function - pub fn balance_of( - &self, - account: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([112, 160, 130, 49], account) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `decimals` (0x313ce567) function - pub fn decimals(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([49, 60, 229, 103], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `totalSupply` (0x18160ddd) function - pub fn total_supply( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([24, 22, 13, 221], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `transfer` (0xa9059cbb) function - pub fn transfer( - &self, - recipient: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([169, 5, 156, 187], (recipient, amount)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `transferFrom` (0x23b872dd) function - pub fn transfer_from( - &self, - sender: ::ethers::core::types::Address, - recipient: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([35, 184, 114, 221], (sender, recipient, amount)) - .expect("method not found (this should never happen)") - } - ///Gets the contract's `Approval` event - pub fn approval_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - ApprovalFilter, - > { - self.0.event() - } - ///Gets the contract's `Transfer` event - pub fn transfer_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - TransferFilter, - > { - self.0.event() - } - /// Returns an `Event` builder for all the events of this contract. - pub fn events( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, IERC20Events> { - self.0.event_with_filter(::core::default::Default::default()) - } - } - impl From<::ethers::contract::Contract> - for IERC20 { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "Approval", abi = "Approval(address,address,uint256)")] - pub struct ApprovalFilter { - #[ethevent(indexed)] - pub owner: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub spender: ::ethers::core::types::Address, - pub value: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "Transfer", abi = "Transfer(address,address,uint256)")] - pub struct TransferFilter { - #[ethevent(indexed)] - pub from: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub to: ::ethers::core::types::Address, - pub value: ::ethers::core::types::U256, - } - ///Container type for all of the contract's events - #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] - pub enum IERC20Events { - ApprovalFilter(ApprovalFilter), - TransferFilter(TransferFilter), - } - impl ::ethers::contract::EthLogDecode for IERC20Events { - fn decode_log( - log: &::ethers::core::abi::RawLog, - ) -> ::core::result::Result { - if let Ok(decoded) = ApprovalFilter::decode_log(log) { - return Ok(IERC20Events::ApprovalFilter(decoded)); - } - if let Ok(decoded) = TransferFilter::decode_log(log) { - return Ok(IERC20Events::TransferFilter(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData) - } - } - impl ::core::fmt::Display for IERC20Events { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::ApprovalFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::TransferFilter(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for IERC20Events { - fn from(value: ApprovalFilter) -> Self { - Self::ApprovalFilter(value) - } - } - impl ::core::convert::From for IERC20Events { - fn from(value: TransferFilter) -> Self { - Self::TransferFilter(value) - } - } - ///Container type for all input parameters for the `allowance` function with signature `allowance(address,address)` and selector `0xdd62ed3e` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "allowance", abi = "allowance(address,address)")] - pub struct AllowanceCall { - pub owner: ::ethers::core::types::Address, - pub spender: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "approve", abi = "approve(address,uint256)")] - pub struct ApproveCall { - pub spender: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "balanceOf", abi = "balanceOf(address)")] - pub struct BalanceOfCall { - pub account: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `decimals` function with signature `decimals()` and selector `0x313ce567` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "decimals", abi = "decimals()")] - pub struct DecimalsCall; - ///Container type for all input parameters for the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "totalSupply", abi = "totalSupply()")] - pub struct TotalSupplyCall; - ///Container type for all input parameters for the `transfer` function with signature `transfer(address,uint256)` and selector `0xa9059cbb` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "transfer", abi = "transfer(address,uint256)")] - pub struct TransferCall { - pub recipient: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "transferFrom", abi = "transferFrom(address,address,uint256)")] - pub struct TransferFromCall { - pub sender: ::ethers::core::types::Address, - pub recipient: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - ///Container type for all of the contract's call - #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] - pub enum IERC20Calls { - Allowance(AllowanceCall), - Approve(ApproveCall), - BalanceOf(BalanceOfCall), - Decimals(DecimalsCall), - TotalSupply(TotalSupplyCall), - Transfer(TransferCall), - TransferFrom(TransferFromCall), - } - impl ::ethers::core::abi::AbiDecode for IERC20Calls { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Allowance(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Approve(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::BalanceOf(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Decimals(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::TotalSupply(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Transfer(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::TransferFrom(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for IERC20Calls { - fn encode(self) -> Vec { - match self { - Self::Allowance(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Approve(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::BalanceOf(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Decimals(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::TotalSupply(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Transfer(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::TransferFrom(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - } - } - } - impl ::core::fmt::Display for IERC20Calls { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::Allowance(element) => ::core::fmt::Display::fmt(element, f), - Self::Approve(element) => ::core::fmt::Display::fmt(element, f), - Self::BalanceOf(element) => ::core::fmt::Display::fmt(element, f), - Self::Decimals(element) => ::core::fmt::Display::fmt(element, f), - Self::TotalSupply(element) => ::core::fmt::Display::fmt(element, f), - Self::Transfer(element) => ::core::fmt::Display::fmt(element, f), - Self::TransferFrom(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for IERC20Calls { - fn from(value: AllowanceCall) -> Self { - Self::Allowance(value) - } - } - impl ::core::convert::From for IERC20Calls { - fn from(value: ApproveCall) -> Self { - Self::Approve(value) - } - } - impl ::core::convert::From for IERC20Calls { - fn from(value: BalanceOfCall) -> Self { - Self::BalanceOf(value) - } - } - impl ::core::convert::From for IERC20Calls { - fn from(value: DecimalsCall) -> Self { - Self::Decimals(value) - } - } - impl ::core::convert::From for IERC20Calls { - fn from(value: TotalSupplyCall) -> Self { - Self::TotalSupply(value) - } - } - impl ::core::convert::From for IERC20Calls { - fn from(value: TransferCall) -> Self { - Self::Transfer(value) - } - } - impl ::core::convert::From for IERC20Calls { - fn from(value: TransferFromCall) -> Self { - Self::TransferFrom(value) - } - } - ///Container type for all return fields from the `allowance` function with signature `allowance(address,address)` and selector `0xdd62ed3e` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct AllowanceReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct ApproveReturn(pub bool); - ///Container type for all return fields from the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct BalanceOfReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `decimals` function with signature `decimals()` and selector `0x313ce567` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct DecimalsReturn(pub u8); - ///Container type for all return fields from the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct TotalSupplyReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `transfer` function with signature `transfer(address,uint256)` and selector `0xa9059cbb` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct TransferReturn(pub bool); - ///Container type for all return fields from the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct TransferFromReturn(pub bool); -} diff --git a/crates/bindings/src/ierc20_metadata.rs b/crates/bindings/src/ierc20_metadata.rs deleted file mode 100644 index 30da2183..00000000 --- a/crates/bindings/src/ierc20_metadata.rs +++ /dev/null @@ -1,629 +0,0 @@ -pub use ierc20_metadata::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types, -)] -pub mod ierc20_metadata { - #[rustfmt::skip] - const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Approval\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Transfer\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]}]"; - ///The parsed JSON ABI of the contract. - pub static IERC20METADATA_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| - ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); - pub struct IERC20Metadata(::ethers::contract::Contract); - impl ::core::clone::Clone for IERC20Metadata { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for IERC20Metadata { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for IERC20Metadata { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for IERC20Metadata { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(stringify!(IERC20Metadata)).field(&self.address()).finish() - } - } - impl IERC20Metadata { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self( - ::ethers::contract::Contract::new( - address.into(), - IERC20METADATA_ABI.clone(), - client, - ), - ) - } - ///Calls the contract's `allowance` (0xdd62ed3e) function - pub fn allowance( - &self, - owner: ::ethers::core::types::Address, - spender: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([221, 98, 237, 62], (owner, spender)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `approve` (0x095ea7b3) function - pub fn approve( - &self, - spender: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([9, 94, 167, 179], (spender, amount)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `balanceOf` (0x70a08231) function - pub fn balance_of( - &self, - account: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([112, 160, 130, 49], account) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `decimals` (0x313ce567) function - pub fn decimals(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([49, 60, 229, 103], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `name` (0x06fdde03) function - pub fn name( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([6, 253, 222, 3], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `symbol` (0x95d89b41) function - pub fn symbol( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([149, 216, 155, 65], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `totalSupply` (0x18160ddd) function - pub fn total_supply( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([24, 22, 13, 221], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `transfer` (0xa9059cbb) function - pub fn transfer( - &self, - to: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([169, 5, 156, 187], (to, amount)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `transferFrom` (0x23b872dd) function - pub fn transfer_from( - &self, - from: ::ethers::core::types::Address, - to: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([35, 184, 114, 221], (from, to, amount)) - .expect("method not found (this should never happen)") - } - ///Gets the contract's `Approval` event - pub fn approval_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - ApprovalFilter, - > { - self.0.event() - } - ///Gets the contract's `Transfer` event - pub fn transfer_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - TransferFilter, - > { - self.0.event() - } - /// Returns an `Event` builder for all the events of this contract. - pub fn events( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - IERC20MetadataEvents, - > { - self.0.event_with_filter(::core::default::Default::default()) - } - } - impl From<::ethers::contract::Contract> - for IERC20Metadata { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "Approval", abi = "Approval(address,address,uint256)")] - pub struct ApprovalFilter { - #[ethevent(indexed)] - pub owner: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub spender: ::ethers::core::types::Address, - pub value: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "Transfer", abi = "Transfer(address,address,uint256)")] - pub struct TransferFilter { - #[ethevent(indexed)] - pub from: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub to: ::ethers::core::types::Address, - pub value: ::ethers::core::types::U256, - } - ///Container type for all of the contract's events - #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] - pub enum IERC20MetadataEvents { - ApprovalFilter(ApprovalFilter), - TransferFilter(TransferFilter), - } - impl ::ethers::contract::EthLogDecode for IERC20MetadataEvents { - fn decode_log( - log: &::ethers::core::abi::RawLog, - ) -> ::core::result::Result { - if let Ok(decoded) = ApprovalFilter::decode_log(log) { - return Ok(IERC20MetadataEvents::ApprovalFilter(decoded)); - } - if let Ok(decoded) = TransferFilter::decode_log(log) { - return Ok(IERC20MetadataEvents::TransferFilter(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData) - } - } - impl ::core::fmt::Display for IERC20MetadataEvents { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::ApprovalFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::TransferFilter(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for IERC20MetadataEvents { - fn from(value: ApprovalFilter) -> Self { - Self::ApprovalFilter(value) - } - } - impl ::core::convert::From for IERC20MetadataEvents { - fn from(value: TransferFilter) -> Self { - Self::TransferFilter(value) - } - } - ///Container type for all input parameters for the `allowance` function with signature `allowance(address,address)` and selector `0xdd62ed3e` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "allowance", abi = "allowance(address,address)")] - pub struct AllowanceCall { - pub owner: ::ethers::core::types::Address, - pub spender: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "approve", abi = "approve(address,uint256)")] - pub struct ApproveCall { - pub spender: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "balanceOf", abi = "balanceOf(address)")] - pub struct BalanceOfCall { - pub account: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `decimals` function with signature `decimals()` and selector `0x313ce567` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "decimals", abi = "decimals()")] - pub struct DecimalsCall; - ///Container type for all input parameters for the `name` function with signature `name()` and selector `0x06fdde03` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "name", abi = "name()")] - pub struct NameCall; - ///Container type for all input parameters for the `symbol` function with signature `symbol()` and selector `0x95d89b41` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "symbol", abi = "symbol()")] - pub struct SymbolCall; - ///Container type for all input parameters for the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "totalSupply", abi = "totalSupply()")] - pub struct TotalSupplyCall; - ///Container type for all input parameters for the `transfer` function with signature `transfer(address,uint256)` and selector `0xa9059cbb` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "transfer", abi = "transfer(address,uint256)")] - pub struct TransferCall { - pub to: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "transferFrom", abi = "transferFrom(address,address,uint256)")] - pub struct TransferFromCall { - pub from: ::ethers::core::types::Address, - pub to: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - ///Container type for all of the contract's call - #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] - pub enum IERC20MetadataCalls { - Allowance(AllowanceCall), - Approve(ApproveCall), - BalanceOf(BalanceOfCall), - Decimals(DecimalsCall), - Name(NameCall), - Symbol(SymbolCall), - TotalSupply(TotalSupplyCall), - Transfer(TransferCall), - TransferFrom(TransferFromCall), - } - impl ::ethers::core::abi::AbiDecode for IERC20MetadataCalls { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Allowance(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Approve(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::BalanceOf(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Decimals(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Name(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Symbol(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::TotalSupply(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Transfer(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::TransferFrom(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for IERC20MetadataCalls { - fn encode(self) -> Vec { - match self { - Self::Allowance(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Approve(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::BalanceOf(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Decimals(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Name(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Symbol(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::TotalSupply(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Transfer(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::TransferFrom(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - } - } - } - impl ::core::fmt::Display for IERC20MetadataCalls { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::Allowance(element) => ::core::fmt::Display::fmt(element, f), - Self::Approve(element) => ::core::fmt::Display::fmt(element, f), - Self::BalanceOf(element) => ::core::fmt::Display::fmt(element, f), - Self::Decimals(element) => ::core::fmt::Display::fmt(element, f), - Self::Name(element) => ::core::fmt::Display::fmt(element, f), - Self::Symbol(element) => ::core::fmt::Display::fmt(element, f), - Self::TotalSupply(element) => ::core::fmt::Display::fmt(element, f), - Self::Transfer(element) => ::core::fmt::Display::fmt(element, f), - Self::TransferFrom(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for IERC20MetadataCalls { - fn from(value: AllowanceCall) -> Self { - Self::Allowance(value) - } - } - impl ::core::convert::From for IERC20MetadataCalls { - fn from(value: ApproveCall) -> Self { - Self::Approve(value) - } - } - impl ::core::convert::From for IERC20MetadataCalls { - fn from(value: BalanceOfCall) -> Self { - Self::BalanceOf(value) - } - } - impl ::core::convert::From for IERC20MetadataCalls { - fn from(value: DecimalsCall) -> Self { - Self::Decimals(value) - } - } - impl ::core::convert::From for IERC20MetadataCalls { - fn from(value: NameCall) -> Self { - Self::Name(value) - } - } - impl ::core::convert::From for IERC20MetadataCalls { - fn from(value: SymbolCall) -> Self { - Self::Symbol(value) - } - } - impl ::core::convert::From for IERC20MetadataCalls { - fn from(value: TotalSupplyCall) -> Self { - Self::TotalSupply(value) - } - } - impl ::core::convert::From for IERC20MetadataCalls { - fn from(value: TransferCall) -> Self { - Self::Transfer(value) - } - } - impl ::core::convert::From for IERC20MetadataCalls { - fn from(value: TransferFromCall) -> Self { - Self::TransferFrom(value) - } - } - ///Container type for all return fields from the `allowance` function with signature `allowance(address,address)` and selector `0xdd62ed3e` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct AllowanceReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct ApproveReturn(pub bool); - ///Container type for all return fields from the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct BalanceOfReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `decimals` function with signature `decimals()` and selector `0x313ce567` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct DecimalsReturn(pub u8); - ///Container type for all return fields from the `name` function with signature `name()` and selector `0x06fdde03` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct NameReturn(pub ::std::string::String); - ///Container type for all return fields from the `symbol` function with signature `symbol()` and selector `0x95d89b41` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct SymbolReturn(pub ::std::string::String); - ///Container type for all return fields from the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct TotalSupplyReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `transfer` function with signature `transfer(address,uint256)` and selector `0xa9059cbb` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct TransferReturn(pub bool); - ///Container type for all return fields from the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct TransferFromReturn(pub bool); -} diff --git a/crates/bindings/src/infinitely_liquid_market.rs b/crates/bindings/src/infinitely_liquid_market.rs deleted file mode 100644 index 2441e5d7..00000000 --- a/crates/bindings/src/infinitely_liquid_market.rs +++ /dev/null @@ -1,608 +0,0 @@ -pub use infinitely_liquid_market::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types, -)] -pub mod infinitely_liquid_market { - #[rustfmt::skip] - const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"PriceChange\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"setPrice\",\"outputs\":[]}]"; - ///The parsed JSON ABI of the contract. - pub static INFINITELYLIQUIDMARKET_ABI: ::ethers::contract::Lazy< - ::ethers::core::abi::Abi, - > = ::ethers::contract::Lazy::new(|| { - ::ethers::core::utils::__serde_json::from_str(__ABI) - .expect("ABI is always valid") - }); - #[rustfmt::skip] - const __BYTECODE: &[u8] = &[ - 96, - 128, - 96, - 64, - 82, - 52, - 128, - 21, - 97, - 0, - 16, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 96, - 199, - 128, - 97, - 0, - 31, - 96, - 0, - 57, - 96, - 0, - 243, - 254, - 96, - 128, - 96, - 64, - 82, - 52, - 128, - 21, - 96, - 15, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 96, - 4, - 54, - 16, - 96, - 40, - 87, - 96, - 0, - 53, - 96, - 224, - 28, - 128, - 99, - 145, - 183, - 245, - 237, - 20, - 96, - 45, - 87, - 91, - 96, - 0, - 128, - 253, - 91, - 96, - 60, - 96, - 56, - 54, - 96, - 4, - 96, - 121, - 86, - 91, - 96, - 62, - 86, - 91, - 0, - 91, - 96, - 0, - 129, - 144, - 85, - 96, - 64, - 81, - 129, - 129, - 82, - 127, - 243, - 71, - 238, - 153, - 80, - 59, - 241, - 156, - 2, - 139, - 214, - 177, - 143, - 60, - 103, - 110, - 130, - 169, - 187, - 91, - 43, - 181, - 34, - 90, - 235, - 224, - 253, - 98, - 253, - 106, - 13, - 25, - 144, - 96, - 32, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 161, - 80, - 86, - 91, - 96, - 0, - 96, - 32, - 130, - 132, - 3, - 18, - 21, - 96, - 138, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 53, - 145, - 144, - 80, - 86, - 254, - 162, - 100, - 105, - 112, - 102, - 115, - 88, - 34, - 18, - 32, - 183, - 99, - 151, - 58, - 223, - 239, - 2, - 31, - 46, - 216, - 67, - 90, - 26, - 8, - 215, - 150, - 216, - 200, - 24, - 48, - 241, - 153, - 184, - 176, - 227, - 44, - 185, - 69, - 178, - 54, - 60, - 229, - 100, - 115, - 111, - 108, - 99, - 67, - 0, - 8, - 19, - 0, - 51, - ]; - ///The bytecode of the contract. - pub static INFINITELYLIQUIDMARKET_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( - __BYTECODE, - ); - #[rustfmt::skip] - const __DEPLOYED_BYTECODE: &[u8] = &[ - 96, - 128, - 96, - 64, - 82, - 52, - 128, - 21, - 96, - 15, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 96, - 4, - 54, - 16, - 96, - 40, - 87, - 96, - 0, - 53, - 96, - 224, - 28, - 128, - 99, - 145, - 183, - 245, - 237, - 20, - 96, - 45, - 87, - 91, - 96, - 0, - 128, - 253, - 91, - 96, - 60, - 96, - 56, - 54, - 96, - 4, - 96, - 121, - 86, - 91, - 96, - 62, - 86, - 91, - 0, - 91, - 96, - 0, - 129, - 144, - 85, - 96, - 64, - 81, - 129, - 129, - 82, - 127, - 243, - 71, - 238, - 153, - 80, - 59, - 241, - 156, - 2, - 139, - 214, - 177, - 143, - 60, - 103, - 110, - 130, - 169, - 187, - 91, - 43, - 181, - 34, - 90, - 235, - 224, - 253, - 98, - 253, - 106, - 13, - 25, - 144, - 96, - 32, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 161, - 80, - 86, - 91, - 96, - 0, - 96, - 32, - 130, - 132, - 3, - 18, - 21, - 96, - 138, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 53, - 145, - 144, - 80, - 86, - 254, - 162, - 100, - 105, - 112, - 102, - 115, - 88, - 34, - 18, - 32, - 183, - 99, - 151, - 58, - 223, - 239, - 2, - 31, - 46, - 216, - 67, - 90, - 26, - 8, - 215, - 150, - 216, - 200, - 24, - 48, - 241, - 153, - 184, - 176, - 227, - 44, - 185, - 69, - 178, - 54, - 60, - 229, - 100, - 115, - 111, - 108, - 99, - 67, - 0, - 8, - 19, - 0, - 51, - ]; - ///The deployed bytecode of the contract. - pub static INFINITELYLIQUIDMARKET_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( - __DEPLOYED_BYTECODE, - ); - pub struct InfinitelyLiquidMarket(::ethers::contract::Contract); - impl ::core::clone::Clone for InfinitelyLiquidMarket { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for InfinitelyLiquidMarket { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for InfinitelyLiquidMarket { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for InfinitelyLiquidMarket { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(stringify!(InfinitelyLiquidMarket)) - .field(&self.address()) - .finish() - } - } - impl InfinitelyLiquidMarket { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self( - ::ethers::contract::Contract::new( - address.into(), - INFINITELYLIQUIDMARKET_ABI.clone(), - client, - ), - ) - } - /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. - /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction - /// - /// Notes: - /// - If there are no constructor arguments, you should pass `()` as the argument. - /// - The default poll duration is 7 seconds. - /// - The default number of confirmations is 1 block. - /// - /// - /// # Example - /// - /// Generate contract bindings with `abigen!` and deploy a new contract instance. - /// - /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. - /// - /// ```ignore - /// # async fn deploy(client: ::std::sync::Arc) { - /// abigen!(Greeter, "../greeter.json"); - /// - /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); - /// let msg = greeter_contract.greet().call().await.unwrap(); - /// # } - /// ``` - pub fn deploy( - client: ::std::sync::Arc, - constructor_args: T, - ) -> ::core::result::Result< - ::ethers::contract::builders::ContractDeployer, - ::ethers::contract::ContractError, - > { - let factory = ::ethers::contract::ContractFactory::new( - INFINITELYLIQUIDMARKET_ABI.clone(), - INFINITELYLIQUIDMARKET_BYTECODE.clone().into(), - client, - ); - let deployer = factory.deploy(constructor_args)?; - let deployer = ::ethers::contract::ContractDeployer::new(deployer); - Ok(deployer) - } - ///Calls the contract's `setPrice` (0x91b7f5ed) function - pub fn set_price( - &self, - price: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([145, 183, 245, 237], price) - .expect("method not found (this should never happen)") - } - ///Gets the contract's `PriceChange` event - pub fn price_change_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - PriceChangeFilter, - > { - self.0.event() - } - /// Returns an `Event` builder for all the events of this contract. - pub fn events( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - PriceChangeFilter, - > { - self.0.event_with_filter(::core::default::Default::default()) - } - } - impl From<::ethers::contract::Contract> - for InfinitelyLiquidMarket { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "PriceChange", abi = "PriceChange(uint256)")] - pub struct PriceChangeFilter { - pub price: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `setPrice` function with signature `setPrice(uint256)` and selector `0x91b7f5ed` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "setPrice", abi = "setPrice(uint256)")] - pub struct SetPriceCall { - pub price: ::ethers::core::types::U256, - } -} diff --git a/crates/bindings/src/invariant.rs b/crates/bindings/src/invariant.rs deleted file mode 100644 index b3c464e4..00000000 --- a/crates/bindings/src/invariant.rs +++ /dev/null @@ -1,355 +0,0 @@ -pub use invariant::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types, -)] -pub mod invariant { - #[rustfmt::skip] - const __ABI: &str = "[{\"inputs\":[],\"type\":\"error\",\"name\":\"OOB\",\"outputs\":[]}]"; - ///The parsed JSON ABI of the contract. - pub static INVARIANT_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| - ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); - #[rustfmt::skip] - const __BYTECODE: &[u8] = &[ - 96, - 86, - 96, - 55, - 96, - 11, - 130, - 130, - 130, - 57, - 128, - 81, - 96, - 0, - 26, - 96, - 115, - 20, - 96, - 42, - 87, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 0, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 48, - 96, - 0, - 82, - 96, - 115, - 129, - 83, - 130, - 129, - 243, - 254, - 115, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 48, - 20, - 96, - 128, - 96, - 64, - 82, - 96, - 0, - 128, - 253, - 254, - 162, - 100, - 105, - 112, - 102, - 115, - 88, - 34, - 18, - 32, - 189, - 239, - 105, - 23, - 165, - 88, - 99, - 249, - 36, - 241, - 163, - 47, - 142, - 141, - 233, - 79, - 215, - 40, - 34, - 141, - 184, - 194, - 30, - 78, - 181, - 188, - 126, - 18, - 124, - 162, - 45, - 139, - 100, - 115, - 111, - 108, - 99, - 67, - 0, - 8, - 13, - 0, - 51, - ]; - ///The bytecode of the contract. - pub static INVARIANT_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( - __BYTECODE, - ); - #[rustfmt::skip] - const __DEPLOYED_BYTECODE: &[u8] = &[ - 115, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 48, - 20, - 96, - 128, - 96, - 64, - 82, - 96, - 0, - 128, - 253, - 254, - 162, - 100, - 105, - 112, - 102, - 115, - 88, - 34, - 18, - 32, - 189, - 239, - 105, - 23, - 165, - 88, - 99, - 249, - 36, - 241, - 163, - 47, - 142, - 141, - 233, - 79, - 215, - 40, - 34, - 141, - 184, - 194, - 30, - 78, - 181, - 188, - 126, - 18, - 124, - 162, - 45, - 139, - 100, - 115, - 111, - 108, - 99, - 67, - 0, - 8, - 13, - 0, - 51, - ]; - ///The deployed bytecode of the contract. - pub static INVARIANT_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( - __DEPLOYED_BYTECODE, - ); - pub struct Invariant(::ethers::contract::Contract); - impl ::core::clone::Clone for Invariant { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for Invariant { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for Invariant { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for Invariant { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(stringify!(Invariant)).field(&self.address()).finish() - } - } - impl Invariant { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self( - ::ethers::contract::Contract::new( - address.into(), - INVARIANT_ABI.clone(), - client, - ), - ) - } - /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. - /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction - /// - /// Notes: - /// - If there are no constructor arguments, you should pass `()` as the argument. - /// - The default poll duration is 7 seconds. - /// - The default number of confirmations is 1 block. - /// - /// - /// # Example - /// - /// Generate contract bindings with `abigen!` and deploy a new contract instance. - /// - /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. - /// - /// ```ignore - /// # async fn deploy(client: ::std::sync::Arc) { - /// abigen!(Greeter, "../greeter.json"); - /// - /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); - /// let msg = greeter_contract.greet().call().await.unwrap(); - /// # } - /// ``` - pub fn deploy( - client: ::std::sync::Arc, - constructor_args: T, - ) -> ::core::result::Result< - ::ethers::contract::builders::ContractDeployer, - ::ethers::contract::ContractError, - > { - let factory = ::ethers::contract::ContractFactory::new( - INVARIANT_ABI.clone(), - INVARIANT_BYTECODE.clone().into(), - client, - ); - let deployer = factory.deploy(constructor_args)?; - let deployer = ::ethers::contract::ContractDeployer::new(deployer); - Ok(deployer) - } - } - impl From<::ethers::contract::Contract> - for Invariant { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - ///Custom Error type `OOB` with signature `OOB()` and selector `0xaaf3956f` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "OOB", abi = "OOB()")] - pub struct OOB; -} diff --git a/crates/bindings/src/iweth.rs b/crates/bindings/src/iweth.rs deleted file mode 100644 index a944f3c7..00000000 --- a/crates/bindings/src/iweth.rs +++ /dev/null @@ -1,155 +0,0 @@ -pub use iweth::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types, -)] -pub mod iweth { - #[rustfmt::skip] - const __ABI: &str = "[{\"inputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"deposit\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"withdraw\",\"outputs\":[]}]"; - ///The parsed JSON ABI of the contract. - pub static IWETH_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| - ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); - pub struct IWETH(::ethers::contract::Contract); - impl ::core::clone::Clone for IWETH { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for IWETH { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for IWETH { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for IWETH { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(stringify!(IWETH)).field(&self.address()).finish() - } - } - impl IWETH { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self( - ::ethers::contract::Contract::new( - address.into(), - IWETH_ABI.clone(), - client, - ), - ) - } - ///Calls the contract's `deposit` (0xd0e30db0) function - pub fn deposit(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([208, 227, 13, 176], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `withdraw` (0x2e1a7d4d) function - pub fn withdraw( - &self, - wad: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([46, 26, 125, 77], wad) - .expect("method not found (this should never happen)") - } - } - impl From<::ethers::contract::Contract> - for IWETH { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - ///Container type for all input parameters for the `deposit` function with signature `deposit()` and selector `0xd0e30db0` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "deposit", abi = "deposit()")] - pub struct DepositCall; - ///Container type for all input parameters for the `withdraw` function with signature `withdraw(uint256)` and selector `0x2e1a7d4d` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "withdraw", abi = "withdraw(uint256)")] - pub struct WithdrawCall { - pub wad: ::ethers::core::types::U256, - } - ///Container type for all of the contract's call - #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] - pub enum IWETHCalls { - Deposit(DepositCall), - Withdraw(WithdrawCall), - } - impl ::ethers::core::abi::AbiDecode for IWETHCalls { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Deposit(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Withdraw(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for IWETHCalls { - fn encode(self) -> Vec { - match self { - Self::Deposit(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Withdraw(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - } - } - } - impl ::core::fmt::Display for IWETHCalls { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::Deposit(element) => ::core::fmt::Display::fmt(element, f), - Self::Withdraw(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for IWETHCalls { - fn from(value: DepositCall) -> Self { - Self::Deposit(value) - } - } - impl ::core::convert::From for IWETHCalls { - fn from(value: WithdrawCall) -> Self { - Self::Withdraw(value) - } - } -} diff --git a/crates/bindings/src/lib.rs b/crates/bindings/src/lib.rs index c4958f59..d2f72621 100644 --- a/crates/bindings/src/lib.rs +++ b/crates/bindings/src/lib.rs @@ -3,38 +3,130217 @@ //! This is autogenerated code. //! Do not manually edit these files. //! These files may be overwritten by the codegen system at any time. -pub mod account_lib; -pub mod arbiter_token; -pub mod assembly_lib; -pub mod context; -pub mod echidna_erc20; -pub mod erc20; -pub mod fee_on_transfer_token; -pub mod fixed_point_math_lib; -pub mod fvm_lib; -pub mod gaussian; -pub mod i_portfolio; -pub mod i_portfolio_actions; -pub mod i_portfolio_events; -pub mod i_portfolio_getters; -pub mod i_portfolio_registry; -pub mod ierc20; -pub mod ierc20_metadata; -pub mod infinitely_liquid_market; -pub mod invariant; -pub mod iweth; -pub mod mock_erc20; -pub mod objective; -pub mod portfolio_lib; -pub mod portfolio_like; -pub mod portfolio_virtual; -pub mod rmm01_extended_lib; -pub mod rmm01_lib; -pub mod rmm01_portfolio; -pub mod safe_cast_lib; -pub mod safe_transfer_lib; -pub mod shared_types; -pub mod simple_registry; -pub mod units; -pub mod weth9; -pub mod writer; +pub mod __shared_types { + ///`PortfolioCurve(uint128,uint16,uint16,uint16,uint16,uint16,uint32,bool)` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct PortfolioCurve { + pub max_price: u128, + pub jit: u16, + pub fee: u16, + pub duration: u16, + pub volatility: u16, + pub priority_fee: u16, + pub created_at: u32, + pub perpetual: bool, + } + ///`PortfolioPair(address,uint8,address,uint8)` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct PortfolioPair { + pub token_asset: ::ethers::core::types::Address, + pub decimals_asset: u8, + pub token_quote: ::ethers::core::types::Address, + pub decimals_quote: u8, + } +} +pub use account_lib::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod account_lib { + #[rustfmt::skip] + const __ABI: &str = "[]"; + ///The parsed JSON ABI of the contract. + pub static ACCOUNTLIB_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| + ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); + pub struct AccountLib(::ethers::contract::Contract); + impl ::core::clone::Clone for AccountLib { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for AccountLib { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for AccountLib { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for AccountLib { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(stringify!(AccountLib)).field(&self.address()).finish() + } + } + impl AccountLib { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + ACCOUNTLIB_ABI.clone(), + client, + ), + ) + } + } + impl From<::ethers::contract::Contract> + for AccountLib { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } +} +pub use arbiter_token::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod arbiter_token { + #[rustfmt::skip] + const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\",\"components\":[]},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Approval\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Transfer\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"mint\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]}]"; + ///The parsed JSON ABI of the contract. + pub static ARBITERTOKEN_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| + ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); + #[rustfmt::skip] + const __BYTECODE: &[u8] = &[ + 96, + 128, + 96, + 64, + 82, + 52, + 128, + 21, + 98, + 0, + 0, + 17, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 96, + 64, + 81, + 98, + 0, + 12, + 55, + 56, + 3, + 128, + 98, + 0, + 12, + 55, + 131, + 57, + 129, + 1, + 96, + 64, + 129, + 144, + 82, + 98, + 0, + 0, + 52, + 145, + 98, + 0, + 1, + 35, + 86, + 91, + 129, + 129, + 96, + 3, + 98, + 0, + 0, + 68, + 131, + 130, + 98, + 0, + 2, + 28, + 86, + 91, + 80, + 96, + 4, + 98, + 0, + 0, + 83, + 130, + 130, + 98, + 0, + 2, + 28, + 86, + 91, + 80, + 80, + 80, + 80, + 80, + 98, + 0, + 2, + 232, + 86, + 91, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 65, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 96, + 0, + 130, + 96, + 31, + 131, + 1, + 18, + 98, + 0, + 0, + 134, + 87, + 96, + 0, + 128, + 253, + 91, + 129, + 81, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 128, + 130, + 17, + 21, + 98, + 0, + 0, + 163, + 87, + 98, + 0, + 0, + 163, + 98, + 0, + 0, + 94, + 86, + 91, + 96, + 64, + 81, + 96, + 31, + 131, + 1, + 96, + 31, + 25, + 144, + 129, + 22, + 96, + 63, + 1, + 22, + 129, + 1, + 144, + 130, + 130, + 17, + 129, + 131, + 16, + 23, + 21, + 98, + 0, + 0, + 206, + 87, + 98, + 0, + 0, + 206, + 98, + 0, + 0, + 94, + 86, + 91, + 129, + 96, + 64, + 82, + 131, + 129, + 82, + 96, + 32, + 146, + 80, + 134, + 131, + 133, + 136, + 1, + 1, + 17, + 21, + 98, + 0, + 0, + 235, + 87, + 96, + 0, + 128, + 253, + 91, + 96, + 0, + 145, + 80, + 91, + 131, + 130, + 16, + 21, + 98, + 0, + 1, + 15, + 87, + 133, + 130, + 1, + 131, + 1, + 81, + 129, + 131, + 1, + 132, + 1, + 82, + 144, + 130, + 1, + 144, + 98, + 0, + 0, + 240, + 86, + 91, + 96, + 0, + 147, + 129, + 1, + 144, + 146, + 1, + 146, + 144, + 146, + 82, + 148, + 147, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 64, + 131, + 133, + 3, + 18, + 21, + 98, + 0, + 1, + 55, + 87, + 96, + 0, + 128, + 253, + 91, + 130, + 81, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 128, + 130, + 17, + 21, + 98, + 0, + 1, + 79, + 87, + 96, + 0, + 128, + 253, + 91, + 98, + 0, + 1, + 93, + 134, + 131, + 135, + 1, + 98, + 0, + 0, + 116, + 86, + 91, + 147, + 80, + 96, + 32, + 133, + 1, + 81, + 145, + 80, + 128, + 130, + 17, + 21, + 98, + 0, + 1, + 116, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 98, + 0, + 1, + 131, + 133, + 130, + 134, + 1, + 98, + 0, + 0, + 116, + 86, + 91, + 145, + 80, + 80, + 146, + 80, + 146, + 144, + 80, + 86, + 91, + 96, + 1, + 129, + 129, + 28, + 144, + 130, + 22, + 128, + 98, + 0, + 1, + 162, + 87, + 96, + 127, + 130, + 22, + 145, + 80, + 91, + 96, + 32, + 130, + 16, + 129, + 3, + 98, + 0, + 1, + 195, + 87, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 34, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 80, + 145, + 144, + 80, + 86, + 91, + 96, + 31, + 130, + 17, + 21, + 98, + 0, + 2, + 23, + 87, + 96, + 0, + 129, + 129, + 82, + 96, + 32, + 129, + 32, + 96, + 31, + 133, + 1, + 96, + 5, + 28, + 129, + 1, + 96, + 32, + 134, + 16, + 21, + 98, + 0, + 1, + 242, + 87, + 80, + 128, + 91, + 96, + 31, + 133, + 1, + 96, + 5, + 28, + 130, + 1, + 145, + 80, + 91, + 129, + 129, + 16, + 21, + 98, + 0, + 2, + 19, + 87, + 130, + 129, + 85, + 96, + 1, + 1, + 98, + 0, + 1, + 254, + 86, + 91, + 80, + 80, + 80, + 91, + 80, + 80, + 80, + 86, + 91, + 129, + 81, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 129, + 17, + 21, + 98, + 0, + 2, + 56, + 87, + 98, + 0, + 2, + 56, + 98, + 0, + 0, + 94, + 86, + 91, + 98, + 0, + 2, + 80, + 129, + 98, + 0, + 2, + 73, + 132, + 84, + 98, + 0, + 1, + 141, + 86, + 91, + 132, + 98, + 0, + 1, + 201, + 86, + 91, + 96, + 32, + 128, + 96, + 31, + 131, + 17, + 96, + 1, + 129, + 20, + 98, + 0, + 2, + 136, + 87, + 96, + 0, + 132, + 21, + 98, + 0, + 2, + 111, + 87, + 80, + 133, + 131, + 1, + 81, + 91, + 96, + 0, + 25, + 96, + 3, + 134, + 144, + 27, + 28, + 25, + 22, + 96, + 1, + 133, + 144, + 27, + 23, + 133, + 85, + 98, + 0, + 2, + 19, + 86, + 91, + 96, + 0, + 133, + 129, + 82, + 96, + 32, + 129, + 32, + 96, + 31, + 25, + 134, + 22, + 145, + 91, + 130, + 129, + 16, + 21, + 98, + 0, + 2, + 185, + 87, + 136, + 134, + 1, + 81, + 130, + 85, + 148, + 132, + 1, + 148, + 96, + 1, + 144, + 145, + 1, + 144, + 132, + 1, + 98, + 0, + 2, + 152, + 86, + 91, + 80, + 133, + 130, + 16, + 21, + 98, + 0, + 2, + 216, + 87, + 135, + 133, + 1, + 81, + 96, + 0, + 25, + 96, + 3, + 136, + 144, + 27, + 96, + 248, + 22, + 28, + 25, + 22, + 129, + 85, + 91, + 80, + 80, + 80, + 80, + 80, + 96, + 1, + 144, + 129, + 27, + 1, + 144, + 85, + 80, + 86, + 91, + 97, + 9, + 63, + 128, + 98, + 0, + 2, + 248, + 96, + 0, + 57, + 96, + 0, + 243, + 254, + 96, + 128, + 96, + 64, + 82, + 52, + 128, + 21, + 97, + 0, + 16, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 96, + 4, + 54, + 16, + 97, + 0, + 180, + 87, + 96, + 0, + 53, + 96, + 224, + 28, + 128, + 99, + 64, + 193, + 15, + 25, + 17, + 97, + 0, + 113, + 87, + 128, + 99, + 64, + 193, + 15, + 25, + 20, + 97, + 1, + 65, + 87, + 128, + 99, + 112, + 160, + 130, + 49, + 20, + 97, + 1, + 86, + 87, + 128, + 99, + 149, + 216, + 155, + 65, + 20, + 97, + 1, + 127, + 87, + 128, + 99, + 164, + 87, + 194, + 215, + 20, + 97, + 1, + 135, + 87, + 128, + 99, + 169, + 5, + 156, + 187, + 20, + 97, + 1, + 154, + 87, + 128, + 99, + 221, + 98, + 237, + 62, + 20, + 97, + 1, + 173, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 6, + 253, + 222, + 3, + 20, + 97, + 0, + 185, + 87, + 128, + 99, + 9, + 94, + 167, + 179, + 20, + 97, + 0, + 215, + 87, + 128, + 99, + 24, + 22, + 13, + 221, + 20, + 97, + 0, + 250, + 87, + 128, + 99, + 35, + 184, + 114, + 221, + 20, + 97, + 1, + 12, + 87, + 128, + 99, + 49, + 60, + 229, + 103, + 20, + 97, + 1, + 31, + 87, + 128, + 99, + 57, + 80, + 147, + 81, + 20, + 97, + 1, + 46, + 87, + 91, + 96, + 0, + 128, + 253, + 91, + 97, + 0, + 193, + 97, + 1, + 192, + 86, + 91, + 96, + 64, + 81, + 97, + 0, + 206, + 145, + 144, + 97, + 7, + 137, + 86, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 243, + 91, + 97, + 0, + 234, + 97, + 0, + 229, + 54, + 96, + 4, + 97, + 7, + 243, + 86, + 91, + 97, + 2, + 82, + 86, + 91, + 96, + 64, + 81, + 144, + 21, + 21, + 129, + 82, + 96, + 32, + 1, + 97, + 0, + 206, + 86, + 91, + 96, + 2, + 84, + 91, + 96, + 64, + 81, + 144, + 129, + 82, + 96, + 32, + 1, + 97, + 0, + 206, + 86, + 91, + 97, + 0, + 234, + 97, + 1, + 26, + 54, + 96, + 4, + 97, + 8, + 29, + 86, + 91, + 97, + 2, + 108, + 86, + 91, + 96, + 64, + 81, + 96, + 18, + 129, + 82, + 96, + 32, + 1, + 97, + 0, + 206, + 86, + 91, + 97, + 0, + 234, + 97, + 1, + 60, + 54, + 96, + 4, + 97, + 7, + 243, + 86, + 91, + 97, + 2, + 144, + 86, + 91, + 97, + 1, + 84, + 97, + 1, + 79, + 54, + 96, + 4, + 97, + 7, + 243, + 86, + 91, + 97, + 2, + 178, + 86, + 91, + 0, + 91, + 97, + 0, + 254, + 97, + 1, + 100, + 54, + 96, + 4, + 97, + 8, + 89, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 32, + 129, + 144, + 82, + 96, + 64, + 144, + 32, + 84, + 144, + 86, + 91, + 97, + 0, + 193, + 97, + 2, + 192, + 86, + 91, + 97, + 0, + 234, + 97, + 1, + 149, + 54, + 96, + 4, + 97, + 7, + 243, + 86, + 91, + 97, + 2, + 207, + 86, + 91, + 97, + 0, + 234, + 97, + 1, + 168, + 54, + 96, + 4, + 97, + 7, + 243, + 86, + 91, + 97, + 3, + 79, + 86, + 91, + 97, + 0, + 254, + 97, + 1, + 187, + 54, + 96, + 4, + 97, + 8, + 123, + 86, + 91, + 97, + 3, + 93, + 86, + 91, + 96, + 96, + 96, + 3, + 128, + 84, + 97, + 1, + 207, + 144, + 97, + 8, + 174, + 86, + 91, + 128, + 96, + 31, + 1, + 96, + 32, + 128, + 145, + 4, + 2, + 96, + 32, + 1, + 96, + 64, + 81, + 144, + 129, + 1, + 96, + 64, + 82, + 128, + 146, + 145, + 144, + 129, + 129, + 82, + 96, + 32, + 1, + 130, + 128, + 84, + 97, + 1, + 251, + 144, + 97, + 8, + 174, + 86, + 91, + 128, + 21, + 97, + 2, + 72, + 87, + 128, + 96, + 31, + 16, + 97, + 2, + 29, + 87, + 97, + 1, + 0, + 128, + 131, + 84, + 4, + 2, + 131, + 82, + 145, + 96, + 32, + 1, + 145, + 97, + 2, + 72, + 86, + 91, + 130, + 1, + 145, + 144, + 96, + 0, + 82, + 96, + 32, + 96, + 0, + 32, + 144, + 91, + 129, + 84, + 129, + 82, + 144, + 96, + 1, + 1, + 144, + 96, + 32, + 1, + 128, + 131, + 17, + 97, + 2, + 43, + 87, + 130, + 144, + 3, + 96, + 31, + 22, + 130, + 1, + 145, + 91, + 80, + 80, + 80, + 80, + 80, + 144, + 80, + 144, + 86, + 91, + 96, + 0, + 51, + 97, + 2, + 96, + 129, + 133, + 133, + 97, + 3, + 136, + 86, + 91, + 96, + 1, + 145, + 80, + 80, + 91, + 146, + 145, + 80, + 80, + 86, + 91, + 96, + 0, + 51, + 97, + 2, + 122, + 133, + 130, + 133, + 97, + 4, + 172, + 86, + 91, + 97, + 2, + 133, + 133, + 133, + 133, + 97, + 5, + 38, + 86, + 91, + 80, + 96, + 1, + 148, + 147, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 51, + 97, + 2, + 96, + 129, + 133, + 133, + 97, + 2, + 163, + 131, + 131, + 97, + 3, + 93, + 86, + 91, + 97, + 2, + 173, + 145, + 144, + 97, + 8, + 232, + 86, + 91, + 97, + 3, + 136, + 86, + 91, + 97, + 2, + 188, + 130, + 130, + 97, + 6, + 202, + 86, + 91, + 80, + 80, + 86, + 91, + 96, + 96, + 96, + 4, + 128, + 84, + 97, + 1, + 207, + 144, + 97, + 8, + 174, + 86, + 91, + 96, + 0, + 51, + 129, + 97, + 2, + 221, + 130, + 134, + 97, + 3, + 93, + 86, + 91, + 144, + 80, + 131, + 129, + 16, + 21, + 97, + 3, + 66, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 37, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 100, + 101, + 99, + 114, + 101, + 97, + 115, + 101, + 100, + 32, + 97, + 108, + 108, + 111, + 119, + 97, + 110, + 99, + 101, + 32, + 98, + 101, + 108, + 111, + 119, + 96, + 68, + 130, + 1, + 82, + 100, + 32, + 122, + 101, + 114, + 111, + 96, + 216, + 27, + 96, + 100, + 130, + 1, + 82, + 96, + 132, + 1, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 97, + 2, + 133, + 130, + 134, + 134, + 132, + 3, + 97, + 3, + 136, + 86, + 91, + 96, + 0, + 51, + 97, + 2, + 96, + 129, + 133, + 133, + 97, + 5, + 38, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 145, + 130, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 1, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 147, + 144, + 148, + 22, + 130, + 82, + 145, + 144, + 145, + 82, + 32, + 84, + 144, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 22, + 97, + 3, + 234, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 36, + 128, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 97, + 112, + 112, + 114, + 111, + 118, + 101, + 32, + 102, + 114, + 111, + 109, + 32, + 116, + 104, + 101, + 32, + 122, + 101, + 114, + 111, + 32, + 97, + 100, + 100, + 96, + 68, + 130, + 1, + 82, + 99, + 114, + 101, + 115, + 115, + 96, + 224, + 27, + 96, + 100, + 130, + 1, + 82, + 96, + 132, + 1, + 97, + 3, + 57, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 97, + 4, + 75, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 34, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 97, + 112, + 112, + 114, + 111, + 118, + 101, + 32, + 116, + 111, + 32, + 116, + 104, + 101, + 32, + 122, + 101, + 114, + 111, + 32, + 97, + 100, + 100, + 114, + 101, + 96, + 68, + 130, + 1, + 82, + 97, + 115, + 115, + 96, + 240, + 27, + 96, + 100, + 130, + 1, + 82, + 96, + 132, + 1, + 97, + 3, + 57, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 129, + 22, + 96, + 0, + 129, + 129, + 82, + 96, + 1, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 148, + 135, + 22, + 128, + 132, + 82, + 148, + 130, + 82, + 145, + 130, + 144, + 32, + 133, + 144, + 85, + 144, + 81, + 132, + 129, + 82, + 127, + 140, + 91, + 225, + 229, + 235, + 236, + 125, + 91, + 209, + 79, + 113, + 66, + 125, + 30, + 132, + 243, + 221, + 3, + 20, + 192, + 247, + 178, + 41, + 30, + 91, + 32, + 10, + 200, + 199, + 195, + 185, + 37, + 145, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 97, + 4, + 184, + 132, + 132, + 97, + 3, + 93, + 86, + 91, + 144, + 80, + 96, + 0, + 25, + 129, + 20, + 97, + 5, + 32, + 87, + 129, + 129, + 16, + 21, + 97, + 5, + 19, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 29, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 105, + 110, + 115, + 117, + 102, + 102, + 105, + 99, + 105, + 101, + 110, + 116, + 32, + 97, + 108, + 108, + 111, + 119, + 97, + 110, + 99, + 101, + 0, + 0, + 0, + 96, + 68, + 130, + 1, + 82, + 96, + 100, + 1, + 97, + 3, + 57, + 86, + 91, + 97, + 5, + 32, + 132, + 132, + 132, + 132, + 3, + 97, + 3, + 136, + 86, + 91, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 22, + 97, + 5, + 138, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 37, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 116, + 114, + 97, + 110, + 115, + 102, + 101, + 114, + 32, + 102, + 114, + 111, + 109, + 32, + 116, + 104, + 101, + 32, + 122, + 101, + 114, + 111, + 32, + 97, + 100, + 96, + 68, + 130, + 1, + 82, + 100, + 100, + 114, + 101, + 115, + 115, + 96, + 216, + 27, + 96, + 100, + 130, + 1, + 82, + 96, + 132, + 1, + 97, + 3, + 57, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 97, + 5, + 236, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 35, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 116, + 114, + 97, + 110, + 115, + 102, + 101, + 114, + 32, + 116, + 111, + 32, + 116, + 104, + 101, + 32, + 122, + 101, + 114, + 111, + 32, + 97, + 100, + 100, + 114, + 96, + 68, + 130, + 1, + 82, + 98, + 101, + 115, + 115, + 96, + 232, + 27, + 96, + 100, + 130, + 1, + 82, + 96, + 132, + 1, + 97, + 3, + 57, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 32, + 129, + 144, + 82, + 96, + 64, + 144, + 32, + 84, + 129, + 129, + 16, + 21, + 97, + 6, + 100, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 38, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 116, + 114, + 97, + 110, + 115, + 102, + 101, + 114, + 32, + 97, + 109, + 111, + 117, + 110, + 116, + 32, + 101, + 120, + 99, + 101, + 101, + 100, + 115, + 32, + 98, + 96, + 68, + 130, + 1, + 82, + 101, + 97, + 108, + 97, + 110, + 99, + 101, + 96, + 208, + 27, + 96, + 100, + 130, + 1, + 82, + 96, + 132, + 1, + 97, + 3, + 57, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 132, + 129, + 22, + 96, + 0, + 129, + 129, + 82, + 96, + 32, + 129, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 135, + 135, + 3, + 144, + 85, + 147, + 135, + 22, + 128, + 131, + 82, + 145, + 132, + 144, + 32, + 128, + 84, + 135, + 1, + 144, + 85, + 146, + 81, + 133, + 129, + 82, + 144, + 146, + 127, + 221, + 242, + 82, + 173, + 27, + 226, + 200, + 155, + 105, + 194, + 176, + 104, + 252, + 55, + 141, + 170, + 149, + 43, + 167, + 241, + 99, + 196, + 161, + 22, + 40, + 245, + 90, + 77, + 245, + 35, + 179, + 239, + 145, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 97, + 5, + 32, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 97, + 7, + 32, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 31, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 109, + 105, + 110, + 116, + 32, + 116, + 111, + 32, + 116, + 104, + 101, + 32, + 122, + 101, + 114, + 111, + 32, + 97, + 100, + 100, + 114, + 101, + 115, + 115, + 0, + 96, + 68, + 130, + 1, + 82, + 96, + 100, + 1, + 97, + 3, + 57, + 86, + 91, + 128, + 96, + 2, + 96, + 0, + 130, + 130, + 84, + 97, + 7, + 50, + 145, + 144, + 97, + 8, + 232, + 86, + 91, + 144, + 145, + 85, + 80, + 80, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 96, + 0, + 129, + 129, + 82, + 96, + 32, + 129, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 128, + 84, + 134, + 1, + 144, + 85, + 81, + 132, + 129, + 82, + 127, + 221, + 242, + 82, + 173, + 27, + 226, + 200, + 155, + 105, + 194, + 176, + 104, + 252, + 55, + 141, + 170, + 149, + 43, + 167, + 241, + 99, + 196, + 161, + 22, + 40, + 245, + 90, + 77, + 245, + 35, + 179, + 239, + 145, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 80, + 80, + 86, + 91, + 96, + 0, + 96, + 32, + 128, + 131, + 82, + 131, + 81, + 128, + 130, + 133, + 1, + 82, + 96, + 0, + 91, + 129, + 129, + 16, + 21, + 97, + 7, + 182, + 87, + 133, + 129, + 1, + 131, + 1, + 81, + 133, + 130, + 1, + 96, + 64, + 1, + 82, + 130, + 1, + 97, + 7, + 154, + 86, + 91, + 80, + 96, + 0, + 96, + 64, + 130, + 134, + 1, + 1, + 82, + 96, + 64, + 96, + 31, + 25, + 96, + 31, + 131, + 1, + 22, + 133, + 1, + 1, + 146, + 80, + 80, + 80, + 146, + 145, + 80, + 80, + 86, + 91, + 128, + 53, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 129, + 22, + 129, + 20, + 97, + 7, + 238, + 87, + 96, + 0, + 128, + 253, + 91, + 145, + 144, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 64, + 131, + 133, + 3, + 18, + 21, + 97, + 8, + 6, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 8, + 15, + 131, + 97, + 7, + 215, + 86, + 91, + 148, + 96, + 32, + 147, + 144, + 147, + 1, + 53, + 147, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 96, + 96, + 132, + 134, + 3, + 18, + 21, + 97, + 8, + 50, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 8, + 59, + 132, + 97, + 7, + 215, + 86, + 91, + 146, + 80, + 97, + 8, + 73, + 96, + 32, + 133, + 1, + 97, + 7, + 215, + 86, + 91, + 145, + 80, + 96, + 64, + 132, + 1, + 53, + 144, + 80, + 146, + 80, + 146, + 80, + 146, + 86, + 91, + 96, + 0, + 96, + 32, + 130, + 132, + 3, + 18, + 21, + 97, + 8, + 107, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 8, + 116, + 130, + 97, + 7, + 215, + 86, + 91, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 64, + 131, + 133, + 3, + 18, + 21, + 97, + 8, + 142, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 8, + 151, + 131, + 97, + 7, + 215, + 86, + 91, + 145, + 80, + 97, + 8, + 165, + 96, + 32, + 132, + 1, + 97, + 7, + 215, + 86, + 91, + 144, + 80, + 146, + 80, + 146, + 144, + 80, + 86, + 91, + 96, + 1, + 129, + 129, + 28, + 144, + 130, + 22, + 128, + 97, + 8, + 194, + 87, + 96, + 127, + 130, + 22, + 145, + 80, + 91, + 96, + 32, + 130, + 16, + 129, + 3, + 97, + 8, + 226, + 87, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 34, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 80, + 145, + 144, + 80, + 86, + 91, + 128, + 130, + 1, + 128, + 130, + 17, + 21, + 97, + 2, + 102, + 87, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 17, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 254, + 162, + 100, + 105, + 112, + 102, + 115, + 88, + 34, + 18, + 32, + 168, + 118, + 56, + 225, + 102, + 69, + 151, + 88, + 138, + 92, + 145, + 175, + 36, + 148, + 74, + 82, + 157, + 206, + 19, + 225, + 210, + 135, + 45, + 235, + 250, + 41, + 178, + 131, + 55, + 18, + 8, + 235, + 100, + 115, + 111, + 108, + 99, + 67, + 0, + 8, + 19, + 0, + 51, + ]; + ///The bytecode of the contract. + pub static ARBITERTOKEN_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __BYTECODE, + ); + #[rustfmt::skip] + const __DEPLOYED_BYTECODE: &[u8] = &[ + 96, + 128, + 96, + 64, + 82, + 52, + 128, + 21, + 97, + 0, + 16, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 96, + 4, + 54, + 16, + 97, + 0, + 180, + 87, + 96, + 0, + 53, + 96, + 224, + 28, + 128, + 99, + 64, + 193, + 15, + 25, + 17, + 97, + 0, + 113, + 87, + 128, + 99, + 64, + 193, + 15, + 25, + 20, + 97, + 1, + 65, + 87, + 128, + 99, + 112, + 160, + 130, + 49, + 20, + 97, + 1, + 86, + 87, + 128, + 99, + 149, + 216, + 155, + 65, + 20, + 97, + 1, + 127, + 87, + 128, + 99, + 164, + 87, + 194, + 215, + 20, + 97, + 1, + 135, + 87, + 128, + 99, + 169, + 5, + 156, + 187, + 20, + 97, + 1, + 154, + 87, + 128, + 99, + 221, + 98, + 237, + 62, + 20, + 97, + 1, + 173, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 6, + 253, + 222, + 3, + 20, + 97, + 0, + 185, + 87, + 128, + 99, + 9, + 94, + 167, + 179, + 20, + 97, + 0, + 215, + 87, + 128, + 99, + 24, + 22, + 13, + 221, + 20, + 97, + 0, + 250, + 87, + 128, + 99, + 35, + 184, + 114, + 221, + 20, + 97, + 1, + 12, + 87, + 128, + 99, + 49, + 60, + 229, + 103, + 20, + 97, + 1, + 31, + 87, + 128, + 99, + 57, + 80, + 147, + 81, + 20, + 97, + 1, + 46, + 87, + 91, + 96, + 0, + 128, + 253, + 91, + 97, + 0, + 193, + 97, + 1, + 192, + 86, + 91, + 96, + 64, + 81, + 97, + 0, + 206, + 145, + 144, + 97, + 7, + 137, + 86, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 243, + 91, + 97, + 0, + 234, + 97, + 0, + 229, + 54, + 96, + 4, + 97, + 7, + 243, + 86, + 91, + 97, + 2, + 82, + 86, + 91, + 96, + 64, + 81, + 144, + 21, + 21, + 129, + 82, + 96, + 32, + 1, + 97, + 0, + 206, + 86, + 91, + 96, + 2, + 84, + 91, + 96, + 64, + 81, + 144, + 129, + 82, + 96, + 32, + 1, + 97, + 0, + 206, + 86, + 91, + 97, + 0, + 234, + 97, + 1, + 26, + 54, + 96, + 4, + 97, + 8, + 29, + 86, + 91, + 97, + 2, + 108, + 86, + 91, + 96, + 64, + 81, + 96, + 18, + 129, + 82, + 96, + 32, + 1, + 97, + 0, + 206, + 86, + 91, + 97, + 0, + 234, + 97, + 1, + 60, + 54, + 96, + 4, + 97, + 7, + 243, + 86, + 91, + 97, + 2, + 144, + 86, + 91, + 97, + 1, + 84, + 97, + 1, + 79, + 54, + 96, + 4, + 97, + 7, + 243, + 86, + 91, + 97, + 2, + 178, + 86, + 91, + 0, + 91, + 97, + 0, + 254, + 97, + 1, + 100, + 54, + 96, + 4, + 97, + 8, + 89, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 32, + 129, + 144, + 82, + 96, + 64, + 144, + 32, + 84, + 144, + 86, + 91, + 97, + 0, + 193, + 97, + 2, + 192, + 86, + 91, + 97, + 0, + 234, + 97, + 1, + 149, + 54, + 96, + 4, + 97, + 7, + 243, + 86, + 91, + 97, + 2, + 207, + 86, + 91, + 97, + 0, + 234, + 97, + 1, + 168, + 54, + 96, + 4, + 97, + 7, + 243, + 86, + 91, + 97, + 3, + 79, + 86, + 91, + 97, + 0, + 254, + 97, + 1, + 187, + 54, + 96, + 4, + 97, + 8, + 123, + 86, + 91, + 97, + 3, + 93, + 86, + 91, + 96, + 96, + 96, + 3, + 128, + 84, + 97, + 1, + 207, + 144, + 97, + 8, + 174, + 86, + 91, + 128, + 96, + 31, + 1, + 96, + 32, + 128, + 145, + 4, + 2, + 96, + 32, + 1, + 96, + 64, + 81, + 144, + 129, + 1, + 96, + 64, + 82, + 128, + 146, + 145, + 144, + 129, + 129, + 82, + 96, + 32, + 1, + 130, + 128, + 84, + 97, + 1, + 251, + 144, + 97, + 8, + 174, + 86, + 91, + 128, + 21, + 97, + 2, + 72, + 87, + 128, + 96, + 31, + 16, + 97, + 2, + 29, + 87, + 97, + 1, + 0, + 128, + 131, + 84, + 4, + 2, + 131, + 82, + 145, + 96, + 32, + 1, + 145, + 97, + 2, + 72, + 86, + 91, + 130, + 1, + 145, + 144, + 96, + 0, + 82, + 96, + 32, + 96, + 0, + 32, + 144, + 91, + 129, + 84, + 129, + 82, + 144, + 96, + 1, + 1, + 144, + 96, + 32, + 1, + 128, + 131, + 17, + 97, + 2, + 43, + 87, + 130, + 144, + 3, + 96, + 31, + 22, + 130, + 1, + 145, + 91, + 80, + 80, + 80, + 80, + 80, + 144, + 80, + 144, + 86, + 91, + 96, + 0, + 51, + 97, + 2, + 96, + 129, + 133, + 133, + 97, + 3, + 136, + 86, + 91, + 96, + 1, + 145, + 80, + 80, + 91, + 146, + 145, + 80, + 80, + 86, + 91, + 96, + 0, + 51, + 97, + 2, + 122, + 133, + 130, + 133, + 97, + 4, + 172, + 86, + 91, + 97, + 2, + 133, + 133, + 133, + 133, + 97, + 5, + 38, + 86, + 91, + 80, + 96, + 1, + 148, + 147, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 51, + 97, + 2, + 96, + 129, + 133, + 133, + 97, + 2, + 163, + 131, + 131, + 97, + 3, + 93, + 86, + 91, + 97, + 2, + 173, + 145, + 144, + 97, + 8, + 232, + 86, + 91, + 97, + 3, + 136, + 86, + 91, + 97, + 2, + 188, + 130, + 130, + 97, + 6, + 202, + 86, + 91, + 80, + 80, + 86, + 91, + 96, + 96, + 96, + 4, + 128, + 84, + 97, + 1, + 207, + 144, + 97, + 8, + 174, + 86, + 91, + 96, + 0, + 51, + 129, + 97, + 2, + 221, + 130, + 134, + 97, + 3, + 93, + 86, + 91, + 144, + 80, + 131, + 129, + 16, + 21, + 97, + 3, + 66, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 37, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 100, + 101, + 99, + 114, + 101, + 97, + 115, + 101, + 100, + 32, + 97, + 108, + 108, + 111, + 119, + 97, + 110, + 99, + 101, + 32, + 98, + 101, + 108, + 111, + 119, + 96, + 68, + 130, + 1, + 82, + 100, + 32, + 122, + 101, + 114, + 111, + 96, + 216, + 27, + 96, + 100, + 130, + 1, + 82, + 96, + 132, + 1, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 97, + 2, + 133, + 130, + 134, + 134, + 132, + 3, + 97, + 3, + 136, + 86, + 91, + 96, + 0, + 51, + 97, + 2, + 96, + 129, + 133, + 133, + 97, + 5, + 38, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 145, + 130, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 1, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 147, + 144, + 148, + 22, + 130, + 82, + 145, + 144, + 145, + 82, + 32, + 84, + 144, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 22, + 97, + 3, + 234, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 36, + 128, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 97, + 112, + 112, + 114, + 111, + 118, + 101, + 32, + 102, + 114, + 111, + 109, + 32, + 116, + 104, + 101, + 32, + 122, + 101, + 114, + 111, + 32, + 97, + 100, + 100, + 96, + 68, + 130, + 1, + 82, + 99, + 114, + 101, + 115, + 115, + 96, + 224, + 27, + 96, + 100, + 130, + 1, + 82, + 96, + 132, + 1, + 97, + 3, + 57, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 97, + 4, + 75, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 34, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 97, + 112, + 112, + 114, + 111, + 118, + 101, + 32, + 116, + 111, + 32, + 116, + 104, + 101, + 32, + 122, + 101, + 114, + 111, + 32, + 97, + 100, + 100, + 114, + 101, + 96, + 68, + 130, + 1, + 82, + 97, + 115, + 115, + 96, + 240, + 27, + 96, + 100, + 130, + 1, + 82, + 96, + 132, + 1, + 97, + 3, + 57, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 129, + 22, + 96, + 0, + 129, + 129, + 82, + 96, + 1, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 148, + 135, + 22, + 128, + 132, + 82, + 148, + 130, + 82, + 145, + 130, + 144, + 32, + 133, + 144, + 85, + 144, + 81, + 132, + 129, + 82, + 127, + 140, + 91, + 225, + 229, + 235, + 236, + 125, + 91, + 209, + 79, + 113, + 66, + 125, + 30, + 132, + 243, + 221, + 3, + 20, + 192, + 247, + 178, + 41, + 30, + 91, + 32, + 10, + 200, + 199, + 195, + 185, + 37, + 145, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 97, + 4, + 184, + 132, + 132, + 97, + 3, + 93, + 86, + 91, + 144, + 80, + 96, + 0, + 25, + 129, + 20, + 97, + 5, + 32, + 87, + 129, + 129, + 16, + 21, + 97, + 5, + 19, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 29, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 105, + 110, + 115, + 117, + 102, + 102, + 105, + 99, + 105, + 101, + 110, + 116, + 32, + 97, + 108, + 108, + 111, + 119, + 97, + 110, + 99, + 101, + 0, + 0, + 0, + 96, + 68, + 130, + 1, + 82, + 96, + 100, + 1, + 97, + 3, + 57, + 86, + 91, + 97, + 5, + 32, + 132, + 132, + 132, + 132, + 3, + 97, + 3, + 136, + 86, + 91, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 22, + 97, + 5, + 138, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 37, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 116, + 114, + 97, + 110, + 115, + 102, + 101, + 114, + 32, + 102, + 114, + 111, + 109, + 32, + 116, + 104, + 101, + 32, + 122, + 101, + 114, + 111, + 32, + 97, + 100, + 96, + 68, + 130, + 1, + 82, + 100, + 100, + 114, + 101, + 115, + 115, + 96, + 216, + 27, + 96, + 100, + 130, + 1, + 82, + 96, + 132, + 1, + 97, + 3, + 57, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 97, + 5, + 236, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 35, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 116, + 114, + 97, + 110, + 115, + 102, + 101, + 114, + 32, + 116, + 111, + 32, + 116, + 104, + 101, + 32, + 122, + 101, + 114, + 111, + 32, + 97, + 100, + 100, + 114, + 96, + 68, + 130, + 1, + 82, + 98, + 101, + 115, + 115, + 96, + 232, + 27, + 96, + 100, + 130, + 1, + 82, + 96, + 132, + 1, + 97, + 3, + 57, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 32, + 129, + 144, + 82, + 96, + 64, + 144, + 32, + 84, + 129, + 129, + 16, + 21, + 97, + 6, + 100, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 38, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 116, + 114, + 97, + 110, + 115, + 102, + 101, + 114, + 32, + 97, + 109, + 111, + 117, + 110, + 116, + 32, + 101, + 120, + 99, + 101, + 101, + 100, + 115, + 32, + 98, + 96, + 68, + 130, + 1, + 82, + 101, + 97, + 108, + 97, + 110, + 99, + 101, + 96, + 208, + 27, + 96, + 100, + 130, + 1, + 82, + 96, + 132, + 1, + 97, + 3, + 57, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 132, + 129, + 22, + 96, + 0, + 129, + 129, + 82, + 96, + 32, + 129, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 135, + 135, + 3, + 144, + 85, + 147, + 135, + 22, + 128, + 131, + 82, + 145, + 132, + 144, + 32, + 128, + 84, + 135, + 1, + 144, + 85, + 146, + 81, + 133, + 129, + 82, + 144, + 146, + 127, + 221, + 242, + 82, + 173, + 27, + 226, + 200, + 155, + 105, + 194, + 176, + 104, + 252, + 55, + 141, + 170, + 149, + 43, + 167, + 241, + 99, + 196, + 161, + 22, + 40, + 245, + 90, + 77, + 245, + 35, + 179, + 239, + 145, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 97, + 5, + 32, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 97, + 7, + 32, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 31, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 109, + 105, + 110, + 116, + 32, + 116, + 111, + 32, + 116, + 104, + 101, + 32, + 122, + 101, + 114, + 111, + 32, + 97, + 100, + 100, + 114, + 101, + 115, + 115, + 0, + 96, + 68, + 130, + 1, + 82, + 96, + 100, + 1, + 97, + 3, + 57, + 86, + 91, + 128, + 96, + 2, + 96, + 0, + 130, + 130, + 84, + 97, + 7, + 50, + 145, + 144, + 97, + 8, + 232, + 86, + 91, + 144, + 145, + 85, + 80, + 80, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 96, + 0, + 129, + 129, + 82, + 96, + 32, + 129, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 128, + 84, + 134, + 1, + 144, + 85, + 81, + 132, + 129, + 82, + 127, + 221, + 242, + 82, + 173, + 27, + 226, + 200, + 155, + 105, + 194, + 176, + 104, + 252, + 55, + 141, + 170, + 149, + 43, + 167, + 241, + 99, + 196, + 161, + 22, + 40, + 245, + 90, + 77, + 245, + 35, + 179, + 239, + 145, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 80, + 80, + 86, + 91, + 96, + 0, + 96, + 32, + 128, + 131, + 82, + 131, + 81, + 128, + 130, + 133, + 1, + 82, + 96, + 0, + 91, + 129, + 129, + 16, + 21, + 97, + 7, + 182, + 87, + 133, + 129, + 1, + 131, + 1, + 81, + 133, + 130, + 1, + 96, + 64, + 1, + 82, + 130, + 1, + 97, + 7, + 154, + 86, + 91, + 80, + 96, + 0, + 96, + 64, + 130, + 134, + 1, + 1, + 82, + 96, + 64, + 96, + 31, + 25, + 96, + 31, + 131, + 1, + 22, + 133, + 1, + 1, + 146, + 80, + 80, + 80, + 146, + 145, + 80, + 80, + 86, + 91, + 128, + 53, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 129, + 22, + 129, + 20, + 97, + 7, + 238, + 87, + 96, + 0, + 128, + 253, + 91, + 145, + 144, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 64, + 131, + 133, + 3, + 18, + 21, + 97, + 8, + 6, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 8, + 15, + 131, + 97, + 7, + 215, + 86, + 91, + 148, + 96, + 32, + 147, + 144, + 147, + 1, + 53, + 147, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 96, + 96, + 132, + 134, + 3, + 18, + 21, + 97, + 8, + 50, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 8, + 59, + 132, + 97, + 7, + 215, + 86, + 91, + 146, + 80, + 97, + 8, + 73, + 96, + 32, + 133, + 1, + 97, + 7, + 215, + 86, + 91, + 145, + 80, + 96, + 64, + 132, + 1, + 53, + 144, + 80, + 146, + 80, + 146, + 80, + 146, + 86, + 91, + 96, + 0, + 96, + 32, + 130, + 132, + 3, + 18, + 21, + 97, + 8, + 107, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 8, + 116, + 130, + 97, + 7, + 215, + 86, + 91, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 64, + 131, + 133, + 3, + 18, + 21, + 97, + 8, + 142, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 8, + 151, + 131, + 97, + 7, + 215, + 86, + 91, + 145, + 80, + 97, + 8, + 165, + 96, + 32, + 132, + 1, + 97, + 7, + 215, + 86, + 91, + 144, + 80, + 146, + 80, + 146, + 144, + 80, + 86, + 91, + 96, + 1, + 129, + 129, + 28, + 144, + 130, + 22, + 128, + 97, + 8, + 194, + 87, + 96, + 127, + 130, + 22, + 145, + 80, + 91, + 96, + 32, + 130, + 16, + 129, + 3, + 97, + 8, + 226, + 87, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 34, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 80, + 145, + 144, + 80, + 86, + 91, + 128, + 130, + 1, + 128, + 130, + 17, + 21, + 97, + 2, + 102, + 87, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 17, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 254, + 162, + 100, + 105, + 112, + 102, + 115, + 88, + 34, + 18, + 32, + 168, + 118, + 56, + 225, + 102, + 69, + 151, + 88, + 138, + 92, + 145, + 175, + 36, + 148, + 74, + 82, + 157, + 206, + 19, + 225, + 210, + 135, + 45, + 235, + 250, + 41, + 178, + 131, + 55, + 18, + 8, + 235, + 100, + 115, + 111, + 108, + 99, + 67, + 0, + 8, + 19, + 0, + 51, + ]; + ///The deployed bytecode of the contract. + pub static ARBITERTOKEN_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __DEPLOYED_BYTECODE, + ); + pub struct ArbiterToken(::ethers::contract::Contract); + impl ::core::clone::Clone for ArbiterToken { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for ArbiterToken { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for ArbiterToken { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for ArbiterToken { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(stringify!(ArbiterToken)).field(&self.address()).finish() + } + } + impl ArbiterToken { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + ARBITERTOKEN_ABI.clone(), + client, + ), + ) + } + /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. + /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction + /// + /// Notes: + /// - If there are no constructor arguments, you should pass `()` as the argument. + /// - The default poll duration is 7 seconds. + /// - The default number of confirmations is 1 block. + /// + /// + /// # Example + /// + /// Generate contract bindings with `abigen!` and deploy a new contract instance. + /// + /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. + /// + /// ```ignore + /// # async fn deploy(client: ::std::sync::Arc) { + /// abigen!(Greeter, "../greeter.json"); + /// + /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); + /// let msg = greeter_contract.greet().call().await.unwrap(); + /// # } + /// ``` + pub fn deploy( + client: ::std::sync::Arc, + constructor_args: T, + ) -> ::core::result::Result< + ::ethers::contract::builders::ContractDeployer, + ::ethers::contract::ContractError, + > { + let factory = ::ethers::contract::ContractFactory::new( + ARBITERTOKEN_ABI.clone(), + ARBITERTOKEN_BYTECODE.clone().into(), + client, + ); + let deployer = factory.deploy(constructor_args)?; + let deployer = ::ethers::contract::ContractDeployer::new(deployer); + Ok(deployer) + } + ///Calls the contract's `allowance` (0xdd62ed3e) function + pub fn allowance( + &self, + owner: ::ethers::core::types::Address, + spender: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([221, 98, 237, 62], (owner, spender)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `approve` (0x095ea7b3) function + pub fn approve( + &self, + spender: ::ethers::core::types::Address, + amount: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([9, 94, 167, 179], (spender, amount)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `balanceOf` (0x70a08231) function + pub fn balance_of( + &self, + account: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([112, 160, 130, 49], account) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `decimals` (0x313ce567) function + pub fn decimals(&self) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([49, 60, 229, 103], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `decreaseAllowance` (0xa457c2d7) function + pub fn decrease_allowance( + &self, + spender: ::ethers::core::types::Address, + subtracted_value: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([164, 87, 194, 215], (spender, subtracted_value)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `increaseAllowance` (0x39509351) function + pub fn increase_allowance( + &self, + spender: ::ethers::core::types::Address, + added_value: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([57, 80, 147, 81], (spender, added_value)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `mint` (0x40c10f19) function + pub fn mint( + &self, + receiver: ::ethers::core::types::Address, + amount: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([64, 193, 15, 25], (receiver, amount)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `name` (0x06fdde03) function + pub fn name( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([6, 253, 222, 3], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `symbol` (0x95d89b41) function + pub fn symbol( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([149, 216, 155, 65], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `totalSupply` (0x18160ddd) function + pub fn total_supply( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([24, 22, 13, 221], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `transfer` (0xa9059cbb) function + pub fn transfer( + &self, + to: ::ethers::core::types::Address, + amount: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([169, 5, 156, 187], (to, amount)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `transferFrom` (0x23b872dd) function + pub fn transfer_from( + &self, + from: ::ethers::core::types::Address, + to: ::ethers::core::types::Address, + amount: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([35, 184, 114, 221], (from, to, amount)) + .expect("method not found (this should never happen)") + } + ///Gets the contract's `Approval` event + pub fn approval_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + ApprovalFilter, + > { + self.0.event() + } + ///Gets the contract's `Transfer` event + pub fn transfer_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + TransferFilter, + > { + self.0.event() + } + /// Returns an `Event` builder for all the events of this contract. + pub fn events( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + ArbiterTokenEvents, + > { + self.0.event_with_filter(::core::default::Default::default()) + } + } + impl From<::ethers::contract::Contract> + for ArbiterToken { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "Approval", abi = "Approval(address,address,uint256)")] + pub struct ApprovalFilter { + #[ethevent(indexed)] + pub owner: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub spender: ::ethers::core::types::Address, + pub value: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "Transfer", abi = "Transfer(address,address,uint256)")] + pub struct TransferFilter { + #[ethevent(indexed)] + pub from: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub to: ::ethers::core::types::Address, + pub value: ::ethers::core::types::U256, + } + ///Container type for all of the contract's events + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum ArbiterTokenEvents { + ApprovalFilter(ApprovalFilter), + TransferFilter(TransferFilter), + } + impl ::ethers::contract::EthLogDecode for ArbiterTokenEvents { + fn decode_log( + log: &::ethers::core::abi::RawLog, + ) -> ::core::result::Result { + if let Ok(decoded) = ApprovalFilter::decode_log(log) { + return Ok(ArbiterTokenEvents::ApprovalFilter(decoded)); + } + if let Ok(decoded) = TransferFilter::decode_log(log) { + return Ok(ArbiterTokenEvents::TransferFilter(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData) + } + } + impl ::core::fmt::Display for ArbiterTokenEvents { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::ApprovalFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::TransferFilter(element) => ::core::fmt::Display::fmt(element, f), + } + } + } + impl ::core::convert::From for ArbiterTokenEvents { + fn from(value: ApprovalFilter) -> Self { + Self::ApprovalFilter(value) + } + } + impl ::core::convert::From for ArbiterTokenEvents { + fn from(value: TransferFilter) -> Self { + Self::TransferFilter(value) + } + } + ///Container type for all input parameters for the `allowance` function with signature `allowance(address,address)` and selector `0xdd62ed3e` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "allowance", abi = "allowance(address,address)")] + pub struct AllowanceCall { + pub owner: ::ethers::core::types::Address, + pub spender: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "approve", abi = "approve(address,uint256)")] + pub struct ApproveCall { + pub spender: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "balanceOf", abi = "balanceOf(address)")] + pub struct BalanceOfCall { + pub account: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `decimals` function with signature `decimals()` and selector `0x313ce567` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "decimals", abi = "decimals()")] + pub struct DecimalsCall; + ///Container type for all input parameters for the `decreaseAllowance` function with signature `decreaseAllowance(address,uint256)` and selector `0xa457c2d7` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "decreaseAllowance", abi = "decreaseAllowance(address,uint256)")] + pub struct DecreaseAllowanceCall { + pub spender: ::ethers::core::types::Address, + pub subtracted_value: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `increaseAllowance` function with signature `increaseAllowance(address,uint256)` and selector `0x39509351` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "increaseAllowance", abi = "increaseAllowance(address,uint256)")] + pub struct IncreaseAllowanceCall { + pub spender: ::ethers::core::types::Address, + pub added_value: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `mint` function with signature `mint(address,uint256)` and selector `0x40c10f19` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "mint", abi = "mint(address,uint256)")] + pub struct MintCall { + pub receiver: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `name` function with signature `name()` and selector `0x06fdde03` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "name", abi = "name()")] + pub struct NameCall; + ///Container type for all input parameters for the `symbol` function with signature `symbol()` and selector `0x95d89b41` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "symbol", abi = "symbol()")] + pub struct SymbolCall; + ///Container type for all input parameters for the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "totalSupply", abi = "totalSupply()")] + pub struct TotalSupplyCall; + ///Container type for all input parameters for the `transfer` function with signature `transfer(address,uint256)` and selector `0xa9059cbb` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "transfer", abi = "transfer(address,uint256)")] + pub struct TransferCall { + pub to: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "transferFrom", abi = "transferFrom(address,address,uint256)")] + pub struct TransferFromCall { + pub from: ::ethers::core::types::Address, + pub to: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + ///Container type for all of the contract's call + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum ArbiterTokenCalls { + Allowance(AllowanceCall), + Approve(ApproveCall), + BalanceOf(BalanceOfCall), + Decimals(DecimalsCall), + DecreaseAllowance(DecreaseAllowanceCall), + IncreaseAllowance(IncreaseAllowanceCall), + Mint(MintCall), + Name(NameCall), + Symbol(SymbolCall), + TotalSupply(TotalSupplyCall), + Transfer(TransferCall), + TransferFrom(TransferFromCall), + } + impl ::ethers::core::abi::AbiDecode for ArbiterTokenCalls { + fn decode( + data: impl AsRef<[u8]>, + ) -> ::core::result::Result { + let data = data.as_ref(); + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Allowance(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Approve(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::BalanceOf(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Decimals(decoded)); + } + if let Ok(decoded) + = ::decode( + data, + ) { + return Ok(Self::DecreaseAllowance(decoded)); + } + if let Ok(decoded) + = ::decode( + data, + ) { + return Ok(Self::IncreaseAllowance(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Mint(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Name(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Symbol(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::TotalSupply(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Transfer(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::TransferFrom(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData.into()) + } + } + impl ::ethers::core::abi::AbiEncode for ArbiterTokenCalls { + fn encode(self) -> Vec { + match self { + Self::Allowance(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Approve(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::BalanceOf(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Decimals(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::DecreaseAllowance(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::IncreaseAllowance(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Mint(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Name(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Symbol(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::TotalSupply(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Transfer(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::TransferFrom(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + } + } + } + impl ::core::fmt::Display for ArbiterTokenCalls { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::Allowance(element) => ::core::fmt::Display::fmt(element, f), + Self::Approve(element) => ::core::fmt::Display::fmt(element, f), + Self::BalanceOf(element) => ::core::fmt::Display::fmt(element, f), + Self::Decimals(element) => ::core::fmt::Display::fmt(element, f), + Self::DecreaseAllowance(element) => ::core::fmt::Display::fmt(element, f), + Self::IncreaseAllowance(element) => ::core::fmt::Display::fmt(element, f), + Self::Mint(element) => ::core::fmt::Display::fmt(element, f), + Self::Name(element) => ::core::fmt::Display::fmt(element, f), + Self::Symbol(element) => ::core::fmt::Display::fmt(element, f), + Self::TotalSupply(element) => ::core::fmt::Display::fmt(element, f), + Self::Transfer(element) => ::core::fmt::Display::fmt(element, f), + Self::TransferFrom(element) => ::core::fmt::Display::fmt(element, f), + } + } + } + impl ::core::convert::From for ArbiterTokenCalls { + fn from(value: AllowanceCall) -> Self { + Self::Allowance(value) + } + } + impl ::core::convert::From for ArbiterTokenCalls { + fn from(value: ApproveCall) -> Self { + Self::Approve(value) + } + } + impl ::core::convert::From for ArbiterTokenCalls { + fn from(value: BalanceOfCall) -> Self { + Self::BalanceOf(value) + } + } + impl ::core::convert::From for ArbiterTokenCalls { + fn from(value: DecimalsCall) -> Self { + Self::Decimals(value) + } + } + impl ::core::convert::From for ArbiterTokenCalls { + fn from(value: DecreaseAllowanceCall) -> Self { + Self::DecreaseAllowance(value) + } + } + impl ::core::convert::From for ArbiterTokenCalls { + fn from(value: IncreaseAllowanceCall) -> Self { + Self::IncreaseAllowance(value) + } + } + impl ::core::convert::From for ArbiterTokenCalls { + fn from(value: MintCall) -> Self { + Self::Mint(value) + } + } + impl ::core::convert::From for ArbiterTokenCalls { + fn from(value: NameCall) -> Self { + Self::Name(value) + } + } + impl ::core::convert::From for ArbiterTokenCalls { + fn from(value: SymbolCall) -> Self { + Self::Symbol(value) + } + } + impl ::core::convert::From for ArbiterTokenCalls { + fn from(value: TotalSupplyCall) -> Self { + Self::TotalSupply(value) + } + } + impl ::core::convert::From for ArbiterTokenCalls { + fn from(value: TransferCall) -> Self { + Self::Transfer(value) + } + } + impl ::core::convert::From for ArbiterTokenCalls { + fn from(value: TransferFromCall) -> Self { + Self::TransferFrom(value) + } + } + ///Container type for all return fields from the `allowance` function with signature `allowance(address,address)` and selector `0xdd62ed3e` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct AllowanceReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct ApproveReturn(pub bool); + ///Container type for all return fields from the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct BalanceOfReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `decimals` function with signature `decimals()` and selector `0x313ce567` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct DecimalsReturn(pub u8); + ///Container type for all return fields from the `decreaseAllowance` function with signature `decreaseAllowance(address,uint256)` and selector `0xa457c2d7` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct DecreaseAllowanceReturn(pub bool); + ///Container type for all return fields from the `increaseAllowance` function with signature `increaseAllowance(address,uint256)` and selector `0x39509351` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct IncreaseAllowanceReturn(pub bool); + ///Container type for all return fields from the `name` function with signature `name()` and selector `0x06fdde03` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct NameReturn(pub ::std::string::String); + ///Container type for all return fields from the `symbol` function with signature `symbol()` and selector `0x95d89b41` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct SymbolReturn(pub ::std::string::String); + ///Container type for all return fields from the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct TotalSupplyReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `transfer` function with signature `transfer(address,uint256)` and selector `0xa9059cbb` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct TransferReturn(pub bool); + ///Container type for all return fields from the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct TransferFromReturn(pub bool); +} +pub use assembly_lib::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod assembly_lib { + #[rustfmt::skip] + const __ABI: &str = "[]"; + ///The parsed JSON ABI of the contract. + pub static ASSEMBLYLIB_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| + ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); + #[rustfmt::skip] + const __BYTECODE: &[u8] = &[ + 96, + 86, + 96, + 55, + 96, + 11, + 130, + 130, + 130, + 57, + 128, + 81, + 96, + 0, + 26, + 96, + 115, + 20, + 96, + 42, + 87, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 0, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 48, + 96, + 0, + 82, + 96, + 115, + 129, + 83, + 130, + 129, + 243, + 254, + 115, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 48, + 20, + 96, + 128, + 96, + 64, + 82, + 96, + 0, + 128, + 253, + 254, + 162, + 100, + 105, + 112, + 102, + 115, + 88, + 34, + 18, + 32, + 143, + 200, + 46, + 223, + 198, + 118, + 250, + 200, + 172, + 149, + 61, + 122, + 82, + 83, + 57, + 219, + 143, + 223, + 250, + 38, + 4, + 96, + 143, + 160, + 123, + 56, + 2, + 160, + 98, + 74, + 43, + 217, + 100, + 115, + 111, + 108, + 99, + 67, + 0, + 8, + 13, + 0, + 51, + ]; + ///The bytecode of the contract. + pub static ASSEMBLYLIB_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __BYTECODE, + ); + #[rustfmt::skip] + const __DEPLOYED_BYTECODE: &[u8] = &[ + 115, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 48, + 20, + 96, + 128, + 96, + 64, + 82, + 96, + 0, + 128, + 253, + 254, + 162, + 100, + 105, + 112, + 102, + 115, + 88, + 34, + 18, + 32, + 143, + 200, + 46, + 223, + 198, + 118, + 250, + 200, + 172, + 149, + 61, + 122, + 82, + 83, + 57, + 219, + 143, + 223, + 250, + 38, + 4, + 96, + 143, + 160, + 123, + 56, + 2, + 160, + 98, + 74, + 43, + 217, + 100, + 115, + 111, + 108, + 99, + 67, + 0, + 8, + 13, + 0, + 51, + ]; + ///The deployed bytecode of the contract. + pub static ASSEMBLYLIB_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __DEPLOYED_BYTECODE, + ); + pub struct AssemblyLib(::ethers::contract::Contract); + impl ::core::clone::Clone for AssemblyLib { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for AssemblyLib { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for AssemblyLib { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for AssemblyLib { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(stringify!(AssemblyLib)).field(&self.address()).finish() + } + } + impl AssemblyLib { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + ASSEMBLYLIB_ABI.clone(), + client, + ), + ) + } + /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. + /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction + /// + /// Notes: + /// - If there are no constructor arguments, you should pass `()` as the argument. + /// - The default poll duration is 7 seconds. + /// - The default number of confirmations is 1 block. + /// + /// + /// # Example + /// + /// Generate contract bindings with `abigen!` and deploy a new contract instance. + /// + /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. + /// + /// ```ignore + /// # async fn deploy(client: ::std::sync::Arc) { + /// abigen!(Greeter, "../greeter.json"); + /// + /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); + /// let msg = greeter_contract.greet().call().await.unwrap(); + /// # } + /// ``` + pub fn deploy( + client: ::std::sync::Arc, + constructor_args: T, + ) -> ::core::result::Result< + ::ethers::contract::builders::ContractDeployer, + ::ethers::contract::ContractError, + > { + let factory = ::ethers::contract::ContractFactory::new( + ASSEMBLYLIB_ABI.clone(), + ASSEMBLYLIB_BYTECODE.clone().into(), + client, + ); + let deployer = factory.deploy(constructor_args)?; + let deployer = ::ethers::contract::ContractDeployer::new(deployer); + Ok(deployer) + } + } + impl From<::ethers::contract::Contract> + for AssemblyLib { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } +} +pub use context::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod context { + #[rustfmt::skip] + const __ABI: &str = "[]"; + ///The parsed JSON ABI of the contract. + pub static CONTEXT_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| + ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); + pub struct Context(::ethers::contract::Contract); + impl ::core::clone::Clone for Context { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for Context { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for Context { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for Context { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(stringify!(Context)).field(&self.address()).finish() + } + } + impl Context { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + CONTEXT_ABI.clone(), + client, + ), + ) + } + } + impl From<::ethers::contract::Contract> + for Context { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } +} +pub use erc20::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod erc20 { + #[rustfmt::skip] + const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Approval\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Transfer\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\",\"components\":[]},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\",\"components\":[]},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"permit\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]}]"; + ///The parsed JSON ABI of the contract. + pub static ERC20_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| + ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); + pub struct ERC20(::ethers::contract::Contract); + impl ::core::clone::Clone for ERC20 { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for ERC20 { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for ERC20 { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for ERC20 { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(stringify!(ERC20)).field(&self.address()).finish() + } + } + impl ERC20 { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + ERC20_ABI.clone(), + client, + ), + ) + } + ///Calls the contract's `DOMAIN_SEPARATOR` (0x3644e515) function + pub fn domain_separator( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([54, 68, 229, 21], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `allowance` (0xdd62ed3e) function + pub fn allowance( + &self, + p0: ::ethers::core::types::Address, + p1: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([221, 98, 237, 62], (p0, p1)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `approve` (0x095ea7b3) function + pub fn approve( + &self, + spender: ::ethers::core::types::Address, + amount: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([9, 94, 167, 179], (spender, amount)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `balanceOf` (0x70a08231) function + pub fn balance_of( + &self, + p0: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([112, 160, 130, 49], p0) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `decimals` (0x313ce567) function + pub fn decimals(&self) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([49, 60, 229, 103], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `name` (0x06fdde03) function + pub fn name( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([6, 253, 222, 3], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `nonces` (0x7ecebe00) function + pub fn nonces( + &self, + p0: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([126, 206, 190, 0], p0) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `permit` (0xd505accf) function + pub fn permit( + &self, + owner: ::ethers::core::types::Address, + spender: ::ethers::core::types::Address, + value: ::ethers::core::types::U256, + deadline: ::ethers::core::types::U256, + v: u8, + r: [u8; 32], + s: [u8; 32], + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash( + [213, 5, 172, 207], + (owner, spender, value, deadline, v, r, s), + ) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `symbol` (0x95d89b41) function + pub fn symbol( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([149, 216, 155, 65], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `totalSupply` (0x18160ddd) function + pub fn total_supply( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([24, 22, 13, 221], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `transfer` (0xa9059cbb) function + pub fn transfer( + &self, + to: ::ethers::core::types::Address, + amount: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([169, 5, 156, 187], (to, amount)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `transferFrom` (0x23b872dd) function + pub fn transfer_from( + &self, + from: ::ethers::core::types::Address, + to: ::ethers::core::types::Address, + amount: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([35, 184, 114, 221], (from, to, amount)) + .expect("method not found (this should never happen)") + } + ///Gets the contract's `Approval` event + pub fn approval_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + ApprovalFilter, + > { + self.0.event() + } + ///Gets the contract's `Transfer` event + pub fn transfer_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + TransferFilter, + > { + self.0.event() + } + /// Returns an `Event` builder for all the events of this contract. + pub fn events( + &self, + ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, ERC20Events> { + self.0.event_with_filter(::core::default::Default::default()) + } + } + impl From<::ethers::contract::Contract> + for ERC20 { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "Approval", abi = "Approval(address,address,uint256)")] + pub struct ApprovalFilter { + #[ethevent(indexed)] + pub owner: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub spender: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "Transfer", abi = "Transfer(address,address,uint256)")] + pub struct TransferFilter { + #[ethevent(indexed)] + pub from: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub to: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + ///Container type for all of the contract's events + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum ERC20Events { + ApprovalFilter(ApprovalFilter), + TransferFilter(TransferFilter), + } + impl ::ethers::contract::EthLogDecode for ERC20Events { + fn decode_log( + log: &::ethers::core::abi::RawLog, + ) -> ::core::result::Result { + if let Ok(decoded) = ApprovalFilter::decode_log(log) { + return Ok(ERC20Events::ApprovalFilter(decoded)); + } + if let Ok(decoded) = TransferFilter::decode_log(log) { + return Ok(ERC20Events::TransferFilter(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData) + } + } + impl ::core::fmt::Display for ERC20Events { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::ApprovalFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::TransferFilter(element) => ::core::fmt::Display::fmt(element, f), + } + } + } + impl ::core::convert::From for ERC20Events { + fn from(value: ApprovalFilter) -> Self { + Self::ApprovalFilter(value) + } + } + impl ::core::convert::From for ERC20Events { + fn from(value: TransferFilter) -> Self { + Self::TransferFilter(value) + } + } + ///Container type for all input parameters for the `DOMAIN_SEPARATOR` function with signature `DOMAIN_SEPARATOR()` and selector `0x3644e515` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "DOMAIN_SEPARATOR", abi = "DOMAIN_SEPARATOR()")] + pub struct DomainSeparatorCall; + ///Container type for all input parameters for the `allowance` function with signature `allowance(address,address)` and selector `0xdd62ed3e` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "allowance", abi = "allowance(address,address)")] + pub struct AllowanceCall( + pub ::ethers::core::types::Address, + pub ::ethers::core::types::Address, + ); + ///Container type for all input parameters for the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "approve", abi = "approve(address,uint256)")] + pub struct ApproveCall { + pub spender: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "balanceOf", abi = "balanceOf(address)")] + pub struct BalanceOfCall(pub ::ethers::core::types::Address); + ///Container type for all input parameters for the `decimals` function with signature `decimals()` and selector `0x313ce567` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "decimals", abi = "decimals()")] + pub struct DecimalsCall; + ///Container type for all input parameters for the `name` function with signature `name()` and selector `0x06fdde03` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "name", abi = "name()")] + pub struct NameCall; + ///Container type for all input parameters for the `nonces` function with signature `nonces(address)` and selector `0x7ecebe00` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "nonces", abi = "nonces(address)")] + pub struct NoncesCall(pub ::ethers::core::types::Address); + ///Container type for all input parameters for the `permit` function with signature `permit(address,address,uint256,uint256,uint8,bytes32,bytes32)` and selector `0xd505accf` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall( + name = "permit", + abi = "permit(address,address,uint256,uint256,uint8,bytes32,bytes32)" + )] + pub struct PermitCall { + pub owner: ::ethers::core::types::Address, + pub spender: ::ethers::core::types::Address, + pub value: ::ethers::core::types::U256, + pub deadline: ::ethers::core::types::U256, + pub v: u8, + pub r: [u8; 32], + pub s: [u8; 32], + } + ///Container type for all input parameters for the `symbol` function with signature `symbol()` and selector `0x95d89b41` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "symbol", abi = "symbol()")] + pub struct SymbolCall; + ///Container type for all input parameters for the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "totalSupply", abi = "totalSupply()")] + pub struct TotalSupplyCall; + ///Container type for all input parameters for the `transfer` function with signature `transfer(address,uint256)` and selector `0xa9059cbb` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "transfer", abi = "transfer(address,uint256)")] + pub struct TransferCall { + pub to: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "transferFrom", abi = "transferFrom(address,address,uint256)")] + pub struct TransferFromCall { + pub from: ::ethers::core::types::Address, + pub to: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + ///Container type for all of the contract's call + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum ERC20Calls { + DomainSeparator(DomainSeparatorCall), + Allowance(AllowanceCall), + Approve(ApproveCall), + BalanceOf(BalanceOfCall), + Decimals(DecimalsCall), + Name(NameCall), + Nonces(NoncesCall), + Permit(PermitCall), + Symbol(SymbolCall), + TotalSupply(TotalSupplyCall), + Transfer(TransferCall), + TransferFrom(TransferFromCall), + } + impl ::ethers::core::abi::AbiDecode for ERC20Calls { + fn decode( + data: impl AsRef<[u8]>, + ) -> ::core::result::Result { + let data = data.as_ref(); + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::DomainSeparator(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Allowance(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Approve(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::BalanceOf(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Decimals(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Name(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Nonces(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Permit(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Symbol(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::TotalSupply(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Transfer(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::TransferFrom(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData.into()) + } + } + impl ::ethers::core::abi::AbiEncode for ERC20Calls { + fn encode(self) -> Vec { + match self { + Self::DomainSeparator(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Allowance(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Approve(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::BalanceOf(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Decimals(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Name(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Nonces(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Permit(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Symbol(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::TotalSupply(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Transfer(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::TransferFrom(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + } + } + } + impl ::core::fmt::Display for ERC20Calls { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::DomainSeparator(element) => ::core::fmt::Display::fmt(element, f), + Self::Allowance(element) => ::core::fmt::Display::fmt(element, f), + Self::Approve(element) => ::core::fmt::Display::fmt(element, f), + Self::BalanceOf(element) => ::core::fmt::Display::fmt(element, f), + Self::Decimals(element) => ::core::fmt::Display::fmt(element, f), + Self::Name(element) => ::core::fmt::Display::fmt(element, f), + Self::Nonces(element) => ::core::fmt::Display::fmt(element, f), + Self::Permit(element) => ::core::fmt::Display::fmt(element, f), + Self::Symbol(element) => ::core::fmt::Display::fmt(element, f), + Self::TotalSupply(element) => ::core::fmt::Display::fmt(element, f), + Self::Transfer(element) => ::core::fmt::Display::fmt(element, f), + Self::TransferFrom(element) => ::core::fmt::Display::fmt(element, f), + } + } + } + impl ::core::convert::From for ERC20Calls { + fn from(value: DomainSeparatorCall) -> Self { + Self::DomainSeparator(value) + } + } + impl ::core::convert::From for ERC20Calls { + fn from(value: AllowanceCall) -> Self { + Self::Allowance(value) + } + } + impl ::core::convert::From for ERC20Calls { + fn from(value: ApproveCall) -> Self { + Self::Approve(value) + } + } + impl ::core::convert::From for ERC20Calls { + fn from(value: BalanceOfCall) -> Self { + Self::BalanceOf(value) + } + } + impl ::core::convert::From for ERC20Calls { + fn from(value: DecimalsCall) -> Self { + Self::Decimals(value) + } + } + impl ::core::convert::From for ERC20Calls { + fn from(value: NameCall) -> Self { + Self::Name(value) + } + } + impl ::core::convert::From for ERC20Calls { + fn from(value: NoncesCall) -> Self { + Self::Nonces(value) + } + } + impl ::core::convert::From for ERC20Calls { + fn from(value: PermitCall) -> Self { + Self::Permit(value) + } + } + impl ::core::convert::From for ERC20Calls { + fn from(value: SymbolCall) -> Self { + Self::Symbol(value) + } + } + impl ::core::convert::From for ERC20Calls { + fn from(value: TotalSupplyCall) -> Self { + Self::TotalSupply(value) + } + } + impl ::core::convert::From for ERC20Calls { + fn from(value: TransferCall) -> Self { + Self::Transfer(value) + } + } + impl ::core::convert::From for ERC20Calls { + fn from(value: TransferFromCall) -> Self { + Self::TransferFrom(value) + } + } + ///Container type for all return fields from the `DOMAIN_SEPARATOR` function with signature `DOMAIN_SEPARATOR()` and selector `0x3644e515` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct DomainSeparatorReturn(pub [u8; 32]); + ///Container type for all return fields from the `allowance` function with signature `allowance(address,address)` and selector `0xdd62ed3e` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct AllowanceReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct ApproveReturn(pub bool); + ///Container type for all return fields from the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct BalanceOfReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `decimals` function with signature `decimals()` and selector `0x313ce567` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct DecimalsReturn(pub u8); + ///Container type for all return fields from the `name` function with signature `name()` and selector `0x06fdde03` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct NameReturn(pub ::std::string::String); + ///Container type for all return fields from the `nonces` function with signature `nonces(address)` and selector `0x7ecebe00` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct NoncesReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `symbol` function with signature `symbol()` and selector `0x95d89b41` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct SymbolReturn(pub ::std::string::String); + ///Container type for all return fields from the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct TotalSupplyReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `transfer` function with signature `transfer(address,uint256)` and selector `0xa9059cbb` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct TransferReturn(pub bool); + ///Container type for all return fields from the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct TransferFromReturn(pub bool); +} +pub use echidna_erc20::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod echidna_erc20 { + #[rustfmt::skip] + const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\",\"components\":[]},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimals_\",\"type\":\"uint8\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"_Portfolio\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Approval\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Transfer\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"Portfolio\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"burn\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"mint\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"decimals_\",\"type\":\"uint8\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"setDecimals\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]}]"; + ///The parsed JSON ABI of the contract. + pub static ECHIDNAERC20_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| + ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); + #[rustfmt::skip] + const __BYTECODE: &[u8] = &[ + 96, + 128, + 96, + 64, + 82, + 52, + 128, + 21, + 98, + 0, + 0, + 17, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 96, + 64, + 81, + 98, + 0, + 15, + 43, + 56, + 3, + 128, + 98, + 0, + 15, + 43, + 131, + 57, + 129, + 1, + 96, + 64, + 129, + 144, + 82, + 98, + 0, + 0, + 52, + 145, + 98, + 0, + 2, + 7, + 86, + 91, + 131, + 81, + 98, + 0, + 0, + 73, + 144, + 96, + 3, + 144, + 96, + 32, + 135, + 1, + 144, + 98, + 0, + 0, + 148, + 86, + 91, + 80, + 130, + 81, + 98, + 0, + 0, + 95, + 144, + 96, + 4, + 144, + 96, + 32, + 134, + 1, + 144, + 98, + 0, + 0, + 148, + 86, + 91, + 80, + 96, + 5, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 144, + 146, + 22, + 97, + 1, + 0, + 2, + 96, + 1, + 96, + 1, + 96, + 168, + 27, + 3, + 25, + 144, + 146, + 22, + 96, + 255, + 144, + 147, + 22, + 146, + 144, + 146, + 23, + 23, + 144, + 85, + 80, + 98, + 0, + 2, + 231, + 144, + 80, + 86, + 91, + 130, + 128, + 84, + 98, + 0, + 0, + 162, + 144, + 98, + 0, + 2, + 171, + 86, + 91, + 144, + 96, + 0, + 82, + 96, + 32, + 96, + 0, + 32, + 144, + 96, + 31, + 1, + 96, + 32, + 144, + 4, + 129, + 1, + 146, + 130, + 98, + 0, + 0, + 198, + 87, + 96, + 0, + 133, + 85, + 98, + 0, + 1, + 17, + 86, + 91, + 130, + 96, + 31, + 16, + 98, + 0, + 0, + 225, + 87, + 128, + 81, + 96, + 255, + 25, + 22, + 131, + 128, + 1, + 23, + 133, + 85, + 98, + 0, + 1, + 17, + 86, + 91, + 130, + 128, + 1, + 96, + 1, + 1, + 133, + 85, + 130, + 21, + 98, + 0, + 1, + 17, + 87, + 145, + 130, + 1, + 91, + 130, + 129, + 17, + 21, + 98, + 0, + 1, + 17, + 87, + 130, + 81, + 130, + 85, + 145, + 96, + 32, + 1, + 145, + 144, + 96, + 1, + 1, + 144, + 98, + 0, + 0, + 244, + 86, + 91, + 80, + 98, + 0, + 1, + 31, + 146, + 145, + 80, + 98, + 0, + 1, + 35, + 86, + 91, + 80, + 144, + 86, + 91, + 91, + 128, + 130, + 17, + 21, + 98, + 0, + 1, + 31, + 87, + 96, + 0, + 129, + 85, + 96, + 1, + 1, + 98, + 0, + 1, + 36, + 86, + 91, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 65, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 96, + 0, + 130, + 96, + 31, + 131, + 1, + 18, + 98, + 0, + 1, + 98, + 87, + 96, + 0, + 128, + 253, + 91, + 129, + 81, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 128, + 130, + 17, + 21, + 98, + 0, + 1, + 127, + 87, + 98, + 0, + 1, + 127, + 98, + 0, + 1, + 58, + 86, + 91, + 96, + 64, + 81, + 96, + 31, + 131, + 1, + 96, + 31, + 25, + 144, + 129, + 22, + 96, + 63, + 1, + 22, + 129, + 1, + 144, + 130, + 130, + 17, + 129, + 131, + 16, + 23, + 21, + 98, + 0, + 1, + 170, + 87, + 98, + 0, + 1, + 170, + 98, + 0, + 1, + 58, + 86, + 91, + 129, + 96, + 64, + 82, + 131, + 129, + 82, + 96, + 32, + 146, + 80, + 134, + 131, + 133, + 136, + 1, + 1, + 17, + 21, + 98, + 0, + 1, + 199, + 87, + 96, + 0, + 128, + 253, + 91, + 96, + 0, + 145, + 80, + 91, + 131, + 130, + 16, + 21, + 98, + 0, + 1, + 235, + 87, + 133, + 130, + 1, + 131, + 1, + 81, + 129, + 131, + 1, + 132, + 1, + 82, + 144, + 130, + 1, + 144, + 98, + 0, + 1, + 204, + 86, + 91, + 131, + 130, + 17, + 21, + 98, + 0, + 1, + 253, + 87, + 96, + 0, + 131, + 133, + 131, + 1, + 1, + 82, + 91, + 150, + 149, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 128, + 96, + 128, + 133, + 135, + 3, + 18, + 21, + 98, + 0, + 2, + 30, + 87, + 96, + 0, + 128, + 253, + 91, + 132, + 81, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 128, + 130, + 17, + 21, + 98, + 0, + 2, + 54, + 87, + 96, + 0, + 128, + 253, + 91, + 98, + 0, + 2, + 68, + 136, + 131, + 137, + 1, + 98, + 0, + 1, + 80, + 86, + 91, + 149, + 80, + 96, + 32, + 135, + 1, + 81, + 145, + 80, + 128, + 130, + 17, + 21, + 98, + 0, + 2, + 91, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 98, + 0, + 2, + 106, + 135, + 130, + 136, + 1, + 98, + 0, + 1, + 80, + 86, + 91, + 147, + 80, + 80, + 96, + 64, + 133, + 1, + 81, + 96, + 255, + 129, + 22, + 129, + 20, + 98, + 0, + 2, + 130, + 87, + 96, + 0, + 128, + 253, + 91, + 96, + 96, + 134, + 1, + 81, + 144, + 146, + 80, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 129, + 22, + 129, + 20, + 98, + 0, + 2, + 160, + 87, + 96, + 0, + 128, + 253, + 91, + 147, + 150, + 146, + 149, + 80, + 144, + 147, + 80, + 80, + 86, + 91, + 96, + 1, + 129, + 129, + 28, + 144, + 130, + 22, + 128, + 98, + 0, + 2, + 192, + 87, + 96, + 127, + 130, + 22, + 145, + 80, + 91, + 96, + 32, + 130, + 16, + 129, + 3, + 98, + 0, + 2, + 225, + 87, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 34, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 80, + 145, + 144, + 80, + 86, + 91, + 97, + 12, + 52, + 128, + 98, + 0, + 2, + 247, + 96, + 0, + 57, + 96, + 0, + 243, + 254, + 96, + 128, + 96, + 64, + 82, + 52, + 128, + 21, + 97, + 0, + 16, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 96, + 4, + 54, + 16, + 97, + 0, + 245, + 87, + 96, + 0, + 53, + 96, + 224, + 28, + 128, + 99, + 80, + 211, + 244, + 124, + 17, + 97, + 0, + 151, + 87, + 128, + 99, + 157, + 194, + 159, + 172, + 17, + 97, + 0, + 102, + 87, + 128, + 99, + 157, + 194, + 159, + 172, + 20, + 97, + 2, + 44, + 87, + 128, + 99, + 164, + 87, + 194, + 215, + 20, + 97, + 2, + 63, + 87, + 128, + 99, + 169, + 5, + 156, + 187, + 20, + 97, + 2, + 82, + 87, + 128, + 99, + 221, + 98, + 237, + 62, + 20, + 97, + 2, + 101, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 80, + 211, + 244, + 124, + 20, + 97, + 1, + 167, + 87, + 128, + 99, + 112, + 160, + 130, + 49, + 20, + 97, + 1, + 215, + 87, + 128, + 99, + 122, + 19, + 149, + 170, + 20, + 97, + 2, + 0, + 87, + 128, + 99, + 149, + 216, + 155, + 65, + 20, + 97, + 2, + 36, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 35, + 184, + 114, + 221, + 17, + 97, + 0, + 211, + 87, + 128, + 99, + 35, + 184, + 114, + 221, + 20, + 97, + 1, + 77, + 87, + 128, + 99, + 49, + 60, + 229, + 103, + 20, + 97, + 1, + 96, + 87, + 128, + 99, + 57, + 80, + 147, + 81, + 20, + 97, + 1, + 127, + 87, + 128, + 99, + 64, + 193, + 15, + 25, + 20, + 97, + 1, + 146, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 6, + 253, + 222, + 3, + 20, + 97, + 0, + 250, + 87, + 128, + 99, + 9, + 94, + 167, + 179, + 20, + 97, + 1, + 24, + 87, + 128, + 99, + 24, + 22, + 13, + 221, + 20, + 97, + 1, + 59, + 87, + 91, + 96, + 0, + 128, + 253, + 91, + 97, + 1, + 2, + 97, + 2, + 158, + 86, + 91, + 96, + 64, + 81, + 97, + 1, + 15, + 145, + 144, + 97, + 10, + 48, + 86, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 243, + 91, + 97, + 1, + 43, + 97, + 1, + 38, + 54, + 96, + 4, + 97, + 10, + 161, + 86, + 91, + 97, + 3, + 44, + 86, + 91, + 96, + 64, + 81, + 144, + 21, + 21, + 129, + 82, + 96, + 32, + 1, + 97, + 1, + 15, + 86, + 91, + 96, + 2, + 84, + 91, + 96, + 64, + 81, + 144, + 129, + 82, + 96, + 32, + 1, + 97, + 1, + 15, + 86, + 91, + 97, + 1, + 43, + 97, + 1, + 91, + 54, + 96, + 4, + 97, + 10, + 203, + 86, + 91, + 97, + 3, + 66, + 86, + 91, + 96, + 5, + 84, + 97, + 1, + 109, + 144, + 96, + 255, + 22, + 129, + 86, + 91, + 96, + 64, + 81, + 96, + 255, + 144, + 145, + 22, + 129, + 82, + 96, + 32, + 1, + 97, + 1, + 15, + 86, + 91, + 97, + 1, + 43, + 97, + 1, + 141, + 54, + 96, + 4, + 97, + 10, + 161, + 86, + 91, + 97, + 3, + 241, + 86, + 91, + 97, + 1, + 165, + 97, + 1, + 160, + 54, + 96, + 4, + 97, + 10, + 161, + 86, + 91, + 97, + 4, + 45, + 86, + 91, + 0, + 91, + 96, + 5, + 84, + 97, + 1, + 191, + 144, + 97, + 1, + 0, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 86, + 91, + 96, + 64, + 81, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 144, + 145, + 22, + 129, + 82, + 96, + 32, + 1, + 97, + 1, + 15, + 86, + 91, + 97, + 1, + 63, + 97, + 1, + 229, + 54, + 96, + 4, + 97, + 11, + 7, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 32, + 129, + 144, + 82, + 96, + 64, + 144, + 32, + 84, + 144, + 86, + 91, + 97, + 1, + 165, + 97, + 2, + 14, + 54, + 96, + 4, + 97, + 11, + 41, + 86, + 91, + 96, + 5, + 128, + 84, + 96, + 255, + 25, + 22, + 96, + 255, + 146, + 144, + 146, + 22, + 145, + 144, + 145, + 23, + 144, + 85, + 86, + 91, + 97, + 1, + 2, + 97, + 4, + 90, + 86, + 91, + 97, + 1, + 165, + 97, + 2, + 58, + 54, + 96, + 4, + 97, + 10, + 161, + 86, + 91, + 97, + 4, + 103, + 86, + 91, + 97, + 1, + 43, + 97, + 2, + 77, + 54, + 96, + 4, + 97, + 10, + 161, + 86, + 91, + 97, + 4, + 113, + 86, + 91, + 97, + 1, + 43, + 97, + 2, + 96, + 54, + 96, + 4, + 97, + 10, + 161, + 86, + 91, + 97, + 5, + 10, + 86, + 91, + 97, + 1, + 63, + 97, + 2, + 115, + 54, + 96, + 4, + 97, + 11, + 76, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 145, + 130, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 1, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 147, + 144, + 148, + 22, + 130, + 82, + 145, + 144, + 145, + 82, + 32, + 84, + 144, + 86, + 91, + 96, + 3, + 128, + 84, + 97, + 2, + 171, + 144, + 97, + 11, + 127, + 86, + 91, + 128, + 96, + 31, + 1, + 96, + 32, + 128, + 145, + 4, + 2, + 96, + 32, + 1, + 96, + 64, + 81, + 144, + 129, + 1, + 96, + 64, + 82, + 128, + 146, + 145, + 144, + 129, + 129, + 82, + 96, + 32, + 1, + 130, + 128, + 84, + 97, + 2, + 215, + 144, + 97, + 11, + 127, + 86, + 91, + 128, + 21, + 97, + 3, + 36, + 87, + 128, + 96, + 31, + 16, + 97, + 2, + 249, + 87, + 97, + 1, + 0, + 128, + 131, + 84, + 4, + 2, + 131, + 82, + 145, + 96, + 32, + 1, + 145, + 97, + 3, + 36, + 86, + 91, + 130, + 1, + 145, + 144, + 96, + 0, + 82, + 96, + 32, + 96, + 0, + 32, + 144, + 91, + 129, + 84, + 129, + 82, + 144, + 96, + 1, + 1, + 144, + 96, + 32, + 1, + 128, + 131, + 17, + 97, + 3, + 7, + 87, + 130, + 144, + 3, + 96, + 31, + 22, + 130, + 1, + 145, + 91, + 80, + 80, + 80, + 80, + 80, + 129, + 86, + 91, + 96, + 0, + 97, + 3, + 57, + 51, + 132, + 132, + 97, + 5, + 23, + 86, + 91, + 80, + 96, + 1, + 146, + 145, + 80, + 80, + 86, + 91, + 96, + 0, + 97, + 3, + 79, + 132, + 132, + 132, + 97, + 6, + 60, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 132, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 1, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 51, + 132, + 82, + 144, + 145, + 82, + 144, + 32, + 84, + 130, + 129, + 16, + 21, + 97, + 3, + 217, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 40, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 116, + 114, + 97, + 110, + 115, + 102, + 101, + 114, + 32, + 97, + 109, + 111, + 117, + 110, + 116, + 32, + 101, + 120, + 99, + 101, + 101, + 100, + 115, + 32, + 97, + 96, + 68, + 130, + 1, + 82, + 103, + 108, + 108, + 111, + 119, + 97, + 110, + 99, + 101, + 96, + 192, + 27, + 96, + 100, + 130, + 1, + 82, + 96, + 132, + 1, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 97, + 3, + 230, + 133, + 51, + 133, + 132, + 3, + 97, + 5, + 23, + 86, + 91, + 80, + 96, + 1, + 148, + 147, + 80, + 80, + 80, + 80, + 86, + 91, + 51, + 96, + 0, + 129, + 129, + 82, + 96, + 1, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 135, + 22, + 132, + 82, + 144, + 145, + 82, + 129, + 32, + 84, + 144, + 145, + 97, + 3, + 57, + 145, + 133, + 144, + 97, + 4, + 40, + 144, + 134, + 144, + 97, + 11, + 207, + 86, + 91, + 97, + 5, + 23, + 86, + 91, + 96, + 5, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 97, + 1, + 0, + 144, + 145, + 4, + 129, + 22, + 144, + 131, + 22, + 3, + 97, + 4, + 76, + 87, + 80, + 80, + 86, + 91, + 97, + 4, + 86, + 130, + 130, + 97, + 8, + 11, + 86, + 91, + 80, + 80, + 86, + 91, + 96, + 4, + 128, + 84, + 97, + 2, + 171, + 144, + 97, + 11, + 127, + 86, + 91, + 97, + 4, + 86, + 130, + 130, + 97, + 8, + 234, + 86, + 91, + 51, + 96, + 0, + 144, + 129, + 82, + 96, + 1, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 134, + 22, + 132, + 82, + 144, + 145, + 82, + 129, + 32, + 84, + 130, + 129, + 16, + 21, + 97, + 4, + 243, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 37, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 100, + 101, + 99, + 114, + 101, + 97, + 115, + 101, + 100, + 32, + 97, + 108, + 108, + 111, + 119, + 97, + 110, + 99, + 101, + 32, + 98, + 101, + 108, + 111, + 119, + 96, + 68, + 130, + 1, + 82, + 100, + 32, + 122, + 101, + 114, + 111, + 96, + 216, + 27, + 96, + 100, + 130, + 1, + 82, + 96, + 132, + 1, + 97, + 3, + 208, + 86, + 91, + 97, + 5, + 0, + 51, + 133, + 133, + 132, + 3, + 97, + 5, + 23, + 86, + 91, + 80, + 96, + 1, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 97, + 3, + 57, + 51, + 132, + 132, + 97, + 6, + 60, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 22, + 97, + 5, + 121, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 36, + 128, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 97, + 112, + 112, + 114, + 111, + 118, + 101, + 32, + 102, + 114, + 111, + 109, + 32, + 116, + 104, + 101, + 32, + 122, + 101, + 114, + 111, + 32, + 97, + 100, + 100, + 96, + 68, + 130, + 1, + 82, + 99, + 114, + 101, + 115, + 115, + 96, + 224, + 27, + 96, + 100, + 130, + 1, + 82, + 96, + 132, + 1, + 97, + 3, + 208, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 97, + 5, + 218, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 34, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 97, + 112, + 112, + 114, + 111, + 118, + 101, + 32, + 116, + 111, + 32, + 116, + 104, + 101, + 32, + 122, + 101, + 114, + 111, + 32, + 97, + 100, + 100, + 114, + 101, + 96, + 68, + 130, + 1, + 82, + 97, + 115, + 115, + 96, + 240, + 27, + 96, + 100, + 130, + 1, + 82, + 96, + 132, + 1, + 97, + 3, + 208, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 129, + 22, + 96, + 0, + 129, + 129, + 82, + 96, + 1, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 148, + 135, + 22, + 128, + 132, + 82, + 148, + 130, + 82, + 145, + 130, + 144, + 32, + 133, + 144, + 85, + 144, + 81, + 132, + 129, + 82, + 127, + 140, + 91, + 225, + 229, + 235, + 236, + 125, + 91, + 209, + 79, + 113, + 66, + 125, + 30, + 132, + 243, + 221, + 3, + 20, + 192, + 247, + 178, + 41, + 30, + 91, + 32, + 10, + 200, + 199, + 195, + 185, + 37, + 145, + 1, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 80, + 80, + 80, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 22, + 97, + 6, + 160, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 37, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 116, + 114, + 97, + 110, + 115, + 102, + 101, + 114, + 32, + 102, + 114, + 111, + 109, + 32, + 116, + 104, + 101, + 32, + 122, + 101, + 114, + 111, + 32, + 97, + 100, + 96, + 68, + 130, + 1, + 82, + 100, + 100, + 114, + 101, + 115, + 115, + 96, + 216, + 27, + 96, + 100, + 130, + 1, + 82, + 96, + 132, + 1, + 97, + 3, + 208, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 97, + 7, + 2, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 35, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 116, + 114, + 97, + 110, + 115, + 102, + 101, + 114, + 32, + 116, + 111, + 32, + 116, + 104, + 101, + 32, + 122, + 101, + 114, + 111, + 32, + 97, + 100, + 100, + 114, + 96, + 68, + 130, + 1, + 82, + 98, + 101, + 115, + 115, + 96, + 232, + 27, + 96, + 100, + 130, + 1, + 82, + 96, + 132, + 1, + 97, + 3, + 208, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 32, + 129, + 144, + 82, + 96, + 64, + 144, + 32, + 84, + 129, + 129, + 16, + 21, + 97, + 7, + 122, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 38, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 116, + 114, + 97, + 110, + 115, + 102, + 101, + 114, + 32, + 97, + 109, + 111, + 117, + 110, + 116, + 32, + 101, + 120, + 99, + 101, + 101, + 100, + 115, + 32, + 98, + 96, + 68, + 130, + 1, + 82, + 101, + 97, + 108, + 97, + 110, + 99, + 101, + 96, + 208, + 27, + 96, + 100, + 130, + 1, + 82, + 96, + 132, + 1, + 97, + 3, + 208, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 128, + 133, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 32, + 129, + 144, + 82, + 96, + 64, + 128, + 130, + 32, + 133, + 133, + 3, + 144, + 85, + 145, + 133, + 22, + 129, + 82, + 144, + 129, + 32, + 128, + 84, + 132, + 146, + 144, + 97, + 7, + 177, + 144, + 132, + 144, + 97, + 11, + 207, + 86, + 91, + 146, + 80, + 80, + 129, + 144, + 85, + 80, + 130, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 132, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 127, + 221, + 242, + 82, + 173, + 27, + 226, + 200, + 155, + 105, + 194, + 176, + 104, + 252, + 55, + 141, + 170, + 149, + 43, + 167, + 241, + 99, + 196, + 161, + 22, + 40, + 245, + 90, + 77, + 245, + 35, + 179, + 239, + 132, + 96, + 64, + 81, + 97, + 7, + 253, + 145, + 129, + 82, + 96, + 32, + 1, + 144, + 86, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 97, + 8, + 97, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 31, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 109, + 105, + 110, + 116, + 32, + 116, + 111, + 32, + 116, + 104, + 101, + 32, + 122, + 101, + 114, + 111, + 32, + 97, + 100, + 100, + 114, + 101, + 115, + 115, + 0, + 96, + 68, + 130, + 1, + 82, + 96, + 100, + 1, + 97, + 3, + 208, + 86, + 91, + 128, + 96, + 2, + 96, + 0, + 130, + 130, + 84, + 97, + 8, + 115, + 145, + 144, + 97, + 11, + 207, + 86, + 91, + 144, + 145, + 85, + 80, + 80, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 32, + 129, + 144, + 82, + 96, + 64, + 129, + 32, + 128, + 84, + 131, + 146, + 144, + 97, + 8, + 160, + 144, + 132, + 144, + 97, + 11, + 207, + 86, + 91, + 144, + 145, + 85, + 80, + 80, + 96, + 64, + 81, + 129, + 129, + 82, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 22, + 144, + 96, + 0, + 144, + 127, + 221, + 242, + 82, + 173, + 27, + 226, + 200, + 155, + 105, + 194, + 176, + 104, + 252, + 55, + 141, + 170, + 149, + 43, + 167, + 241, + 99, + 196, + 161, + 22, + 40, + 245, + 90, + 77, + 245, + 35, + 179, + 239, + 144, + 96, + 32, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 80, + 80, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 97, + 9, + 74, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 33, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 98, + 117, + 114, + 110, + 32, + 102, + 114, + 111, + 109, + 32, + 116, + 104, + 101, + 32, + 122, + 101, + 114, + 111, + 32, + 97, + 100, + 100, + 114, + 101, + 115, + 96, + 68, + 130, + 1, + 82, + 96, + 115, + 96, + 248, + 27, + 96, + 100, + 130, + 1, + 82, + 96, + 132, + 1, + 97, + 3, + 208, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 32, + 129, + 144, + 82, + 96, + 64, + 144, + 32, + 84, + 129, + 129, + 16, + 21, + 97, + 9, + 190, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 34, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 98, + 117, + 114, + 110, + 32, + 97, + 109, + 111, + 117, + 110, + 116, + 32, + 101, + 120, + 99, + 101, + 101, + 100, + 115, + 32, + 98, + 97, + 108, + 97, + 110, + 96, + 68, + 130, + 1, + 82, + 97, + 99, + 101, + 96, + 240, + 27, + 96, + 100, + 130, + 1, + 82, + 96, + 132, + 1, + 97, + 3, + 208, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 32, + 129, + 144, + 82, + 96, + 64, + 129, + 32, + 131, + 131, + 3, + 144, + 85, + 96, + 2, + 128, + 84, + 132, + 146, + 144, + 97, + 9, + 237, + 144, + 132, + 144, + 97, + 11, + 231, + 86, + 91, + 144, + 145, + 85, + 80, + 80, + 96, + 64, + 81, + 130, + 129, + 82, + 96, + 0, + 144, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 133, + 22, + 144, + 127, + 221, + 242, + 82, + 173, + 27, + 226, + 200, + 155, + 105, + 194, + 176, + 104, + 252, + 55, + 141, + 170, + 149, + 43, + 167, + 241, + 99, + 196, + 161, + 22, + 40, + 245, + 90, + 77, + 245, + 35, + 179, + 239, + 144, + 96, + 32, + 1, + 97, + 6, + 47, + 86, + 91, + 96, + 0, + 96, + 32, + 128, + 131, + 82, + 131, + 81, + 128, + 130, + 133, + 1, + 82, + 96, + 0, + 91, + 129, + 129, + 16, + 21, + 97, + 10, + 93, + 87, + 133, + 129, + 1, + 131, + 1, + 81, + 133, + 130, + 1, + 96, + 64, + 1, + 82, + 130, + 1, + 97, + 10, + 65, + 86, + 91, + 129, + 129, + 17, + 21, + 97, + 10, + 111, + 87, + 96, + 0, + 96, + 64, + 131, + 135, + 1, + 1, + 82, + 91, + 80, + 96, + 31, + 1, + 96, + 31, + 25, + 22, + 146, + 144, + 146, + 1, + 96, + 64, + 1, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 128, + 53, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 129, + 22, + 129, + 20, + 97, + 10, + 156, + 87, + 96, + 0, + 128, + 253, + 91, + 145, + 144, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 64, + 131, + 133, + 3, + 18, + 21, + 97, + 10, + 180, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 10, + 189, + 131, + 97, + 10, + 133, + 86, + 91, + 148, + 96, + 32, + 147, + 144, + 147, + 1, + 53, + 147, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 96, + 96, + 132, + 134, + 3, + 18, + 21, + 97, + 10, + 224, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 10, + 233, + 132, + 97, + 10, + 133, + 86, + 91, + 146, + 80, + 97, + 10, + 247, + 96, + 32, + 133, + 1, + 97, + 10, + 133, + 86, + 91, + 145, + 80, + 96, + 64, + 132, + 1, + 53, + 144, + 80, + 146, + 80, + 146, + 80, + 146, + 86, + 91, + 96, + 0, + 96, + 32, + 130, + 132, + 3, + 18, + 21, + 97, + 11, + 25, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 11, + 34, + 130, + 97, + 10, + 133, + 86, + 91, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 96, + 32, + 130, + 132, + 3, + 18, + 21, + 97, + 11, + 59, + 87, + 96, + 0, + 128, + 253, + 91, + 129, + 53, + 96, + 255, + 129, + 22, + 129, + 20, + 97, + 11, + 34, + 87, + 96, + 0, + 128, + 253, + 91, + 96, + 0, + 128, + 96, + 64, + 131, + 133, + 3, + 18, + 21, + 97, + 11, + 95, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 11, + 104, + 131, + 97, + 10, + 133, + 86, + 91, + 145, + 80, + 97, + 11, + 118, + 96, + 32, + 132, + 1, + 97, + 10, + 133, + 86, + 91, + 144, + 80, + 146, + 80, + 146, + 144, + 80, + 86, + 91, + 96, + 1, + 129, + 129, + 28, + 144, + 130, + 22, + 128, + 97, + 11, + 147, + 87, + 96, + 127, + 130, + 22, + 145, + 80, + 91, + 96, + 32, + 130, + 16, + 129, + 3, + 97, + 11, + 179, + 87, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 34, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 80, + 145, + 144, + 80, + 86, + 91, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 17, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 96, + 0, + 130, + 25, + 130, + 17, + 21, + 97, + 11, + 226, + 87, + 97, + 11, + 226, + 97, + 11, + 185, + 86, + 91, + 80, + 1, + 144, + 86, + 91, + 96, + 0, + 130, + 130, + 16, + 21, + 97, + 11, + 249, + 87, + 97, + 11, + 249, + 97, + 11, + 185, + 86, + 91, + 80, + 3, + 144, + 86, + 254, + 162, + 100, + 105, + 112, + 102, + 115, + 88, + 34, + 18, + 32, + 137, + 143, + 186, + 19, + 26, + 145, + 115, + 79, + 169, + 109, + 93, + 52, + 125, + 203, + 215, + 78, + 120, + 22, + 42, + 134, + 159, + 66, + 54, + 122, + 86, + 172, + 145, + 69, + 60, + 254, + 6, + 69, + 100, + 115, + 111, + 108, + 99, + 67, + 0, + 8, + 13, + 0, + 51, + ]; + ///The bytecode of the contract. + pub static ECHIDNAERC20_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __BYTECODE, + ); + #[rustfmt::skip] + const __DEPLOYED_BYTECODE: &[u8] = &[ + 96, + 128, + 96, + 64, + 82, + 52, + 128, + 21, + 97, + 0, + 16, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 96, + 4, + 54, + 16, + 97, + 0, + 245, + 87, + 96, + 0, + 53, + 96, + 224, + 28, + 128, + 99, + 80, + 211, + 244, + 124, + 17, + 97, + 0, + 151, + 87, + 128, + 99, + 157, + 194, + 159, + 172, + 17, + 97, + 0, + 102, + 87, + 128, + 99, + 157, + 194, + 159, + 172, + 20, + 97, + 2, + 44, + 87, + 128, + 99, + 164, + 87, + 194, + 215, + 20, + 97, + 2, + 63, + 87, + 128, + 99, + 169, + 5, + 156, + 187, + 20, + 97, + 2, + 82, + 87, + 128, + 99, + 221, + 98, + 237, + 62, + 20, + 97, + 2, + 101, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 80, + 211, + 244, + 124, + 20, + 97, + 1, + 167, + 87, + 128, + 99, + 112, + 160, + 130, + 49, + 20, + 97, + 1, + 215, + 87, + 128, + 99, + 122, + 19, + 149, + 170, + 20, + 97, + 2, + 0, + 87, + 128, + 99, + 149, + 216, + 155, + 65, + 20, + 97, + 2, + 36, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 35, + 184, + 114, + 221, + 17, + 97, + 0, + 211, + 87, + 128, + 99, + 35, + 184, + 114, + 221, + 20, + 97, + 1, + 77, + 87, + 128, + 99, + 49, + 60, + 229, + 103, + 20, + 97, + 1, + 96, + 87, + 128, + 99, + 57, + 80, + 147, + 81, + 20, + 97, + 1, + 127, + 87, + 128, + 99, + 64, + 193, + 15, + 25, + 20, + 97, + 1, + 146, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 6, + 253, + 222, + 3, + 20, + 97, + 0, + 250, + 87, + 128, + 99, + 9, + 94, + 167, + 179, + 20, + 97, + 1, + 24, + 87, + 128, + 99, + 24, + 22, + 13, + 221, + 20, + 97, + 1, + 59, + 87, + 91, + 96, + 0, + 128, + 253, + 91, + 97, + 1, + 2, + 97, + 2, + 158, + 86, + 91, + 96, + 64, + 81, + 97, + 1, + 15, + 145, + 144, + 97, + 10, + 48, + 86, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 243, + 91, + 97, + 1, + 43, + 97, + 1, + 38, + 54, + 96, + 4, + 97, + 10, + 161, + 86, + 91, + 97, + 3, + 44, + 86, + 91, + 96, + 64, + 81, + 144, + 21, + 21, + 129, + 82, + 96, + 32, + 1, + 97, + 1, + 15, + 86, + 91, + 96, + 2, + 84, + 91, + 96, + 64, + 81, + 144, + 129, + 82, + 96, + 32, + 1, + 97, + 1, + 15, + 86, + 91, + 97, + 1, + 43, + 97, + 1, + 91, + 54, + 96, + 4, + 97, + 10, + 203, + 86, + 91, + 97, + 3, + 66, + 86, + 91, + 96, + 5, + 84, + 97, + 1, + 109, + 144, + 96, + 255, + 22, + 129, + 86, + 91, + 96, + 64, + 81, + 96, + 255, + 144, + 145, + 22, + 129, + 82, + 96, + 32, + 1, + 97, + 1, + 15, + 86, + 91, + 97, + 1, + 43, + 97, + 1, + 141, + 54, + 96, + 4, + 97, + 10, + 161, + 86, + 91, + 97, + 3, + 241, + 86, + 91, + 97, + 1, + 165, + 97, + 1, + 160, + 54, + 96, + 4, + 97, + 10, + 161, + 86, + 91, + 97, + 4, + 45, + 86, + 91, + 0, + 91, + 96, + 5, + 84, + 97, + 1, + 191, + 144, + 97, + 1, + 0, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 86, + 91, + 96, + 64, + 81, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 144, + 145, + 22, + 129, + 82, + 96, + 32, + 1, + 97, + 1, + 15, + 86, + 91, + 97, + 1, + 63, + 97, + 1, + 229, + 54, + 96, + 4, + 97, + 11, + 7, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 32, + 129, + 144, + 82, + 96, + 64, + 144, + 32, + 84, + 144, + 86, + 91, + 97, + 1, + 165, + 97, + 2, + 14, + 54, + 96, + 4, + 97, + 11, + 41, + 86, + 91, + 96, + 5, + 128, + 84, + 96, + 255, + 25, + 22, + 96, + 255, + 146, + 144, + 146, + 22, + 145, + 144, + 145, + 23, + 144, + 85, + 86, + 91, + 97, + 1, + 2, + 97, + 4, + 90, + 86, + 91, + 97, + 1, + 165, + 97, + 2, + 58, + 54, + 96, + 4, + 97, + 10, + 161, + 86, + 91, + 97, + 4, + 103, + 86, + 91, + 97, + 1, + 43, + 97, + 2, + 77, + 54, + 96, + 4, + 97, + 10, + 161, + 86, + 91, + 97, + 4, + 113, + 86, + 91, + 97, + 1, + 43, + 97, + 2, + 96, + 54, + 96, + 4, + 97, + 10, + 161, + 86, + 91, + 97, + 5, + 10, + 86, + 91, + 97, + 1, + 63, + 97, + 2, + 115, + 54, + 96, + 4, + 97, + 11, + 76, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 145, + 130, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 1, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 147, + 144, + 148, + 22, + 130, + 82, + 145, + 144, + 145, + 82, + 32, + 84, + 144, + 86, + 91, + 96, + 3, + 128, + 84, + 97, + 2, + 171, + 144, + 97, + 11, + 127, + 86, + 91, + 128, + 96, + 31, + 1, + 96, + 32, + 128, + 145, + 4, + 2, + 96, + 32, + 1, + 96, + 64, + 81, + 144, + 129, + 1, + 96, + 64, + 82, + 128, + 146, + 145, + 144, + 129, + 129, + 82, + 96, + 32, + 1, + 130, + 128, + 84, + 97, + 2, + 215, + 144, + 97, + 11, + 127, + 86, + 91, + 128, + 21, + 97, + 3, + 36, + 87, + 128, + 96, + 31, + 16, + 97, + 2, + 249, + 87, + 97, + 1, + 0, + 128, + 131, + 84, + 4, + 2, + 131, + 82, + 145, + 96, + 32, + 1, + 145, + 97, + 3, + 36, + 86, + 91, + 130, + 1, + 145, + 144, + 96, + 0, + 82, + 96, + 32, + 96, + 0, + 32, + 144, + 91, + 129, + 84, + 129, + 82, + 144, + 96, + 1, + 1, + 144, + 96, + 32, + 1, + 128, + 131, + 17, + 97, + 3, + 7, + 87, + 130, + 144, + 3, + 96, + 31, + 22, + 130, + 1, + 145, + 91, + 80, + 80, + 80, + 80, + 80, + 129, + 86, + 91, + 96, + 0, + 97, + 3, + 57, + 51, + 132, + 132, + 97, + 5, + 23, + 86, + 91, + 80, + 96, + 1, + 146, + 145, + 80, + 80, + 86, + 91, + 96, + 0, + 97, + 3, + 79, + 132, + 132, + 132, + 97, + 6, + 60, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 132, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 1, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 51, + 132, + 82, + 144, + 145, + 82, + 144, + 32, + 84, + 130, + 129, + 16, + 21, + 97, + 3, + 217, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 40, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 116, + 114, + 97, + 110, + 115, + 102, + 101, + 114, + 32, + 97, + 109, + 111, + 117, + 110, + 116, + 32, + 101, + 120, + 99, + 101, + 101, + 100, + 115, + 32, + 97, + 96, + 68, + 130, + 1, + 82, + 103, + 108, + 108, + 111, + 119, + 97, + 110, + 99, + 101, + 96, + 192, + 27, + 96, + 100, + 130, + 1, + 82, + 96, + 132, + 1, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 97, + 3, + 230, + 133, + 51, + 133, + 132, + 3, + 97, + 5, + 23, + 86, + 91, + 80, + 96, + 1, + 148, + 147, + 80, + 80, + 80, + 80, + 86, + 91, + 51, + 96, + 0, + 129, + 129, + 82, + 96, + 1, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 135, + 22, + 132, + 82, + 144, + 145, + 82, + 129, + 32, + 84, + 144, + 145, + 97, + 3, + 57, + 145, + 133, + 144, + 97, + 4, + 40, + 144, + 134, + 144, + 97, + 11, + 207, + 86, + 91, + 97, + 5, + 23, + 86, + 91, + 96, + 5, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 97, + 1, + 0, + 144, + 145, + 4, + 129, + 22, + 144, + 131, + 22, + 3, + 97, + 4, + 76, + 87, + 80, + 80, + 86, + 91, + 97, + 4, + 86, + 130, + 130, + 97, + 8, + 11, + 86, + 91, + 80, + 80, + 86, + 91, + 96, + 4, + 128, + 84, + 97, + 2, + 171, + 144, + 97, + 11, + 127, + 86, + 91, + 97, + 4, + 86, + 130, + 130, + 97, + 8, + 234, + 86, + 91, + 51, + 96, + 0, + 144, + 129, + 82, + 96, + 1, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 134, + 22, + 132, + 82, + 144, + 145, + 82, + 129, + 32, + 84, + 130, + 129, + 16, + 21, + 97, + 4, + 243, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 37, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 100, + 101, + 99, + 114, + 101, + 97, + 115, + 101, + 100, + 32, + 97, + 108, + 108, + 111, + 119, + 97, + 110, + 99, + 101, + 32, + 98, + 101, + 108, + 111, + 119, + 96, + 68, + 130, + 1, + 82, + 100, + 32, + 122, + 101, + 114, + 111, + 96, + 216, + 27, + 96, + 100, + 130, + 1, + 82, + 96, + 132, + 1, + 97, + 3, + 208, + 86, + 91, + 97, + 5, + 0, + 51, + 133, + 133, + 132, + 3, + 97, + 5, + 23, + 86, + 91, + 80, + 96, + 1, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 97, + 3, + 57, + 51, + 132, + 132, + 97, + 6, + 60, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 22, + 97, + 5, + 121, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 36, + 128, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 97, + 112, + 112, + 114, + 111, + 118, + 101, + 32, + 102, + 114, + 111, + 109, + 32, + 116, + 104, + 101, + 32, + 122, + 101, + 114, + 111, + 32, + 97, + 100, + 100, + 96, + 68, + 130, + 1, + 82, + 99, + 114, + 101, + 115, + 115, + 96, + 224, + 27, + 96, + 100, + 130, + 1, + 82, + 96, + 132, + 1, + 97, + 3, + 208, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 97, + 5, + 218, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 34, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 97, + 112, + 112, + 114, + 111, + 118, + 101, + 32, + 116, + 111, + 32, + 116, + 104, + 101, + 32, + 122, + 101, + 114, + 111, + 32, + 97, + 100, + 100, + 114, + 101, + 96, + 68, + 130, + 1, + 82, + 97, + 115, + 115, + 96, + 240, + 27, + 96, + 100, + 130, + 1, + 82, + 96, + 132, + 1, + 97, + 3, + 208, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 129, + 22, + 96, + 0, + 129, + 129, + 82, + 96, + 1, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 148, + 135, + 22, + 128, + 132, + 82, + 148, + 130, + 82, + 145, + 130, + 144, + 32, + 133, + 144, + 85, + 144, + 81, + 132, + 129, + 82, + 127, + 140, + 91, + 225, + 229, + 235, + 236, + 125, + 91, + 209, + 79, + 113, + 66, + 125, + 30, + 132, + 243, + 221, + 3, + 20, + 192, + 247, + 178, + 41, + 30, + 91, + 32, + 10, + 200, + 199, + 195, + 185, + 37, + 145, + 1, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 80, + 80, + 80, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 22, + 97, + 6, + 160, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 37, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 116, + 114, + 97, + 110, + 115, + 102, + 101, + 114, + 32, + 102, + 114, + 111, + 109, + 32, + 116, + 104, + 101, + 32, + 122, + 101, + 114, + 111, + 32, + 97, + 100, + 96, + 68, + 130, + 1, + 82, + 100, + 100, + 114, + 101, + 115, + 115, + 96, + 216, + 27, + 96, + 100, + 130, + 1, + 82, + 96, + 132, + 1, + 97, + 3, + 208, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 97, + 7, + 2, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 35, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 116, + 114, + 97, + 110, + 115, + 102, + 101, + 114, + 32, + 116, + 111, + 32, + 116, + 104, + 101, + 32, + 122, + 101, + 114, + 111, + 32, + 97, + 100, + 100, + 114, + 96, + 68, + 130, + 1, + 82, + 98, + 101, + 115, + 115, + 96, + 232, + 27, + 96, + 100, + 130, + 1, + 82, + 96, + 132, + 1, + 97, + 3, + 208, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 32, + 129, + 144, + 82, + 96, + 64, + 144, + 32, + 84, + 129, + 129, + 16, + 21, + 97, + 7, + 122, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 38, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 116, + 114, + 97, + 110, + 115, + 102, + 101, + 114, + 32, + 97, + 109, + 111, + 117, + 110, + 116, + 32, + 101, + 120, + 99, + 101, + 101, + 100, + 115, + 32, + 98, + 96, + 68, + 130, + 1, + 82, + 101, + 97, + 108, + 97, + 110, + 99, + 101, + 96, + 208, + 27, + 96, + 100, + 130, + 1, + 82, + 96, + 132, + 1, + 97, + 3, + 208, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 128, + 133, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 32, + 129, + 144, + 82, + 96, + 64, + 128, + 130, + 32, + 133, + 133, + 3, + 144, + 85, + 145, + 133, + 22, + 129, + 82, + 144, + 129, + 32, + 128, + 84, + 132, + 146, + 144, + 97, + 7, + 177, + 144, + 132, + 144, + 97, + 11, + 207, + 86, + 91, + 146, + 80, + 80, + 129, + 144, + 85, + 80, + 130, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 132, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 127, + 221, + 242, + 82, + 173, + 27, + 226, + 200, + 155, + 105, + 194, + 176, + 104, + 252, + 55, + 141, + 170, + 149, + 43, + 167, + 241, + 99, + 196, + 161, + 22, + 40, + 245, + 90, + 77, + 245, + 35, + 179, + 239, + 132, + 96, + 64, + 81, + 97, + 7, + 253, + 145, + 129, + 82, + 96, + 32, + 1, + 144, + 86, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 97, + 8, + 97, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 31, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 109, + 105, + 110, + 116, + 32, + 116, + 111, + 32, + 116, + 104, + 101, + 32, + 122, + 101, + 114, + 111, + 32, + 97, + 100, + 100, + 114, + 101, + 115, + 115, + 0, + 96, + 68, + 130, + 1, + 82, + 96, + 100, + 1, + 97, + 3, + 208, + 86, + 91, + 128, + 96, + 2, + 96, + 0, + 130, + 130, + 84, + 97, + 8, + 115, + 145, + 144, + 97, + 11, + 207, + 86, + 91, + 144, + 145, + 85, + 80, + 80, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 32, + 129, + 144, + 82, + 96, + 64, + 129, + 32, + 128, + 84, + 131, + 146, + 144, + 97, + 8, + 160, + 144, + 132, + 144, + 97, + 11, + 207, + 86, + 91, + 144, + 145, + 85, + 80, + 80, + 96, + 64, + 81, + 129, + 129, + 82, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 22, + 144, + 96, + 0, + 144, + 127, + 221, + 242, + 82, + 173, + 27, + 226, + 200, + 155, + 105, + 194, + 176, + 104, + 252, + 55, + 141, + 170, + 149, + 43, + 167, + 241, + 99, + 196, + 161, + 22, + 40, + 245, + 90, + 77, + 245, + 35, + 179, + 239, + 144, + 96, + 32, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 80, + 80, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 97, + 9, + 74, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 33, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 98, + 117, + 114, + 110, + 32, + 102, + 114, + 111, + 109, + 32, + 116, + 104, + 101, + 32, + 122, + 101, + 114, + 111, + 32, + 97, + 100, + 100, + 114, + 101, + 115, + 96, + 68, + 130, + 1, + 82, + 96, + 115, + 96, + 248, + 27, + 96, + 100, + 130, + 1, + 82, + 96, + 132, + 1, + 97, + 3, + 208, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 32, + 129, + 144, + 82, + 96, + 64, + 144, + 32, + 84, + 129, + 129, + 16, + 21, + 97, + 9, + 190, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 34, + 96, + 36, + 130, + 1, + 82, + 127, + 69, + 82, + 67, + 50, + 48, + 58, + 32, + 98, + 117, + 114, + 110, + 32, + 97, + 109, + 111, + 117, + 110, + 116, + 32, + 101, + 120, + 99, + 101, + 101, + 100, + 115, + 32, + 98, + 97, + 108, + 97, + 110, + 96, + 68, + 130, + 1, + 82, + 97, + 99, + 101, + 96, + 240, + 27, + 96, + 100, + 130, + 1, + 82, + 96, + 132, + 1, + 97, + 3, + 208, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 32, + 129, + 144, + 82, + 96, + 64, + 129, + 32, + 131, + 131, + 3, + 144, + 85, + 96, + 2, + 128, + 84, + 132, + 146, + 144, + 97, + 9, + 237, + 144, + 132, + 144, + 97, + 11, + 231, + 86, + 91, + 144, + 145, + 85, + 80, + 80, + 96, + 64, + 81, + 130, + 129, + 82, + 96, + 0, + 144, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 133, + 22, + 144, + 127, + 221, + 242, + 82, + 173, + 27, + 226, + 200, + 155, + 105, + 194, + 176, + 104, + 252, + 55, + 141, + 170, + 149, + 43, + 167, + 241, + 99, + 196, + 161, + 22, + 40, + 245, + 90, + 77, + 245, + 35, + 179, + 239, + 144, + 96, + 32, + 1, + 97, + 6, + 47, + 86, + 91, + 96, + 0, + 96, + 32, + 128, + 131, + 82, + 131, + 81, + 128, + 130, + 133, + 1, + 82, + 96, + 0, + 91, + 129, + 129, + 16, + 21, + 97, + 10, + 93, + 87, + 133, + 129, + 1, + 131, + 1, + 81, + 133, + 130, + 1, + 96, + 64, + 1, + 82, + 130, + 1, + 97, + 10, + 65, + 86, + 91, + 129, + 129, + 17, + 21, + 97, + 10, + 111, + 87, + 96, + 0, + 96, + 64, + 131, + 135, + 1, + 1, + 82, + 91, + 80, + 96, + 31, + 1, + 96, + 31, + 25, + 22, + 146, + 144, + 146, + 1, + 96, + 64, + 1, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 128, + 53, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 129, + 22, + 129, + 20, + 97, + 10, + 156, + 87, + 96, + 0, + 128, + 253, + 91, + 145, + 144, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 64, + 131, + 133, + 3, + 18, + 21, + 97, + 10, + 180, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 10, + 189, + 131, + 97, + 10, + 133, + 86, + 91, + 148, + 96, + 32, + 147, + 144, + 147, + 1, + 53, + 147, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 96, + 96, + 132, + 134, + 3, + 18, + 21, + 97, + 10, + 224, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 10, + 233, + 132, + 97, + 10, + 133, + 86, + 91, + 146, + 80, + 97, + 10, + 247, + 96, + 32, + 133, + 1, + 97, + 10, + 133, + 86, + 91, + 145, + 80, + 96, + 64, + 132, + 1, + 53, + 144, + 80, + 146, + 80, + 146, + 80, + 146, + 86, + 91, + 96, + 0, + 96, + 32, + 130, + 132, + 3, + 18, + 21, + 97, + 11, + 25, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 11, + 34, + 130, + 97, + 10, + 133, + 86, + 91, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 96, + 32, + 130, + 132, + 3, + 18, + 21, + 97, + 11, + 59, + 87, + 96, + 0, + 128, + 253, + 91, + 129, + 53, + 96, + 255, + 129, + 22, + 129, + 20, + 97, + 11, + 34, + 87, + 96, + 0, + 128, + 253, + 91, + 96, + 0, + 128, + 96, + 64, + 131, + 133, + 3, + 18, + 21, + 97, + 11, + 95, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 11, + 104, + 131, + 97, + 10, + 133, + 86, + 91, + 145, + 80, + 97, + 11, + 118, + 96, + 32, + 132, + 1, + 97, + 10, + 133, + 86, + 91, + 144, + 80, + 146, + 80, + 146, + 144, + 80, + 86, + 91, + 96, + 1, + 129, + 129, + 28, + 144, + 130, + 22, + 128, + 97, + 11, + 147, + 87, + 96, + 127, + 130, + 22, + 145, + 80, + 91, + 96, + 32, + 130, + 16, + 129, + 3, + 97, + 11, + 179, + 87, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 34, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 80, + 145, + 144, + 80, + 86, + 91, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 17, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 96, + 0, + 130, + 25, + 130, + 17, + 21, + 97, + 11, + 226, + 87, + 97, + 11, + 226, + 97, + 11, + 185, + 86, + 91, + 80, + 1, + 144, + 86, + 91, + 96, + 0, + 130, + 130, + 16, + 21, + 97, + 11, + 249, + 87, + 97, + 11, + 249, + 97, + 11, + 185, + 86, + 91, + 80, + 3, + 144, + 86, + 254, + 162, + 100, + 105, + 112, + 102, + 115, + 88, + 34, + 18, + 32, + 137, + 143, + 186, + 19, + 26, + 145, + 115, + 79, + 169, + 109, + 93, + 52, + 125, + 203, + 215, + 78, + 120, + 22, + 42, + 134, + 159, + 66, + 54, + 122, + 86, + 172, + 145, + 69, + 60, + 254, + 6, + 69, + 100, + 115, + 111, + 108, + 99, + 67, + 0, + 8, + 13, + 0, + 51, + ]; + ///The deployed bytecode of the contract. + pub static ECHIDNAERC20_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __DEPLOYED_BYTECODE, + ); + pub struct EchidnaERC20(::ethers::contract::Contract); + impl ::core::clone::Clone for EchidnaERC20 { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for EchidnaERC20 { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for EchidnaERC20 { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for EchidnaERC20 { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(stringify!(EchidnaERC20)).field(&self.address()).finish() + } + } + impl EchidnaERC20 { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + ECHIDNAERC20_ABI.clone(), + client, + ), + ) + } + /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. + /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction + /// + /// Notes: + /// - If there are no constructor arguments, you should pass `()` as the argument. + /// - The default poll duration is 7 seconds. + /// - The default number of confirmations is 1 block. + /// + /// + /// # Example + /// + /// Generate contract bindings with `abigen!` and deploy a new contract instance. + /// + /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. + /// + /// ```ignore + /// # async fn deploy(client: ::std::sync::Arc) { + /// abigen!(Greeter, "../greeter.json"); + /// + /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); + /// let msg = greeter_contract.greet().call().await.unwrap(); + /// # } + /// ``` + pub fn deploy( + client: ::std::sync::Arc, + constructor_args: T, + ) -> ::core::result::Result< + ::ethers::contract::builders::ContractDeployer, + ::ethers::contract::ContractError, + > { + let factory = ::ethers::contract::ContractFactory::new( + ECHIDNAERC20_ABI.clone(), + ECHIDNAERC20_BYTECODE.clone().into(), + client, + ); + let deployer = factory.deploy(constructor_args)?; + let deployer = ::ethers::contract::ContractDeployer::new(deployer); + Ok(deployer) + } + ///Calls the contract's `Portfolio` (0x50d3f47c) function + pub fn portfolio( + &self, + ) -> ::ethers::contract::builders::ContractCall< + M, + ::ethers::core::types::Address, + > { + self.0 + .method_hash([80, 211, 244, 124], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `allowance` (0xdd62ed3e) function + pub fn allowance( + &self, + owner: ::ethers::core::types::Address, + spender: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([221, 98, 237, 62], (owner, spender)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `approve` (0x095ea7b3) function + pub fn approve( + &self, + spender: ::ethers::core::types::Address, + amount: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([9, 94, 167, 179], (spender, amount)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `balanceOf` (0x70a08231) function + pub fn balance_of( + &self, + account: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([112, 160, 130, 49], account) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `burn` (0x9dc29fac) function + pub fn burn( + &self, + to: ::ethers::core::types::Address, + wad: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([157, 194, 159, 172], (to, wad)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `decimals` (0x313ce567) function + pub fn decimals(&self) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([49, 60, 229, 103], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `decreaseAllowance` (0xa457c2d7) function + pub fn decrease_allowance( + &self, + spender: ::ethers::core::types::Address, + subtracted_value: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([164, 87, 194, 215], (spender, subtracted_value)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `increaseAllowance` (0x39509351) function + pub fn increase_allowance( + &self, + spender: ::ethers::core::types::Address, + added_value: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([57, 80, 147, 81], (spender, added_value)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `mint` (0x40c10f19) function + pub fn mint( + &self, + to: ::ethers::core::types::Address, + wad: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([64, 193, 15, 25], (to, wad)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `name` (0x06fdde03) function + pub fn name( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([6, 253, 222, 3], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `setDecimals` (0x7a1395aa) function + pub fn set_decimals( + &self, + decimals: u8, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([122, 19, 149, 170], decimals) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `symbol` (0x95d89b41) function + pub fn symbol( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([149, 216, 155, 65], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `totalSupply` (0x18160ddd) function + pub fn total_supply( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([24, 22, 13, 221], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `transfer` (0xa9059cbb) function + pub fn transfer( + &self, + recipient: ::ethers::core::types::Address, + amount: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([169, 5, 156, 187], (recipient, amount)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `transferFrom` (0x23b872dd) function + pub fn transfer_from( + &self, + sender: ::ethers::core::types::Address, + recipient: ::ethers::core::types::Address, + amount: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([35, 184, 114, 221], (sender, recipient, amount)) + .expect("method not found (this should never happen)") + } + ///Gets the contract's `Approval` event + pub fn approval_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + ApprovalFilter, + > { + self.0.event() + } + ///Gets the contract's `Transfer` event + pub fn transfer_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + TransferFilter, + > { + self.0.event() + } + /// Returns an `Event` builder for all the events of this contract. + pub fn events( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + EchidnaERC20Events, + > { + self.0.event_with_filter(::core::default::Default::default()) + } + } + impl From<::ethers::contract::Contract> + for EchidnaERC20 { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "Approval", abi = "Approval(address,address,uint256)")] + pub struct ApprovalFilter { + #[ethevent(indexed)] + pub owner: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub spender: ::ethers::core::types::Address, + pub value: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "Transfer", abi = "Transfer(address,address,uint256)")] + pub struct TransferFilter { + #[ethevent(indexed)] + pub from: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub to: ::ethers::core::types::Address, + pub value: ::ethers::core::types::U256, + } + ///Container type for all of the contract's events + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum EchidnaERC20Events { + ApprovalFilter(ApprovalFilter), + TransferFilter(TransferFilter), + } + impl ::ethers::contract::EthLogDecode for EchidnaERC20Events { + fn decode_log( + log: &::ethers::core::abi::RawLog, + ) -> ::core::result::Result { + if let Ok(decoded) = ApprovalFilter::decode_log(log) { + return Ok(EchidnaERC20Events::ApprovalFilter(decoded)); + } + if let Ok(decoded) = TransferFilter::decode_log(log) { + return Ok(EchidnaERC20Events::TransferFilter(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData) + } + } + impl ::core::fmt::Display for EchidnaERC20Events { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::ApprovalFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::TransferFilter(element) => ::core::fmt::Display::fmt(element, f), + } + } + } + impl ::core::convert::From for EchidnaERC20Events { + fn from(value: ApprovalFilter) -> Self { + Self::ApprovalFilter(value) + } + } + impl ::core::convert::From for EchidnaERC20Events { + fn from(value: TransferFilter) -> Self { + Self::TransferFilter(value) + } + } + ///Container type for all input parameters for the `Portfolio` function with signature `Portfolio()` and selector `0x50d3f47c` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "Portfolio", abi = "Portfolio()")] + pub struct PortfolioCall; + ///Container type for all input parameters for the `allowance` function with signature `allowance(address,address)` and selector `0xdd62ed3e` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "allowance", abi = "allowance(address,address)")] + pub struct AllowanceCall { + pub owner: ::ethers::core::types::Address, + pub spender: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "approve", abi = "approve(address,uint256)")] + pub struct ApproveCall { + pub spender: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "balanceOf", abi = "balanceOf(address)")] + pub struct BalanceOfCall { + pub account: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `burn` function with signature `burn(address,uint256)` and selector `0x9dc29fac` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "burn", abi = "burn(address,uint256)")] + pub struct BurnCall { + pub to: ::ethers::core::types::Address, + pub wad: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `decimals` function with signature `decimals()` and selector `0x313ce567` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "decimals", abi = "decimals()")] + pub struct DecimalsCall; + ///Container type for all input parameters for the `decreaseAllowance` function with signature `decreaseAllowance(address,uint256)` and selector `0xa457c2d7` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "decreaseAllowance", abi = "decreaseAllowance(address,uint256)")] + pub struct DecreaseAllowanceCall { + pub spender: ::ethers::core::types::Address, + pub subtracted_value: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `increaseAllowance` function with signature `increaseAllowance(address,uint256)` and selector `0x39509351` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "increaseAllowance", abi = "increaseAllowance(address,uint256)")] + pub struct IncreaseAllowanceCall { + pub spender: ::ethers::core::types::Address, + pub added_value: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `mint` function with signature `mint(address,uint256)` and selector `0x40c10f19` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "mint", abi = "mint(address,uint256)")] + pub struct MintCall { + pub to: ::ethers::core::types::Address, + pub wad: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `name` function with signature `name()` and selector `0x06fdde03` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "name", abi = "name()")] + pub struct NameCall; + ///Container type for all input parameters for the `setDecimals` function with signature `setDecimals(uint8)` and selector `0x7a1395aa` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "setDecimals", abi = "setDecimals(uint8)")] + pub struct SetDecimalsCall { + pub decimals: u8, + } + ///Container type for all input parameters for the `symbol` function with signature `symbol()` and selector `0x95d89b41` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "symbol", abi = "symbol()")] + pub struct SymbolCall; + ///Container type for all input parameters for the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "totalSupply", abi = "totalSupply()")] + pub struct TotalSupplyCall; + ///Container type for all input parameters for the `transfer` function with signature `transfer(address,uint256)` and selector `0xa9059cbb` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "transfer", abi = "transfer(address,uint256)")] + pub struct TransferCall { + pub recipient: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "transferFrom", abi = "transferFrom(address,address,uint256)")] + pub struct TransferFromCall { + pub sender: ::ethers::core::types::Address, + pub recipient: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + ///Container type for all of the contract's call + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum EchidnaERC20Calls { + Portfolio(PortfolioCall), + Allowance(AllowanceCall), + Approve(ApproveCall), + BalanceOf(BalanceOfCall), + Burn(BurnCall), + Decimals(DecimalsCall), + DecreaseAllowance(DecreaseAllowanceCall), + IncreaseAllowance(IncreaseAllowanceCall), + Mint(MintCall), + Name(NameCall), + SetDecimals(SetDecimalsCall), + Symbol(SymbolCall), + TotalSupply(TotalSupplyCall), + Transfer(TransferCall), + TransferFrom(TransferFromCall), + } + impl ::ethers::core::abi::AbiDecode for EchidnaERC20Calls { + fn decode( + data: impl AsRef<[u8]>, + ) -> ::core::result::Result { + let data = data.as_ref(); + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Portfolio(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Allowance(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Approve(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::BalanceOf(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Burn(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Decimals(decoded)); + } + if let Ok(decoded) + = ::decode( + data, + ) { + return Ok(Self::DecreaseAllowance(decoded)); + } + if let Ok(decoded) + = ::decode( + data, + ) { + return Ok(Self::IncreaseAllowance(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Mint(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Name(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::SetDecimals(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Symbol(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::TotalSupply(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Transfer(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::TransferFrom(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData.into()) + } + } + impl ::ethers::core::abi::AbiEncode for EchidnaERC20Calls { + fn encode(self) -> Vec { + match self { + Self::Portfolio(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Allowance(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Approve(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::BalanceOf(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Burn(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Decimals(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::DecreaseAllowance(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::IncreaseAllowance(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Mint(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Name(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::SetDecimals(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Symbol(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::TotalSupply(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Transfer(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::TransferFrom(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + } + } + } + impl ::core::fmt::Display for EchidnaERC20Calls { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::Portfolio(element) => ::core::fmt::Display::fmt(element, f), + Self::Allowance(element) => ::core::fmt::Display::fmt(element, f), + Self::Approve(element) => ::core::fmt::Display::fmt(element, f), + Self::BalanceOf(element) => ::core::fmt::Display::fmt(element, f), + Self::Burn(element) => ::core::fmt::Display::fmt(element, f), + Self::Decimals(element) => ::core::fmt::Display::fmt(element, f), + Self::DecreaseAllowance(element) => ::core::fmt::Display::fmt(element, f), + Self::IncreaseAllowance(element) => ::core::fmt::Display::fmt(element, f), + Self::Mint(element) => ::core::fmt::Display::fmt(element, f), + Self::Name(element) => ::core::fmt::Display::fmt(element, f), + Self::SetDecimals(element) => ::core::fmt::Display::fmt(element, f), + Self::Symbol(element) => ::core::fmt::Display::fmt(element, f), + Self::TotalSupply(element) => ::core::fmt::Display::fmt(element, f), + Self::Transfer(element) => ::core::fmt::Display::fmt(element, f), + Self::TransferFrom(element) => ::core::fmt::Display::fmt(element, f), + } + } + } + impl ::core::convert::From for EchidnaERC20Calls { + fn from(value: PortfolioCall) -> Self { + Self::Portfolio(value) + } + } + impl ::core::convert::From for EchidnaERC20Calls { + fn from(value: AllowanceCall) -> Self { + Self::Allowance(value) + } + } + impl ::core::convert::From for EchidnaERC20Calls { + fn from(value: ApproveCall) -> Self { + Self::Approve(value) + } + } + impl ::core::convert::From for EchidnaERC20Calls { + fn from(value: BalanceOfCall) -> Self { + Self::BalanceOf(value) + } + } + impl ::core::convert::From for EchidnaERC20Calls { + fn from(value: BurnCall) -> Self { + Self::Burn(value) + } + } + impl ::core::convert::From for EchidnaERC20Calls { + fn from(value: DecimalsCall) -> Self { + Self::Decimals(value) + } + } + impl ::core::convert::From for EchidnaERC20Calls { + fn from(value: DecreaseAllowanceCall) -> Self { + Self::DecreaseAllowance(value) + } + } + impl ::core::convert::From for EchidnaERC20Calls { + fn from(value: IncreaseAllowanceCall) -> Self { + Self::IncreaseAllowance(value) + } + } + impl ::core::convert::From for EchidnaERC20Calls { + fn from(value: MintCall) -> Self { + Self::Mint(value) + } + } + impl ::core::convert::From for EchidnaERC20Calls { + fn from(value: NameCall) -> Self { + Self::Name(value) + } + } + impl ::core::convert::From for EchidnaERC20Calls { + fn from(value: SetDecimalsCall) -> Self { + Self::SetDecimals(value) + } + } + impl ::core::convert::From for EchidnaERC20Calls { + fn from(value: SymbolCall) -> Self { + Self::Symbol(value) + } + } + impl ::core::convert::From for EchidnaERC20Calls { + fn from(value: TotalSupplyCall) -> Self { + Self::TotalSupply(value) + } + } + impl ::core::convert::From for EchidnaERC20Calls { + fn from(value: TransferCall) -> Self { + Self::Transfer(value) + } + } + impl ::core::convert::From for EchidnaERC20Calls { + fn from(value: TransferFromCall) -> Self { + Self::TransferFrom(value) + } + } + ///Container type for all return fields from the `Portfolio` function with signature `Portfolio()` and selector `0x50d3f47c` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct PortfolioReturn(pub ::ethers::core::types::Address); + ///Container type for all return fields from the `allowance` function with signature `allowance(address,address)` and selector `0xdd62ed3e` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct AllowanceReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct ApproveReturn(pub bool); + ///Container type for all return fields from the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct BalanceOfReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `decimals` function with signature `decimals()` and selector `0x313ce567` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct DecimalsReturn(pub u8); + ///Container type for all return fields from the `decreaseAllowance` function with signature `decreaseAllowance(address,uint256)` and selector `0xa457c2d7` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct DecreaseAllowanceReturn(pub bool); + ///Container type for all return fields from the `increaseAllowance` function with signature `increaseAllowance(address,uint256)` and selector `0x39509351` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct IncreaseAllowanceReturn(pub bool); + ///Container type for all return fields from the `name` function with signature `name()` and selector `0x06fdde03` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct NameReturn(pub ::std::string::String); + ///Container type for all return fields from the `symbol` function with signature `symbol()` and selector `0x95d89b41` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct SymbolReturn(pub ::std::string::String); + ///Container type for all return fields from the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct TotalSupplyReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `transfer` function with signature `transfer(address,uint256)` and selector `0xa9059cbb` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct TransferReturn(pub bool); + ///Container type for all return fields from the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct TransferFromReturn(pub bool); +} +pub use fvm_lib::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod fvm_lib { + #[rustfmt::skip] + const __ABI: &str = "[]"; + ///The parsed JSON ABI of the contract. + pub static FVMLIB_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| + ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); + pub struct FVMLib(::ethers::contract::Contract); + impl ::core::clone::Clone for FVMLib { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for FVMLib { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for FVMLib { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for FVMLib { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(stringify!(FVMLib)).field(&self.address()).finish() + } + } + impl FVMLib { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + FVMLIB_ABI.clone(), + client, + ), + ) + } + } + impl From<::ethers::contract::Contract> + for FVMLib { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } +} +pub use fee_on_transfer_token::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod fee_on_transfer_token { + #[rustfmt::skip] + const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\",\"components\":[]},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Approval\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Transfer\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"burn\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"mint\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\",\"components\":[]},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\",\"components\":[]},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"permit\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]}]"; + ///The parsed JSON ABI of the contract. + pub static FEEONTRANSFERTOKEN_ABI: ::ethers::contract::Lazy< + ::ethers::core::abi::Abi, + > = ::ethers::contract::Lazy::new(|| { + ::ethers::core::utils::__serde_json::from_str(__ABI) + .expect("ABI is always valid") + }); + #[rustfmt::skip] + const __BYTECODE: &[u8] = &[ + 96, + 224, + 96, + 64, + 82, + 52, + 128, + 21, + 98, + 0, + 0, + 17, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 96, + 64, + 81, + 98, + 0, + 16, + 163, + 56, + 3, + 128, + 98, + 0, + 16, + 163, + 131, + 57, + 129, + 1, + 96, + 64, + 129, + 144, + 82, + 98, + 0, + 0, + 52, + 145, + 98, + 0, + 2, + 160, + 86, + 91, + 130, + 130, + 130, + 130, + 130, + 130, + 130, + 96, + 0, + 144, + 128, + 81, + 144, + 96, + 32, + 1, + 144, + 98, + 0, + 0, + 82, + 146, + 145, + 144, + 98, + 0, + 1, + 45, + 86, + 91, + 80, + 129, + 81, + 98, + 0, + 0, + 104, + 144, + 96, + 1, + 144, + 96, + 32, + 133, + 1, + 144, + 98, + 0, + 1, + 45, + 86, + 91, + 80, + 96, + 255, + 129, + 22, + 96, + 128, + 82, + 70, + 96, + 160, + 82, + 98, + 0, + 0, + 126, + 98, + 0, + 0, + 145, + 86, + 91, + 96, + 192, + 82, + 80, + 98, + 0, + 4, + 4, + 151, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 127, + 139, + 115, + 195, + 198, + 155, + 184, + 254, + 61, + 81, + 46, + 204, + 76, + 247, + 89, + 204, + 121, + 35, + 159, + 123, + 23, + 155, + 15, + 250, + 202, + 169, + 167, + 93, + 82, + 43, + 57, + 64, + 15, + 96, + 0, + 96, + 64, + 81, + 98, + 0, + 0, + 197, + 145, + 144, + 98, + 0, + 3, + 97, + 86, + 91, + 96, + 64, + 128, + 81, + 145, + 130, + 144, + 3, + 130, + 32, + 96, + 32, + 131, + 1, + 147, + 144, + 147, + 82, + 129, + 1, + 145, + 144, + 145, + 82, + 127, + 200, + 158, + 253, + 170, + 84, + 192, + 242, + 12, + 122, + 223, + 97, + 40, + 130, + 223, + 9, + 80, + 245, + 169, + 81, + 99, + 126, + 3, + 7, + 205, + 203, + 76, + 103, + 47, + 41, + 139, + 139, + 198, + 96, + 96, + 130, + 1, + 82, + 70, + 96, + 128, + 130, + 1, + 82, + 48, + 96, + 160, + 130, + 1, + 82, + 96, + 192, + 1, + 96, + 64, + 81, + 96, + 32, + 129, + 131, + 3, + 3, + 129, + 82, + 144, + 96, + 64, + 82, + 128, + 81, + 144, + 96, + 32, + 1, + 32, + 144, + 80, + 144, + 86, + 91, + 130, + 128, + 84, + 98, + 0, + 1, + 59, + 144, + 98, + 0, + 3, + 37, + 86, + 91, + 144, + 96, + 0, + 82, + 96, + 32, + 96, + 0, + 32, + 144, + 96, + 31, + 1, + 96, + 32, + 144, + 4, + 129, + 1, + 146, + 130, + 98, + 0, + 1, + 95, + 87, + 96, + 0, + 133, + 85, + 98, + 0, + 1, + 170, + 86, + 91, + 130, + 96, + 31, + 16, + 98, + 0, + 1, + 122, + 87, + 128, + 81, + 96, + 255, + 25, + 22, + 131, + 128, + 1, + 23, + 133, + 85, + 98, + 0, + 1, + 170, + 86, + 91, + 130, + 128, + 1, + 96, + 1, + 1, + 133, + 85, + 130, + 21, + 98, + 0, + 1, + 170, + 87, + 145, + 130, + 1, + 91, + 130, + 129, + 17, + 21, + 98, + 0, + 1, + 170, + 87, + 130, + 81, + 130, + 85, + 145, + 96, + 32, + 1, + 145, + 144, + 96, + 1, + 1, + 144, + 98, + 0, + 1, + 141, + 86, + 91, + 80, + 98, + 0, + 1, + 184, + 146, + 145, + 80, + 98, + 0, + 1, + 188, + 86, + 91, + 80, + 144, + 86, + 91, + 91, + 128, + 130, + 17, + 21, + 98, + 0, + 1, + 184, + 87, + 96, + 0, + 129, + 85, + 96, + 1, + 1, + 98, + 0, + 1, + 189, + 86, + 91, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 65, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 96, + 0, + 130, + 96, + 31, + 131, + 1, + 18, + 98, + 0, + 1, + 251, + 87, + 96, + 0, + 128, + 253, + 91, + 129, + 81, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 128, + 130, + 17, + 21, + 98, + 0, + 2, + 24, + 87, + 98, + 0, + 2, + 24, + 98, + 0, + 1, + 211, + 86, + 91, + 96, + 64, + 81, + 96, + 31, + 131, + 1, + 96, + 31, + 25, + 144, + 129, + 22, + 96, + 63, + 1, + 22, + 129, + 1, + 144, + 130, + 130, + 17, + 129, + 131, + 16, + 23, + 21, + 98, + 0, + 2, + 67, + 87, + 98, + 0, + 2, + 67, + 98, + 0, + 1, + 211, + 86, + 91, + 129, + 96, + 64, + 82, + 131, + 129, + 82, + 96, + 32, + 146, + 80, + 134, + 131, + 133, + 136, + 1, + 1, + 17, + 21, + 98, + 0, + 2, + 96, + 87, + 96, + 0, + 128, + 253, + 91, + 96, + 0, + 145, + 80, + 91, + 131, + 130, + 16, + 21, + 98, + 0, + 2, + 132, + 87, + 133, + 130, + 1, + 131, + 1, + 81, + 129, + 131, + 1, + 132, + 1, + 82, + 144, + 130, + 1, + 144, + 98, + 0, + 2, + 101, + 86, + 91, + 131, + 130, + 17, + 21, + 98, + 0, + 2, + 150, + 87, + 96, + 0, + 131, + 133, + 131, + 1, + 1, + 82, + 91, + 150, + 149, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 96, + 96, + 132, + 134, + 3, + 18, + 21, + 98, + 0, + 2, + 182, + 87, + 96, + 0, + 128, + 253, + 91, + 131, + 81, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 128, + 130, + 17, + 21, + 98, + 0, + 2, + 206, + 87, + 96, + 0, + 128, + 253, + 91, + 98, + 0, + 2, + 220, + 135, + 131, + 136, + 1, + 98, + 0, + 1, + 233, + 86, + 91, + 148, + 80, + 96, + 32, + 134, + 1, + 81, + 145, + 80, + 128, + 130, + 17, + 21, + 98, + 0, + 2, + 243, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 98, + 0, + 3, + 2, + 134, + 130, + 135, + 1, + 98, + 0, + 1, + 233, + 86, + 91, + 146, + 80, + 80, + 96, + 64, + 132, + 1, + 81, + 96, + 255, + 129, + 22, + 129, + 20, + 98, + 0, + 3, + 26, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 145, + 80, + 80, + 146, + 80, + 146, + 80, + 146, + 86, + 91, + 96, + 1, + 129, + 129, + 28, + 144, + 130, + 22, + 128, + 98, + 0, + 3, + 58, + 87, + 96, + 127, + 130, + 22, + 145, + 80, + 91, + 96, + 32, + 130, + 16, + 129, + 3, + 98, + 0, + 3, + 91, + 87, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 34, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 80, + 145, + 144, + 80, + 86, + 91, + 96, + 0, + 128, + 131, + 84, + 129, + 96, + 1, + 130, + 129, + 28, + 145, + 80, + 128, + 131, + 22, + 128, + 98, + 0, + 3, + 126, + 87, + 96, + 127, + 131, + 22, + 146, + 80, + 91, + 96, + 32, + 128, + 132, + 16, + 130, + 3, + 98, + 0, + 3, + 158, + 87, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 134, + 82, + 96, + 34, + 96, + 4, + 82, + 96, + 36, + 134, + 253, + 91, + 129, + 128, + 21, + 98, + 0, + 3, + 181, + 87, + 96, + 1, + 129, + 20, + 98, + 0, + 3, + 199, + 87, + 98, + 0, + 3, + 246, + 86, + 91, + 96, + 255, + 25, + 134, + 22, + 137, + 82, + 132, + 137, + 1, + 150, + 80, + 98, + 0, + 3, + 246, + 86, + 91, + 96, + 0, + 138, + 129, + 82, + 96, + 32, + 144, + 32, + 96, + 0, + 91, + 134, + 129, + 16, + 21, + 98, + 0, + 3, + 238, + 87, + 129, + 84, + 139, + 130, + 1, + 82, + 144, + 133, + 1, + 144, + 131, + 1, + 98, + 0, + 3, + 211, + 86, + 91, + 80, + 80, + 132, + 137, + 1, + 150, + 80, + 91, + 80, + 148, + 152, + 151, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 128, + 81, + 96, + 160, + 81, + 96, + 192, + 81, + 97, + 12, + 111, + 98, + 0, + 4, + 52, + 96, + 0, + 57, + 96, + 0, + 97, + 3, + 243, + 1, + 82, + 96, + 0, + 97, + 3, + 190, + 1, + 82, + 96, + 0, + 97, + 1, + 95, + 1, + 82, + 97, + 12, + 111, + 96, + 0, + 243, + 254, + 96, + 128, + 96, + 64, + 82, + 52, + 128, + 21, + 97, + 0, + 16, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 96, + 4, + 54, + 16, + 97, + 0, + 234, + 87, + 96, + 0, + 53, + 96, + 224, + 28, + 128, + 99, + 112, + 160, + 130, + 49, + 17, + 97, + 0, + 140, + 87, + 128, + 99, + 157, + 194, + 159, + 172, + 17, + 97, + 0, + 102, + 87, + 128, + 99, + 157, + 194, + 159, + 172, + 20, + 97, + 1, + 248, + 87, + 128, + 99, + 169, + 5, + 156, + 187, + 20, + 97, + 2, + 11, + 87, + 128, + 99, + 213, + 5, + 172, + 207, + 20, + 97, + 2, + 30, + 87, + 128, + 99, + 221, + 98, + 237, + 62, + 20, + 97, + 2, + 49, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 112, + 160, + 130, + 49, + 20, + 97, + 1, + 176, + 87, + 128, + 99, + 126, + 206, + 190, + 0, + 20, + 97, + 1, + 208, + 87, + 128, + 99, + 149, + 216, + 155, + 65, + 20, + 97, + 1, + 240, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 35, + 184, + 114, + 221, + 17, + 97, + 0, + 200, + 87, + 128, + 99, + 35, + 184, + 114, + 221, + 20, + 97, + 1, + 71, + 87, + 128, + 99, + 49, + 60, + 229, + 103, + 20, + 97, + 1, + 90, + 87, + 128, + 99, + 54, + 68, + 229, + 21, + 20, + 97, + 1, + 147, + 87, + 128, + 99, + 64, + 193, + 15, + 25, + 20, + 97, + 1, + 155, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 6, + 253, + 222, + 3, + 20, + 97, + 0, + 239, + 87, + 128, + 99, + 9, + 94, + 167, + 179, + 20, + 97, + 1, + 13, + 87, + 128, + 99, + 24, + 22, + 13, + 221, + 20, + 97, + 1, + 48, + 87, + 91, + 96, + 0, + 128, + 253, + 91, + 97, + 0, + 247, + 97, + 2, + 92, + 86, + 91, + 96, + 64, + 81, + 97, + 1, + 4, + 145, + 144, + 97, + 9, + 31, + 86, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 243, + 91, + 97, + 1, + 32, + 97, + 1, + 27, + 54, + 96, + 4, + 97, + 9, + 144, + 86, + 91, + 97, + 2, + 234, + 86, + 91, + 96, + 64, + 81, + 144, + 21, + 21, + 129, + 82, + 96, + 32, + 1, + 97, + 1, + 4, + 86, + 91, + 97, + 1, + 57, + 96, + 2, + 84, + 129, + 86, + 91, + 96, + 64, + 81, + 144, + 129, + 82, + 96, + 32, + 1, + 97, + 1, + 4, + 86, + 91, + 97, + 1, + 32, + 97, + 1, + 85, + 54, + 96, + 4, + 97, + 9, + 186, + 86, + 91, + 97, + 3, + 86, + 86, + 91, + 97, + 1, + 129, + 127, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 129, + 86, + 91, + 96, + 64, + 81, + 96, + 255, + 144, + 145, + 22, + 129, + 82, + 96, + 32, + 1, + 97, + 1, + 4, + 86, + 91, + 97, + 1, + 57, + 97, + 3, + 186, + 86, + 91, + 97, + 1, + 174, + 97, + 1, + 169, + 54, + 96, + 4, + 97, + 9, + 144, + 86, + 91, + 97, + 4, + 21, + 86, + 91, + 0, + 91, + 97, + 1, + 57, + 97, + 1, + 190, + 54, + 96, + 4, + 97, + 9, + 246, + 86, + 91, + 96, + 3, + 96, + 32, + 82, + 96, + 0, + 144, + 129, + 82, + 96, + 64, + 144, + 32, + 84, + 129, + 86, + 91, + 97, + 1, + 57, + 97, + 1, + 222, + 54, + 96, + 4, + 97, + 9, + 246, + 86, + 91, + 96, + 5, + 96, + 32, + 82, + 96, + 0, + 144, + 129, + 82, + 96, + 64, + 144, + 32, + 84, + 129, + 86, + 91, + 97, + 0, + 247, + 97, + 4, + 35, + 86, + 91, + 97, + 1, + 174, + 97, + 2, + 6, + 54, + 96, + 4, + 97, + 9, + 144, + 86, + 91, + 97, + 4, + 48, + 86, + 91, + 97, + 1, + 32, + 97, + 2, + 25, + 54, + 96, + 4, + 97, + 9, + 144, + 86, + 91, + 97, + 4, + 58, + 86, + 91, + 97, + 1, + 174, + 97, + 2, + 44, + 54, + 96, + 4, + 97, + 10, + 24, + 86, + 91, + 97, + 4, + 160, + 86, + 91, + 97, + 1, + 57, + 97, + 2, + 63, + 54, + 96, + 4, + 97, + 10, + 139, + 86, + 91, + 96, + 4, + 96, + 32, + 144, + 129, + 82, + 96, + 0, + 146, + 131, + 82, + 96, + 64, + 128, + 132, + 32, + 144, + 145, + 82, + 144, + 130, + 82, + 144, + 32, + 84, + 129, + 86, + 91, + 96, + 0, + 128, + 84, + 97, + 2, + 105, + 144, + 97, + 10, + 190, + 86, + 91, + 128, + 96, + 31, + 1, + 96, + 32, + 128, + 145, + 4, + 2, + 96, + 32, + 1, + 96, + 64, + 81, + 144, + 129, + 1, + 96, + 64, + 82, + 128, + 146, + 145, + 144, + 129, + 129, + 82, + 96, + 32, + 1, + 130, + 128, + 84, + 97, + 2, + 149, + 144, + 97, + 10, + 190, + 86, + 91, + 128, + 21, + 97, + 2, + 226, + 87, + 128, + 96, + 31, + 16, + 97, + 2, + 183, + 87, + 97, + 1, + 0, + 128, + 131, + 84, + 4, + 2, + 131, + 82, + 145, + 96, + 32, + 1, + 145, + 97, + 2, + 226, + 86, + 91, + 130, + 1, + 145, + 144, + 96, + 0, + 82, + 96, + 32, + 96, + 0, + 32, + 144, + 91, + 129, + 84, + 129, + 82, + 144, + 96, + 1, + 1, + 144, + 96, + 32, + 1, + 128, + 131, + 17, + 97, + 2, + 197, + 87, + 130, + 144, + 3, + 96, + 31, + 22, + 130, + 1, + 145, + 91, + 80, + 80, + 80, + 80, + 80, + 129, + 86, + 91, + 51, + 96, + 0, + 129, + 129, + 82, + 96, + 4, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 135, + 22, + 128, + 133, + 82, + 146, + 82, + 128, + 131, + 32, + 133, + 144, + 85, + 81, + 145, + 146, + 144, + 145, + 127, + 140, + 91, + 225, + 229, + 235, + 236, + 125, + 91, + 209, + 79, + 113, + 66, + 125, + 30, + 132, + 243, + 221, + 3, + 20, + 192, + 247, + 178, + 41, + 30, + 91, + 32, + 10, + 200, + 199, + 195, + 185, + 37, + 144, + 97, + 3, + 69, + 144, + 134, + 129, + 82, + 96, + 32, + 1, + 144, + 86, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 80, + 96, + 1, + 146, + 145, + 80, + 80, + 86, + 91, + 96, + 0, + 97, + 3, + 99, + 132, + 132, + 132, + 97, + 6, + 233, + 86, + 91, + 80, + 96, + 0, + 96, + 100, + 97, + 3, + 115, + 132, + 96, + 1, + 97, + 11, + 14, + 86, + 91, + 97, + 3, + 125, + 145, + 144, + 97, + 11, + 45, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 133, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 3, + 96, + 32, + 82, + 96, + 64, + 129, + 32, + 128, + 84, + 146, + 147, + 80, + 131, + 146, + 144, + 145, + 144, + 97, + 3, + 170, + 144, + 132, + 144, + 97, + 11, + 79, + 86, + 91, + 144, + 145, + 85, + 80, + 96, + 1, + 150, + 149, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 127, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 70, + 20, + 97, + 3, + 240, + 87, + 97, + 3, + 235, + 97, + 7, + 201, + 86, + 91, + 144, + 80, + 144, + 86, + 91, + 80, + 127, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 144, + 86, + 91, + 97, + 4, + 31, + 130, + 130, + 97, + 8, + 99, + 86, + 91, + 80, + 80, + 86, + 91, + 96, + 1, + 128, + 84, + 97, + 2, + 105, + 144, + 97, + 10, + 190, + 86, + 91, + 97, + 4, + 31, + 130, + 130, + 97, + 8, + 189, + 86, + 91, + 51, + 96, + 0, + 144, + 129, + 82, + 96, + 3, + 96, + 32, + 82, + 96, + 64, + 129, + 32, + 128, + 84, + 131, + 145, + 144, + 131, + 144, + 97, + 4, + 91, + 144, + 132, + 144, + 97, + 11, + 79, + 86, + 91, + 144, + 145, + 85, + 80, + 80, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 22, + 96, + 0, + 129, + 129, + 82, + 96, + 3, + 96, + 32, + 82, + 96, + 64, + 144, + 129, + 144, + 32, + 128, + 84, + 133, + 1, + 144, + 85, + 81, + 51, + 144, + 96, + 0, + 128, + 81, + 96, + 32, + 97, + 12, + 26, + 131, + 57, + 129, + 81, + 145, + 82, + 144, + 97, + 3, + 69, + 144, + 134, + 129, + 82, + 96, + 32, + 1, + 144, + 86, + 91, + 66, + 132, + 16, + 21, + 97, + 4, + 245, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 23, + 96, + 36, + 130, + 1, + 82, + 127, + 80, + 69, + 82, + 77, + 73, + 84, + 95, + 68, + 69, + 65, + 68, + 76, + 73, + 78, + 69, + 95, + 69, + 88, + 80, + 73, + 82, + 69, + 68, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 96, + 68, + 130, + 1, + 82, + 96, + 100, + 1, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 0, + 96, + 1, + 97, + 5, + 1, + 97, + 3, + 186, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 138, + 129, + 22, + 96, + 0, + 129, + 129, + 82, + 96, + 5, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 145, + 130, + 144, + 32, + 128, + 84, + 96, + 1, + 129, + 1, + 144, + 145, + 85, + 130, + 81, + 127, + 110, + 113, + 237, + 174, + 18, + 177, + 185, + 127, + 77, + 31, + 96, + 55, + 15, + 239, + 16, + 16, + 95, + 162, + 250, + 174, + 1, + 38, + 17, + 74, + 22, + 156, + 100, + 132, + 93, + 97, + 38, + 201, + 129, + 132, + 1, + 82, + 128, + 132, + 1, + 148, + 144, + 148, + 82, + 147, + 141, + 22, + 96, + 96, + 132, + 1, + 82, + 96, + 128, + 131, + 1, + 140, + 144, + 82, + 96, + 160, + 131, + 1, + 147, + 144, + 147, + 82, + 96, + 192, + 128, + 131, + 1, + 139, + 144, + 82, + 129, + 81, + 128, + 132, + 3, + 144, + 145, + 1, + 129, + 82, + 96, + 224, + 131, + 1, + 144, + 145, + 82, + 128, + 81, + 146, + 1, + 145, + 144, + 145, + 32, + 97, + 25, + 1, + 96, + 240, + 27, + 97, + 1, + 0, + 131, + 1, + 82, + 97, + 1, + 2, + 130, + 1, + 146, + 144, + 146, + 82, + 97, + 1, + 34, + 129, + 1, + 145, + 144, + 145, + 82, + 97, + 1, + 66, + 1, + 96, + 64, + 128, + 81, + 96, + 31, + 25, + 129, + 132, + 3, + 1, + 129, + 82, + 130, + 130, + 82, + 128, + 81, + 96, + 32, + 145, + 130, + 1, + 32, + 96, + 0, + 132, + 82, + 144, + 131, + 1, + 128, + 131, + 82, + 82, + 96, + 255, + 135, + 22, + 144, + 130, + 1, + 82, + 96, + 96, + 129, + 1, + 133, + 144, + 82, + 96, + 128, + 129, + 1, + 132, + 144, + 82, + 96, + 160, + 1, + 96, + 32, + 96, + 64, + 81, + 96, + 32, + 129, + 3, + 144, + 128, + 132, + 3, + 144, + 133, + 90, + 250, + 21, + 128, + 21, + 97, + 6, + 13, + 87, + 61, + 96, + 0, + 128, + 62, + 61, + 96, + 0, + 253, + 91, + 80, + 80, + 96, + 64, + 81, + 96, + 31, + 25, + 1, + 81, + 145, + 80, + 80, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 129, + 22, + 21, + 128, + 21, + 144, + 97, + 6, + 67, + 87, + 80, + 135, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 20, + 91, + 97, + 6, + 128, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 14, + 96, + 36, + 130, + 1, + 82, + 109, + 36, + 167, + 43, + 32, + 166, + 36, + 162, + 47, + 169, + 164, + 163, + 167, + 34, + 169, + 96, + 145, + 27, + 96, + 68, + 130, + 1, + 82, + 96, + 100, + 1, + 97, + 4, + 236, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 144, + 129, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 4, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 138, + 133, + 22, + 128, + 133, + 82, + 144, + 131, + 82, + 146, + 129, + 144, + 32, + 137, + 144, + 85, + 81, + 136, + 129, + 82, + 145, + 146, + 138, + 22, + 145, + 127, + 140, + 91, + 225, + 229, + 235, + 236, + 125, + 91, + 209, + 79, + 113, + 66, + 125, + 30, + 132, + 243, + 221, + 3, + 20, + 192, + 247, + 178, + 41, + 30, + 91, + 32, + 10, + 200, + 199, + 195, + 185, + 37, + 145, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 4, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 51, + 132, + 82, + 144, + 145, + 82, + 129, + 32, + 84, + 96, + 0, + 25, + 129, + 20, + 97, + 7, + 69, + 87, + 97, + 7, + 32, + 131, + 130, + 97, + 11, + 79, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 134, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 4, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 51, + 132, + 82, + 144, + 145, + 82, + 144, + 32, + 85, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 133, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 3, + 96, + 32, + 82, + 96, + 64, + 129, + 32, + 128, + 84, + 133, + 146, + 144, + 97, + 7, + 109, + 144, + 132, + 144, + 97, + 11, + 79, + 86, + 91, + 144, + 145, + 85, + 80, + 80, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 128, + 133, + 22, + 96, + 0, + 129, + 129, + 82, + 96, + 3, + 96, + 32, + 82, + 96, + 64, + 144, + 129, + 144, + 32, + 128, + 84, + 135, + 1, + 144, + 85, + 81, + 144, + 145, + 135, + 22, + 144, + 96, + 0, + 128, + 81, + 96, + 32, + 97, + 12, + 26, + 131, + 57, + 129, + 81, + 145, + 82, + 144, + 97, + 7, + 182, + 144, + 135, + 129, + 82, + 96, + 32, + 1, + 144, + 86, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 80, + 96, + 1, + 148, + 147, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 127, + 139, + 115, + 195, + 198, + 155, + 184, + 254, + 61, + 81, + 46, + 204, + 76, + 247, + 89, + 204, + 121, + 35, + 159, + 123, + 23, + 155, + 15, + 250, + 202, + 169, + 167, + 93, + 82, + 43, + 57, + 64, + 15, + 96, + 0, + 96, + 64, + 81, + 97, + 7, + 251, + 145, + 144, + 97, + 11, + 102, + 86, + 91, + 96, + 64, + 128, + 81, + 145, + 130, + 144, + 3, + 130, + 32, + 96, + 32, + 131, + 1, + 147, + 144, + 147, + 82, + 129, + 1, + 145, + 144, + 145, + 82, + 127, + 200, + 158, + 253, + 170, + 84, + 192, + 242, + 12, + 122, + 223, + 97, + 40, + 130, + 223, + 9, + 80, + 245, + 169, + 81, + 99, + 126, + 3, + 7, + 205, + 203, + 76, + 103, + 47, + 41, + 139, + 139, + 198, + 96, + 96, + 130, + 1, + 82, + 70, + 96, + 128, + 130, + 1, + 82, + 48, + 96, + 160, + 130, + 1, + 82, + 96, + 192, + 1, + 96, + 64, + 81, + 96, + 32, + 129, + 131, + 3, + 3, + 129, + 82, + 144, + 96, + 64, + 82, + 128, + 81, + 144, + 96, + 32, + 1, + 32, + 144, + 80, + 144, + 86, + 91, + 128, + 96, + 2, + 96, + 0, + 130, + 130, + 84, + 97, + 8, + 117, + 145, + 144, + 97, + 12, + 1, + 86, + 91, + 144, + 145, + 85, + 80, + 80, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 96, + 0, + 129, + 129, + 82, + 96, + 3, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 128, + 84, + 134, + 1, + 144, + 85, + 81, + 132, + 129, + 82, + 96, + 0, + 128, + 81, + 96, + 32, + 97, + 12, + 26, + 131, + 57, + 129, + 81, + 145, + 82, + 145, + 1, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 80, + 80, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 3, + 96, + 32, + 82, + 96, + 64, + 129, + 32, + 128, + 84, + 131, + 146, + 144, + 97, + 8, + 229, + 144, + 132, + 144, + 97, + 11, + 79, + 86, + 91, + 144, + 145, + 85, + 80, + 80, + 96, + 2, + 128, + 84, + 130, + 144, + 3, + 144, + 85, + 96, + 64, + 81, + 129, + 129, + 82, + 96, + 0, + 144, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 132, + 22, + 144, + 96, + 0, + 128, + 81, + 96, + 32, + 97, + 12, + 26, + 131, + 57, + 129, + 81, + 145, + 82, + 144, + 96, + 32, + 1, + 97, + 8, + 177, + 86, + 91, + 96, + 0, + 96, + 32, + 128, + 131, + 82, + 131, + 81, + 128, + 130, + 133, + 1, + 82, + 96, + 0, + 91, + 129, + 129, + 16, + 21, + 97, + 9, + 76, + 87, + 133, + 129, + 1, + 131, + 1, + 81, + 133, + 130, + 1, + 96, + 64, + 1, + 82, + 130, + 1, + 97, + 9, + 48, + 86, + 91, + 129, + 129, + 17, + 21, + 97, + 9, + 94, + 87, + 96, + 0, + 96, + 64, + 131, + 135, + 1, + 1, + 82, + 91, + 80, + 96, + 31, + 1, + 96, + 31, + 25, + 22, + 146, + 144, + 146, + 1, + 96, + 64, + 1, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 128, + 53, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 129, + 22, + 129, + 20, + 97, + 9, + 139, + 87, + 96, + 0, + 128, + 253, + 91, + 145, + 144, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 64, + 131, + 133, + 3, + 18, + 21, + 97, + 9, + 163, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 9, + 172, + 131, + 97, + 9, + 116, + 86, + 91, + 148, + 96, + 32, + 147, + 144, + 147, + 1, + 53, + 147, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 96, + 96, + 132, + 134, + 3, + 18, + 21, + 97, + 9, + 207, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 9, + 216, + 132, + 97, + 9, + 116, + 86, + 91, + 146, + 80, + 97, + 9, + 230, + 96, + 32, + 133, + 1, + 97, + 9, + 116, + 86, + 91, + 145, + 80, + 96, + 64, + 132, + 1, + 53, + 144, + 80, + 146, + 80, + 146, + 80, + 146, + 86, + 91, + 96, + 0, + 96, + 32, + 130, + 132, + 3, + 18, + 21, + 97, + 10, + 8, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 10, + 17, + 130, + 97, + 9, + 116, + 86, + 91, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 128, + 96, + 0, + 128, + 96, + 0, + 96, + 224, + 136, + 138, + 3, + 18, + 21, + 97, + 10, + 51, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 10, + 60, + 136, + 97, + 9, + 116, + 86, + 91, + 150, + 80, + 97, + 10, + 74, + 96, + 32, + 137, + 1, + 97, + 9, + 116, + 86, + 91, + 149, + 80, + 96, + 64, + 136, + 1, + 53, + 148, + 80, + 96, + 96, + 136, + 1, + 53, + 147, + 80, + 96, + 128, + 136, + 1, + 53, + 96, + 255, + 129, + 22, + 129, + 20, + 97, + 10, + 110, + 87, + 96, + 0, + 128, + 253, + 91, + 150, + 153, + 149, + 152, + 80, + 147, + 150, + 146, + 149, + 148, + 96, + 160, + 132, + 1, + 53, + 148, + 80, + 96, + 192, + 144, + 147, + 1, + 53, + 146, + 145, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 64, + 131, + 133, + 3, + 18, + 21, + 97, + 10, + 158, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 10, + 167, + 131, + 97, + 9, + 116, + 86, + 91, + 145, + 80, + 97, + 10, + 181, + 96, + 32, + 132, + 1, + 97, + 9, + 116, + 86, + 91, + 144, + 80, + 146, + 80, + 146, + 144, + 80, + 86, + 91, + 96, + 1, + 129, + 129, + 28, + 144, + 130, + 22, + 128, + 97, + 10, + 210, + 87, + 96, + 127, + 130, + 22, + 145, + 80, + 91, + 96, + 32, + 130, + 16, + 129, + 3, + 97, + 10, + 242, + 87, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 34, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 80, + 145, + 144, + 80, + 86, + 91, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 17, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 96, + 0, + 129, + 96, + 0, + 25, + 4, + 131, + 17, + 130, + 21, + 21, + 22, + 21, + 97, + 11, + 40, + 87, + 97, + 11, + 40, + 97, + 10, + 248, + 86, + 91, + 80, + 2, + 144, + 86, + 91, + 96, + 0, + 130, + 97, + 11, + 74, + 87, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 18, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 80, + 4, + 144, + 86, + 91, + 96, + 0, + 130, + 130, + 16, + 21, + 97, + 11, + 97, + 87, + 97, + 11, + 97, + 97, + 10, + 248, + 86, + 91, + 80, + 3, + 144, + 86, + 91, + 96, + 0, + 128, + 131, + 84, + 129, + 96, + 1, + 130, + 129, + 28, + 145, + 80, + 128, + 131, + 22, + 128, + 97, + 11, + 130, + 87, + 96, + 127, + 131, + 22, + 146, + 80, + 91, + 96, + 32, + 128, + 132, + 16, + 130, + 3, + 97, + 11, + 161, + 87, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 134, + 82, + 96, + 34, + 96, + 4, + 82, + 96, + 36, + 134, + 253, + 91, + 129, + 128, + 21, + 97, + 11, + 181, + 87, + 96, + 1, + 129, + 20, + 97, + 11, + 198, + 87, + 97, + 11, + 243, + 86, + 91, + 96, + 255, + 25, + 134, + 22, + 137, + 82, + 132, + 137, + 1, + 150, + 80, + 97, + 11, + 243, + 86, + 91, + 96, + 0, + 138, + 129, + 82, + 96, + 32, + 144, + 32, + 96, + 0, + 91, + 134, + 129, + 16, + 21, + 97, + 11, + 235, + 87, + 129, + 84, + 139, + 130, + 1, + 82, + 144, + 133, + 1, + 144, + 131, + 1, + 97, + 11, + 210, + 86, + 91, + 80, + 80, + 132, + 137, + 1, + 150, + 80, + 91, + 80, + 148, + 152, + 151, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 130, + 25, + 130, + 17, + 21, + 97, + 12, + 20, + 87, + 97, + 12, + 20, + 97, + 10, + 248, + 86, + 91, + 80, + 1, + 144, + 86, + 254, + 221, + 242, + 82, + 173, + 27, + 226, + 200, + 155, + 105, + 194, + 176, + 104, + 252, + 55, + 141, + 170, + 149, + 43, + 167, + 241, + 99, + 196, + 161, + 22, + 40, + 245, + 90, + 77, + 245, + 35, + 179, + 239, + 162, + 100, + 105, + 112, + 102, + 115, + 88, + 34, + 18, + 32, + 164, + 58, + 27, + 68, + 152, + 101, + 234, + 102, + 167, + 171, + 28, + 247, + 96, + 214, + 58, + 195, + 219, + 250, + 63, + 173, + 150, + 252, + 3, + 204, + 97, + 234, + 63, + 226, + 188, + 181, + 93, + 150, + 100, + 115, + 111, + 108, + 99, + 67, + 0, + 8, + 13, + 0, + 51, + ]; + ///The bytecode of the contract. + pub static FEEONTRANSFERTOKEN_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __BYTECODE, + ); + #[rustfmt::skip] + const __DEPLOYED_BYTECODE: &[u8] = &[ + 96, + 128, + 96, + 64, + 82, + 52, + 128, + 21, + 97, + 0, + 16, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 96, + 4, + 54, + 16, + 97, + 0, + 234, + 87, + 96, + 0, + 53, + 96, + 224, + 28, + 128, + 99, + 112, + 160, + 130, + 49, + 17, + 97, + 0, + 140, + 87, + 128, + 99, + 157, + 194, + 159, + 172, + 17, + 97, + 0, + 102, + 87, + 128, + 99, + 157, + 194, + 159, + 172, + 20, + 97, + 1, + 248, + 87, + 128, + 99, + 169, + 5, + 156, + 187, + 20, + 97, + 2, + 11, + 87, + 128, + 99, + 213, + 5, + 172, + 207, + 20, + 97, + 2, + 30, + 87, + 128, + 99, + 221, + 98, + 237, + 62, + 20, + 97, + 2, + 49, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 112, + 160, + 130, + 49, + 20, + 97, + 1, + 176, + 87, + 128, + 99, + 126, + 206, + 190, + 0, + 20, + 97, + 1, + 208, + 87, + 128, + 99, + 149, + 216, + 155, + 65, + 20, + 97, + 1, + 240, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 35, + 184, + 114, + 221, + 17, + 97, + 0, + 200, + 87, + 128, + 99, + 35, + 184, + 114, + 221, + 20, + 97, + 1, + 71, + 87, + 128, + 99, + 49, + 60, + 229, + 103, + 20, + 97, + 1, + 90, + 87, + 128, + 99, + 54, + 68, + 229, + 21, + 20, + 97, + 1, + 147, + 87, + 128, + 99, + 64, + 193, + 15, + 25, + 20, + 97, + 1, + 155, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 6, + 253, + 222, + 3, + 20, + 97, + 0, + 239, + 87, + 128, + 99, + 9, + 94, + 167, + 179, + 20, + 97, + 1, + 13, + 87, + 128, + 99, + 24, + 22, + 13, + 221, + 20, + 97, + 1, + 48, + 87, + 91, + 96, + 0, + 128, + 253, + 91, + 97, + 0, + 247, + 97, + 2, + 92, + 86, + 91, + 96, + 64, + 81, + 97, + 1, + 4, + 145, + 144, + 97, + 9, + 31, + 86, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 243, + 91, + 97, + 1, + 32, + 97, + 1, + 27, + 54, + 96, + 4, + 97, + 9, + 144, + 86, + 91, + 97, + 2, + 234, + 86, + 91, + 96, + 64, + 81, + 144, + 21, + 21, + 129, + 82, + 96, + 32, + 1, + 97, + 1, + 4, + 86, + 91, + 97, + 1, + 57, + 96, + 2, + 84, + 129, + 86, + 91, + 96, + 64, + 81, + 144, + 129, + 82, + 96, + 32, + 1, + 97, + 1, + 4, + 86, + 91, + 97, + 1, + 32, + 97, + 1, + 85, + 54, + 96, + 4, + 97, + 9, + 186, + 86, + 91, + 97, + 3, + 86, + 86, + 91, + 97, + 1, + 129, + 127, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 129, + 86, + 91, + 96, + 64, + 81, + 96, + 255, + 144, + 145, + 22, + 129, + 82, + 96, + 32, + 1, + 97, + 1, + 4, + 86, + 91, + 97, + 1, + 57, + 97, + 3, + 186, + 86, + 91, + 97, + 1, + 174, + 97, + 1, + 169, + 54, + 96, + 4, + 97, + 9, + 144, + 86, + 91, + 97, + 4, + 21, + 86, + 91, + 0, + 91, + 97, + 1, + 57, + 97, + 1, + 190, + 54, + 96, + 4, + 97, + 9, + 246, + 86, + 91, + 96, + 3, + 96, + 32, + 82, + 96, + 0, + 144, + 129, + 82, + 96, + 64, + 144, + 32, + 84, + 129, + 86, + 91, + 97, + 1, + 57, + 97, + 1, + 222, + 54, + 96, + 4, + 97, + 9, + 246, + 86, + 91, + 96, + 5, + 96, + 32, + 82, + 96, + 0, + 144, + 129, + 82, + 96, + 64, + 144, + 32, + 84, + 129, + 86, + 91, + 97, + 0, + 247, + 97, + 4, + 35, + 86, + 91, + 97, + 1, + 174, + 97, + 2, + 6, + 54, + 96, + 4, + 97, + 9, + 144, + 86, + 91, + 97, + 4, + 48, + 86, + 91, + 97, + 1, + 32, + 97, + 2, + 25, + 54, + 96, + 4, + 97, + 9, + 144, + 86, + 91, + 97, + 4, + 58, + 86, + 91, + 97, + 1, + 174, + 97, + 2, + 44, + 54, + 96, + 4, + 97, + 10, + 24, + 86, + 91, + 97, + 4, + 160, + 86, + 91, + 97, + 1, + 57, + 97, + 2, + 63, + 54, + 96, + 4, + 97, + 10, + 139, + 86, + 91, + 96, + 4, + 96, + 32, + 144, + 129, + 82, + 96, + 0, + 146, + 131, + 82, + 96, + 64, + 128, + 132, + 32, + 144, + 145, + 82, + 144, + 130, + 82, + 144, + 32, + 84, + 129, + 86, + 91, + 96, + 0, + 128, + 84, + 97, + 2, + 105, + 144, + 97, + 10, + 190, + 86, + 91, + 128, + 96, + 31, + 1, + 96, + 32, + 128, + 145, + 4, + 2, + 96, + 32, + 1, + 96, + 64, + 81, + 144, + 129, + 1, + 96, + 64, + 82, + 128, + 146, + 145, + 144, + 129, + 129, + 82, + 96, + 32, + 1, + 130, + 128, + 84, + 97, + 2, + 149, + 144, + 97, + 10, + 190, + 86, + 91, + 128, + 21, + 97, + 2, + 226, + 87, + 128, + 96, + 31, + 16, + 97, + 2, + 183, + 87, + 97, + 1, + 0, + 128, + 131, + 84, + 4, + 2, + 131, + 82, + 145, + 96, + 32, + 1, + 145, + 97, + 2, + 226, + 86, + 91, + 130, + 1, + 145, + 144, + 96, + 0, + 82, + 96, + 32, + 96, + 0, + 32, + 144, + 91, + 129, + 84, + 129, + 82, + 144, + 96, + 1, + 1, + 144, + 96, + 32, + 1, + 128, + 131, + 17, + 97, + 2, + 197, + 87, + 130, + 144, + 3, + 96, + 31, + 22, + 130, + 1, + 145, + 91, + 80, + 80, + 80, + 80, + 80, + 129, + 86, + 91, + 51, + 96, + 0, + 129, + 129, + 82, + 96, + 4, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 135, + 22, + 128, + 133, + 82, + 146, + 82, + 128, + 131, + 32, + 133, + 144, + 85, + 81, + 145, + 146, + 144, + 145, + 127, + 140, + 91, + 225, + 229, + 235, + 236, + 125, + 91, + 209, + 79, + 113, + 66, + 125, + 30, + 132, + 243, + 221, + 3, + 20, + 192, + 247, + 178, + 41, + 30, + 91, + 32, + 10, + 200, + 199, + 195, + 185, + 37, + 144, + 97, + 3, + 69, + 144, + 134, + 129, + 82, + 96, + 32, + 1, + 144, + 86, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 80, + 96, + 1, + 146, + 145, + 80, + 80, + 86, + 91, + 96, + 0, + 97, + 3, + 99, + 132, + 132, + 132, + 97, + 6, + 233, + 86, + 91, + 80, + 96, + 0, + 96, + 100, + 97, + 3, + 115, + 132, + 96, + 1, + 97, + 11, + 14, + 86, + 91, + 97, + 3, + 125, + 145, + 144, + 97, + 11, + 45, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 133, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 3, + 96, + 32, + 82, + 96, + 64, + 129, + 32, + 128, + 84, + 146, + 147, + 80, + 131, + 146, + 144, + 145, + 144, + 97, + 3, + 170, + 144, + 132, + 144, + 97, + 11, + 79, + 86, + 91, + 144, + 145, + 85, + 80, + 96, + 1, + 150, + 149, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 127, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 70, + 20, + 97, + 3, + 240, + 87, + 97, + 3, + 235, + 97, + 7, + 201, + 86, + 91, + 144, + 80, + 144, + 86, + 91, + 80, + 127, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 144, + 86, + 91, + 97, + 4, + 31, + 130, + 130, + 97, + 8, + 99, + 86, + 91, + 80, + 80, + 86, + 91, + 96, + 1, + 128, + 84, + 97, + 2, + 105, + 144, + 97, + 10, + 190, + 86, + 91, + 97, + 4, + 31, + 130, + 130, + 97, + 8, + 189, + 86, + 91, + 51, + 96, + 0, + 144, + 129, + 82, + 96, + 3, + 96, + 32, + 82, + 96, + 64, + 129, + 32, + 128, + 84, + 131, + 145, + 144, + 131, + 144, + 97, + 4, + 91, + 144, + 132, + 144, + 97, + 11, + 79, + 86, + 91, + 144, + 145, + 85, + 80, + 80, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 22, + 96, + 0, + 129, + 129, + 82, + 96, + 3, + 96, + 32, + 82, + 96, + 64, + 144, + 129, + 144, + 32, + 128, + 84, + 133, + 1, + 144, + 85, + 81, + 51, + 144, + 96, + 0, + 128, + 81, + 96, + 32, + 97, + 12, + 26, + 131, + 57, + 129, + 81, + 145, + 82, + 144, + 97, + 3, + 69, + 144, + 134, + 129, + 82, + 96, + 32, + 1, + 144, + 86, + 91, + 66, + 132, + 16, + 21, + 97, + 4, + 245, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 23, + 96, + 36, + 130, + 1, + 82, + 127, + 80, + 69, + 82, + 77, + 73, + 84, + 95, + 68, + 69, + 65, + 68, + 76, + 73, + 78, + 69, + 95, + 69, + 88, + 80, + 73, + 82, + 69, + 68, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 96, + 68, + 130, + 1, + 82, + 96, + 100, + 1, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 0, + 96, + 1, + 97, + 5, + 1, + 97, + 3, + 186, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 138, + 129, + 22, + 96, + 0, + 129, + 129, + 82, + 96, + 5, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 145, + 130, + 144, + 32, + 128, + 84, + 96, + 1, + 129, + 1, + 144, + 145, + 85, + 130, + 81, + 127, + 110, + 113, + 237, + 174, + 18, + 177, + 185, + 127, + 77, + 31, + 96, + 55, + 15, + 239, + 16, + 16, + 95, + 162, + 250, + 174, + 1, + 38, + 17, + 74, + 22, + 156, + 100, + 132, + 93, + 97, + 38, + 201, + 129, + 132, + 1, + 82, + 128, + 132, + 1, + 148, + 144, + 148, + 82, + 147, + 141, + 22, + 96, + 96, + 132, + 1, + 82, + 96, + 128, + 131, + 1, + 140, + 144, + 82, + 96, + 160, + 131, + 1, + 147, + 144, + 147, + 82, + 96, + 192, + 128, + 131, + 1, + 139, + 144, + 82, + 129, + 81, + 128, + 132, + 3, + 144, + 145, + 1, + 129, + 82, + 96, + 224, + 131, + 1, + 144, + 145, + 82, + 128, + 81, + 146, + 1, + 145, + 144, + 145, + 32, + 97, + 25, + 1, + 96, + 240, + 27, + 97, + 1, + 0, + 131, + 1, + 82, + 97, + 1, + 2, + 130, + 1, + 146, + 144, + 146, + 82, + 97, + 1, + 34, + 129, + 1, + 145, + 144, + 145, + 82, + 97, + 1, + 66, + 1, + 96, + 64, + 128, + 81, + 96, + 31, + 25, + 129, + 132, + 3, + 1, + 129, + 82, + 130, + 130, + 82, + 128, + 81, + 96, + 32, + 145, + 130, + 1, + 32, + 96, + 0, + 132, + 82, + 144, + 131, + 1, + 128, + 131, + 82, + 82, + 96, + 255, + 135, + 22, + 144, + 130, + 1, + 82, + 96, + 96, + 129, + 1, + 133, + 144, + 82, + 96, + 128, + 129, + 1, + 132, + 144, + 82, + 96, + 160, + 1, + 96, + 32, + 96, + 64, + 81, + 96, + 32, + 129, + 3, + 144, + 128, + 132, + 3, + 144, + 133, + 90, + 250, + 21, + 128, + 21, + 97, + 6, + 13, + 87, + 61, + 96, + 0, + 128, + 62, + 61, + 96, + 0, + 253, + 91, + 80, + 80, + 96, + 64, + 81, + 96, + 31, + 25, + 1, + 81, + 145, + 80, + 80, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 129, + 22, + 21, + 128, + 21, + 144, + 97, + 6, + 67, + 87, + 80, + 135, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 20, + 91, + 97, + 6, + 128, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 14, + 96, + 36, + 130, + 1, + 82, + 109, + 36, + 167, + 43, + 32, + 166, + 36, + 162, + 47, + 169, + 164, + 163, + 167, + 34, + 169, + 96, + 145, + 27, + 96, + 68, + 130, + 1, + 82, + 96, + 100, + 1, + 97, + 4, + 236, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 144, + 129, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 4, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 138, + 133, + 22, + 128, + 133, + 82, + 144, + 131, + 82, + 146, + 129, + 144, + 32, + 137, + 144, + 85, + 81, + 136, + 129, + 82, + 145, + 146, + 138, + 22, + 145, + 127, + 140, + 91, + 225, + 229, + 235, + 236, + 125, + 91, + 209, + 79, + 113, + 66, + 125, + 30, + 132, + 243, + 221, + 3, + 20, + 192, + 247, + 178, + 41, + 30, + 91, + 32, + 10, + 200, + 199, + 195, + 185, + 37, + 145, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 4, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 51, + 132, + 82, + 144, + 145, + 82, + 129, + 32, + 84, + 96, + 0, + 25, + 129, + 20, + 97, + 7, + 69, + 87, + 97, + 7, + 32, + 131, + 130, + 97, + 11, + 79, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 134, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 4, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 51, + 132, + 82, + 144, + 145, + 82, + 144, + 32, + 85, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 133, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 3, + 96, + 32, + 82, + 96, + 64, + 129, + 32, + 128, + 84, + 133, + 146, + 144, + 97, + 7, + 109, + 144, + 132, + 144, + 97, + 11, + 79, + 86, + 91, + 144, + 145, + 85, + 80, + 80, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 128, + 133, + 22, + 96, + 0, + 129, + 129, + 82, + 96, + 3, + 96, + 32, + 82, + 96, + 64, + 144, + 129, + 144, + 32, + 128, + 84, + 135, + 1, + 144, + 85, + 81, + 144, + 145, + 135, + 22, + 144, + 96, + 0, + 128, + 81, + 96, + 32, + 97, + 12, + 26, + 131, + 57, + 129, + 81, + 145, + 82, + 144, + 97, + 7, + 182, + 144, + 135, + 129, + 82, + 96, + 32, + 1, + 144, + 86, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 80, + 96, + 1, + 148, + 147, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 127, + 139, + 115, + 195, + 198, + 155, + 184, + 254, + 61, + 81, + 46, + 204, + 76, + 247, + 89, + 204, + 121, + 35, + 159, + 123, + 23, + 155, + 15, + 250, + 202, + 169, + 167, + 93, + 82, + 43, + 57, + 64, + 15, + 96, + 0, + 96, + 64, + 81, + 97, + 7, + 251, + 145, + 144, + 97, + 11, + 102, + 86, + 91, + 96, + 64, + 128, + 81, + 145, + 130, + 144, + 3, + 130, + 32, + 96, + 32, + 131, + 1, + 147, + 144, + 147, + 82, + 129, + 1, + 145, + 144, + 145, + 82, + 127, + 200, + 158, + 253, + 170, + 84, + 192, + 242, + 12, + 122, + 223, + 97, + 40, + 130, + 223, + 9, + 80, + 245, + 169, + 81, + 99, + 126, + 3, + 7, + 205, + 203, + 76, + 103, + 47, + 41, + 139, + 139, + 198, + 96, + 96, + 130, + 1, + 82, + 70, + 96, + 128, + 130, + 1, + 82, + 48, + 96, + 160, + 130, + 1, + 82, + 96, + 192, + 1, + 96, + 64, + 81, + 96, + 32, + 129, + 131, + 3, + 3, + 129, + 82, + 144, + 96, + 64, + 82, + 128, + 81, + 144, + 96, + 32, + 1, + 32, + 144, + 80, + 144, + 86, + 91, + 128, + 96, + 2, + 96, + 0, + 130, + 130, + 84, + 97, + 8, + 117, + 145, + 144, + 97, + 12, + 1, + 86, + 91, + 144, + 145, + 85, + 80, + 80, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 96, + 0, + 129, + 129, + 82, + 96, + 3, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 128, + 84, + 134, + 1, + 144, + 85, + 81, + 132, + 129, + 82, + 96, + 0, + 128, + 81, + 96, + 32, + 97, + 12, + 26, + 131, + 57, + 129, + 81, + 145, + 82, + 145, + 1, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 80, + 80, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 3, + 96, + 32, + 82, + 96, + 64, + 129, + 32, + 128, + 84, + 131, + 146, + 144, + 97, + 8, + 229, + 144, + 132, + 144, + 97, + 11, + 79, + 86, + 91, + 144, + 145, + 85, + 80, + 80, + 96, + 2, + 128, + 84, + 130, + 144, + 3, + 144, + 85, + 96, + 64, + 81, + 129, + 129, + 82, + 96, + 0, + 144, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 132, + 22, + 144, + 96, + 0, + 128, + 81, + 96, + 32, + 97, + 12, + 26, + 131, + 57, + 129, + 81, + 145, + 82, + 144, + 96, + 32, + 1, + 97, + 8, + 177, + 86, + 91, + 96, + 0, + 96, + 32, + 128, + 131, + 82, + 131, + 81, + 128, + 130, + 133, + 1, + 82, + 96, + 0, + 91, + 129, + 129, + 16, + 21, + 97, + 9, + 76, + 87, + 133, + 129, + 1, + 131, + 1, + 81, + 133, + 130, + 1, + 96, + 64, + 1, + 82, + 130, + 1, + 97, + 9, + 48, + 86, + 91, + 129, + 129, + 17, + 21, + 97, + 9, + 94, + 87, + 96, + 0, + 96, + 64, + 131, + 135, + 1, + 1, + 82, + 91, + 80, + 96, + 31, + 1, + 96, + 31, + 25, + 22, + 146, + 144, + 146, + 1, + 96, + 64, + 1, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 128, + 53, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 129, + 22, + 129, + 20, + 97, + 9, + 139, + 87, + 96, + 0, + 128, + 253, + 91, + 145, + 144, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 64, + 131, + 133, + 3, + 18, + 21, + 97, + 9, + 163, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 9, + 172, + 131, + 97, + 9, + 116, + 86, + 91, + 148, + 96, + 32, + 147, + 144, + 147, + 1, + 53, + 147, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 96, + 96, + 132, + 134, + 3, + 18, + 21, + 97, + 9, + 207, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 9, + 216, + 132, + 97, + 9, + 116, + 86, + 91, + 146, + 80, + 97, + 9, + 230, + 96, + 32, + 133, + 1, + 97, + 9, + 116, + 86, + 91, + 145, + 80, + 96, + 64, + 132, + 1, + 53, + 144, + 80, + 146, + 80, + 146, + 80, + 146, + 86, + 91, + 96, + 0, + 96, + 32, + 130, + 132, + 3, + 18, + 21, + 97, + 10, + 8, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 10, + 17, + 130, + 97, + 9, + 116, + 86, + 91, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 128, + 96, + 0, + 128, + 96, + 0, + 96, + 224, + 136, + 138, + 3, + 18, + 21, + 97, + 10, + 51, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 10, + 60, + 136, + 97, + 9, + 116, + 86, + 91, + 150, + 80, + 97, + 10, + 74, + 96, + 32, + 137, + 1, + 97, + 9, + 116, + 86, + 91, + 149, + 80, + 96, + 64, + 136, + 1, + 53, + 148, + 80, + 96, + 96, + 136, + 1, + 53, + 147, + 80, + 96, + 128, + 136, + 1, + 53, + 96, + 255, + 129, + 22, + 129, + 20, + 97, + 10, + 110, + 87, + 96, + 0, + 128, + 253, + 91, + 150, + 153, + 149, + 152, + 80, + 147, + 150, + 146, + 149, + 148, + 96, + 160, + 132, + 1, + 53, + 148, + 80, + 96, + 192, + 144, + 147, + 1, + 53, + 146, + 145, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 64, + 131, + 133, + 3, + 18, + 21, + 97, + 10, + 158, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 10, + 167, + 131, + 97, + 9, + 116, + 86, + 91, + 145, + 80, + 97, + 10, + 181, + 96, + 32, + 132, + 1, + 97, + 9, + 116, + 86, + 91, + 144, + 80, + 146, + 80, + 146, + 144, + 80, + 86, + 91, + 96, + 1, + 129, + 129, + 28, + 144, + 130, + 22, + 128, + 97, + 10, + 210, + 87, + 96, + 127, + 130, + 22, + 145, + 80, + 91, + 96, + 32, + 130, + 16, + 129, + 3, + 97, + 10, + 242, + 87, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 34, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 80, + 145, + 144, + 80, + 86, + 91, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 17, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 96, + 0, + 129, + 96, + 0, + 25, + 4, + 131, + 17, + 130, + 21, + 21, + 22, + 21, + 97, + 11, + 40, + 87, + 97, + 11, + 40, + 97, + 10, + 248, + 86, + 91, + 80, + 2, + 144, + 86, + 91, + 96, + 0, + 130, + 97, + 11, + 74, + 87, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 18, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 80, + 4, + 144, + 86, + 91, + 96, + 0, + 130, + 130, + 16, + 21, + 97, + 11, + 97, + 87, + 97, + 11, + 97, + 97, + 10, + 248, + 86, + 91, + 80, + 3, + 144, + 86, + 91, + 96, + 0, + 128, + 131, + 84, + 129, + 96, + 1, + 130, + 129, + 28, + 145, + 80, + 128, + 131, + 22, + 128, + 97, + 11, + 130, + 87, + 96, + 127, + 131, + 22, + 146, + 80, + 91, + 96, + 32, + 128, + 132, + 16, + 130, + 3, + 97, + 11, + 161, + 87, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 134, + 82, + 96, + 34, + 96, + 4, + 82, + 96, + 36, + 134, + 253, + 91, + 129, + 128, + 21, + 97, + 11, + 181, + 87, + 96, + 1, + 129, + 20, + 97, + 11, + 198, + 87, + 97, + 11, + 243, + 86, + 91, + 96, + 255, + 25, + 134, + 22, + 137, + 82, + 132, + 137, + 1, + 150, + 80, + 97, + 11, + 243, + 86, + 91, + 96, + 0, + 138, + 129, + 82, + 96, + 32, + 144, + 32, + 96, + 0, + 91, + 134, + 129, + 16, + 21, + 97, + 11, + 235, + 87, + 129, + 84, + 139, + 130, + 1, + 82, + 144, + 133, + 1, + 144, + 131, + 1, + 97, + 11, + 210, + 86, + 91, + 80, + 80, + 132, + 137, + 1, + 150, + 80, + 91, + 80, + 148, + 152, + 151, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 130, + 25, + 130, + 17, + 21, + 97, + 12, + 20, + 87, + 97, + 12, + 20, + 97, + 10, + 248, + 86, + 91, + 80, + 1, + 144, + 86, + 254, + 221, + 242, + 82, + 173, + 27, + 226, + 200, + 155, + 105, + 194, + 176, + 104, + 252, + 55, + 141, + 170, + 149, + 43, + 167, + 241, + 99, + 196, + 161, + 22, + 40, + 245, + 90, + 77, + 245, + 35, + 179, + 239, + 162, + 100, + 105, + 112, + 102, + 115, + 88, + 34, + 18, + 32, + 164, + 58, + 27, + 68, + 152, + 101, + 234, + 102, + 167, + 171, + 28, + 247, + 96, + 214, + 58, + 195, + 219, + 250, + 63, + 173, + 150, + 252, + 3, + 204, + 97, + 234, + 63, + 226, + 188, + 181, + 93, + 150, + 100, + 115, + 111, + 108, + 99, + 67, + 0, + 8, + 13, + 0, + 51, + ]; + ///The deployed bytecode of the contract. + pub static FEEONTRANSFERTOKEN_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __DEPLOYED_BYTECODE, + ); + pub struct FeeOnTransferToken(::ethers::contract::Contract); + impl ::core::clone::Clone for FeeOnTransferToken { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for FeeOnTransferToken { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for FeeOnTransferToken { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for FeeOnTransferToken { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(stringify!(FeeOnTransferToken)).field(&self.address()).finish() + } + } + impl FeeOnTransferToken { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + FEEONTRANSFERTOKEN_ABI.clone(), + client, + ), + ) + } + /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. + /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction + /// + /// Notes: + /// - If there are no constructor arguments, you should pass `()` as the argument. + /// - The default poll duration is 7 seconds. + /// - The default number of confirmations is 1 block. + /// + /// + /// # Example + /// + /// Generate contract bindings with `abigen!` and deploy a new contract instance. + /// + /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. + /// + /// ```ignore + /// # async fn deploy(client: ::std::sync::Arc) { + /// abigen!(Greeter, "../greeter.json"); + /// + /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); + /// let msg = greeter_contract.greet().call().await.unwrap(); + /// # } + /// ``` + pub fn deploy( + client: ::std::sync::Arc, + constructor_args: T, + ) -> ::core::result::Result< + ::ethers::contract::builders::ContractDeployer, + ::ethers::contract::ContractError, + > { + let factory = ::ethers::contract::ContractFactory::new( + FEEONTRANSFERTOKEN_ABI.clone(), + FEEONTRANSFERTOKEN_BYTECODE.clone().into(), + client, + ); + let deployer = factory.deploy(constructor_args)?; + let deployer = ::ethers::contract::ContractDeployer::new(deployer); + Ok(deployer) + } + ///Calls the contract's `DOMAIN_SEPARATOR` (0x3644e515) function + pub fn domain_separator( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([54, 68, 229, 21], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `allowance` (0xdd62ed3e) function + pub fn allowance( + &self, + p0: ::ethers::core::types::Address, + p1: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([221, 98, 237, 62], (p0, p1)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `approve` (0x095ea7b3) function + pub fn approve( + &self, + spender: ::ethers::core::types::Address, + amount: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([9, 94, 167, 179], (spender, amount)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `balanceOf` (0x70a08231) function + pub fn balance_of( + &self, + p0: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([112, 160, 130, 49], p0) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `burn` (0x9dc29fac) function + pub fn burn( + &self, + from: ::ethers::core::types::Address, + value: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([157, 194, 159, 172], (from, value)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `decimals` (0x313ce567) function + pub fn decimals(&self) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([49, 60, 229, 103], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `mint` (0x40c10f19) function + pub fn mint( + &self, + to: ::ethers::core::types::Address, + value: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([64, 193, 15, 25], (to, value)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `name` (0x06fdde03) function + pub fn name( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([6, 253, 222, 3], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `nonces` (0x7ecebe00) function + pub fn nonces( + &self, + p0: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([126, 206, 190, 0], p0) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `permit` (0xd505accf) function + pub fn permit( + &self, + owner: ::ethers::core::types::Address, + spender: ::ethers::core::types::Address, + value: ::ethers::core::types::U256, + deadline: ::ethers::core::types::U256, + v: u8, + r: [u8; 32], + s: [u8; 32], + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash( + [213, 5, 172, 207], + (owner, spender, value, deadline, v, r, s), + ) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `symbol` (0x95d89b41) function + pub fn symbol( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([149, 216, 155, 65], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `totalSupply` (0x18160ddd) function + pub fn total_supply( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([24, 22, 13, 221], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `transfer` (0xa9059cbb) function + pub fn transfer( + &self, + to: ::ethers::core::types::Address, + amount: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([169, 5, 156, 187], (to, amount)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `transferFrom` (0x23b872dd) function + pub fn transfer_from( + &self, + from: ::ethers::core::types::Address, + to: ::ethers::core::types::Address, + amount: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([35, 184, 114, 221], (from, to, amount)) + .expect("method not found (this should never happen)") + } + ///Gets the contract's `Approval` event + pub fn approval_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + ApprovalFilter, + > { + self.0.event() + } + ///Gets the contract's `Transfer` event + pub fn transfer_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + TransferFilter, + > { + self.0.event() + } + /// Returns an `Event` builder for all the events of this contract. + pub fn events( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + FeeOnTransferTokenEvents, + > { + self.0.event_with_filter(::core::default::Default::default()) + } + } + impl From<::ethers::contract::Contract> + for FeeOnTransferToken { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "Approval", abi = "Approval(address,address,uint256)")] + pub struct ApprovalFilter { + #[ethevent(indexed)] + pub owner: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub spender: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "Transfer", abi = "Transfer(address,address,uint256)")] + pub struct TransferFilter { + #[ethevent(indexed)] + pub from: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub to: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + ///Container type for all of the contract's events + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum FeeOnTransferTokenEvents { + ApprovalFilter(ApprovalFilter), + TransferFilter(TransferFilter), + } + impl ::ethers::contract::EthLogDecode for FeeOnTransferTokenEvents { + fn decode_log( + log: &::ethers::core::abi::RawLog, + ) -> ::core::result::Result { + if let Ok(decoded) = ApprovalFilter::decode_log(log) { + return Ok(FeeOnTransferTokenEvents::ApprovalFilter(decoded)); + } + if let Ok(decoded) = TransferFilter::decode_log(log) { + return Ok(FeeOnTransferTokenEvents::TransferFilter(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData) + } + } + impl ::core::fmt::Display for FeeOnTransferTokenEvents { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::ApprovalFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::TransferFilter(element) => ::core::fmt::Display::fmt(element, f), + } + } + } + impl ::core::convert::From for FeeOnTransferTokenEvents { + fn from(value: ApprovalFilter) -> Self { + Self::ApprovalFilter(value) + } + } + impl ::core::convert::From for FeeOnTransferTokenEvents { + fn from(value: TransferFilter) -> Self { + Self::TransferFilter(value) + } + } + ///Container type for all input parameters for the `DOMAIN_SEPARATOR` function with signature `DOMAIN_SEPARATOR()` and selector `0x3644e515` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "DOMAIN_SEPARATOR", abi = "DOMAIN_SEPARATOR()")] + pub struct DomainSeparatorCall; + ///Container type for all input parameters for the `allowance` function with signature `allowance(address,address)` and selector `0xdd62ed3e` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "allowance", abi = "allowance(address,address)")] + pub struct AllowanceCall( + pub ::ethers::core::types::Address, + pub ::ethers::core::types::Address, + ); + ///Container type for all input parameters for the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "approve", abi = "approve(address,uint256)")] + pub struct ApproveCall { + pub spender: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "balanceOf", abi = "balanceOf(address)")] + pub struct BalanceOfCall(pub ::ethers::core::types::Address); + ///Container type for all input parameters for the `burn` function with signature `burn(address,uint256)` and selector `0x9dc29fac` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "burn", abi = "burn(address,uint256)")] + pub struct BurnCall { + pub from: ::ethers::core::types::Address, + pub value: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `decimals` function with signature `decimals()` and selector `0x313ce567` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "decimals", abi = "decimals()")] + pub struct DecimalsCall; + ///Container type for all input parameters for the `mint` function with signature `mint(address,uint256)` and selector `0x40c10f19` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "mint", abi = "mint(address,uint256)")] + pub struct MintCall { + pub to: ::ethers::core::types::Address, + pub value: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `name` function with signature `name()` and selector `0x06fdde03` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "name", abi = "name()")] + pub struct NameCall; + ///Container type for all input parameters for the `nonces` function with signature `nonces(address)` and selector `0x7ecebe00` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "nonces", abi = "nonces(address)")] + pub struct NoncesCall(pub ::ethers::core::types::Address); + ///Container type for all input parameters for the `permit` function with signature `permit(address,address,uint256,uint256,uint8,bytes32,bytes32)` and selector `0xd505accf` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall( + name = "permit", + abi = "permit(address,address,uint256,uint256,uint8,bytes32,bytes32)" + )] + pub struct PermitCall { + pub owner: ::ethers::core::types::Address, + pub spender: ::ethers::core::types::Address, + pub value: ::ethers::core::types::U256, + pub deadline: ::ethers::core::types::U256, + pub v: u8, + pub r: [u8; 32], + pub s: [u8; 32], + } + ///Container type for all input parameters for the `symbol` function with signature `symbol()` and selector `0x95d89b41` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "symbol", abi = "symbol()")] + pub struct SymbolCall; + ///Container type for all input parameters for the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "totalSupply", abi = "totalSupply()")] + pub struct TotalSupplyCall; + ///Container type for all input parameters for the `transfer` function with signature `transfer(address,uint256)` and selector `0xa9059cbb` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "transfer", abi = "transfer(address,uint256)")] + pub struct TransferCall { + pub to: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "transferFrom", abi = "transferFrom(address,address,uint256)")] + pub struct TransferFromCall { + pub from: ::ethers::core::types::Address, + pub to: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + ///Container type for all of the contract's call + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum FeeOnTransferTokenCalls { + DomainSeparator(DomainSeparatorCall), + Allowance(AllowanceCall), + Approve(ApproveCall), + BalanceOf(BalanceOfCall), + Burn(BurnCall), + Decimals(DecimalsCall), + Mint(MintCall), + Name(NameCall), + Nonces(NoncesCall), + Permit(PermitCall), + Symbol(SymbolCall), + TotalSupply(TotalSupplyCall), + Transfer(TransferCall), + TransferFrom(TransferFromCall), + } + impl ::ethers::core::abi::AbiDecode for FeeOnTransferTokenCalls { + fn decode( + data: impl AsRef<[u8]>, + ) -> ::core::result::Result { + let data = data.as_ref(); + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::DomainSeparator(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Allowance(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Approve(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::BalanceOf(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Burn(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Decimals(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Mint(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Name(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Nonces(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Permit(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Symbol(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::TotalSupply(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Transfer(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::TransferFrom(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData.into()) + } + } + impl ::ethers::core::abi::AbiEncode for FeeOnTransferTokenCalls { + fn encode(self) -> Vec { + match self { + Self::DomainSeparator(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Allowance(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Approve(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::BalanceOf(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Burn(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Decimals(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Mint(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Name(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Nonces(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Permit(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Symbol(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::TotalSupply(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Transfer(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::TransferFrom(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + } + } + } + impl ::core::fmt::Display for FeeOnTransferTokenCalls { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::DomainSeparator(element) => ::core::fmt::Display::fmt(element, f), + Self::Allowance(element) => ::core::fmt::Display::fmt(element, f), + Self::Approve(element) => ::core::fmt::Display::fmt(element, f), + Self::BalanceOf(element) => ::core::fmt::Display::fmt(element, f), + Self::Burn(element) => ::core::fmt::Display::fmt(element, f), + Self::Decimals(element) => ::core::fmt::Display::fmt(element, f), + Self::Mint(element) => ::core::fmt::Display::fmt(element, f), + Self::Name(element) => ::core::fmt::Display::fmt(element, f), + Self::Nonces(element) => ::core::fmt::Display::fmt(element, f), + Self::Permit(element) => ::core::fmt::Display::fmt(element, f), + Self::Symbol(element) => ::core::fmt::Display::fmt(element, f), + Self::TotalSupply(element) => ::core::fmt::Display::fmt(element, f), + Self::Transfer(element) => ::core::fmt::Display::fmt(element, f), + Self::TransferFrom(element) => ::core::fmt::Display::fmt(element, f), + } + } + } + impl ::core::convert::From for FeeOnTransferTokenCalls { + fn from(value: DomainSeparatorCall) -> Self { + Self::DomainSeparator(value) + } + } + impl ::core::convert::From for FeeOnTransferTokenCalls { + fn from(value: AllowanceCall) -> Self { + Self::Allowance(value) + } + } + impl ::core::convert::From for FeeOnTransferTokenCalls { + fn from(value: ApproveCall) -> Self { + Self::Approve(value) + } + } + impl ::core::convert::From for FeeOnTransferTokenCalls { + fn from(value: BalanceOfCall) -> Self { + Self::BalanceOf(value) + } + } + impl ::core::convert::From for FeeOnTransferTokenCalls { + fn from(value: BurnCall) -> Self { + Self::Burn(value) + } + } + impl ::core::convert::From for FeeOnTransferTokenCalls { + fn from(value: DecimalsCall) -> Self { + Self::Decimals(value) + } + } + impl ::core::convert::From for FeeOnTransferTokenCalls { + fn from(value: MintCall) -> Self { + Self::Mint(value) + } + } + impl ::core::convert::From for FeeOnTransferTokenCalls { + fn from(value: NameCall) -> Self { + Self::Name(value) + } + } + impl ::core::convert::From for FeeOnTransferTokenCalls { + fn from(value: NoncesCall) -> Self { + Self::Nonces(value) + } + } + impl ::core::convert::From for FeeOnTransferTokenCalls { + fn from(value: PermitCall) -> Self { + Self::Permit(value) + } + } + impl ::core::convert::From for FeeOnTransferTokenCalls { + fn from(value: SymbolCall) -> Self { + Self::Symbol(value) + } + } + impl ::core::convert::From for FeeOnTransferTokenCalls { + fn from(value: TotalSupplyCall) -> Self { + Self::TotalSupply(value) + } + } + impl ::core::convert::From for FeeOnTransferTokenCalls { + fn from(value: TransferCall) -> Self { + Self::Transfer(value) + } + } + impl ::core::convert::From for FeeOnTransferTokenCalls { + fn from(value: TransferFromCall) -> Self { + Self::TransferFrom(value) + } + } + ///Container type for all return fields from the `DOMAIN_SEPARATOR` function with signature `DOMAIN_SEPARATOR()` and selector `0x3644e515` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct DomainSeparatorReturn(pub [u8; 32]); + ///Container type for all return fields from the `allowance` function with signature `allowance(address,address)` and selector `0xdd62ed3e` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct AllowanceReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct ApproveReturn(pub bool); + ///Container type for all return fields from the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct BalanceOfReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `decimals` function with signature `decimals()` and selector `0x313ce567` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct DecimalsReturn(pub u8); + ///Container type for all return fields from the `name` function with signature `name()` and selector `0x06fdde03` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct NameReturn(pub ::std::string::String); + ///Container type for all return fields from the `nonces` function with signature `nonces(address)` and selector `0x7ecebe00` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct NoncesReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `symbol` function with signature `symbol()` and selector `0x95d89b41` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct SymbolReturn(pub ::std::string::String); + ///Container type for all return fields from the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct TotalSupplyReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `transfer` function with signature `transfer(address,uint256)` and selector `0xa9059cbb` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct TransferReturn(pub bool); + ///Container type for all return fields from the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct TransferFromReturn(pub bool); +} +pub use fixed_point_math_lib::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod fixed_point_math_lib { + #[rustfmt::skip] + const __ABI: &str = "[]"; + ///The parsed JSON ABI of the contract. + pub static FIXEDPOINTMATHLIB_ABI: ::ethers::contract::Lazy< + ::ethers::core::abi::Abi, + > = ::ethers::contract::Lazy::new(|| { + ::ethers::core::utils::__serde_json::from_str(__ABI) + .expect("ABI is always valid") + }); + #[rustfmt::skip] + const __BYTECODE: &[u8] = &[ + 96, + 86, + 96, + 55, + 96, + 11, + 130, + 130, + 130, + 57, + 128, + 81, + 96, + 0, + 26, + 96, + 115, + 20, + 96, + 42, + 87, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 0, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 48, + 96, + 0, + 82, + 96, + 115, + 129, + 83, + 130, + 129, + 243, + 254, + 115, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 48, + 20, + 96, + 128, + 96, + 64, + 82, + 96, + 0, + 128, + 253, + 254, + 162, + 100, + 105, + 112, + 102, + 115, + 88, + 34, + 18, + 32, + 179, + 57, + 13, + 16, + 88, + 48, + 27, + 105, + 123, + 27, + 186, + 51, + 30, + 187, + 174, + 68, + 233, + 146, + 251, + 61, + 250, + 111, + 203, + 105, + 140, + 23, + 0, + 140, + 141, + 135, + 222, + 94, + 100, + 115, + 111, + 108, + 99, + 67, + 0, + 8, + 13, + 0, + 51, + ]; + ///The bytecode of the contract. + pub static FIXEDPOINTMATHLIB_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __BYTECODE, + ); + #[rustfmt::skip] + const __DEPLOYED_BYTECODE: &[u8] = &[ + 115, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 48, + 20, + 96, + 128, + 96, + 64, + 82, + 96, + 0, + 128, + 253, + 254, + 162, + 100, + 105, + 112, + 102, + 115, + 88, + 34, + 18, + 32, + 179, + 57, + 13, + 16, + 88, + 48, + 27, + 105, + 123, + 27, + 186, + 51, + 30, + 187, + 174, + 68, + 233, + 146, + 251, + 61, + 250, + 111, + 203, + 105, + 140, + 23, + 0, + 140, + 141, + 135, + 222, + 94, + 100, + 115, + 111, + 108, + 99, + 67, + 0, + 8, + 13, + 0, + 51, + ]; + ///The deployed bytecode of the contract. + pub static FIXEDPOINTMATHLIB_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __DEPLOYED_BYTECODE, + ); + pub struct FixedPointMathLib(::ethers::contract::Contract); + impl ::core::clone::Clone for FixedPointMathLib { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for FixedPointMathLib { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for FixedPointMathLib { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for FixedPointMathLib { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(stringify!(FixedPointMathLib)).field(&self.address()).finish() + } + } + impl FixedPointMathLib { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + FIXEDPOINTMATHLIB_ABI.clone(), + client, + ), + ) + } + /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. + /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction + /// + /// Notes: + /// - If there are no constructor arguments, you should pass `()` as the argument. + /// - The default poll duration is 7 seconds. + /// - The default number of confirmations is 1 block. + /// + /// + /// # Example + /// + /// Generate contract bindings with `abigen!` and deploy a new contract instance. + /// + /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. + /// + /// ```ignore + /// # async fn deploy(client: ::std::sync::Arc) { + /// abigen!(Greeter, "../greeter.json"); + /// + /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); + /// let msg = greeter_contract.greet().call().await.unwrap(); + /// # } + /// ``` + pub fn deploy( + client: ::std::sync::Arc, + constructor_args: T, + ) -> ::core::result::Result< + ::ethers::contract::builders::ContractDeployer, + ::ethers::contract::ContractError, + > { + let factory = ::ethers::contract::ContractFactory::new( + FIXEDPOINTMATHLIB_ABI.clone(), + FIXEDPOINTMATHLIB_BYTECODE.clone().into(), + client, + ); + let deployer = factory.deploy(constructor_args)?; + let deployer = ::ethers::contract::ContractDeployer::new(deployer); + Ok(deployer) + } + } + impl From<::ethers::contract::Contract> + for FixedPointMathLib { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } +} +pub use gaussian::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod gaussian { + #[rustfmt::skip] + const __ABI: &str = "[{\"inputs\":[],\"type\":\"error\",\"name\":\"Infinity\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"NegativeInfinity\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"OutOfBounds\",\"outputs\":[]}]"; + ///The parsed JSON ABI of the contract. + pub static GAUSSIAN_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| + ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); + #[rustfmt::skip] + const __BYTECODE: &[u8] = &[ + 96, + 86, + 96, + 55, + 96, + 11, + 130, + 130, + 130, + 57, + 128, + 81, + 96, + 0, + 26, + 96, + 115, + 20, + 96, + 42, + 87, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 0, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 48, + 96, + 0, + 82, + 96, + 115, + 129, + 83, + 130, + 129, + 243, + 254, + 115, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 48, + 20, + 96, + 128, + 96, + 64, + 82, + 96, + 0, + 128, + 253, + 254, + 162, + 100, + 105, + 112, + 102, + 115, + 88, + 34, + 18, + 32, + 85, + 151, + 143, + 125, + 73, + 175, + 216, + 84, + 232, + 75, + 6, + 199, + 76, + 165, + 165, + 201, + 152, + 128, + 191, + 75, + 105, + 203, + 211, + 129, + 58, + 142, + 121, + 163, + 95, + 231, + 155, + 124, + 100, + 115, + 111, + 108, + 99, + 67, + 0, + 8, + 13, + 0, + 51, + ]; + ///The bytecode of the contract. + pub static GAUSSIAN_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __BYTECODE, + ); + #[rustfmt::skip] + const __DEPLOYED_BYTECODE: &[u8] = &[ + 115, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 48, + 20, + 96, + 128, + 96, + 64, + 82, + 96, + 0, + 128, + 253, + 254, + 162, + 100, + 105, + 112, + 102, + 115, + 88, + 34, + 18, + 32, + 85, + 151, + 143, + 125, + 73, + 175, + 216, + 84, + 232, + 75, + 6, + 199, + 76, + 165, + 165, + 201, + 152, + 128, + 191, + 75, + 105, + 203, + 211, + 129, + 58, + 142, + 121, + 163, + 95, + 231, + 155, + 124, + 100, + 115, + 111, + 108, + 99, + 67, + 0, + 8, + 13, + 0, + 51, + ]; + ///The deployed bytecode of the contract. + pub static GAUSSIAN_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __DEPLOYED_BYTECODE, + ); + pub struct Gaussian(::ethers::contract::Contract); + impl ::core::clone::Clone for Gaussian { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for Gaussian { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for Gaussian { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for Gaussian { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(stringify!(Gaussian)).field(&self.address()).finish() + } + } + impl Gaussian { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + GAUSSIAN_ABI.clone(), + client, + ), + ) + } + /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. + /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction + /// + /// Notes: + /// - If there are no constructor arguments, you should pass `()` as the argument. + /// - The default poll duration is 7 seconds. + /// - The default number of confirmations is 1 block. + /// + /// + /// # Example + /// + /// Generate contract bindings with `abigen!` and deploy a new contract instance. + /// + /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. + /// + /// ```ignore + /// # async fn deploy(client: ::std::sync::Arc) { + /// abigen!(Greeter, "../greeter.json"); + /// + /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); + /// let msg = greeter_contract.greet().call().await.unwrap(); + /// # } + /// ``` + pub fn deploy( + client: ::std::sync::Arc, + constructor_args: T, + ) -> ::core::result::Result< + ::ethers::contract::builders::ContractDeployer, + ::ethers::contract::ContractError, + > { + let factory = ::ethers::contract::ContractFactory::new( + GAUSSIAN_ABI.clone(), + GAUSSIAN_BYTECODE.clone().into(), + client, + ); + let deployer = factory.deploy(constructor_args)?; + let deployer = ::ethers::contract::ContractDeployer::new(deployer); + Ok(deployer) + } + } + impl From<::ethers::contract::Contract> + for Gaussian { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } + ///Custom Error type `Infinity` with signature `Infinity()` and selector `0x07a02127` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "Infinity", abi = "Infinity()")] + pub struct Infinity; + ///Custom Error type `NegativeInfinity` with signature `NegativeInfinity()` and selector `0x8bb56614` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "NegativeInfinity", abi = "NegativeInfinity()")] + pub struct NegativeInfinity; + ///Custom Error type `OutOfBounds` with signature `OutOfBounds()` and selector `0xb4120f14` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "OutOfBounds", abi = "OutOfBounds()")] + pub struct OutOfBounds; + ///Container type for all of the contract's custom errors + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum GaussianErrors { + Infinity(Infinity), + NegativeInfinity(NegativeInfinity), + OutOfBounds(OutOfBounds), + /// The standard solidity revert string, with selector + /// Error(string) -- 0x08c379a0 + RevertString(::std::string::String), + } + impl ::ethers::core::abi::AbiDecode for GaussianErrors { + fn decode( + data: impl AsRef<[u8]>, + ) -> ::core::result::Result { + let data = data.as_ref(); + if let Ok(decoded) + = <::std::string::String as ::ethers::core::abi::AbiDecode>::decode( + data, + ) { + return Ok(Self::RevertString(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Infinity(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::NegativeInfinity(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::OutOfBounds(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData.into()) + } + } + impl ::ethers::core::abi::AbiEncode for GaussianErrors { + fn encode(self) -> ::std::vec::Vec { + match self { + Self::Infinity(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::NegativeInfinity(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::OutOfBounds(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::RevertString(s) => ::ethers::core::abi::AbiEncode::encode(s), + } + } + } + impl ::ethers::contract::ContractRevert for GaussianErrors { + fn valid_selector(selector: [u8; 4]) -> bool { + match selector { + [0x08, 0xc3, 0x79, 0xa0] => true, + _ if selector + == ::selector() => true, + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => true, + _ => false, + } + } + } + impl ::core::fmt::Display for GaussianErrors { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::Infinity(element) => ::core::fmt::Display::fmt(element, f), + Self::NegativeInfinity(element) => ::core::fmt::Display::fmt(element, f), + Self::OutOfBounds(element) => ::core::fmt::Display::fmt(element, f), + Self::RevertString(s) => ::core::fmt::Display::fmt(s, f), + } + } + } + impl ::core::convert::From<::std::string::String> for GaussianErrors { + fn from(value: String) -> Self { + Self::RevertString(value) + } + } + impl ::core::convert::From for GaussianErrors { + fn from(value: Infinity) -> Self { + Self::Infinity(value) + } + } + impl ::core::convert::From for GaussianErrors { + fn from(value: NegativeInfinity) -> Self { + Self::NegativeInfinity(value) + } + } + impl ::core::convert::From for GaussianErrors { + fn from(value: OutOfBounds) -> Self { + Self::OutOfBounds(value) + } + } +} +pub use ierc20::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod ierc20 { + #[rustfmt::skip] + const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Approval\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Transfer\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]}]"; + ///The parsed JSON ABI of the contract. + pub static IERC20_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| + ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); + pub struct IERC20(::ethers::contract::Contract); + impl ::core::clone::Clone for IERC20 { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for IERC20 { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for IERC20 { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for IERC20 { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(stringify!(IERC20)).field(&self.address()).finish() + } + } + impl IERC20 { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + IERC20_ABI.clone(), + client, + ), + ) + } + ///Calls the contract's `allowance` (0xdd62ed3e) function + pub fn allowance( + &self, + owner: ::ethers::core::types::Address, + spender: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([221, 98, 237, 62], (owner, spender)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `approve` (0x095ea7b3) function + pub fn approve( + &self, + spender: ::ethers::core::types::Address, + amount: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([9, 94, 167, 179], (spender, amount)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `balanceOf` (0x70a08231) function + pub fn balance_of( + &self, + account: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([112, 160, 130, 49], account) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `decimals` (0x313ce567) function + pub fn decimals(&self) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([49, 60, 229, 103], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `totalSupply` (0x18160ddd) function + pub fn total_supply( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([24, 22, 13, 221], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `transfer` (0xa9059cbb) function + pub fn transfer( + &self, + recipient: ::ethers::core::types::Address, + amount: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([169, 5, 156, 187], (recipient, amount)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `transferFrom` (0x23b872dd) function + pub fn transfer_from( + &self, + sender: ::ethers::core::types::Address, + recipient: ::ethers::core::types::Address, + amount: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([35, 184, 114, 221], (sender, recipient, amount)) + .expect("method not found (this should never happen)") + } + ///Gets the contract's `Approval` event + pub fn approval_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + ApprovalFilter, + > { + self.0.event() + } + ///Gets the contract's `Transfer` event + pub fn transfer_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + TransferFilter, + > { + self.0.event() + } + /// Returns an `Event` builder for all the events of this contract. + pub fn events( + &self, + ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, IERC20Events> { + self.0.event_with_filter(::core::default::Default::default()) + } + } + impl From<::ethers::contract::Contract> + for IERC20 { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "Approval", abi = "Approval(address,address,uint256)")] + pub struct ApprovalFilter { + #[ethevent(indexed)] + pub owner: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub spender: ::ethers::core::types::Address, + pub value: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "Transfer", abi = "Transfer(address,address,uint256)")] + pub struct TransferFilter { + #[ethevent(indexed)] + pub from: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub to: ::ethers::core::types::Address, + pub value: ::ethers::core::types::U256, + } + ///Container type for all of the contract's events + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum IERC20Events { + ApprovalFilter(ApprovalFilter), + TransferFilter(TransferFilter), + } + impl ::ethers::contract::EthLogDecode for IERC20Events { + fn decode_log( + log: &::ethers::core::abi::RawLog, + ) -> ::core::result::Result { + if let Ok(decoded) = ApprovalFilter::decode_log(log) { + return Ok(IERC20Events::ApprovalFilter(decoded)); + } + if let Ok(decoded) = TransferFilter::decode_log(log) { + return Ok(IERC20Events::TransferFilter(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData) + } + } + impl ::core::fmt::Display for IERC20Events { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::ApprovalFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::TransferFilter(element) => ::core::fmt::Display::fmt(element, f), + } + } + } + impl ::core::convert::From for IERC20Events { + fn from(value: ApprovalFilter) -> Self { + Self::ApprovalFilter(value) + } + } + impl ::core::convert::From for IERC20Events { + fn from(value: TransferFilter) -> Self { + Self::TransferFilter(value) + } + } + ///Container type for all input parameters for the `allowance` function with signature `allowance(address,address)` and selector `0xdd62ed3e` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "allowance", abi = "allowance(address,address)")] + pub struct AllowanceCall { + pub owner: ::ethers::core::types::Address, + pub spender: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "approve", abi = "approve(address,uint256)")] + pub struct ApproveCall { + pub spender: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "balanceOf", abi = "balanceOf(address)")] + pub struct BalanceOfCall { + pub account: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `decimals` function with signature `decimals()` and selector `0x313ce567` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "decimals", abi = "decimals()")] + pub struct DecimalsCall; + ///Container type for all input parameters for the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "totalSupply", abi = "totalSupply()")] + pub struct TotalSupplyCall; + ///Container type for all input parameters for the `transfer` function with signature `transfer(address,uint256)` and selector `0xa9059cbb` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "transfer", abi = "transfer(address,uint256)")] + pub struct TransferCall { + pub recipient: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "transferFrom", abi = "transferFrom(address,address,uint256)")] + pub struct TransferFromCall { + pub sender: ::ethers::core::types::Address, + pub recipient: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + ///Container type for all of the contract's call + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum IERC20Calls { + Allowance(AllowanceCall), + Approve(ApproveCall), + BalanceOf(BalanceOfCall), + Decimals(DecimalsCall), + TotalSupply(TotalSupplyCall), + Transfer(TransferCall), + TransferFrom(TransferFromCall), + } + impl ::ethers::core::abi::AbiDecode for IERC20Calls { + fn decode( + data: impl AsRef<[u8]>, + ) -> ::core::result::Result { + let data = data.as_ref(); + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Allowance(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Approve(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::BalanceOf(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Decimals(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::TotalSupply(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Transfer(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::TransferFrom(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData.into()) + } + } + impl ::ethers::core::abi::AbiEncode for IERC20Calls { + fn encode(self) -> Vec { + match self { + Self::Allowance(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Approve(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::BalanceOf(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Decimals(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::TotalSupply(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Transfer(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::TransferFrom(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + } + } + } + impl ::core::fmt::Display for IERC20Calls { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::Allowance(element) => ::core::fmt::Display::fmt(element, f), + Self::Approve(element) => ::core::fmt::Display::fmt(element, f), + Self::BalanceOf(element) => ::core::fmt::Display::fmt(element, f), + Self::Decimals(element) => ::core::fmt::Display::fmt(element, f), + Self::TotalSupply(element) => ::core::fmt::Display::fmt(element, f), + Self::Transfer(element) => ::core::fmt::Display::fmt(element, f), + Self::TransferFrom(element) => ::core::fmt::Display::fmt(element, f), + } + } + } + impl ::core::convert::From for IERC20Calls { + fn from(value: AllowanceCall) -> Self { + Self::Allowance(value) + } + } + impl ::core::convert::From for IERC20Calls { + fn from(value: ApproveCall) -> Self { + Self::Approve(value) + } + } + impl ::core::convert::From for IERC20Calls { + fn from(value: BalanceOfCall) -> Self { + Self::BalanceOf(value) + } + } + impl ::core::convert::From for IERC20Calls { + fn from(value: DecimalsCall) -> Self { + Self::Decimals(value) + } + } + impl ::core::convert::From for IERC20Calls { + fn from(value: TotalSupplyCall) -> Self { + Self::TotalSupply(value) + } + } + impl ::core::convert::From for IERC20Calls { + fn from(value: TransferCall) -> Self { + Self::Transfer(value) + } + } + impl ::core::convert::From for IERC20Calls { + fn from(value: TransferFromCall) -> Self { + Self::TransferFrom(value) + } + } + ///Container type for all return fields from the `allowance` function with signature `allowance(address,address)` and selector `0xdd62ed3e` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct AllowanceReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct ApproveReturn(pub bool); + ///Container type for all return fields from the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct BalanceOfReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `decimals` function with signature `decimals()` and selector `0x313ce567` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct DecimalsReturn(pub u8); + ///Container type for all return fields from the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct TotalSupplyReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `transfer` function with signature `transfer(address,uint256)` and selector `0xa9059cbb` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct TransferReturn(pub bool); + ///Container type for all return fields from the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct TransferFromReturn(pub bool); +} +pub use ierc20_metadata::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod ierc20_metadata { + #[rustfmt::skip] + const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Approval\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Transfer\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]}]"; + ///The parsed JSON ABI of the contract. + pub static IERC20METADATA_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| + ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); + pub struct IERC20Metadata(::ethers::contract::Contract); + impl ::core::clone::Clone for IERC20Metadata { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for IERC20Metadata { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for IERC20Metadata { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for IERC20Metadata { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(stringify!(IERC20Metadata)).field(&self.address()).finish() + } + } + impl IERC20Metadata { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + IERC20METADATA_ABI.clone(), + client, + ), + ) + } + ///Calls the contract's `allowance` (0xdd62ed3e) function + pub fn allowance( + &self, + owner: ::ethers::core::types::Address, + spender: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([221, 98, 237, 62], (owner, spender)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `approve` (0x095ea7b3) function + pub fn approve( + &self, + spender: ::ethers::core::types::Address, + amount: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([9, 94, 167, 179], (spender, amount)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `balanceOf` (0x70a08231) function + pub fn balance_of( + &self, + account: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([112, 160, 130, 49], account) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `decimals` (0x313ce567) function + pub fn decimals(&self) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([49, 60, 229, 103], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `name` (0x06fdde03) function + pub fn name( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([6, 253, 222, 3], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `symbol` (0x95d89b41) function + pub fn symbol( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([149, 216, 155, 65], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `totalSupply` (0x18160ddd) function + pub fn total_supply( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([24, 22, 13, 221], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `transfer` (0xa9059cbb) function + pub fn transfer( + &self, + to: ::ethers::core::types::Address, + amount: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([169, 5, 156, 187], (to, amount)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `transferFrom` (0x23b872dd) function + pub fn transfer_from( + &self, + from: ::ethers::core::types::Address, + to: ::ethers::core::types::Address, + amount: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([35, 184, 114, 221], (from, to, amount)) + .expect("method not found (this should never happen)") + } + ///Gets the contract's `Approval` event + pub fn approval_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + ApprovalFilter, + > { + self.0.event() + } + ///Gets the contract's `Transfer` event + pub fn transfer_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + TransferFilter, + > { + self.0.event() + } + /// Returns an `Event` builder for all the events of this contract. + pub fn events( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + IERC20MetadataEvents, + > { + self.0.event_with_filter(::core::default::Default::default()) + } + } + impl From<::ethers::contract::Contract> + for IERC20Metadata { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "Approval", abi = "Approval(address,address,uint256)")] + pub struct ApprovalFilter { + #[ethevent(indexed)] + pub owner: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub spender: ::ethers::core::types::Address, + pub value: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "Transfer", abi = "Transfer(address,address,uint256)")] + pub struct TransferFilter { + #[ethevent(indexed)] + pub from: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub to: ::ethers::core::types::Address, + pub value: ::ethers::core::types::U256, + } + ///Container type for all of the contract's events + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum IERC20MetadataEvents { + ApprovalFilter(ApprovalFilter), + TransferFilter(TransferFilter), + } + impl ::ethers::contract::EthLogDecode for IERC20MetadataEvents { + fn decode_log( + log: &::ethers::core::abi::RawLog, + ) -> ::core::result::Result { + if let Ok(decoded) = ApprovalFilter::decode_log(log) { + return Ok(IERC20MetadataEvents::ApprovalFilter(decoded)); + } + if let Ok(decoded) = TransferFilter::decode_log(log) { + return Ok(IERC20MetadataEvents::TransferFilter(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData) + } + } + impl ::core::fmt::Display for IERC20MetadataEvents { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::ApprovalFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::TransferFilter(element) => ::core::fmt::Display::fmt(element, f), + } + } + } + impl ::core::convert::From for IERC20MetadataEvents { + fn from(value: ApprovalFilter) -> Self { + Self::ApprovalFilter(value) + } + } + impl ::core::convert::From for IERC20MetadataEvents { + fn from(value: TransferFilter) -> Self { + Self::TransferFilter(value) + } + } + ///Container type for all input parameters for the `allowance` function with signature `allowance(address,address)` and selector `0xdd62ed3e` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "allowance", abi = "allowance(address,address)")] + pub struct AllowanceCall { + pub owner: ::ethers::core::types::Address, + pub spender: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "approve", abi = "approve(address,uint256)")] + pub struct ApproveCall { + pub spender: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "balanceOf", abi = "balanceOf(address)")] + pub struct BalanceOfCall { + pub account: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `decimals` function with signature `decimals()` and selector `0x313ce567` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "decimals", abi = "decimals()")] + pub struct DecimalsCall; + ///Container type for all input parameters for the `name` function with signature `name()` and selector `0x06fdde03` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "name", abi = "name()")] + pub struct NameCall; + ///Container type for all input parameters for the `symbol` function with signature `symbol()` and selector `0x95d89b41` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "symbol", abi = "symbol()")] + pub struct SymbolCall; + ///Container type for all input parameters for the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "totalSupply", abi = "totalSupply()")] + pub struct TotalSupplyCall; + ///Container type for all input parameters for the `transfer` function with signature `transfer(address,uint256)` and selector `0xa9059cbb` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "transfer", abi = "transfer(address,uint256)")] + pub struct TransferCall { + pub to: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "transferFrom", abi = "transferFrom(address,address,uint256)")] + pub struct TransferFromCall { + pub from: ::ethers::core::types::Address, + pub to: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + ///Container type for all of the contract's call + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum IERC20MetadataCalls { + Allowance(AllowanceCall), + Approve(ApproveCall), + BalanceOf(BalanceOfCall), + Decimals(DecimalsCall), + Name(NameCall), + Symbol(SymbolCall), + TotalSupply(TotalSupplyCall), + Transfer(TransferCall), + TransferFrom(TransferFromCall), + } + impl ::ethers::core::abi::AbiDecode for IERC20MetadataCalls { + fn decode( + data: impl AsRef<[u8]>, + ) -> ::core::result::Result { + let data = data.as_ref(); + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Allowance(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Approve(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::BalanceOf(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Decimals(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Name(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Symbol(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::TotalSupply(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Transfer(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::TransferFrom(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData.into()) + } + } + impl ::ethers::core::abi::AbiEncode for IERC20MetadataCalls { + fn encode(self) -> Vec { + match self { + Self::Allowance(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Approve(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::BalanceOf(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Decimals(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Name(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Symbol(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::TotalSupply(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Transfer(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::TransferFrom(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + } + } + } + impl ::core::fmt::Display for IERC20MetadataCalls { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::Allowance(element) => ::core::fmt::Display::fmt(element, f), + Self::Approve(element) => ::core::fmt::Display::fmt(element, f), + Self::BalanceOf(element) => ::core::fmt::Display::fmt(element, f), + Self::Decimals(element) => ::core::fmt::Display::fmt(element, f), + Self::Name(element) => ::core::fmt::Display::fmt(element, f), + Self::Symbol(element) => ::core::fmt::Display::fmt(element, f), + Self::TotalSupply(element) => ::core::fmt::Display::fmt(element, f), + Self::Transfer(element) => ::core::fmt::Display::fmt(element, f), + Self::TransferFrom(element) => ::core::fmt::Display::fmt(element, f), + } + } + } + impl ::core::convert::From for IERC20MetadataCalls { + fn from(value: AllowanceCall) -> Self { + Self::Allowance(value) + } + } + impl ::core::convert::From for IERC20MetadataCalls { + fn from(value: ApproveCall) -> Self { + Self::Approve(value) + } + } + impl ::core::convert::From for IERC20MetadataCalls { + fn from(value: BalanceOfCall) -> Self { + Self::BalanceOf(value) + } + } + impl ::core::convert::From for IERC20MetadataCalls { + fn from(value: DecimalsCall) -> Self { + Self::Decimals(value) + } + } + impl ::core::convert::From for IERC20MetadataCalls { + fn from(value: NameCall) -> Self { + Self::Name(value) + } + } + impl ::core::convert::From for IERC20MetadataCalls { + fn from(value: SymbolCall) -> Self { + Self::Symbol(value) + } + } + impl ::core::convert::From for IERC20MetadataCalls { + fn from(value: TotalSupplyCall) -> Self { + Self::TotalSupply(value) + } + } + impl ::core::convert::From for IERC20MetadataCalls { + fn from(value: TransferCall) -> Self { + Self::Transfer(value) + } + } + impl ::core::convert::From for IERC20MetadataCalls { + fn from(value: TransferFromCall) -> Self { + Self::TransferFrom(value) + } + } + ///Container type for all return fields from the `allowance` function with signature `allowance(address,address)` and selector `0xdd62ed3e` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct AllowanceReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct ApproveReturn(pub bool); + ///Container type for all return fields from the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct BalanceOfReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `decimals` function with signature `decimals()` and selector `0x313ce567` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct DecimalsReturn(pub u8); + ///Container type for all return fields from the `name` function with signature `name()` and selector `0x06fdde03` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct NameReturn(pub ::std::string::String); + ///Container type for all return fields from the `symbol` function with signature `symbol()` and selector `0x95d89b41` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct SymbolReturn(pub ::std::string::String); + ///Container type for all return fields from the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct TotalSupplyReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `transfer` function with signature `transfer(address,uint256)` and selector `0xa9059cbb` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct TransferReturn(pub bool); + ///Container type for all return fields from the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct TransferFromReturn(pub bool); +} +pub use i_portfolio::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod i_portfolio { + pub use super::__shared_types::*; + #[rustfmt::skip] + const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaLiquidity\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Allocate\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint16\",\"name\":\"priorityFee\",\"type\":\"uint16\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint16\",\"name\":\"fee\",\"type\":\"uint16\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint16\",\"name\":\"jit\",\"type\":\"uint16\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"ChangeParameters\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"feeAssetDec\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"feeQuoteDec\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true}],\"type\":\"event\",\"name\":\"Collect\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"pairId\",\"type\":\"uint24\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint8\",\"name\":\"decimalsAsset\",\"type\":\"uint8\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint8\",\"name\":\"decimalsQuote\",\"type\":\"uint8\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"CreatePair\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"bool\",\"name\":\"isMutable\",\"type\":\"bool\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"CreatePool\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaLiquidity\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Deallocate\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"DecreaseReserveBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"DecreaseUserBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Deposit\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"IncreaseReserveBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"IncreaseUserBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"sellAsset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"input\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"tokenOut\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"output\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"feeAmountDec\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"int256\",\"name\":\"invariantWad\",\"type\":\"int256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Swap\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"prevFee\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"nextFee\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"UpdateProtocolFee\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\",\"name\":\"VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"WETH\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"priorityFee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"fee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"jit\",\"type\":\"uint16\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"changeParameters\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"deposit\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"draw\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"fund\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"bool\",\"name\":\"sellAsset\",\"type\":\"bool\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getAmountOut\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"int128\",\"name\":\"deltaLiquidity\",\"type\":\"int128\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getLiquidityDeltas\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"deltaAsset\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"deltaQuote\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getMaxLiquidity\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"deltaLiquidity\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getNetBalance\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPairId\",\"outputs\":[{\"internalType\":\"uint24\",\"name\":\"pairId\",\"type\":\"uint24\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPairNonce\",\"outputs\":[{\"internalType\":\"uint24\",\"name\":\"\",\"type\":\"uint24\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"pairNonce\",\"type\":\"uint24\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPoolNonce\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPoolReserves\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getReserve\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getVirtualPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getVirtualReservesPerLiquidity\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"deltaAsset\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"deltaQuote\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\",\"components\":[]}],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"multiprocess\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"pairId\",\"type\":\"uint24\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"pairs\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"tokenAsset\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsAsset\",\"type\":\"uint8\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"tokenQuote\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsQuote\",\"type\":\"uint8\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"pools\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"virtualX\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"virtualY\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"liquidity\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint32\",\"name\":\"lastTimestamp\",\"type\":\"uint32\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"controller\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"invariantGrowthGlobal\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthGlobalAsset\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthGlobalQuote\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"struct PortfolioCurve\",\"name\":\"\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"uint128\",\"name\":\"maxPrice\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"jit\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"fee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"duration\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"volatility\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"priorityFee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint32\",\"name\":\"createdAt\",\"type\":\"uint32\",\"components\":[]},{\"internalType\":\"bool\",\"name\":\"perpetual\",\"type\":\"bool\",\"components\":[]}]},{\"internalType\":\"struct PortfolioPair\",\"name\":\"\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"address\",\"name\":\"tokenAsset\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsAsset\",\"type\":\"uint8\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"tokenQuote\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsQuote\",\"type\":\"uint8\",\"components\":[]}]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"positions\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"freeLiquidity\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint32\",\"name\":\"lastTimestamp\",\"type\":\"uint32\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"invariantGrowthLast\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthAssetLast\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthQuoteLast\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"tokensOwedAsset\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"tokensOwedQuote\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"invariantOwed\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"setProtocolFee\",\"outputs\":[]}]"; + ///The parsed JSON ABI of the contract. + pub static IPORTFOLIO_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| + ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); + pub struct IPortfolio(::ethers::contract::Contract); + impl ::core::clone::Clone for IPortfolio { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for IPortfolio { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for IPortfolio { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for IPortfolio { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(stringify!(IPortfolio)).field(&self.address()).finish() + } + } + impl IPortfolio { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + IPORTFOLIO_ABI.clone(), + client, + ), + ) + } + ///Calls the contract's `REGISTRY` (0x06433b1b) function + pub fn registry( + &self, + ) -> ::ethers::contract::builders::ContractCall< + M, + ::ethers::core::types::Address, + > { + self.0 + .method_hash([6, 67, 59, 27], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `VERSION` (0xffa1ad74) function + pub fn version( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([255, 161, 173, 116], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `WETH` (0xad5c4648) function + pub fn weth( + &self, + ) -> ::ethers::contract::builders::ContractCall< + M, + ::ethers::core::types::Address, + > { + self.0 + .method_hash([173, 92, 70, 72], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `changeParameters` (0xaf777855) function + pub fn change_parameters( + &self, + pool_id: u64, + priority_fee: u16, + fee: u16, + jit: u16, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([175, 119, 120, 85], (pool_id, priority_fee, fee, jit)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `deposit` (0xd0e30db0) function + pub fn deposit(&self) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([208, 227, 13, 176], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `draw` (0xad24d6a0) function + pub fn draw( + &self, + token: ::ethers::core::types::Address, + amount: ::ethers::core::types::U256, + to: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([173, 36, 214, 160], (token, amount, to)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `fund` (0x7b1837de) function + pub fn fund( + &self, + token: ::ethers::core::types::Address, + amount: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([123, 24, 55, 222], (token, amount)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getAmountOut` (0x7dae4890) function + pub fn get_amount_out( + &self, + pool_id: u64, + sell_asset: bool, + amount_in: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([125, 174, 72, 144], (pool_id, sell_asset, amount_in)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getBalance` (0xd4fac45d) function + pub fn get_balance( + &self, + owner: ::ethers::core::types::Address, + token: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([212, 250, 196, 93], (owner, token)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getLiquidityDeltas` (0x8992f20a) function + pub fn get_liquidity_deltas( + &self, + pool_id: u64, + delta_liquidity: i128, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([137, 146, 242, 10], (pool_id, delta_liquidity)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getMaxLiquidity` (0xd6b7dec5) function + pub fn get_max_liquidity( + &self, + pool_id: u64, + delta_asset: ::ethers::core::types::U256, + delta_quote: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([214, 183, 222, 197], (pool_id, delta_asset, delta_quote)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getNetBalance` (0x4dc68a90) function + pub fn get_net_balance( + &self, + token: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([77, 198, 138, 144], token) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getPairId` (0x3f92a339) function + pub fn get_pair_id( + &self, + asset: ::ethers::core::types::Address, + quote: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([63, 146, 163, 57], (asset, quote)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getPairNonce` (0x078888d6) function + pub fn get_pair_nonce( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([7, 136, 136, 214], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getPoolNonce` (0xa5cd8a49) function + pub fn get_pool_nonce( + &self, + pair_nonce: u32, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([165, 205, 138, 73], pair_nonce) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getPoolReserves` (0x2afb9df8) function + pub fn get_pool_reserves( + &self, + pool_id: u64, + ) -> ::ethers::contract::builders::ContractCall< + M, + (::ethers::core::types::U256, ::ethers::core::types::U256), + > { + self.0 + .method_hash([42, 251, 157, 248], pool_id) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getReserve` (0xc9a396e9) function + pub fn get_reserve( + &self, + token: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([201, 163, 150, 233], token) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getVirtualPrice` (0x61b7ea6a) function + pub fn get_virtual_price( + &self, + pool_id: u64, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([97, 183, 234, 106], pool_id) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getVirtualReservesPerLiquidity` (0x1a4b905b) function + pub fn get_virtual_reserves_per_liquidity( + &self, + pool_id: u64, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([26, 75, 144, 91], pool_id) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `multiprocess` (0xa0fdf413) function + pub fn multiprocess( + &self, + data: ::ethers::core::types::Bytes, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([160, 253, 244, 19], data) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `pairs` (0x5e47663c) function + pub fn pairs( + &self, + pair_id: u32, + ) -> ::ethers::contract::builders::ContractCall< + M, + (::ethers::core::types::Address, u8, ::ethers::core::types::Address, u8), + > { + self.0 + .method_hash([94, 71, 102, 60], pair_id) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `pools` (0x89a5f084) function + pub fn pools( + &self, + pool_id: u64, + ) -> ::ethers::contract::builders::ContractCall< + M, + ( + u128, + u128, + u128, + u32, + ::ethers::core::types::Address, + ::ethers::core::types::U256, + ::ethers::core::types::U256, + ::ethers::core::types::U256, + PortfolioCurve, + PortfolioPair, + ), + > { + self.0 + .method_hash([137, 165, 240, 132], pool_id) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `positions` (0xb68513ea) function + pub fn positions( + &self, + owner: ::ethers::core::types::Address, + pool_id: u64, + ) -> ::ethers::contract::builders::ContractCall< + M, + ( + u128, + u32, + ::ethers::core::types::U256, + ::ethers::core::types::U256, + ::ethers::core::types::U256, + u128, + u128, + u128, + ), + > { + self.0 + .method_hash([182, 133, 19, 234], (owner, pool_id)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `setProtocolFee` (0x787dce3d) function + pub fn set_protocol_fee( + &self, + fee: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([120, 125, 206, 61], fee) + .expect("method not found (this should never happen)") + } + ///Gets the contract's `Allocate` event + pub fn allocate_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + AllocateFilter, + > { + self.0.event() + } + ///Gets the contract's `ChangeParameters` event + pub fn change_parameters_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + ChangeParametersFilter, + > { + self.0.event() + } + ///Gets the contract's `Collect` event + pub fn collect_filter( + &self, + ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, CollectFilter> { + self.0.event() + } + ///Gets the contract's `CreatePair` event + pub fn create_pair_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + CreatePairFilter, + > { + self.0.event() + } + ///Gets the contract's `CreatePool` event + pub fn create_pool_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + CreatePoolFilter, + > { + self.0.event() + } + ///Gets the contract's `Deallocate` event + pub fn deallocate_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + DeallocateFilter, + > { + self.0.event() + } + ///Gets the contract's `DecreaseReserveBalance` event + pub fn decrease_reserve_balance_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + DecreaseReserveBalanceFilter, + > { + self.0.event() + } + ///Gets the contract's `DecreaseUserBalance` event + pub fn decrease_user_balance_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + DecreaseUserBalanceFilter, + > { + self.0.event() + } + ///Gets the contract's `Deposit` event + pub fn deposit_filter( + &self, + ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, DepositFilter> { + self.0.event() + } + ///Gets the contract's `IncreaseReserveBalance` event + pub fn increase_reserve_balance_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + IncreaseReserveBalanceFilter, + > { + self.0.event() + } + ///Gets the contract's `IncreaseUserBalance` event + pub fn increase_user_balance_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + IncreaseUserBalanceFilter, + > { + self.0.event() + } + ///Gets the contract's `Swap` event + pub fn swap_filter( + &self, + ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, SwapFilter> { + self.0.event() + } + ///Gets the contract's `UpdateProtocolFee` event + pub fn update_protocol_fee_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + UpdateProtocolFeeFilter, + > { + self.0.event() + } + /// Returns an `Event` builder for all the events of this contract. + pub fn events( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + IPortfolioEvents, + > { + self.0.event_with_filter(::core::default::Default::default()) + } + } + impl From<::ethers::contract::Contract> + for IPortfolio { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "Allocate", + abi = "Allocate(uint64,address,address,uint256,uint256,uint256)" + )] + pub struct AllocateFilter { + #[ethevent(indexed)] + pub pool_id: u64, + #[ethevent(indexed)] + pub asset: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub quote: ::ethers::core::types::Address, + pub delta_asset: ::ethers::core::types::U256, + pub delta_quote: ::ethers::core::types::U256, + pub delta_liquidity: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "ChangeParameters", + abi = "ChangeParameters(uint64,uint16,uint16,uint16)" + )] + pub struct ChangeParametersFilter { + #[ethevent(indexed)] + pub pool_id: u64, + #[ethevent(indexed)] + pub priority_fee: u16, + #[ethevent(indexed)] + pub fee: u16, + pub jit: u16, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "Collect", + abi = "Collect(uint64,address,uint256,address,uint256,address)" + )] + pub struct CollectFilter { + pub pool_id: u64, + #[ethevent(indexed)] + pub account: ::ethers::core::types::Address, + pub fee_asset_dec: ::ethers::core::types::U256, + #[ethevent(indexed)] + pub asset: ::ethers::core::types::Address, + pub fee_quote_dec: ::ethers::core::types::U256, + #[ethevent(indexed)] + pub quote: ::ethers::core::types::Address, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "CreatePair", + abi = "CreatePair(uint24,address,address,uint8,uint8)" + )] + pub struct CreatePairFilter { + #[ethevent(indexed)] + pub pair_id: u32, + #[ethevent(indexed)] + pub asset: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub quote: ::ethers::core::types::Address, + pub decimals_asset: u8, + pub decimals_quote: u8, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "CreatePool", + abi = "CreatePool(uint64,bool,address,address,uint256)" + )] + pub struct CreatePoolFilter { + #[ethevent(indexed)] + pub pool_id: u64, + pub is_mutable: bool, + #[ethevent(indexed)] + pub asset: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub quote: ::ethers::core::types::Address, + pub price: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "Deallocate", + abi = "Deallocate(uint64,address,address,uint256,uint256,uint256)" + )] + pub struct DeallocateFilter { + #[ethevent(indexed)] + pub pool_id: u64, + #[ethevent(indexed)] + pub asset: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub quote: ::ethers::core::types::Address, + pub delta_asset: ::ethers::core::types::U256, + pub delta_quote: ::ethers::core::types::U256, + pub delta_liquidity: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "DecreaseReserveBalance", + abi = "DecreaseReserveBalance(address,uint256)" + )] + pub struct DecreaseReserveBalanceFilter { + #[ethevent(indexed)] + pub token: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "DecreaseUserBalance", + abi = "DecreaseUserBalance(address,address,uint256)" + )] + pub struct DecreaseUserBalanceFilter { + #[ethevent(indexed)] + pub account: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub token: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "Deposit", abi = "Deposit(address,uint256)")] + pub struct DepositFilter { + #[ethevent(indexed)] + pub account: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "IncreaseReserveBalance", + abi = "IncreaseReserveBalance(address,uint256)" + )] + pub struct IncreaseReserveBalanceFilter { + #[ethevent(indexed)] + pub token: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "IncreaseUserBalance", + abi = "IncreaseUserBalance(address,address,uint256)" + )] + pub struct IncreaseUserBalanceFilter { + #[ethevent(indexed)] + pub account: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub token: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "Swap", + abi = "Swap(uint64,uint256,address,uint256,address,uint256,uint256,int256)" + )] + pub struct SwapFilter { + #[ethevent(indexed)] + pub pool_id: u64, + pub price: ::ethers::core::types::U256, + #[ethevent(indexed)] + pub sell_asset: ::ethers::core::types::Address, + pub input: ::ethers::core::types::U256, + #[ethevent(indexed)] + pub token_out: ::ethers::core::types::Address, + pub output: ::ethers::core::types::U256, + pub fee_amount_dec: ::ethers::core::types::U256, + pub invariant_wad: ::ethers::core::types::I256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "UpdateProtocolFee", abi = "UpdateProtocolFee(uint256,uint256)")] + pub struct UpdateProtocolFeeFilter { + pub prev_fee: ::ethers::core::types::U256, + pub next_fee: ::ethers::core::types::U256, + } + ///Container type for all of the contract's events + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum IPortfolioEvents { + AllocateFilter(AllocateFilter), + ChangeParametersFilter(ChangeParametersFilter), + CollectFilter(CollectFilter), + CreatePairFilter(CreatePairFilter), + CreatePoolFilter(CreatePoolFilter), + DeallocateFilter(DeallocateFilter), + DecreaseReserveBalanceFilter(DecreaseReserveBalanceFilter), + DecreaseUserBalanceFilter(DecreaseUserBalanceFilter), + DepositFilter(DepositFilter), + IncreaseReserveBalanceFilter(IncreaseReserveBalanceFilter), + IncreaseUserBalanceFilter(IncreaseUserBalanceFilter), + SwapFilter(SwapFilter), + UpdateProtocolFeeFilter(UpdateProtocolFeeFilter), + } + impl ::ethers::contract::EthLogDecode for IPortfolioEvents { + fn decode_log( + log: &::ethers::core::abi::RawLog, + ) -> ::core::result::Result { + if let Ok(decoded) = AllocateFilter::decode_log(log) { + return Ok(IPortfolioEvents::AllocateFilter(decoded)); + } + if let Ok(decoded) = ChangeParametersFilter::decode_log(log) { + return Ok(IPortfolioEvents::ChangeParametersFilter(decoded)); + } + if let Ok(decoded) = CollectFilter::decode_log(log) { + return Ok(IPortfolioEvents::CollectFilter(decoded)); + } + if let Ok(decoded) = CreatePairFilter::decode_log(log) { + return Ok(IPortfolioEvents::CreatePairFilter(decoded)); + } + if let Ok(decoded) = CreatePoolFilter::decode_log(log) { + return Ok(IPortfolioEvents::CreatePoolFilter(decoded)); + } + if let Ok(decoded) = DeallocateFilter::decode_log(log) { + return Ok(IPortfolioEvents::DeallocateFilter(decoded)); + } + if let Ok(decoded) = DecreaseReserveBalanceFilter::decode_log(log) { + return Ok(IPortfolioEvents::DecreaseReserveBalanceFilter(decoded)); + } + if let Ok(decoded) = DecreaseUserBalanceFilter::decode_log(log) { + return Ok(IPortfolioEvents::DecreaseUserBalanceFilter(decoded)); + } + if let Ok(decoded) = DepositFilter::decode_log(log) { + return Ok(IPortfolioEvents::DepositFilter(decoded)); + } + if let Ok(decoded) = IncreaseReserveBalanceFilter::decode_log(log) { + return Ok(IPortfolioEvents::IncreaseReserveBalanceFilter(decoded)); + } + if let Ok(decoded) = IncreaseUserBalanceFilter::decode_log(log) { + return Ok(IPortfolioEvents::IncreaseUserBalanceFilter(decoded)); + } + if let Ok(decoded) = SwapFilter::decode_log(log) { + return Ok(IPortfolioEvents::SwapFilter(decoded)); + } + if let Ok(decoded) = UpdateProtocolFeeFilter::decode_log(log) { + return Ok(IPortfolioEvents::UpdateProtocolFeeFilter(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData) + } + } + impl ::core::fmt::Display for IPortfolioEvents { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::AllocateFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::ChangeParametersFilter(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::CollectFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::CreatePairFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::CreatePoolFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::DeallocateFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::DecreaseReserveBalanceFilter(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::DecreaseUserBalanceFilter(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::DepositFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::IncreaseReserveBalanceFilter(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::IncreaseUserBalanceFilter(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::SwapFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::UpdateProtocolFeeFilter(element) => { + ::core::fmt::Display::fmt(element, f) + } + } + } + } + impl ::core::convert::From for IPortfolioEvents { + fn from(value: AllocateFilter) -> Self { + Self::AllocateFilter(value) + } + } + impl ::core::convert::From for IPortfolioEvents { + fn from(value: ChangeParametersFilter) -> Self { + Self::ChangeParametersFilter(value) + } + } + impl ::core::convert::From for IPortfolioEvents { + fn from(value: CollectFilter) -> Self { + Self::CollectFilter(value) + } + } + impl ::core::convert::From for IPortfolioEvents { + fn from(value: CreatePairFilter) -> Self { + Self::CreatePairFilter(value) + } + } + impl ::core::convert::From for IPortfolioEvents { + fn from(value: CreatePoolFilter) -> Self { + Self::CreatePoolFilter(value) + } + } + impl ::core::convert::From for IPortfolioEvents { + fn from(value: DeallocateFilter) -> Self { + Self::DeallocateFilter(value) + } + } + impl ::core::convert::From for IPortfolioEvents { + fn from(value: DecreaseReserveBalanceFilter) -> Self { + Self::DecreaseReserveBalanceFilter(value) + } + } + impl ::core::convert::From for IPortfolioEvents { + fn from(value: DecreaseUserBalanceFilter) -> Self { + Self::DecreaseUserBalanceFilter(value) + } + } + impl ::core::convert::From for IPortfolioEvents { + fn from(value: DepositFilter) -> Self { + Self::DepositFilter(value) + } + } + impl ::core::convert::From for IPortfolioEvents { + fn from(value: IncreaseReserveBalanceFilter) -> Self { + Self::IncreaseReserveBalanceFilter(value) + } + } + impl ::core::convert::From for IPortfolioEvents { + fn from(value: IncreaseUserBalanceFilter) -> Self { + Self::IncreaseUserBalanceFilter(value) + } + } + impl ::core::convert::From for IPortfolioEvents { + fn from(value: SwapFilter) -> Self { + Self::SwapFilter(value) + } + } + impl ::core::convert::From for IPortfolioEvents { + fn from(value: UpdateProtocolFeeFilter) -> Self { + Self::UpdateProtocolFeeFilter(value) + } + } + ///Container type for all input parameters for the `REGISTRY` function with signature `REGISTRY()` and selector `0x06433b1b` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "REGISTRY", abi = "REGISTRY()")] + pub struct RegistryCall; + ///Container type for all input parameters for the `VERSION` function with signature `VERSION()` and selector `0xffa1ad74` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "VERSION", abi = "VERSION()")] + pub struct VersionCall; + ///Container type for all input parameters for the `WETH` function with signature `WETH()` and selector `0xad5c4648` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "WETH", abi = "WETH()")] + pub struct WethCall; + ///Container type for all input parameters for the `changeParameters` function with signature `changeParameters(uint64,uint16,uint16,uint16)` and selector `0xaf777855` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall( + name = "changeParameters", + abi = "changeParameters(uint64,uint16,uint16,uint16)" + )] + pub struct ChangeParametersCall { + pub pool_id: u64, + pub priority_fee: u16, + pub fee: u16, + pub jit: u16, + } + ///Container type for all input parameters for the `deposit` function with signature `deposit()` and selector `0xd0e30db0` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "deposit", abi = "deposit()")] + pub struct DepositCall; + ///Container type for all input parameters for the `draw` function with signature `draw(address,uint256,address)` and selector `0xad24d6a0` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "draw", abi = "draw(address,uint256,address)")] + pub struct DrawCall { + pub token: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + pub to: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `fund` function with signature `fund(address,uint256)` and selector `0x7b1837de` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "fund", abi = "fund(address,uint256)")] + pub struct FundCall { + pub token: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `getAmountOut` function with signature `getAmountOut(uint64,bool,uint256)` and selector `0x7dae4890` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getAmountOut", abi = "getAmountOut(uint64,bool,uint256)")] + pub struct GetAmountOutCall { + pub pool_id: u64, + pub sell_asset: bool, + pub amount_in: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `getBalance` function with signature `getBalance(address,address)` and selector `0xd4fac45d` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getBalance", abi = "getBalance(address,address)")] + pub struct GetBalanceCall { + pub owner: ::ethers::core::types::Address, + pub token: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `getLiquidityDeltas` function with signature `getLiquidityDeltas(uint64,int128)` and selector `0x8992f20a` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getLiquidityDeltas", abi = "getLiquidityDeltas(uint64,int128)")] + pub struct GetLiquidityDeltasCall { + pub pool_id: u64, + pub delta_liquidity: i128, + } + ///Container type for all input parameters for the `getMaxLiquidity` function with signature `getMaxLiquidity(uint64,uint256,uint256)` and selector `0xd6b7dec5` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getMaxLiquidity", abi = "getMaxLiquidity(uint64,uint256,uint256)")] + pub struct GetMaxLiquidityCall { + pub pool_id: u64, + pub delta_asset: ::ethers::core::types::U256, + pub delta_quote: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `getNetBalance` function with signature `getNetBalance(address)` and selector `0x4dc68a90` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getNetBalance", abi = "getNetBalance(address)")] + pub struct GetNetBalanceCall { + pub token: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `getPairId` function with signature `getPairId(address,address)` and selector `0x3f92a339` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getPairId", abi = "getPairId(address,address)")] + pub struct GetPairIdCall { + pub asset: ::ethers::core::types::Address, + pub quote: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `getPairNonce` function with signature `getPairNonce()` and selector `0x078888d6` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getPairNonce", abi = "getPairNonce()")] + pub struct GetPairNonceCall; + ///Container type for all input parameters for the `getPoolNonce` function with signature `getPoolNonce(uint24)` and selector `0xa5cd8a49` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getPoolNonce", abi = "getPoolNonce(uint24)")] + pub struct GetPoolNonceCall { + pub pair_nonce: u32, + } + ///Container type for all input parameters for the `getPoolReserves` function with signature `getPoolReserves(uint64)` and selector `0x2afb9df8` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getPoolReserves", abi = "getPoolReserves(uint64)")] + pub struct GetPoolReservesCall { + pub pool_id: u64, + } + ///Container type for all input parameters for the `getReserve` function with signature `getReserve(address)` and selector `0xc9a396e9` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getReserve", abi = "getReserve(address)")] + pub struct GetReserveCall { + pub token: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `getVirtualPrice` function with signature `getVirtualPrice(uint64)` and selector `0x61b7ea6a` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getVirtualPrice", abi = "getVirtualPrice(uint64)")] + pub struct GetVirtualPriceCall { + pub pool_id: u64, + } + ///Container type for all input parameters for the `getVirtualReservesPerLiquidity` function with signature `getVirtualReservesPerLiquidity(uint64)` and selector `0x1a4b905b` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall( + name = "getVirtualReservesPerLiquidity", + abi = "getVirtualReservesPerLiquidity(uint64)" + )] + pub struct GetVirtualReservesPerLiquidityCall { + pub pool_id: u64, + } + ///Container type for all input parameters for the `multiprocess` function with signature `multiprocess(bytes)` and selector `0xa0fdf413` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "multiprocess", abi = "multiprocess(bytes)")] + pub struct MultiprocessCall { + pub data: ::ethers::core::types::Bytes, + } + ///Container type for all input parameters for the `pairs` function with signature `pairs(uint24)` and selector `0x5e47663c` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "pairs", abi = "pairs(uint24)")] + pub struct PairsCall { + pub pair_id: u32, + } + ///Container type for all input parameters for the `pools` function with signature `pools(uint64)` and selector `0x89a5f084` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "pools", abi = "pools(uint64)")] + pub struct PoolsCall { + pub pool_id: u64, + } + ///Container type for all input parameters for the `positions` function with signature `positions(address,uint64)` and selector `0xb68513ea` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "positions", abi = "positions(address,uint64)")] + pub struct PositionsCall { + pub owner: ::ethers::core::types::Address, + pub pool_id: u64, + } + ///Container type for all input parameters for the `setProtocolFee` function with signature `setProtocolFee(uint256)` and selector `0x787dce3d` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "setProtocolFee", abi = "setProtocolFee(uint256)")] + pub struct SetProtocolFeeCall { + pub fee: ::ethers::core::types::U256, + } + ///Container type for all of the contract's call + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum IPortfolioCalls { + Registry(RegistryCall), + Version(VersionCall), + Weth(WethCall), + ChangeParameters(ChangeParametersCall), + Deposit(DepositCall), + Draw(DrawCall), + Fund(FundCall), + GetAmountOut(GetAmountOutCall), + GetBalance(GetBalanceCall), + GetLiquidityDeltas(GetLiquidityDeltasCall), + GetMaxLiquidity(GetMaxLiquidityCall), + GetNetBalance(GetNetBalanceCall), + GetPairId(GetPairIdCall), + GetPairNonce(GetPairNonceCall), + GetPoolNonce(GetPoolNonceCall), + GetPoolReserves(GetPoolReservesCall), + GetReserve(GetReserveCall), + GetVirtualPrice(GetVirtualPriceCall), + GetVirtualReservesPerLiquidity(GetVirtualReservesPerLiquidityCall), + Multiprocess(MultiprocessCall), + Pairs(PairsCall), + Pools(PoolsCall), + Positions(PositionsCall), + SetProtocolFee(SetProtocolFeeCall), + } + impl ::ethers::core::abi::AbiDecode for IPortfolioCalls { + fn decode( + data: impl AsRef<[u8]>, + ) -> ::core::result::Result { + let data = data.as_ref(); + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Registry(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Version(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Weth(decoded)); + } + if let Ok(decoded) + = ::decode( + data, + ) { + return Ok(Self::ChangeParameters(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Deposit(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Draw(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Fund(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetAmountOut(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetBalance(decoded)); + } + if let Ok(decoded) + = ::decode( + data, + ) { + return Ok(Self::GetLiquidityDeltas(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetMaxLiquidity(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetNetBalance(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetPairId(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetPairNonce(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetPoolNonce(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetPoolReserves(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetReserve(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetVirtualPrice(decoded)); + } + if let Ok(decoded) + = ::decode( + data, + ) { + return Ok(Self::GetVirtualReservesPerLiquidity(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Multiprocess(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Pairs(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Pools(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Positions(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::SetProtocolFee(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData.into()) + } + } + impl ::ethers::core::abi::AbiEncode for IPortfolioCalls { + fn encode(self) -> Vec { + match self { + Self::Registry(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Version(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Weth(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::ChangeParameters(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Deposit(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Draw(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Fund(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::GetAmountOut(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetBalance(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetLiquidityDeltas(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetMaxLiquidity(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetNetBalance(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetPairId(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetPairNonce(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetPoolNonce(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetPoolReserves(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetReserve(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetVirtualPrice(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetVirtualReservesPerLiquidity(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Multiprocess(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Pairs(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Pools(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Positions(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::SetProtocolFee(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + } + } + } + impl ::core::fmt::Display for IPortfolioCalls { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::Registry(element) => ::core::fmt::Display::fmt(element, f), + Self::Version(element) => ::core::fmt::Display::fmt(element, f), + Self::Weth(element) => ::core::fmt::Display::fmt(element, f), + Self::ChangeParameters(element) => ::core::fmt::Display::fmt(element, f), + Self::Deposit(element) => ::core::fmt::Display::fmt(element, f), + Self::Draw(element) => ::core::fmt::Display::fmt(element, f), + Self::Fund(element) => ::core::fmt::Display::fmt(element, f), + Self::GetAmountOut(element) => ::core::fmt::Display::fmt(element, f), + Self::GetBalance(element) => ::core::fmt::Display::fmt(element, f), + Self::GetLiquidityDeltas(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::GetMaxLiquidity(element) => ::core::fmt::Display::fmt(element, f), + Self::GetNetBalance(element) => ::core::fmt::Display::fmt(element, f), + Self::GetPairId(element) => ::core::fmt::Display::fmt(element, f), + Self::GetPairNonce(element) => ::core::fmt::Display::fmt(element, f), + Self::GetPoolNonce(element) => ::core::fmt::Display::fmt(element, f), + Self::GetPoolReserves(element) => ::core::fmt::Display::fmt(element, f), + Self::GetReserve(element) => ::core::fmt::Display::fmt(element, f), + Self::GetVirtualPrice(element) => ::core::fmt::Display::fmt(element, f), + Self::GetVirtualReservesPerLiquidity(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::Multiprocess(element) => ::core::fmt::Display::fmt(element, f), + Self::Pairs(element) => ::core::fmt::Display::fmt(element, f), + Self::Pools(element) => ::core::fmt::Display::fmt(element, f), + Self::Positions(element) => ::core::fmt::Display::fmt(element, f), + Self::SetProtocolFee(element) => ::core::fmt::Display::fmt(element, f), + } + } + } + impl ::core::convert::From for IPortfolioCalls { + fn from(value: RegistryCall) -> Self { + Self::Registry(value) + } + } + impl ::core::convert::From for IPortfolioCalls { + fn from(value: VersionCall) -> Self { + Self::Version(value) + } + } + impl ::core::convert::From for IPortfolioCalls { + fn from(value: WethCall) -> Self { + Self::Weth(value) + } + } + impl ::core::convert::From for IPortfolioCalls { + fn from(value: ChangeParametersCall) -> Self { + Self::ChangeParameters(value) + } + } + impl ::core::convert::From for IPortfolioCalls { + fn from(value: DepositCall) -> Self { + Self::Deposit(value) + } + } + impl ::core::convert::From for IPortfolioCalls { + fn from(value: DrawCall) -> Self { + Self::Draw(value) + } + } + impl ::core::convert::From for IPortfolioCalls { + fn from(value: FundCall) -> Self { + Self::Fund(value) + } + } + impl ::core::convert::From for IPortfolioCalls { + fn from(value: GetAmountOutCall) -> Self { + Self::GetAmountOut(value) + } + } + impl ::core::convert::From for IPortfolioCalls { + fn from(value: GetBalanceCall) -> Self { + Self::GetBalance(value) + } + } + impl ::core::convert::From for IPortfolioCalls { + fn from(value: GetLiquidityDeltasCall) -> Self { + Self::GetLiquidityDeltas(value) + } + } + impl ::core::convert::From for IPortfolioCalls { + fn from(value: GetMaxLiquidityCall) -> Self { + Self::GetMaxLiquidity(value) + } + } + impl ::core::convert::From for IPortfolioCalls { + fn from(value: GetNetBalanceCall) -> Self { + Self::GetNetBalance(value) + } + } + impl ::core::convert::From for IPortfolioCalls { + fn from(value: GetPairIdCall) -> Self { + Self::GetPairId(value) + } + } + impl ::core::convert::From for IPortfolioCalls { + fn from(value: GetPairNonceCall) -> Self { + Self::GetPairNonce(value) + } + } + impl ::core::convert::From for IPortfolioCalls { + fn from(value: GetPoolNonceCall) -> Self { + Self::GetPoolNonce(value) + } + } + impl ::core::convert::From for IPortfolioCalls { + fn from(value: GetPoolReservesCall) -> Self { + Self::GetPoolReserves(value) + } + } + impl ::core::convert::From for IPortfolioCalls { + fn from(value: GetReserveCall) -> Self { + Self::GetReserve(value) + } + } + impl ::core::convert::From for IPortfolioCalls { + fn from(value: GetVirtualPriceCall) -> Self { + Self::GetVirtualPrice(value) + } + } + impl ::core::convert::From for IPortfolioCalls { + fn from(value: GetVirtualReservesPerLiquidityCall) -> Self { + Self::GetVirtualReservesPerLiquidity(value) + } + } + impl ::core::convert::From for IPortfolioCalls { + fn from(value: MultiprocessCall) -> Self { + Self::Multiprocess(value) + } + } + impl ::core::convert::From for IPortfolioCalls { + fn from(value: PairsCall) -> Self { + Self::Pairs(value) + } + } + impl ::core::convert::From for IPortfolioCalls { + fn from(value: PoolsCall) -> Self { + Self::Pools(value) + } + } + impl ::core::convert::From for IPortfolioCalls { + fn from(value: PositionsCall) -> Self { + Self::Positions(value) + } + } + impl ::core::convert::From for IPortfolioCalls { + fn from(value: SetProtocolFeeCall) -> Self { + Self::SetProtocolFee(value) + } + } + ///Container type for all return fields from the `REGISTRY` function with signature `REGISTRY()` and selector `0x06433b1b` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct RegistryReturn(pub ::ethers::core::types::Address); + ///Container type for all return fields from the `VERSION` function with signature `VERSION()` and selector `0xffa1ad74` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct VersionReturn(pub ::std::string::String); + ///Container type for all return fields from the `WETH` function with signature `WETH()` and selector `0xad5c4648` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct WethReturn(pub ::ethers::core::types::Address); + ///Container type for all return fields from the `getAmountOut` function with signature `getAmountOut(uint64,bool,uint256)` and selector `0x7dae4890` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetAmountOutReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `getBalance` function with signature `getBalance(address,address)` and selector `0xd4fac45d` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetBalanceReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `getLiquidityDeltas` function with signature `getLiquidityDeltas(uint64,int128)` and selector `0x8992f20a` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetLiquidityDeltasReturn { + pub delta_asset: u128, + pub delta_quote: u128, + } + ///Container type for all return fields from the `getMaxLiquidity` function with signature `getMaxLiquidity(uint64,uint256,uint256)` and selector `0xd6b7dec5` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetMaxLiquidityReturn { + pub delta_liquidity: u128, + } + ///Container type for all return fields from the `getNetBalance` function with signature `getNetBalance(address)` and selector `0x4dc68a90` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetNetBalanceReturn(pub ::ethers::core::types::I256); + ///Container type for all return fields from the `getPairId` function with signature `getPairId(address,address)` and selector `0x3f92a339` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetPairIdReturn { + pub pair_id: u32, + } + ///Container type for all return fields from the `getPairNonce` function with signature `getPairNonce()` and selector `0x078888d6` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetPairNonceReturn(pub u32); + ///Container type for all return fields from the `getPoolNonce` function with signature `getPoolNonce(uint24)` and selector `0xa5cd8a49` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetPoolNonceReturn(pub u32); + ///Container type for all return fields from the `getPoolReserves` function with signature `getPoolReserves(uint64)` and selector `0x2afb9df8` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetPoolReservesReturn { + pub delta_asset: ::ethers::core::types::U256, + pub delta_quote: ::ethers::core::types::U256, + } + ///Container type for all return fields from the `getReserve` function with signature `getReserve(address)` and selector `0xc9a396e9` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetReserveReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `getVirtualPrice` function with signature `getVirtualPrice(uint64)` and selector `0x61b7ea6a` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetVirtualPriceReturn { + pub price: ::ethers::core::types::U256, + } + ///Container type for all return fields from the `getVirtualReservesPerLiquidity` function with signature `getVirtualReservesPerLiquidity(uint64)` and selector `0x1a4b905b` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetVirtualReservesPerLiquidityReturn { + pub delta_asset: u128, + pub delta_quote: u128, + } + ///Container type for all return fields from the `pairs` function with signature `pairs(uint24)` and selector `0x5e47663c` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct PairsReturn { + pub token_asset: ::ethers::core::types::Address, + pub decimals_asset: u8, + pub token_quote: ::ethers::core::types::Address, + pub decimals_quote: u8, + } + ///Container type for all return fields from the `pools` function with signature `pools(uint64)` and selector `0x89a5f084` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct PoolsReturn { + pub virtual_x: u128, + pub virtual_y: u128, + pub liquidity: u128, + pub last_timestamp: u32, + pub controller: ::ethers::core::types::Address, + pub invariant_growth_global: ::ethers::core::types::U256, + pub fee_growth_global_asset: ::ethers::core::types::U256, + pub fee_growth_global_quote: ::ethers::core::types::U256, + pub p8: PortfolioCurve, + pub p9: PortfolioPair, + } + ///Container type for all return fields from the `positions` function with signature `positions(address,uint64)` and selector `0xb68513ea` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct PositionsReturn { + pub free_liquidity: u128, + pub last_timestamp: u32, + pub invariant_growth_last: ::ethers::core::types::U256, + pub fee_growth_asset_last: ::ethers::core::types::U256, + pub fee_growth_quote_last: ::ethers::core::types::U256, + pub tokens_owed_asset: u128, + pub tokens_owed_quote: u128, + pub invariant_owed: u128, + } +} +pub use i_portfolio_actions::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod i_portfolio_actions { + #[rustfmt::skip] + const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"priorityFee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"fee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"jit\",\"type\":\"uint16\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"changeParameters\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"deposit\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"draw\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"fund\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\",\"components\":[]}],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"multiprocess\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"setProtocolFee\",\"outputs\":[]}]"; + ///The parsed JSON ABI of the contract. + pub static IPORTFOLIOACTIONS_ABI: ::ethers::contract::Lazy< + ::ethers::core::abi::Abi, + > = ::ethers::contract::Lazy::new(|| { + ::ethers::core::utils::__serde_json::from_str(__ABI) + .expect("ABI is always valid") + }); + pub struct IPortfolioActions(::ethers::contract::Contract); + impl ::core::clone::Clone for IPortfolioActions { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for IPortfolioActions { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for IPortfolioActions { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for IPortfolioActions { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(stringify!(IPortfolioActions)).field(&self.address()).finish() + } + } + impl IPortfolioActions { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + IPORTFOLIOACTIONS_ABI.clone(), + client, + ), + ) + } + ///Calls the contract's `changeParameters` (0xaf777855) function + pub fn change_parameters( + &self, + pool_id: u64, + priority_fee: u16, + fee: u16, + jit: u16, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([175, 119, 120, 85], (pool_id, priority_fee, fee, jit)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `deposit` (0xd0e30db0) function + pub fn deposit(&self) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([208, 227, 13, 176], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `draw` (0xad24d6a0) function + pub fn draw( + &self, + token: ::ethers::core::types::Address, + amount: ::ethers::core::types::U256, + to: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([173, 36, 214, 160], (token, amount, to)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `fund` (0x7b1837de) function + pub fn fund( + &self, + token: ::ethers::core::types::Address, + amount: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([123, 24, 55, 222], (token, amount)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `multiprocess` (0xa0fdf413) function + pub fn multiprocess( + &self, + data: ::ethers::core::types::Bytes, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([160, 253, 244, 19], data) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `setProtocolFee` (0x787dce3d) function + pub fn set_protocol_fee( + &self, + fee: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([120, 125, 206, 61], fee) + .expect("method not found (this should never happen)") + } + } + impl From<::ethers::contract::Contract> + for IPortfolioActions { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } + ///Container type for all input parameters for the `changeParameters` function with signature `changeParameters(uint64,uint16,uint16,uint16)` and selector `0xaf777855` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall( + name = "changeParameters", + abi = "changeParameters(uint64,uint16,uint16,uint16)" + )] + pub struct ChangeParametersCall { + pub pool_id: u64, + pub priority_fee: u16, + pub fee: u16, + pub jit: u16, + } + ///Container type for all input parameters for the `deposit` function with signature `deposit()` and selector `0xd0e30db0` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "deposit", abi = "deposit()")] + pub struct DepositCall; + ///Container type for all input parameters for the `draw` function with signature `draw(address,uint256,address)` and selector `0xad24d6a0` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "draw", abi = "draw(address,uint256,address)")] + pub struct DrawCall { + pub token: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + pub to: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `fund` function with signature `fund(address,uint256)` and selector `0x7b1837de` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "fund", abi = "fund(address,uint256)")] + pub struct FundCall { + pub token: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `multiprocess` function with signature `multiprocess(bytes)` and selector `0xa0fdf413` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "multiprocess", abi = "multiprocess(bytes)")] + pub struct MultiprocessCall { + pub data: ::ethers::core::types::Bytes, + } + ///Container type for all input parameters for the `setProtocolFee` function with signature `setProtocolFee(uint256)` and selector `0x787dce3d` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "setProtocolFee", abi = "setProtocolFee(uint256)")] + pub struct SetProtocolFeeCall { + pub fee: ::ethers::core::types::U256, + } + ///Container type for all of the contract's call + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum IPortfolioActionsCalls { + ChangeParameters(ChangeParametersCall), + Deposit(DepositCall), + Draw(DrawCall), + Fund(FundCall), + Multiprocess(MultiprocessCall), + SetProtocolFee(SetProtocolFeeCall), + } + impl ::ethers::core::abi::AbiDecode for IPortfolioActionsCalls { + fn decode( + data: impl AsRef<[u8]>, + ) -> ::core::result::Result { + let data = data.as_ref(); + if let Ok(decoded) + = ::decode( + data, + ) { + return Ok(Self::ChangeParameters(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Deposit(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Draw(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Fund(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Multiprocess(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::SetProtocolFee(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData.into()) + } + } + impl ::ethers::core::abi::AbiEncode for IPortfolioActionsCalls { + fn encode(self) -> Vec { + match self { + Self::ChangeParameters(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Deposit(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Draw(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Fund(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Multiprocess(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::SetProtocolFee(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + } + } + } + impl ::core::fmt::Display for IPortfolioActionsCalls { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::ChangeParameters(element) => ::core::fmt::Display::fmt(element, f), + Self::Deposit(element) => ::core::fmt::Display::fmt(element, f), + Self::Draw(element) => ::core::fmt::Display::fmt(element, f), + Self::Fund(element) => ::core::fmt::Display::fmt(element, f), + Self::Multiprocess(element) => ::core::fmt::Display::fmt(element, f), + Self::SetProtocolFee(element) => ::core::fmt::Display::fmt(element, f), + } + } + } + impl ::core::convert::From for IPortfolioActionsCalls { + fn from(value: ChangeParametersCall) -> Self { + Self::ChangeParameters(value) + } + } + impl ::core::convert::From for IPortfolioActionsCalls { + fn from(value: DepositCall) -> Self { + Self::Deposit(value) + } + } + impl ::core::convert::From for IPortfolioActionsCalls { + fn from(value: DrawCall) -> Self { + Self::Draw(value) + } + } + impl ::core::convert::From for IPortfolioActionsCalls { + fn from(value: FundCall) -> Self { + Self::Fund(value) + } + } + impl ::core::convert::From for IPortfolioActionsCalls { + fn from(value: MultiprocessCall) -> Self { + Self::Multiprocess(value) + } + } + impl ::core::convert::From for IPortfolioActionsCalls { + fn from(value: SetProtocolFeeCall) -> Self { + Self::SetProtocolFee(value) + } + } +} +pub use i_portfolio_events::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod i_portfolio_events { + #[rustfmt::skip] + const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaLiquidity\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Allocate\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint16\",\"name\":\"priorityFee\",\"type\":\"uint16\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint16\",\"name\":\"fee\",\"type\":\"uint16\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint16\",\"name\":\"jit\",\"type\":\"uint16\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"ChangeParameters\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"feeAssetDec\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"feeQuoteDec\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true}],\"type\":\"event\",\"name\":\"Collect\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"pairId\",\"type\":\"uint24\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint8\",\"name\":\"decimalsAsset\",\"type\":\"uint8\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint8\",\"name\":\"decimalsQuote\",\"type\":\"uint8\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"CreatePair\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"bool\",\"name\":\"isMutable\",\"type\":\"bool\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"CreatePool\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaLiquidity\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Deallocate\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"DecreaseReserveBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"DecreaseUserBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Deposit\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"IncreaseReserveBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"IncreaseUserBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"sellAsset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"input\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"tokenOut\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"output\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"feeAmountDec\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"int256\",\"name\":\"invariantWad\",\"type\":\"int256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Swap\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"prevFee\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"nextFee\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"UpdateProtocolFee\",\"outputs\":[],\"anonymous\":false}]"; + ///The parsed JSON ABI of the contract. + pub static IPORTFOLIOEVENTS_ABI: ::ethers::contract::Lazy< + ::ethers::core::abi::Abi, + > = ::ethers::contract::Lazy::new(|| { + ::ethers::core::utils::__serde_json::from_str(__ABI) + .expect("ABI is always valid") + }); + pub struct IPortfolioEvents(::ethers::contract::Contract); + impl ::core::clone::Clone for IPortfolioEvents { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for IPortfolioEvents { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for IPortfolioEvents { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for IPortfolioEvents { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(stringify!(IPortfolioEvents)).field(&self.address()).finish() + } + } + impl IPortfolioEvents { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + IPORTFOLIOEVENTS_ABI.clone(), + client, + ), + ) + } + ///Gets the contract's `Allocate` event + pub fn allocate_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + AllocateFilter, + > { + self.0.event() + } + ///Gets the contract's `ChangeParameters` event + pub fn change_parameters_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + ChangeParametersFilter, + > { + self.0.event() + } + ///Gets the contract's `Collect` event + pub fn collect_filter( + &self, + ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, CollectFilter> { + self.0.event() + } + ///Gets the contract's `CreatePair` event + pub fn create_pair_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + CreatePairFilter, + > { + self.0.event() + } + ///Gets the contract's `CreatePool` event + pub fn create_pool_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + CreatePoolFilter, + > { + self.0.event() + } + ///Gets the contract's `Deallocate` event + pub fn deallocate_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + DeallocateFilter, + > { + self.0.event() + } + ///Gets the contract's `DecreaseReserveBalance` event + pub fn decrease_reserve_balance_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + DecreaseReserveBalanceFilter, + > { + self.0.event() + } + ///Gets the contract's `DecreaseUserBalance` event + pub fn decrease_user_balance_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + DecreaseUserBalanceFilter, + > { + self.0.event() + } + ///Gets the contract's `Deposit` event + pub fn deposit_filter( + &self, + ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, DepositFilter> { + self.0.event() + } + ///Gets the contract's `IncreaseReserveBalance` event + pub fn increase_reserve_balance_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + IncreaseReserveBalanceFilter, + > { + self.0.event() + } + ///Gets the contract's `IncreaseUserBalance` event + pub fn increase_user_balance_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + IncreaseUserBalanceFilter, + > { + self.0.event() + } + ///Gets the contract's `Swap` event + pub fn swap_filter( + &self, + ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, SwapFilter> { + self.0.event() + } + ///Gets the contract's `UpdateProtocolFee` event + pub fn update_protocol_fee_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + UpdateProtocolFeeFilter, + > { + self.0.event() + } + /// Returns an `Event` builder for all the events of this contract. + pub fn events( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + IPortfolioEventsEvents, + > { + self.0.event_with_filter(::core::default::Default::default()) + } + } + impl From<::ethers::contract::Contract> + for IPortfolioEvents { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "Allocate", + abi = "Allocate(uint64,address,address,uint256,uint256,uint256)" + )] + pub struct AllocateFilter { + #[ethevent(indexed)] + pub pool_id: u64, + #[ethevent(indexed)] + pub asset: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub quote: ::ethers::core::types::Address, + pub delta_asset: ::ethers::core::types::U256, + pub delta_quote: ::ethers::core::types::U256, + pub delta_liquidity: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "ChangeParameters", + abi = "ChangeParameters(uint64,uint16,uint16,uint16)" + )] + pub struct ChangeParametersFilter { + #[ethevent(indexed)] + pub pool_id: u64, + #[ethevent(indexed)] + pub priority_fee: u16, + #[ethevent(indexed)] + pub fee: u16, + pub jit: u16, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "Collect", + abi = "Collect(uint64,address,uint256,address,uint256,address)" + )] + pub struct CollectFilter { + pub pool_id: u64, + #[ethevent(indexed)] + pub account: ::ethers::core::types::Address, + pub fee_asset_dec: ::ethers::core::types::U256, + #[ethevent(indexed)] + pub asset: ::ethers::core::types::Address, + pub fee_quote_dec: ::ethers::core::types::U256, + #[ethevent(indexed)] + pub quote: ::ethers::core::types::Address, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "CreatePair", + abi = "CreatePair(uint24,address,address,uint8,uint8)" + )] + pub struct CreatePairFilter { + #[ethevent(indexed)] + pub pair_id: u32, + #[ethevent(indexed)] + pub asset: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub quote: ::ethers::core::types::Address, + pub decimals_asset: u8, + pub decimals_quote: u8, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "CreatePool", + abi = "CreatePool(uint64,bool,address,address,uint256)" + )] + pub struct CreatePoolFilter { + #[ethevent(indexed)] + pub pool_id: u64, + pub is_mutable: bool, + #[ethevent(indexed)] + pub asset: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub quote: ::ethers::core::types::Address, + pub price: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "Deallocate", + abi = "Deallocate(uint64,address,address,uint256,uint256,uint256)" + )] + pub struct DeallocateFilter { + #[ethevent(indexed)] + pub pool_id: u64, + #[ethevent(indexed)] + pub asset: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub quote: ::ethers::core::types::Address, + pub delta_asset: ::ethers::core::types::U256, + pub delta_quote: ::ethers::core::types::U256, + pub delta_liquidity: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "DecreaseReserveBalance", + abi = "DecreaseReserveBalance(address,uint256)" + )] + pub struct DecreaseReserveBalanceFilter { + #[ethevent(indexed)] + pub token: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "DecreaseUserBalance", + abi = "DecreaseUserBalance(address,address,uint256)" + )] + pub struct DecreaseUserBalanceFilter { + #[ethevent(indexed)] + pub account: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub token: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "Deposit", abi = "Deposit(address,uint256)")] + pub struct DepositFilter { + #[ethevent(indexed)] + pub account: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "IncreaseReserveBalance", + abi = "IncreaseReserveBalance(address,uint256)" + )] + pub struct IncreaseReserveBalanceFilter { + #[ethevent(indexed)] + pub token: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "IncreaseUserBalance", + abi = "IncreaseUserBalance(address,address,uint256)" + )] + pub struct IncreaseUserBalanceFilter { + #[ethevent(indexed)] + pub account: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub token: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "Swap", + abi = "Swap(uint64,uint256,address,uint256,address,uint256,uint256,int256)" + )] + pub struct SwapFilter { + #[ethevent(indexed)] + pub pool_id: u64, + pub price: ::ethers::core::types::U256, + #[ethevent(indexed)] + pub sell_asset: ::ethers::core::types::Address, + pub input: ::ethers::core::types::U256, + #[ethevent(indexed)] + pub token_out: ::ethers::core::types::Address, + pub output: ::ethers::core::types::U256, + pub fee_amount_dec: ::ethers::core::types::U256, + pub invariant_wad: ::ethers::core::types::I256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "UpdateProtocolFee", abi = "UpdateProtocolFee(uint256,uint256)")] + pub struct UpdateProtocolFeeFilter { + pub prev_fee: ::ethers::core::types::U256, + pub next_fee: ::ethers::core::types::U256, + } + ///Container type for all of the contract's events + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum IPortfolioEventsEvents { + AllocateFilter(AllocateFilter), + ChangeParametersFilter(ChangeParametersFilter), + CollectFilter(CollectFilter), + CreatePairFilter(CreatePairFilter), + CreatePoolFilter(CreatePoolFilter), + DeallocateFilter(DeallocateFilter), + DecreaseReserveBalanceFilter(DecreaseReserveBalanceFilter), + DecreaseUserBalanceFilter(DecreaseUserBalanceFilter), + DepositFilter(DepositFilter), + IncreaseReserveBalanceFilter(IncreaseReserveBalanceFilter), + IncreaseUserBalanceFilter(IncreaseUserBalanceFilter), + SwapFilter(SwapFilter), + UpdateProtocolFeeFilter(UpdateProtocolFeeFilter), + } + impl ::ethers::contract::EthLogDecode for IPortfolioEventsEvents { + fn decode_log( + log: &::ethers::core::abi::RawLog, + ) -> ::core::result::Result { + if let Ok(decoded) = AllocateFilter::decode_log(log) { + return Ok(IPortfolioEventsEvents::AllocateFilter(decoded)); + } + if let Ok(decoded) = ChangeParametersFilter::decode_log(log) { + return Ok(IPortfolioEventsEvents::ChangeParametersFilter(decoded)); + } + if let Ok(decoded) = CollectFilter::decode_log(log) { + return Ok(IPortfolioEventsEvents::CollectFilter(decoded)); + } + if let Ok(decoded) = CreatePairFilter::decode_log(log) { + return Ok(IPortfolioEventsEvents::CreatePairFilter(decoded)); + } + if let Ok(decoded) = CreatePoolFilter::decode_log(log) { + return Ok(IPortfolioEventsEvents::CreatePoolFilter(decoded)); + } + if let Ok(decoded) = DeallocateFilter::decode_log(log) { + return Ok(IPortfolioEventsEvents::DeallocateFilter(decoded)); + } + if let Ok(decoded) = DecreaseReserveBalanceFilter::decode_log(log) { + return Ok(IPortfolioEventsEvents::DecreaseReserveBalanceFilter(decoded)); + } + if let Ok(decoded) = DecreaseUserBalanceFilter::decode_log(log) { + return Ok(IPortfolioEventsEvents::DecreaseUserBalanceFilter(decoded)); + } + if let Ok(decoded) = DepositFilter::decode_log(log) { + return Ok(IPortfolioEventsEvents::DepositFilter(decoded)); + } + if let Ok(decoded) = IncreaseReserveBalanceFilter::decode_log(log) { + return Ok(IPortfolioEventsEvents::IncreaseReserveBalanceFilter(decoded)); + } + if let Ok(decoded) = IncreaseUserBalanceFilter::decode_log(log) { + return Ok(IPortfolioEventsEvents::IncreaseUserBalanceFilter(decoded)); + } + if let Ok(decoded) = SwapFilter::decode_log(log) { + return Ok(IPortfolioEventsEvents::SwapFilter(decoded)); + } + if let Ok(decoded) = UpdateProtocolFeeFilter::decode_log(log) { + return Ok(IPortfolioEventsEvents::UpdateProtocolFeeFilter(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData) + } + } + impl ::core::fmt::Display for IPortfolioEventsEvents { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::AllocateFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::ChangeParametersFilter(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::CollectFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::CreatePairFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::CreatePoolFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::DeallocateFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::DecreaseReserveBalanceFilter(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::DecreaseUserBalanceFilter(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::DepositFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::IncreaseReserveBalanceFilter(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::IncreaseUserBalanceFilter(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::SwapFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::UpdateProtocolFeeFilter(element) => { + ::core::fmt::Display::fmt(element, f) + } + } + } + } + impl ::core::convert::From for IPortfolioEventsEvents { + fn from(value: AllocateFilter) -> Self { + Self::AllocateFilter(value) + } + } + impl ::core::convert::From for IPortfolioEventsEvents { + fn from(value: ChangeParametersFilter) -> Self { + Self::ChangeParametersFilter(value) + } + } + impl ::core::convert::From for IPortfolioEventsEvents { + fn from(value: CollectFilter) -> Self { + Self::CollectFilter(value) + } + } + impl ::core::convert::From for IPortfolioEventsEvents { + fn from(value: CreatePairFilter) -> Self { + Self::CreatePairFilter(value) + } + } + impl ::core::convert::From for IPortfolioEventsEvents { + fn from(value: CreatePoolFilter) -> Self { + Self::CreatePoolFilter(value) + } + } + impl ::core::convert::From for IPortfolioEventsEvents { + fn from(value: DeallocateFilter) -> Self { + Self::DeallocateFilter(value) + } + } + impl ::core::convert::From for IPortfolioEventsEvents { + fn from(value: DecreaseReserveBalanceFilter) -> Self { + Self::DecreaseReserveBalanceFilter(value) + } + } + impl ::core::convert::From for IPortfolioEventsEvents { + fn from(value: DecreaseUserBalanceFilter) -> Self { + Self::DecreaseUserBalanceFilter(value) + } + } + impl ::core::convert::From for IPortfolioEventsEvents { + fn from(value: DepositFilter) -> Self { + Self::DepositFilter(value) + } + } + impl ::core::convert::From for IPortfolioEventsEvents { + fn from(value: IncreaseReserveBalanceFilter) -> Self { + Self::IncreaseReserveBalanceFilter(value) + } + } + impl ::core::convert::From for IPortfolioEventsEvents { + fn from(value: IncreaseUserBalanceFilter) -> Self { + Self::IncreaseUserBalanceFilter(value) + } + } + impl ::core::convert::From for IPortfolioEventsEvents { + fn from(value: SwapFilter) -> Self { + Self::SwapFilter(value) + } + } + impl ::core::convert::From for IPortfolioEventsEvents { + fn from(value: UpdateProtocolFeeFilter) -> Self { + Self::UpdateProtocolFeeFilter(value) + } + } +} +pub use i_portfolio_getters::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod i_portfolio_getters { + pub use super::__shared_types::*; + #[rustfmt::skip] + const __ABI: &str = "[{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\",\"name\":\"VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"WETH\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"bool\",\"name\":\"sellAsset\",\"type\":\"bool\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getAmountOut\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"int128\",\"name\":\"deltaLiquidity\",\"type\":\"int128\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getLiquidityDeltas\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"deltaAsset\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"deltaQuote\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getMaxLiquidity\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"deltaLiquidity\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getNetBalance\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPairId\",\"outputs\":[{\"internalType\":\"uint24\",\"name\":\"pairId\",\"type\":\"uint24\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPairNonce\",\"outputs\":[{\"internalType\":\"uint24\",\"name\":\"\",\"type\":\"uint24\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"pairNonce\",\"type\":\"uint24\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPoolNonce\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPoolReserves\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getReserve\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getVirtualPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getVirtualReservesPerLiquidity\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"deltaAsset\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"deltaQuote\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"pairId\",\"type\":\"uint24\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"pairs\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"tokenAsset\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsAsset\",\"type\":\"uint8\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"tokenQuote\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsQuote\",\"type\":\"uint8\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"pools\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"virtualX\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"virtualY\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"liquidity\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint32\",\"name\":\"lastTimestamp\",\"type\":\"uint32\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"controller\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"invariantGrowthGlobal\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthGlobalAsset\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthGlobalQuote\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"struct PortfolioCurve\",\"name\":\"\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"uint128\",\"name\":\"maxPrice\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"jit\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"fee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"duration\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"volatility\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"priorityFee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint32\",\"name\":\"createdAt\",\"type\":\"uint32\",\"components\":[]},{\"internalType\":\"bool\",\"name\":\"perpetual\",\"type\":\"bool\",\"components\":[]}]},{\"internalType\":\"struct PortfolioPair\",\"name\":\"\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"address\",\"name\":\"tokenAsset\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsAsset\",\"type\":\"uint8\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"tokenQuote\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsQuote\",\"type\":\"uint8\",\"components\":[]}]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"positions\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"freeLiquidity\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint32\",\"name\":\"lastTimestamp\",\"type\":\"uint32\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"invariantGrowthLast\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthAssetLast\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthQuoteLast\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"tokensOwedAsset\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"tokensOwedQuote\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"invariantOwed\",\"type\":\"uint128\",\"components\":[]}]}]"; + ///The parsed JSON ABI of the contract. + pub static IPORTFOLIOGETTERS_ABI: ::ethers::contract::Lazy< + ::ethers::core::abi::Abi, + > = ::ethers::contract::Lazy::new(|| { + ::ethers::core::utils::__serde_json::from_str(__ABI) + .expect("ABI is always valid") + }); + pub struct IPortfolioGetters(::ethers::contract::Contract); + impl ::core::clone::Clone for IPortfolioGetters { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for IPortfolioGetters { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for IPortfolioGetters { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for IPortfolioGetters { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(stringify!(IPortfolioGetters)).field(&self.address()).finish() + } + } + impl IPortfolioGetters { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + IPORTFOLIOGETTERS_ABI.clone(), + client, + ), + ) + } + ///Calls the contract's `REGISTRY` (0x06433b1b) function + pub fn registry( + &self, + ) -> ::ethers::contract::builders::ContractCall< + M, + ::ethers::core::types::Address, + > { + self.0 + .method_hash([6, 67, 59, 27], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `VERSION` (0xffa1ad74) function + pub fn version( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([255, 161, 173, 116], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `WETH` (0xad5c4648) function + pub fn weth( + &self, + ) -> ::ethers::contract::builders::ContractCall< + M, + ::ethers::core::types::Address, + > { + self.0 + .method_hash([173, 92, 70, 72], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getAmountOut` (0x7dae4890) function + pub fn get_amount_out( + &self, + pool_id: u64, + sell_asset: bool, + amount_in: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([125, 174, 72, 144], (pool_id, sell_asset, amount_in)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getBalance` (0xd4fac45d) function + pub fn get_balance( + &self, + owner: ::ethers::core::types::Address, + token: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([212, 250, 196, 93], (owner, token)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getLiquidityDeltas` (0x8992f20a) function + pub fn get_liquidity_deltas( + &self, + pool_id: u64, + delta_liquidity: i128, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([137, 146, 242, 10], (pool_id, delta_liquidity)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getMaxLiquidity` (0xd6b7dec5) function + pub fn get_max_liquidity( + &self, + pool_id: u64, + delta_asset: ::ethers::core::types::U256, + delta_quote: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([214, 183, 222, 197], (pool_id, delta_asset, delta_quote)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getNetBalance` (0x4dc68a90) function + pub fn get_net_balance( + &self, + token: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([77, 198, 138, 144], token) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getPairId` (0x3f92a339) function + pub fn get_pair_id( + &self, + asset: ::ethers::core::types::Address, + quote: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([63, 146, 163, 57], (asset, quote)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getPairNonce` (0x078888d6) function + pub fn get_pair_nonce( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([7, 136, 136, 214], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getPoolNonce` (0xa5cd8a49) function + pub fn get_pool_nonce( + &self, + pair_nonce: u32, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([165, 205, 138, 73], pair_nonce) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getPoolReserves` (0x2afb9df8) function + pub fn get_pool_reserves( + &self, + pool_id: u64, + ) -> ::ethers::contract::builders::ContractCall< + M, + (::ethers::core::types::U256, ::ethers::core::types::U256), + > { + self.0 + .method_hash([42, 251, 157, 248], pool_id) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getReserve` (0xc9a396e9) function + pub fn get_reserve( + &self, + token: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([201, 163, 150, 233], token) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getVirtualPrice` (0x61b7ea6a) function + pub fn get_virtual_price( + &self, + pool_id: u64, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([97, 183, 234, 106], pool_id) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getVirtualReservesPerLiquidity` (0x1a4b905b) function + pub fn get_virtual_reserves_per_liquidity( + &self, + pool_id: u64, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([26, 75, 144, 91], pool_id) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `pairs` (0x5e47663c) function + pub fn pairs( + &self, + pair_id: u32, + ) -> ::ethers::contract::builders::ContractCall< + M, + (::ethers::core::types::Address, u8, ::ethers::core::types::Address, u8), + > { + self.0 + .method_hash([94, 71, 102, 60], pair_id) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `pools` (0x89a5f084) function + pub fn pools( + &self, + pool_id: u64, + ) -> ::ethers::contract::builders::ContractCall< + M, + ( + u128, + u128, + u128, + u32, + ::ethers::core::types::Address, + ::ethers::core::types::U256, + ::ethers::core::types::U256, + ::ethers::core::types::U256, + PortfolioCurve, + PortfolioPair, + ), + > { + self.0 + .method_hash([137, 165, 240, 132], pool_id) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `positions` (0xb68513ea) function + pub fn positions( + &self, + owner: ::ethers::core::types::Address, + pool_id: u64, + ) -> ::ethers::contract::builders::ContractCall< + M, + ( + u128, + u32, + ::ethers::core::types::U256, + ::ethers::core::types::U256, + ::ethers::core::types::U256, + u128, + u128, + u128, + ), + > { + self.0 + .method_hash([182, 133, 19, 234], (owner, pool_id)) + .expect("method not found (this should never happen)") + } + } + impl From<::ethers::contract::Contract> + for IPortfolioGetters { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } + ///Container type for all input parameters for the `REGISTRY` function with signature `REGISTRY()` and selector `0x06433b1b` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "REGISTRY", abi = "REGISTRY()")] + pub struct RegistryCall; + ///Container type for all input parameters for the `VERSION` function with signature `VERSION()` and selector `0xffa1ad74` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "VERSION", abi = "VERSION()")] + pub struct VersionCall; + ///Container type for all input parameters for the `WETH` function with signature `WETH()` and selector `0xad5c4648` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "WETH", abi = "WETH()")] + pub struct WethCall; + ///Container type for all input parameters for the `getAmountOut` function with signature `getAmountOut(uint64,bool,uint256)` and selector `0x7dae4890` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getAmountOut", abi = "getAmountOut(uint64,bool,uint256)")] + pub struct GetAmountOutCall { + pub pool_id: u64, + pub sell_asset: bool, + pub amount_in: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `getBalance` function with signature `getBalance(address,address)` and selector `0xd4fac45d` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getBalance", abi = "getBalance(address,address)")] + pub struct GetBalanceCall { + pub owner: ::ethers::core::types::Address, + pub token: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `getLiquidityDeltas` function with signature `getLiquidityDeltas(uint64,int128)` and selector `0x8992f20a` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getLiquidityDeltas", abi = "getLiquidityDeltas(uint64,int128)")] + pub struct GetLiquidityDeltasCall { + pub pool_id: u64, + pub delta_liquidity: i128, + } + ///Container type for all input parameters for the `getMaxLiquidity` function with signature `getMaxLiquidity(uint64,uint256,uint256)` and selector `0xd6b7dec5` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getMaxLiquidity", abi = "getMaxLiquidity(uint64,uint256,uint256)")] + pub struct GetMaxLiquidityCall { + pub pool_id: u64, + pub delta_asset: ::ethers::core::types::U256, + pub delta_quote: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `getNetBalance` function with signature `getNetBalance(address)` and selector `0x4dc68a90` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getNetBalance", abi = "getNetBalance(address)")] + pub struct GetNetBalanceCall { + pub token: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `getPairId` function with signature `getPairId(address,address)` and selector `0x3f92a339` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getPairId", abi = "getPairId(address,address)")] + pub struct GetPairIdCall { + pub asset: ::ethers::core::types::Address, + pub quote: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `getPairNonce` function with signature `getPairNonce()` and selector `0x078888d6` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getPairNonce", abi = "getPairNonce()")] + pub struct GetPairNonceCall; + ///Container type for all input parameters for the `getPoolNonce` function with signature `getPoolNonce(uint24)` and selector `0xa5cd8a49` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getPoolNonce", abi = "getPoolNonce(uint24)")] + pub struct GetPoolNonceCall { + pub pair_nonce: u32, + } + ///Container type for all input parameters for the `getPoolReserves` function with signature `getPoolReserves(uint64)` and selector `0x2afb9df8` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getPoolReserves", abi = "getPoolReserves(uint64)")] + pub struct GetPoolReservesCall { + pub pool_id: u64, + } + ///Container type for all input parameters for the `getReserve` function with signature `getReserve(address)` and selector `0xc9a396e9` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getReserve", abi = "getReserve(address)")] + pub struct GetReserveCall { + pub token: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `getVirtualPrice` function with signature `getVirtualPrice(uint64)` and selector `0x61b7ea6a` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getVirtualPrice", abi = "getVirtualPrice(uint64)")] + pub struct GetVirtualPriceCall { + pub pool_id: u64, + } + ///Container type for all input parameters for the `getVirtualReservesPerLiquidity` function with signature `getVirtualReservesPerLiquidity(uint64)` and selector `0x1a4b905b` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall( + name = "getVirtualReservesPerLiquidity", + abi = "getVirtualReservesPerLiquidity(uint64)" + )] + pub struct GetVirtualReservesPerLiquidityCall { + pub pool_id: u64, + } + ///Container type for all input parameters for the `pairs` function with signature `pairs(uint24)` and selector `0x5e47663c` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "pairs", abi = "pairs(uint24)")] + pub struct PairsCall { + pub pair_id: u32, + } + ///Container type for all input parameters for the `pools` function with signature `pools(uint64)` and selector `0x89a5f084` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "pools", abi = "pools(uint64)")] + pub struct PoolsCall { + pub pool_id: u64, + } + ///Container type for all input parameters for the `positions` function with signature `positions(address,uint64)` and selector `0xb68513ea` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "positions", abi = "positions(address,uint64)")] + pub struct PositionsCall { + pub owner: ::ethers::core::types::Address, + pub pool_id: u64, + } + ///Container type for all of the contract's call + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum IPortfolioGettersCalls { + Registry(RegistryCall), + Version(VersionCall), + Weth(WethCall), + GetAmountOut(GetAmountOutCall), + GetBalance(GetBalanceCall), + GetLiquidityDeltas(GetLiquidityDeltasCall), + GetMaxLiquidity(GetMaxLiquidityCall), + GetNetBalance(GetNetBalanceCall), + GetPairId(GetPairIdCall), + GetPairNonce(GetPairNonceCall), + GetPoolNonce(GetPoolNonceCall), + GetPoolReserves(GetPoolReservesCall), + GetReserve(GetReserveCall), + GetVirtualPrice(GetVirtualPriceCall), + GetVirtualReservesPerLiquidity(GetVirtualReservesPerLiquidityCall), + Pairs(PairsCall), + Pools(PoolsCall), + Positions(PositionsCall), + } + impl ::ethers::core::abi::AbiDecode for IPortfolioGettersCalls { + fn decode( + data: impl AsRef<[u8]>, + ) -> ::core::result::Result { + let data = data.as_ref(); + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Registry(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Version(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Weth(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetAmountOut(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetBalance(decoded)); + } + if let Ok(decoded) + = ::decode( + data, + ) { + return Ok(Self::GetLiquidityDeltas(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetMaxLiquidity(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetNetBalance(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetPairId(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetPairNonce(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetPoolNonce(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetPoolReserves(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetReserve(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetVirtualPrice(decoded)); + } + if let Ok(decoded) + = ::decode( + data, + ) { + return Ok(Self::GetVirtualReservesPerLiquidity(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Pairs(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Pools(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Positions(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData.into()) + } + } + impl ::ethers::core::abi::AbiEncode for IPortfolioGettersCalls { + fn encode(self) -> Vec { + match self { + Self::Registry(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Version(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Weth(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::GetAmountOut(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetBalance(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetLiquidityDeltas(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetMaxLiquidity(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetNetBalance(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetPairId(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetPairNonce(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetPoolNonce(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetPoolReserves(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetReserve(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetVirtualPrice(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetVirtualReservesPerLiquidity(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Pairs(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Pools(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Positions(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + } + } + } + impl ::core::fmt::Display for IPortfolioGettersCalls { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::Registry(element) => ::core::fmt::Display::fmt(element, f), + Self::Version(element) => ::core::fmt::Display::fmt(element, f), + Self::Weth(element) => ::core::fmt::Display::fmt(element, f), + Self::GetAmountOut(element) => ::core::fmt::Display::fmt(element, f), + Self::GetBalance(element) => ::core::fmt::Display::fmt(element, f), + Self::GetLiquidityDeltas(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::GetMaxLiquidity(element) => ::core::fmt::Display::fmt(element, f), + Self::GetNetBalance(element) => ::core::fmt::Display::fmt(element, f), + Self::GetPairId(element) => ::core::fmt::Display::fmt(element, f), + Self::GetPairNonce(element) => ::core::fmt::Display::fmt(element, f), + Self::GetPoolNonce(element) => ::core::fmt::Display::fmt(element, f), + Self::GetPoolReserves(element) => ::core::fmt::Display::fmt(element, f), + Self::GetReserve(element) => ::core::fmt::Display::fmt(element, f), + Self::GetVirtualPrice(element) => ::core::fmt::Display::fmt(element, f), + Self::GetVirtualReservesPerLiquidity(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::Pairs(element) => ::core::fmt::Display::fmt(element, f), + Self::Pools(element) => ::core::fmt::Display::fmt(element, f), + Self::Positions(element) => ::core::fmt::Display::fmt(element, f), + } + } + } + impl ::core::convert::From for IPortfolioGettersCalls { + fn from(value: RegistryCall) -> Self { + Self::Registry(value) + } + } + impl ::core::convert::From for IPortfolioGettersCalls { + fn from(value: VersionCall) -> Self { + Self::Version(value) + } + } + impl ::core::convert::From for IPortfolioGettersCalls { + fn from(value: WethCall) -> Self { + Self::Weth(value) + } + } + impl ::core::convert::From for IPortfolioGettersCalls { + fn from(value: GetAmountOutCall) -> Self { + Self::GetAmountOut(value) + } + } + impl ::core::convert::From for IPortfolioGettersCalls { + fn from(value: GetBalanceCall) -> Self { + Self::GetBalance(value) + } + } + impl ::core::convert::From for IPortfolioGettersCalls { + fn from(value: GetLiquidityDeltasCall) -> Self { + Self::GetLiquidityDeltas(value) + } + } + impl ::core::convert::From for IPortfolioGettersCalls { + fn from(value: GetMaxLiquidityCall) -> Self { + Self::GetMaxLiquidity(value) + } + } + impl ::core::convert::From for IPortfolioGettersCalls { + fn from(value: GetNetBalanceCall) -> Self { + Self::GetNetBalance(value) + } + } + impl ::core::convert::From for IPortfolioGettersCalls { + fn from(value: GetPairIdCall) -> Self { + Self::GetPairId(value) + } + } + impl ::core::convert::From for IPortfolioGettersCalls { + fn from(value: GetPairNonceCall) -> Self { + Self::GetPairNonce(value) + } + } + impl ::core::convert::From for IPortfolioGettersCalls { + fn from(value: GetPoolNonceCall) -> Self { + Self::GetPoolNonce(value) + } + } + impl ::core::convert::From for IPortfolioGettersCalls { + fn from(value: GetPoolReservesCall) -> Self { + Self::GetPoolReserves(value) + } + } + impl ::core::convert::From for IPortfolioGettersCalls { + fn from(value: GetReserveCall) -> Self { + Self::GetReserve(value) + } + } + impl ::core::convert::From for IPortfolioGettersCalls { + fn from(value: GetVirtualPriceCall) -> Self { + Self::GetVirtualPrice(value) + } + } + impl ::core::convert::From + for IPortfolioGettersCalls { + fn from(value: GetVirtualReservesPerLiquidityCall) -> Self { + Self::GetVirtualReservesPerLiquidity(value) + } + } + impl ::core::convert::From for IPortfolioGettersCalls { + fn from(value: PairsCall) -> Self { + Self::Pairs(value) + } + } + impl ::core::convert::From for IPortfolioGettersCalls { + fn from(value: PoolsCall) -> Self { + Self::Pools(value) + } + } + impl ::core::convert::From for IPortfolioGettersCalls { + fn from(value: PositionsCall) -> Self { + Self::Positions(value) + } + } + ///Container type for all return fields from the `REGISTRY` function with signature `REGISTRY()` and selector `0x06433b1b` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct RegistryReturn(pub ::ethers::core::types::Address); + ///Container type for all return fields from the `VERSION` function with signature `VERSION()` and selector `0xffa1ad74` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct VersionReturn(pub ::std::string::String); + ///Container type for all return fields from the `WETH` function with signature `WETH()` and selector `0xad5c4648` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct WethReturn(pub ::ethers::core::types::Address); + ///Container type for all return fields from the `getAmountOut` function with signature `getAmountOut(uint64,bool,uint256)` and selector `0x7dae4890` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetAmountOutReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `getBalance` function with signature `getBalance(address,address)` and selector `0xd4fac45d` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetBalanceReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `getLiquidityDeltas` function with signature `getLiquidityDeltas(uint64,int128)` and selector `0x8992f20a` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetLiquidityDeltasReturn { + pub delta_asset: u128, + pub delta_quote: u128, + } + ///Container type for all return fields from the `getMaxLiquidity` function with signature `getMaxLiquidity(uint64,uint256,uint256)` and selector `0xd6b7dec5` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetMaxLiquidityReturn { + pub delta_liquidity: u128, + } + ///Container type for all return fields from the `getNetBalance` function with signature `getNetBalance(address)` and selector `0x4dc68a90` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetNetBalanceReturn(pub ::ethers::core::types::I256); + ///Container type for all return fields from the `getPairId` function with signature `getPairId(address,address)` and selector `0x3f92a339` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetPairIdReturn { + pub pair_id: u32, + } + ///Container type for all return fields from the `getPairNonce` function with signature `getPairNonce()` and selector `0x078888d6` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetPairNonceReturn(pub u32); + ///Container type for all return fields from the `getPoolNonce` function with signature `getPoolNonce(uint24)` and selector `0xa5cd8a49` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetPoolNonceReturn(pub u32); + ///Container type for all return fields from the `getPoolReserves` function with signature `getPoolReserves(uint64)` and selector `0x2afb9df8` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetPoolReservesReturn { + pub delta_asset: ::ethers::core::types::U256, + pub delta_quote: ::ethers::core::types::U256, + } + ///Container type for all return fields from the `getReserve` function with signature `getReserve(address)` and selector `0xc9a396e9` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetReserveReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `getVirtualPrice` function with signature `getVirtualPrice(uint64)` and selector `0x61b7ea6a` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetVirtualPriceReturn { + pub price: ::ethers::core::types::U256, + } + ///Container type for all return fields from the `getVirtualReservesPerLiquidity` function with signature `getVirtualReservesPerLiquidity(uint64)` and selector `0x1a4b905b` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetVirtualReservesPerLiquidityReturn { + pub delta_asset: u128, + pub delta_quote: u128, + } + ///Container type for all return fields from the `pairs` function with signature `pairs(uint24)` and selector `0x5e47663c` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct PairsReturn { + pub token_asset: ::ethers::core::types::Address, + pub decimals_asset: u8, + pub token_quote: ::ethers::core::types::Address, + pub decimals_quote: u8, + } + ///Container type for all return fields from the `pools` function with signature `pools(uint64)` and selector `0x89a5f084` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct PoolsReturn { + pub virtual_x: u128, + pub virtual_y: u128, + pub liquidity: u128, + pub last_timestamp: u32, + pub controller: ::ethers::core::types::Address, + pub invariant_growth_global: ::ethers::core::types::U256, + pub fee_growth_global_asset: ::ethers::core::types::U256, + pub fee_growth_global_quote: ::ethers::core::types::U256, + pub p8: PortfolioCurve, + pub p9: PortfolioPair, + } + ///Container type for all return fields from the `positions` function with signature `positions(address,uint64)` and selector `0xb68513ea` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct PositionsReturn { + pub free_liquidity: u128, + pub last_timestamp: u32, + pub invariant_growth_last: ::ethers::core::types::U256, + pub fee_growth_asset_last: ::ethers::core::types::U256, + pub fee_growth_quote_last: ::ethers::core::types::U256, + pub tokens_owed_asset: u128, + pub tokens_owed_quote: u128, + pub invariant_owed: u128, + } +} +pub use i_portfolio_registry::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod i_portfolio_registry { + #[rustfmt::skip] + const __ABI: &str = "[{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"controller\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]}]"; + ///The parsed JSON ABI of the contract. + pub static IPORTFOLIOREGISTRY_ABI: ::ethers::contract::Lazy< + ::ethers::core::abi::Abi, + > = ::ethers::contract::Lazy::new(|| { + ::ethers::core::utils::__serde_json::from_str(__ABI) + .expect("ABI is always valid") + }); + pub struct IPortfolioRegistry(::ethers::contract::Contract); + impl ::core::clone::Clone for IPortfolioRegistry { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for IPortfolioRegistry { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for IPortfolioRegistry { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for IPortfolioRegistry { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(stringify!(IPortfolioRegistry)).field(&self.address()).finish() + } + } + impl IPortfolioRegistry { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + IPORTFOLIOREGISTRY_ABI.clone(), + client, + ), + ) + } + ///Calls the contract's `controller` (0xf77c4791) function + pub fn controller( + &self, + ) -> ::ethers::contract::builders::ContractCall< + M, + ::ethers::core::types::Address, + > { + self.0 + .method_hash([247, 124, 71, 145], ()) + .expect("method not found (this should never happen)") + } + } + impl From<::ethers::contract::Contract> + for IPortfolioRegistry { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } + ///Container type for all input parameters for the `controller` function with signature `controller()` and selector `0xf77c4791` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "controller", abi = "controller()")] + pub struct ControllerCall; + ///Container type for all return fields from the `controller` function with signature `controller()` and selector `0xf77c4791` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct ControllerReturn(pub ::ethers::core::types::Address); +} +pub use iweth::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod iweth { + #[rustfmt::skip] + const __ABI: &str = "[{\"inputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"deposit\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"withdraw\",\"outputs\":[]}]"; + ///The parsed JSON ABI of the contract. + pub static IWETH_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| + ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); + pub struct IWETH(::ethers::contract::Contract); + impl ::core::clone::Clone for IWETH { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for IWETH { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for IWETH { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for IWETH { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(stringify!(IWETH)).field(&self.address()).finish() + } + } + impl IWETH { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + IWETH_ABI.clone(), + client, + ), + ) + } + ///Calls the contract's `deposit` (0xd0e30db0) function + pub fn deposit(&self) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([208, 227, 13, 176], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `withdraw` (0x2e1a7d4d) function + pub fn withdraw( + &self, + wad: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([46, 26, 125, 77], wad) + .expect("method not found (this should never happen)") + } + } + impl From<::ethers::contract::Contract> + for IWETH { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } + ///Container type for all input parameters for the `deposit` function with signature `deposit()` and selector `0xd0e30db0` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "deposit", abi = "deposit()")] + pub struct DepositCall; + ///Container type for all input parameters for the `withdraw` function with signature `withdraw(uint256)` and selector `0x2e1a7d4d` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "withdraw", abi = "withdraw(uint256)")] + pub struct WithdrawCall { + pub wad: ::ethers::core::types::U256, + } + ///Container type for all of the contract's call + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum IWETHCalls { + Deposit(DepositCall), + Withdraw(WithdrawCall), + } + impl ::ethers::core::abi::AbiDecode for IWETHCalls { + fn decode( + data: impl AsRef<[u8]>, + ) -> ::core::result::Result { + let data = data.as_ref(); + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Deposit(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Withdraw(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData.into()) + } + } + impl ::ethers::core::abi::AbiEncode for IWETHCalls { + fn encode(self) -> Vec { + match self { + Self::Deposit(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Withdraw(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + } + } + } + impl ::core::fmt::Display for IWETHCalls { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::Deposit(element) => ::core::fmt::Display::fmt(element, f), + Self::Withdraw(element) => ::core::fmt::Display::fmt(element, f), + } + } + } + impl ::core::convert::From for IWETHCalls { + fn from(value: DepositCall) -> Self { + Self::Deposit(value) + } + } + impl ::core::convert::From for IWETHCalls { + fn from(value: WithdrawCall) -> Self { + Self::Withdraw(value) + } + } +} +pub use infinitely_liquid_market::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod infinitely_liquid_market { + #[rustfmt::skip] + const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"PriceChange\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"setPrice\",\"outputs\":[]}]"; + ///The parsed JSON ABI of the contract. + pub static INFINITELYLIQUIDMARKET_ABI: ::ethers::contract::Lazy< + ::ethers::core::abi::Abi, + > = ::ethers::contract::Lazy::new(|| { + ::ethers::core::utils::__serde_json::from_str(__ABI) + .expect("ABI is always valid") + }); + #[rustfmt::skip] + const __BYTECODE: &[u8] = &[ + 96, + 128, + 96, + 64, + 82, + 52, + 128, + 21, + 97, + 0, + 16, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 96, + 199, + 128, + 97, + 0, + 31, + 96, + 0, + 57, + 96, + 0, + 243, + 254, + 96, + 128, + 96, + 64, + 82, + 52, + 128, + 21, + 96, + 15, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 96, + 4, + 54, + 16, + 96, + 40, + 87, + 96, + 0, + 53, + 96, + 224, + 28, + 128, + 99, + 145, + 183, + 245, + 237, + 20, + 96, + 45, + 87, + 91, + 96, + 0, + 128, + 253, + 91, + 96, + 60, + 96, + 56, + 54, + 96, + 4, + 96, + 121, + 86, + 91, + 96, + 62, + 86, + 91, + 0, + 91, + 96, + 0, + 129, + 144, + 85, + 96, + 64, + 81, + 129, + 129, + 82, + 127, + 243, + 71, + 238, + 153, + 80, + 59, + 241, + 156, + 2, + 139, + 214, + 177, + 143, + 60, + 103, + 110, + 130, + 169, + 187, + 91, + 43, + 181, + 34, + 90, + 235, + 224, + 253, + 98, + 253, + 106, + 13, + 25, + 144, + 96, + 32, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 161, + 80, + 86, + 91, + 96, + 0, + 96, + 32, + 130, + 132, + 3, + 18, + 21, + 96, + 138, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 53, + 145, + 144, + 80, + 86, + 254, + 162, + 100, + 105, + 112, + 102, + 115, + 88, + 34, + 18, + 32, + 183, + 99, + 151, + 58, + 223, + 239, + 2, + 31, + 46, + 216, + 67, + 90, + 26, + 8, + 215, + 150, + 216, + 200, + 24, + 48, + 241, + 153, + 184, + 176, + 227, + 44, + 185, + 69, + 178, + 54, + 60, + 229, + 100, + 115, + 111, + 108, + 99, + 67, + 0, + 8, + 19, + 0, + 51, + ]; + ///The bytecode of the contract. + pub static INFINITELYLIQUIDMARKET_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __BYTECODE, + ); + #[rustfmt::skip] + const __DEPLOYED_BYTECODE: &[u8] = &[ + 96, + 128, + 96, + 64, + 82, + 52, + 128, + 21, + 96, + 15, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 96, + 4, + 54, + 16, + 96, + 40, + 87, + 96, + 0, + 53, + 96, + 224, + 28, + 128, + 99, + 145, + 183, + 245, + 237, + 20, + 96, + 45, + 87, + 91, + 96, + 0, + 128, + 253, + 91, + 96, + 60, + 96, + 56, + 54, + 96, + 4, + 96, + 121, + 86, + 91, + 96, + 62, + 86, + 91, + 0, + 91, + 96, + 0, + 129, + 144, + 85, + 96, + 64, + 81, + 129, + 129, + 82, + 127, + 243, + 71, + 238, + 153, + 80, + 59, + 241, + 156, + 2, + 139, + 214, + 177, + 143, + 60, + 103, + 110, + 130, + 169, + 187, + 91, + 43, + 181, + 34, + 90, + 235, + 224, + 253, + 98, + 253, + 106, + 13, + 25, + 144, + 96, + 32, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 161, + 80, + 86, + 91, + 96, + 0, + 96, + 32, + 130, + 132, + 3, + 18, + 21, + 96, + 138, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 53, + 145, + 144, + 80, + 86, + 254, + 162, + 100, + 105, + 112, + 102, + 115, + 88, + 34, + 18, + 32, + 183, + 99, + 151, + 58, + 223, + 239, + 2, + 31, + 46, + 216, + 67, + 90, + 26, + 8, + 215, + 150, + 216, + 200, + 24, + 48, + 241, + 153, + 184, + 176, + 227, + 44, + 185, + 69, + 178, + 54, + 60, + 229, + 100, + 115, + 111, + 108, + 99, + 67, + 0, + 8, + 19, + 0, + 51, + ]; + ///The deployed bytecode of the contract. + pub static INFINITELYLIQUIDMARKET_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __DEPLOYED_BYTECODE, + ); + pub struct InfinitelyLiquidMarket(::ethers::contract::Contract); + impl ::core::clone::Clone for InfinitelyLiquidMarket { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for InfinitelyLiquidMarket { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for InfinitelyLiquidMarket { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for InfinitelyLiquidMarket { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(stringify!(InfinitelyLiquidMarket)) + .field(&self.address()) + .finish() + } + } + impl InfinitelyLiquidMarket { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + INFINITELYLIQUIDMARKET_ABI.clone(), + client, + ), + ) + } + /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. + /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction + /// + /// Notes: + /// - If there are no constructor arguments, you should pass `()` as the argument. + /// - The default poll duration is 7 seconds. + /// - The default number of confirmations is 1 block. + /// + /// + /// # Example + /// + /// Generate contract bindings with `abigen!` and deploy a new contract instance. + /// + /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. + /// + /// ```ignore + /// # async fn deploy(client: ::std::sync::Arc) { + /// abigen!(Greeter, "../greeter.json"); + /// + /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); + /// let msg = greeter_contract.greet().call().await.unwrap(); + /// # } + /// ``` + pub fn deploy( + client: ::std::sync::Arc, + constructor_args: T, + ) -> ::core::result::Result< + ::ethers::contract::builders::ContractDeployer, + ::ethers::contract::ContractError, + > { + let factory = ::ethers::contract::ContractFactory::new( + INFINITELYLIQUIDMARKET_ABI.clone(), + INFINITELYLIQUIDMARKET_BYTECODE.clone().into(), + client, + ); + let deployer = factory.deploy(constructor_args)?; + let deployer = ::ethers::contract::ContractDeployer::new(deployer); + Ok(deployer) + } + ///Calls the contract's `setPrice` (0x91b7f5ed) function + pub fn set_price( + &self, + price: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([145, 183, 245, 237], price) + .expect("method not found (this should never happen)") + } + ///Gets the contract's `PriceChange` event + pub fn price_change_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + PriceChangeFilter, + > { + self.0.event() + } + /// Returns an `Event` builder for all the events of this contract. + pub fn events( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + PriceChangeFilter, + > { + self.0.event_with_filter(::core::default::Default::default()) + } + } + impl From<::ethers::contract::Contract> + for InfinitelyLiquidMarket { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "PriceChange", abi = "PriceChange(uint256)")] + pub struct PriceChangeFilter { + pub price: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `setPrice` function with signature `setPrice(uint256)` and selector `0x91b7f5ed` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "setPrice", abi = "setPrice(uint256)")] + pub struct SetPriceCall { + pub price: ::ethers::core::types::U256, + } +} +pub use invariant::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod invariant { + #[rustfmt::skip] + const __ABI: &str = "[{\"inputs\":[],\"type\":\"error\",\"name\":\"OOB\",\"outputs\":[]}]"; + ///The parsed JSON ABI of the contract. + pub static INVARIANT_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| + ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); + #[rustfmt::skip] + const __BYTECODE: &[u8] = &[ + 96, + 86, + 96, + 55, + 96, + 11, + 130, + 130, + 130, + 57, + 128, + 81, + 96, + 0, + 26, + 96, + 115, + 20, + 96, + 42, + 87, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 0, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 48, + 96, + 0, + 82, + 96, + 115, + 129, + 83, + 130, + 129, + 243, + 254, + 115, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 48, + 20, + 96, + 128, + 96, + 64, + 82, + 96, + 0, + 128, + 253, + 254, + 162, + 100, + 105, + 112, + 102, + 115, + 88, + 34, + 18, + 32, + 189, + 239, + 105, + 23, + 165, + 88, + 99, + 249, + 36, + 241, + 163, + 47, + 142, + 141, + 233, + 79, + 215, + 40, + 34, + 141, + 184, + 194, + 30, + 78, + 181, + 188, + 126, + 18, + 124, + 162, + 45, + 139, + 100, + 115, + 111, + 108, + 99, + 67, + 0, + 8, + 13, + 0, + 51, + ]; + ///The bytecode of the contract. + pub static INVARIANT_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __BYTECODE, + ); + #[rustfmt::skip] + const __DEPLOYED_BYTECODE: &[u8] = &[ + 115, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 48, + 20, + 96, + 128, + 96, + 64, + 82, + 96, + 0, + 128, + 253, + 254, + 162, + 100, + 105, + 112, + 102, + 115, + 88, + 34, + 18, + 32, + 189, + 239, + 105, + 23, + 165, + 88, + 99, + 249, + 36, + 241, + 163, + 47, + 142, + 141, + 233, + 79, + 215, + 40, + 34, + 141, + 184, + 194, + 30, + 78, + 181, + 188, + 126, + 18, + 124, + 162, + 45, + 139, + 100, + 115, + 111, + 108, + 99, + 67, + 0, + 8, + 13, + 0, + 51, + ]; + ///The deployed bytecode of the contract. + pub static INVARIANT_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __DEPLOYED_BYTECODE, + ); + pub struct Invariant(::ethers::contract::Contract); + impl ::core::clone::Clone for Invariant { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for Invariant { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for Invariant { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for Invariant { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(stringify!(Invariant)).field(&self.address()).finish() + } + } + impl Invariant { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + INVARIANT_ABI.clone(), + client, + ), + ) + } + /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. + /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction + /// + /// Notes: + /// - If there are no constructor arguments, you should pass `()` as the argument. + /// - The default poll duration is 7 seconds. + /// - The default number of confirmations is 1 block. + /// + /// + /// # Example + /// + /// Generate contract bindings with `abigen!` and deploy a new contract instance. + /// + /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. + /// + /// ```ignore + /// # async fn deploy(client: ::std::sync::Arc) { + /// abigen!(Greeter, "../greeter.json"); + /// + /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); + /// let msg = greeter_contract.greet().call().await.unwrap(); + /// # } + /// ``` + pub fn deploy( + client: ::std::sync::Arc, + constructor_args: T, + ) -> ::core::result::Result< + ::ethers::contract::builders::ContractDeployer, + ::ethers::contract::ContractError, + > { + let factory = ::ethers::contract::ContractFactory::new( + INVARIANT_ABI.clone(), + INVARIANT_BYTECODE.clone().into(), + client, + ); + let deployer = factory.deploy(constructor_args)?; + let deployer = ::ethers::contract::ContractDeployer::new(deployer); + Ok(deployer) + } + } + impl From<::ethers::contract::Contract> + for Invariant { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } + ///Custom Error type `OOB` with signature `OOB()` and selector `0xaaf3956f` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "OOB", abi = "OOB()")] + pub struct OOB; +} +pub use mock_erc20::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod mock_erc20 { + #[rustfmt::skip] + const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\",\"components\":[]},{\"internalType\":\"string\",\"name\":\"_symbol\",\"type\":\"string\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"_decimals\",\"type\":\"uint8\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Approval\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Transfer\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"burn\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"mint\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\",\"components\":[]},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\",\"components\":[]},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"permit\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]}]"; + ///The parsed JSON ABI of the contract. + pub static MOCKERC20_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| + ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); + #[rustfmt::skip] + const __BYTECODE: &[u8] = &[ + 96, + 224, + 96, + 64, + 82, + 52, + 128, + 21, + 98, + 0, + 0, + 17, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 96, + 64, + 81, + 98, + 0, + 15, + 248, + 56, + 3, + 128, + 98, + 0, + 15, + 248, + 131, + 57, + 129, + 1, + 96, + 64, + 129, + 144, + 82, + 98, + 0, + 0, + 52, + 145, + 98, + 0, + 2, + 154, + 86, + 91, + 130, + 130, + 130, + 130, + 96, + 0, + 144, + 128, + 81, + 144, + 96, + 32, + 1, + 144, + 98, + 0, + 0, + 79, + 146, + 145, + 144, + 98, + 0, + 1, + 39, + 86, + 91, + 80, + 129, + 81, + 98, + 0, + 0, + 101, + 144, + 96, + 1, + 144, + 96, + 32, + 133, + 1, + 144, + 98, + 0, + 1, + 39, + 86, + 91, + 80, + 96, + 255, + 129, + 22, + 96, + 128, + 82, + 70, + 96, + 160, + 82, + 98, + 0, + 0, + 123, + 98, + 0, + 0, + 139, + 86, + 91, + 96, + 192, + 82, + 80, + 98, + 0, + 3, + 254, + 148, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 127, + 139, + 115, + 195, + 198, + 155, + 184, + 254, + 61, + 81, + 46, + 204, + 76, + 247, + 89, + 204, + 121, + 35, + 159, + 123, + 23, + 155, + 15, + 250, + 202, + 169, + 167, + 93, + 82, + 43, + 57, + 64, + 15, + 96, + 0, + 96, + 64, + 81, + 98, + 0, + 0, + 191, + 145, + 144, + 98, + 0, + 3, + 91, + 86, + 91, + 96, + 64, + 128, + 81, + 145, + 130, + 144, + 3, + 130, + 32, + 96, + 32, + 131, + 1, + 147, + 144, + 147, + 82, + 129, + 1, + 145, + 144, + 145, + 82, + 127, + 200, + 158, + 253, + 170, + 84, + 192, + 242, + 12, + 122, + 223, + 97, + 40, + 130, + 223, + 9, + 80, + 245, + 169, + 81, + 99, + 126, + 3, + 7, + 205, + 203, + 76, + 103, + 47, + 41, + 139, + 139, + 198, + 96, + 96, + 130, + 1, + 82, + 70, + 96, + 128, + 130, + 1, + 82, + 48, + 96, + 160, + 130, + 1, + 82, + 96, + 192, + 1, + 96, + 64, + 81, + 96, + 32, + 129, + 131, + 3, + 3, + 129, + 82, + 144, + 96, + 64, + 82, + 128, + 81, + 144, + 96, + 32, + 1, + 32, + 144, + 80, + 144, + 86, + 91, + 130, + 128, + 84, + 98, + 0, + 1, + 53, + 144, + 98, + 0, + 3, + 31, + 86, + 91, + 144, + 96, + 0, + 82, + 96, + 32, + 96, + 0, + 32, + 144, + 96, + 31, + 1, + 96, + 32, + 144, + 4, + 129, + 1, + 146, + 130, + 98, + 0, + 1, + 89, + 87, + 96, + 0, + 133, + 85, + 98, + 0, + 1, + 164, + 86, + 91, + 130, + 96, + 31, + 16, + 98, + 0, + 1, + 116, + 87, + 128, + 81, + 96, + 255, + 25, + 22, + 131, + 128, + 1, + 23, + 133, + 85, + 98, + 0, + 1, + 164, + 86, + 91, + 130, + 128, + 1, + 96, + 1, + 1, + 133, + 85, + 130, + 21, + 98, + 0, + 1, + 164, + 87, + 145, + 130, + 1, + 91, + 130, + 129, + 17, + 21, + 98, + 0, + 1, + 164, + 87, + 130, + 81, + 130, + 85, + 145, + 96, + 32, + 1, + 145, + 144, + 96, + 1, + 1, + 144, + 98, + 0, + 1, + 135, + 86, + 91, + 80, + 98, + 0, + 1, + 178, + 146, + 145, + 80, + 98, + 0, + 1, + 182, + 86, + 91, + 80, + 144, + 86, + 91, + 91, + 128, + 130, + 17, + 21, + 98, + 0, + 1, + 178, + 87, + 96, + 0, + 129, + 85, + 96, + 1, + 1, + 98, + 0, + 1, + 183, + 86, + 91, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 65, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 96, + 0, + 130, + 96, + 31, + 131, + 1, + 18, + 98, + 0, + 1, + 245, + 87, + 96, + 0, + 128, + 253, + 91, + 129, + 81, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 128, + 130, + 17, + 21, + 98, + 0, + 2, + 18, + 87, + 98, + 0, + 2, + 18, + 98, + 0, + 1, + 205, + 86, + 91, + 96, + 64, + 81, + 96, + 31, + 131, + 1, + 96, + 31, + 25, + 144, + 129, + 22, + 96, + 63, + 1, + 22, + 129, + 1, + 144, + 130, + 130, + 17, + 129, + 131, + 16, + 23, + 21, + 98, + 0, + 2, + 61, + 87, + 98, + 0, + 2, + 61, + 98, + 0, + 1, + 205, + 86, + 91, + 129, + 96, + 64, + 82, + 131, + 129, + 82, + 96, + 32, + 146, + 80, + 134, + 131, + 133, + 136, + 1, + 1, + 17, + 21, + 98, + 0, + 2, + 90, + 87, + 96, + 0, + 128, + 253, + 91, + 96, + 0, + 145, + 80, + 91, + 131, + 130, + 16, + 21, + 98, + 0, + 2, + 126, + 87, + 133, + 130, + 1, + 131, + 1, + 81, + 129, + 131, + 1, + 132, + 1, + 82, + 144, + 130, + 1, + 144, + 98, + 0, + 2, + 95, + 86, + 91, + 131, + 130, + 17, + 21, + 98, + 0, + 2, + 144, + 87, + 96, + 0, + 131, + 133, + 131, + 1, + 1, + 82, + 91, + 150, + 149, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 96, + 96, + 132, + 134, + 3, + 18, + 21, + 98, + 0, + 2, + 176, + 87, + 96, + 0, + 128, + 253, + 91, + 131, + 81, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 128, + 130, + 17, + 21, + 98, + 0, + 2, + 200, + 87, + 96, + 0, + 128, + 253, + 91, + 98, + 0, + 2, + 214, + 135, + 131, + 136, + 1, + 98, + 0, + 1, + 227, + 86, + 91, + 148, + 80, + 96, + 32, + 134, + 1, + 81, + 145, + 80, + 128, + 130, + 17, + 21, + 98, + 0, + 2, + 237, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 98, + 0, + 2, + 252, + 134, + 130, + 135, + 1, + 98, + 0, + 1, + 227, + 86, + 91, + 146, + 80, + 80, + 96, + 64, + 132, + 1, + 81, + 96, + 255, + 129, + 22, + 129, + 20, + 98, + 0, + 3, + 20, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 145, + 80, + 80, + 146, + 80, + 146, + 80, + 146, + 86, + 91, + 96, + 1, + 129, + 129, + 28, + 144, + 130, + 22, + 128, + 98, + 0, + 3, + 52, + 87, + 96, + 127, + 130, + 22, + 145, + 80, + 91, + 96, + 32, + 130, + 16, + 129, + 3, + 98, + 0, + 3, + 85, + 87, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 34, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 80, + 145, + 144, + 80, + 86, + 91, + 96, + 0, + 128, + 131, + 84, + 129, + 96, + 1, + 130, + 129, + 28, + 145, + 80, + 128, + 131, + 22, + 128, + 98, + 0, + 3, + 120, + 87, + 96, + 127, + 131, + 22, + 146, + 80, + 91, + 96, + 32, + 128, + 132, + 16, + 130, + 3, + 98, + 0, + 3, + 152, + 87, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 134, + 82, + 96, + 34, + 96, + 4, + 82, + 96, + 36, + 134, + 253, + 91, + 129, + 128, + 21, + 98, + 0, + 3, + 175, + 87, + 96, + 1, + 129, + 20, + 98, + 0, + 3, + 193, + 87, + 98, + 0, + 3, + 240, + 86, + 91, + 96, + 255, + 25, + 134, + 22, + 137, + 82, + 132, + 137, + 1, + 150, + 80, + 98, + 0, + 3, + 240, + 86, + 91, + 96, + 0, + 138, + 129, + 82, + 96, + 32, + 144, + 32, + 96, + 0, + 91, + 134, + 129, + 16, + 21, + 98, + 0, + 3, + 232, + 87, + 129, + 84, + 139, + 130, + 1, + 82, + 144, + 133, + 1, + 144, + 131, + 1, + 98, + 0, + 3, + 205, + 86, + 91, + 80, + 80, + 132, + 137, + 1, + 150, + 80, + 91, + 80, + 148, + 152, + 151, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 128, + 81, + 96, + 160, + 81, + 96, + 192, + 81, + 97, + 11, + 202, + 98, + 0, + 4, + 46, + 96, + 0, + 57, + 96, + 0, + 97, + 4, + 111, + 1, + 82, + 96, + 0, + 97, + 4, + 58, + 1, + 82, + 96, + 0, + 97, + 1, + 95, + 1, + 82, + 97, + 11, + 202, + 96, + 0, + 243, + 254, + 96, + 128, + 96, + 64, + 82, + 52, + 128, + 21, + 97, + 0, + 16, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 96, + 4, + 54, + 16, + 97, + 0, + 234, + 87, + 96, + 0, + 53, + 96, + 224, + 28, + 128, + 99, + 112, + 160, + 130, + 49, + 17, + 97, + 0, + 140, + 87, + 128, + 99, + 157, + 194, + 159, + 172, + 17, + 97, + 0, + 102, + 87, + 128, + 99, + 157, + 194, + 159, + 172, + 20, + 97, + 1, + 248, + 87, + 128, + 99, + 169, + 5, + 156, + 187, + 20, + 97, + 2, + 11, + 87, + 128, + 99, + 213, + 5, + 172, + 207, + 20, + 97, + 2, + 30, + 87, + 128, + 99, + 221, + 98, + 237, + 62, + 20, + 97, + 2, + 49, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 112, + 160, + 130, + 49, + 20, + 97, + 1, + 176, + 87, + 128, + 99, + 126, + 206, + 190, + 0, + 20, + 97, + 1, + 208, + 87, + 128, + 99, + 149, + 216, + 155, + 65, + 20, + 97, + 1, + 240, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 35, + 184, + 114, + 221, + 17, + 97, + 0, + 200, + 87, + 128, + 99, + 35, + 184, + 114, + 221, + 20, + 97, + 1, + 71, + 87, + 128, + 99, + 49, + 60, + 229, + 103, + 20, + 97, + 1, + 90, + 87, + 128, + 99, + 54, + 68, + 229, + 21, + 20, + 97, + 1, + 147, + 87, + 128, + 99, + 64, + 193, + 15, + 25, + 20, + 97, + 1, + 155, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 6, + 253, + 222, + 3, + 20, + 97, + 0, + 239, + 87, + 128, + 99, + 9, + 94, + 167, + 179, + 20, + 97, + 1, + 13, + 87, + 128, + 99, + 24, + 22, + 13, + 221, + 20, + 97, + 1, + 48, + 87, + 91, + 96, + 0, + 128, + 253, + 91, + 97, + 0, + 247, + 97, + 2, + 92, + 86, + 91, + 96, + 64, + 81, + 97, + 1, + 4, + 145, + 144, + 97, + 8, + 187, + 86, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 243, + 91, + 97, + 1, + 32, + 97, + 1, + 27, + 54, + 96, + 4, + 97, + 9, + 44, + 86, + 91, + 97, + 2, + 234, + 86, + 91, + 96, + 64, + 81, + 144, + 21, + 21, + 129, + 82, + 96, + 32, + 1, + 97, + 1, + 4, + 86, + 91, + 97, + 1, + 57, + 96, + 2, + 84, + 129, + 86, + 91, + 96, + 64, + 81, + 144, + 129, + 82, + 96, + 32, + 1, + 97, + 1, + 4, + 86, + 91, + 97, + 1, + 32, + 97, + 1, + 85, + 54, + 96, + 4, + 97, + 9, + 86, + 86, + 91, + 97, + 3, + 86, + 86, + 91, + 97, + 1, + 129, + 127, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 129, + 86, + 91, + 96, + 64, + 81, + 96, + 255, + 144, + 145, + 22, + 129, + 82, + 96, + 32, + 1, + 97, + 1, + 4, + 86, + 91, + 97, + 1, + 57, + 97, + 4, + 54, + 86, + 91, + 97, + 1, + 174, + 97, + 1, + 169, + 54, + 96, + 4, + 97, + 9, + 44, + 86, + 91, + 97, + 4, + 145, + 86, + 91, + 0, + 91, + 97, + 1, + 57, + 97, + 1, + 190, + 54, + 96, + 4, + 97, + 9, + 146, + 86, + 91, + 96, + 3, + 96, + 32, + 82, + 96, + 0, + 144, + 129, + 82, + 96, + 64, + 144, + 32, + 84, + 129, + 86, + 91, + 97, + 1, + 57, + 97, + 1, + 222, + 54, + 96, + 4, + 97, + 9, + 146, + 86, + 91, + 96, + 5, + 96, + 32, + 82, + 96, + 0, + 144, + 129, + 82, + 96, + 64, + 144, + 32, + 84, + 129, + 86, + 91, + 97, + 0, + 247, + 97, + 4, + 159, + 86, + 91, + 97, + 1, + 174, + 97, + 2, + 6, + 54, + 96, + 4, + 97, + 9, + 44, + 86, + 91, + 97, + 4, + 172, + 86, + 91, + 97, + 1, + 32, + 97, + 2, + 25, + 54, + 96, + 4, + 97, + 9, + 44, + 86, + 91, + 97, + 4, + 182, + 86, + 91, + 97, + 1, + 174, + 97, + 2, + 44, + 54, + 96, + 4, + 97, + 9, + 180, + 86, + 91, + 97, + 5, + 28, + 86, + 91, + 97, + 1, + 57, + 97, + 2, + 63, + 54, + 96, + 4, + 97, + 10, + 39, + 86, + 91, + 96, + 4, + 96, + 32, + 144, + 129, + 82, + 96, + 0, + 146, + 131, + 82, + 96, + 64, + 128, + 132, + 32, + 144, + 145, + 82, + 144, + 130, + 82, + 144, + 32, + 84, + 129, + 86, + 91, + 96, + 0, + 128, + 84, + 97, + 2, + 105, + 144, + 97, + 10, + 90, + 86, + 91, + 128, + 96, + 31, + 1, + 96, + 32, + 128, + 145, + 4, + 2, + 96, + 32, + 1, + 96, + 64, + 81, + 144, + 129, + 1, + 96, + 64, + 82, + 128, + 146, + 145, + 144, + 129, + 129, + 82, + 96, + 32, + 1, + 130, + 128, + 84, + 97, + 2, + 149, + 144, + 97, + 10, + 90, + 86, + 91, + 128, + 21, + 97, + 2, + 226, + 87, + 128, + 96, + 31, + 16, + 97, + 2, + 183, + 87, + 97, + 1, + 0, + 128, + 131, + 84, + 4, + 2, + 131, + 82, + 145, + 96, + 32, + 1, + 145, + 97, + 2, + 226, + 86, + 91, + 130, + 1, + 145, + 144, + 96, + 0, + 82, + 96, + 32, + 96, + 0, + 32, + 144, + 91, + 129, + 84, + 129, + 82, + 144, + 96, + 1, + 1, + 144, + 96, + 32, + 1, + 128, + 131, + 17, + 97, + 2, + 197, + 87, + 130, + 144, + 3, + 96, + 31, + 22, + 130, + 1, + 145, + 91, + 80, + 80, + 80, + 80, + 80, + 129, + 86, + 91, + 51, + 96, + 0, + 129, + 129, + 82, + 96, + 4, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 135, + 22, + 128, + 133, + 82, + 146, + 82, + 128, + 131, + 32, + 133, + 144, + 85, + 81, + 145, + 146, + 144, + 145, + 127, + 140, + 91, + 225, + 229, + 235, + 236, + 125, + 91, + 209, + 79, + 113, + 66, + 125, + 30, + 132, + 243, + 221, + 3, + 20, + 192, + 247, + 178, + 41, + 30, + 91, + 32, + 10, + 200, + 199, + 195, + 185, + 37, + 144, + 97, + 3, + 69, + 144, + 134, + 129, + 82, + 96, + 32, + 1, + 144, + 86, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 80, + 96, + 1, + 146, + 145, + 80, + 80, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 4, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 51, + 132, + 82, + 144, + 145, + 82, + 129, + 32, + 84, + 96, + 0, + 25, + 129, + 20, + 97, + 3, + 178, + 87, + 97, + 3, + 141, + 131, + 130, + 97, + 10, + 170, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 134, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 4, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 51, + 132, + 82, + 144, + 145, + 82, + 144, + 32, + 85, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 133, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 3, + 96, + 32, + 82, + 96, + 64, + 129, + 32, + 128, + 84, + 133, + 146, + 144, + 97, + 3, + 218, + 144, + 132, + 144, + 97, + 10, + 170, + 86, + 91, + 144, + 145, + 85, + 80, + 80, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 128, + 133, + 22, + 96, + 0, + 129, + 129, + 82, + 96, + 3, + 96, + 32, + 82, + 96, + 64, + 144, + 129, + 144, + 32, + 128, + 84, + 135, + 1, + 144, + 85, + 81, + 144, + 145, + 135, + 22, + 144, + 96, + 0, + 128, + 81, + 96, + 32, + 97, + 11, + 117, + 131, + 57, + 129, + 81, + 145, + 82, + 144, + 97, + 4, + 35, + 144, + 135, + 129, + 82, + 96, + 32, + 1, + 144, + 86, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 80, + 96, + 1, + 148, + 147, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 127, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 70, + 20, + 97, + 4, + 108, + 87, + 97, + 4, + 103, + 97, + 7, + 101, + 86, + 91, + 144, + 80, + 144, + 86, + 91, + 80, + 127, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 144, + 86, + 91, + 97, + 4, + 155, + 130, + 130, + 97, + 7, + 255, + 86, + 91, + 80, + 80, + 86, + 91, + 96, + 1, + 128, + 84, + 97, + 2, + 105, + 144, + 97, + 10, + 90, + 86, + 91, + 97, + 4, + 155, + 130, + 130, + 97, + 8, + 89, + 86, + 91, + 51, + 96, + 0, + 144, + 129, + 82, + 96, + 3, + 96, + 32, + 82, + 96, + 64, + 129, + 32, + 128, + 84, + 131, + 145, + 144, + 131, + 144, + 97, + 4, + 215, + 144, + 132, + 144, + 97, + 10, + 170, + 86, + 91, + 144, + 145, + 85, + 80, + 80, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 22, + 96, + 0, + 129, + 129, + 82, + 96, + 3, + 96, + 32, + 82, + 96, + 64, + 144, + 129, + 144, + 32, + 128, + 84, + 133, + 1, + 144, + 85, + 81, + 51, + 144, + 96, + 0, + 128, + 81, + 96, + 32, + 97, + 11, + 117, + 131, + 57, + 129, + 81, + 145, + 82, + 144, + 97, + 3, + 69, + 144, + 134, + 129, + 82, + 96, + 32, + 1, + 144, + 86, + 91, + 66, + 132, + 16, + 21, + 97, + 5, + 113, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 23, + 96, + 36, + 130, + 1, + 82, + 127, + 80, + 69, + 82, + 77, + 73, + 84, + 95, + 68, + 69, + 65, + 68, + 76, + 73, + 78, + 69, + 95, + 69, + 88, + 80, + 73, + 82, + 69, + 68, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 96, + 68, + 130, + 1, + 82, + 96, + 100, + 1, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 0, + 96, + 1, + 97, + 5, + 125, + 97, + 4, + 54, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 138, + 129, + 22, + 96, + 0, + 129, + 129, + 82, + 96, + 5, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 145, + 130, + 144, + 32, + 128, + 84, + 96, + 1, + 129, + 1, + 144, + 145, + 85, + 130, + 81, + 127, + 110, + 113, + 237, + 174, + 18, + 177, + 185, + 127, + 77, + 31, + 96, + 55, + 15, + 239, + 16, + 16, + 95, + 162, + 250, + 174, + 1, + 38, + 17, + 74, + 22, + 156, + 100, + 132, + 93, + 97, + 38, + 201, + 129, + 132, + 1, + 82, + 128, + 132, + 1, + 148, + 144, + 148, + 82, + 147, + 141, + 22, + 96, + 96, + 132, + 1, + 82, + 96, + 128, + 131, + 1, + 140, + 144, + 82, + 96, + 160, + 131, + 1, + 147, + 144, + 147, + 82, + 96, + 192, + 128, + 131, + 1, + 139, + 144, + 82, + 129, + 81, + 128, + 132, + 3, + 144, + 145, + 1, + 129, + 82, + 96, + 224, + 131, + 1, + 144, + 145, + 82, + 128, + 81, + 146, + 1, + 145, + 144, + 145, + 32, + 97, + 25, + 1, + 96, + 240, + 27, + 97, + 1, + 0, + 131, + 1, + 82, + 97, + 1, + 2, + 130, + 1, + 146, + 144, + 146, + 82, + 97, + 1, + 34, + 129, + 1, + 145, + 144, + 145, + 82, + 97, + 1, + 66, + 1, + 96, + 64, + 128, + 81, + 96, + 31, + 25, + 129, + 132, + 3, + 1, + 129, + 82, + 130, + 130, + 82, + 128, + 81, + 96, + 32, + 145, + 130, + 1, + 32, + 96, + 0, + 132, + 82, + 144, + 131, + 1, + 128, + 131, + 82, + 82, + 96, + 255, + 135, + 22, + 144, + 130, + 1, + 82, + 96, + 96, + 129, + 1, + 133, + 144, + 82, + 96, + 128, + 129, + 1, + 132, + 144, + 82, + 96, + 160, + 1, + 96, + 32, + 96, + 64, + 81, + 96, + 32, + 129, + 3, + 144, + 128, + 132, + 3, + 144, + 133, + 90, + 250, + 21, + 128, + 21, + 97, + 6, + 137, + 87, + 61, + 96, + 0, + 128, + 62, + 61, + 96, + 0, + 253, + 91, + 80, + 80, + 96, + 64, + 81, + 96, + 31, + 25, + 1, + 81, + 145, + 80, + 80, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 129, + 22, + 21, + 128, + 21, + 144, + 97, + 6, + 191, + 87, + 80, + 135, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 20, + 91, + 97, + 6, + 252, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 14, + 96, + 36, + 130, + 1, + 82, + 109, + 36, + 167, + 43, + 32, + 166, + 36, + 162, + 47, + 169, + 164, + 163, + 167, + 34, + 169, + 96, + 145, + 27, + 96, + 68, + 130, + 1, + 82, + 96, + 100, + 1, + 97, + 5, + 104, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 144, + 129, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 4, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 138, + 133, + 22, + 128, + 133, + 82, + 144, + 131, + 82, + 146, + 129, + 144, + 32, + 137, + 144, + 85, + 81, + 136, + 129, + 82, + 145, + 146, + 138, + 22, + 145, + 127, + 140, + 91, + 225, + 229, + 235, + 236, + 125, + 91, + 209, + 79, + 113, + 66, + 125, + 30, + 132, + 243, + 221, + 3, + 20, + 192, + 247, + 178, + 41, + 30, + 91, + 32, + 10, + 200, + 199, + 195, + 185, + 37, + 145, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 127, + 139, + 115, + 195, + 198, + 155, + 184, + 254, + 61, + 81, + 46, + 204, + 76, + 247, + 89, + 204, + 121, + 35, + 159, + 123, + 23, + 155, + 15, + 250, + 202, + 169, + 167, + 93, + 82, + 43, + 57, + 64, + 15, + 96, + 0, + 96, + 64, + 81, + 97, + 7, + 151, + 145, + 144, + 97, + 10, + 193, + 86, + 91, + 96, + 64, + 128, + 81, + 145, + 130, + 144, + 3, + 130, + 32, + 96, + 32, + 131, + 1, + 147, + 144, + 147, + 82, + 129, + 1, + 145, + 144, + 145, + 82, + 127, + 200, + 158, + 253, + 170, + 84, + 192, + 242, + 12, + 122, + 223, + 97, + 40, + 130, + 223, + 9, + 80, + 245, + 169, + 81, + 99, + 126, + 3, + 7, + 205, + 203, + 76, + 103, + 47, + 41, + 139, + 139, + 198, + 96, + 96, + 130, + 1, + 82, + 70, + 96, + 128, + 130, + 1, + 82, + 48, + 96, + 160, + 130, + 1, + 82, + 96, + 192, + 1, + 96, + 64, + 81, + 96, + 32, + 129, + 131, + 3, + 3, + 129, + 82, + 144, + 96, + 64, + 82, + 128, + 81, + 144, + 96, + 32, + 1, + 32, + 144, + 80, + 144, + 86, + 91, + 128, + 96, + 2, + 96, + 0, + 130, + 130, + 84, + 97, + 8, + 17, + 145, + 144, + 97, + 11, + 92, + 86, + 91, + 144, + 145, + 85, + 80, + 80, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 96, + 0, + 129, + 129, + 82, + 96, + 3, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 128, + 84, + 134, + 1, + 144, + 85, + 81, + 132, + 129, + 82, + 96, + 0, + 128, + 81, + 96, + 32, + 97, + 11, + 117, + 131, + 57, + 129, + 81, + 145, + 82, + 145, + 1, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 80, + 80, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 3, + 96, + 32, + 82, + 96, + 64, + 129, + 32, + 128, + 84, + 131, + 146, + 144, + 97, + 8, + 129, + 144, + 132, + 144, + 97, + 10, + 170, + 86, + 91, + 144, + 145, + 85, + 80, + 80, + 96, + 2, + 128, + 84, + 130, + 144, + 3, + 144, + 85, + 96, + 64, + 81, + 129, + 129, + 82, + 96, + 0, + 144, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 132, + 22, + 144, + 96, + 0, + 128, + 81, + 96, + 32, + 97, + 11, + 117, + 131, + 57, + 129, + 81, + 145, + 82, + 144, + 96, + 32, + 1, + 97, + 8, + 77, + 86, + 91, + 96, + 0, + 96, + 32, + 128, + 131, + 82, + 131, + 81, + 128, + 130, + 133, + 1, + 82, + 96, + 0, + 91, + 129, + 129, + 16, + 21, + 97, + 8, + 232, + 87, + 133, + 129, + 1, + 131, + 1, + 81, + 133, + 130, + 1, + 96, + 64, + 1, + 82, + 130, + 1, + 97, + 8, + 204, + 86, + 91, + 129, + 129, + 17, + 21, + 97, + 8, + 250, + 87, + 96, + 0, + 96, + 64, + 131, + 135, + 1, + 1, + 82, + 91, + 80, + 96, + 31, + 1, + 96, + 31, + 25, + 22, + 146, + 144, + 146, + 1, + 96, + 64, + 1, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 128, + 53, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 129, + 22, + 129, + 20, + 97, + 9, + 39, + 87, + 96, + 0, + 128, + 253, + 91, + 145, + 144, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 64, + 131, + 133, + 3, + 18, + 21, + 97, + 9, + 63, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 9, + 72, + 131, + 97, + 9, + 16, + 86, + 91, + 148, + 96, + 32, + 147, + 144, + 147, + 1, + 53, + 147, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 96, + 96, + 132, + 134, + 3, + 18, + 21, + 97, + 9, + 107, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 9, + 116, + 132, + 97, + 9, + 16, + 86, + 91, + 146, + 80, + 97, + 9, + 130, + 96, + 32, + 133, + 1, + 97, + 9, + 16, + 86, + 91, + 145, + 80, + 96, + 64, + 132, + 1, + 53, + 144, + 80, + 146, + 80, + 146, + 80, + 146, + 86, + 91, + 96, + 0, + 96, + 32, + 130, + 132, + 3, + 18, + 21, + 97, + 9, + 164, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 9, + 173, + 130, + 97, + 9, + 16, + 86, + 91, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 128, + 96, + 0, + 128, + 96, + 0, + 96, + 224, + 136, + 138, + 3, + 18, + 21, + 97, + 9, + 207, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 9, + 216, + 136, + 97, + 9, + 16, + 86, + 91, + 150, + 80, + 97, + 9, + 230, + 96, + 32, + 137, + 1, + 97, + 9, + 16, + 86, + 91, + 149, + 80, + 96, + 64, + 136, + 1, + 53, + 148, + 80, + 96, + 96, + 136, + 1, + 53, + 147, + 80, + 96, + 128, + 136, + 1, + 53, + 96, + 255, + 129, + 22, + 129, + 20, + 97, + 10, + 10, + 87, + 96, + 0, + 128, + 253, + 91, + 150, + 153, + 149, + 152, + 80, + 147, + 150, + 146, + 149, + 148, + 96, + 160, + 132, + 1, + 53, + 148, + 80, + 96, + 192, + 144, + 147, + 1, + 53, + 146, + 145, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 64, + 131, + 133, + 3, + 18, + 21, + 97, + 10, + 58, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 10, + 67, + 131, + 97, + 9, + 16, + 86, + 91, + 145, + 80, + 97, + 10, + 81, + 96, + 32, + 132, + 1, + 97, + 9, + 16, + 86, + 91, + 144, + 80, + 146, + 80, + 146, + 144, + 80, + 86, + 91, + 96, + 1, + 129, + 129, + 28, + 144, + 130, + 22, + 128, + 97, + 10, + 110, + 87, + 96, + 127, + 130, + 22, + 145, + 80, + 91, + 96, + 32, + 130, + 16, + 129, + 3, + 97, + 10, + 142, + 87, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 34, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 80, + 145, + 144, + 80, + 86, + 91, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 17, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 96, + 0, + 130, + 130, + 16, + 21, + 97, + 10, + 188, + 87, + 97, + 10, + 188, + 97, + 10, + 148, + 86, + 91, + 80, + 3, + 144, + 86, + 91, + 96, + 0, + 128, + 131, + 84, + 129, + 96, + 1, + 130, + 129, + 28, + 145, + 80, + 128, + 131, + 22, + 128, + 97, + 10, + 221, + 87, + 96, + 127, + 131, + 22, + 146, + 80, + 91, + 96, + 32, + 128, + 132, + 16, + 130, + 3, + 97, + 10, + 252, + 87, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 134, + 82, + 96, + 34, + 96, + 4, + 82, + 96, + 36, + 134, + 253, + 91, + 129, + 128, + 21, + 97, + 11, + 16, + 87, + 96, + 1, + 129, + 20, + 97, + 11, + 33, + 87, + 97, + 11, + 78, + 86, + 91, + 96, + 255, + 25, + 134, + 22, + 137, + 82, + 132, + 137, + 1, + 150, + 80, + 97, + 11, + 78, + 86, + 91, + 96, + 0, + 138, + 129, + 82, + 96, + 32, + 144, + 32, + 96, + 0, + 91, + 134, + 129, + 16, + 21, + 97, + 11, + 70, + 87, + 129, + 84, + 139, + 130, + 1, + 82, + 144, + 133, + 1, + 144, + 131, + 1, + 97, + 11, + 45, + 86, + 91, + 80, + 80, + 132, + 137, + 1, + 150, + 80, + 91, + 80, + 148, + 152, + 151, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 130, + 25, + 130, + 17, + 21, + 97, + 11, + 111, + 87, + 97, + 11, + 111, + 97, + 10, + 148, + 86, + 91, + 80, + 1, + 144, + 86, + 254, + 221, + 242, + 82, + 173, + 27, + 226, + 200, + 155, + 105, + 194, + 176, + 104, + 252, + 55, + 141, + 170, + 149, + 43, + 167, + 241, + 99, + 196, + 161, + 22, + 40, + 245, + 90, + 77, + 245, + 35, + 179, + 239, + 162, + 100, + 105, + 112, + 102, + 115, + 88, + 34, + 18, + 32, + 167, + 204, + 69, + 157, + 95, + 42, + 45, + 14, + 55, + 178, + 98, + 77, + 194, + 152, + 205, + 97, + 76, + 17, + 180, + 234, + 89, + 175, + 84, + 65, + 126, + 136, + 222, + 142, + 67, + 135, + 229, + 127, + 100, + 115, + 111, + 108, + 99, + 67, + 0, + 8, + 13, + 0, + 51, + ]; + ///The bytecode of the contract. + pub static MOCKERC20_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __BYTECODE, + ); + #[rustfmt::skip] + const __DEPLOYED_BYTECODE: &[u8] = &[ + 96, + 128, + 96, + 64, + 82, + 52, + 128, + 21, + 97, + 0, + 16, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 96, + 4, + 54, + 16, + 97, + 0, + 234, + 87, + 96, + 0, + 53, + 96, + 224, + 28, + 128, + 99, + 112, + 160, + 130, + 49, + 17, + 97, + 0, + 140, + 87, + 128, + 99, + 157, + 194, + 159, + 172, + 17, + 97, + 0, + 102, + 87, + 128, + 99, + 157, + 194, + 159, + 172, + 20, + 97, + 1, + 248, + 87, + 128, + 99, + 169, + 5, + 156, + 187, + 20, + 97, + 2, + 11, + 87, + 128, + 99, + 213, + 5, + 172, + 207, + 20, + 97, + 2, + 30, + 87, + 128, + 99, + 221, + 98, + 237, + 62, + 20, + 97, + 2, + 49, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 112, + 160, + 130, + 49, + 20, + 97, + 1, + 176, + 87, + 128, + 99, + 126, + 206, + 190, + 0, + 20, + 97, + 1, + 208, + 87, + 128, + 99, + 149, + 216, + 155, + 65, + 20, + 97, + 1, + 240, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 35, + 184, + 114, + 221, + 17, + 97, + 0, + 200, + 87, + 128, + 99, + 35, + 184, + 114, + 221, + 20, + 97, + 1, + 71, + 87, + 128, + 99, + 49, + 60, + 229, + 103, + 20, + 97, + 1, + 90, + 87, + 128, + 99, + 54, + 68, + 229, + 21, + 20, + 97, + 1, + 147, + 87, + 128, + 99, + 64, + 193, + 15, + 25, + 20, + 97, + 1, + 155, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 6, + 253, + 222, + 3, + 20, + 97, + 0, + 239, + 87, + 128, + 99, + 9, + 94, + 167, + 179, + 20, + 97, + 1, + 13, + 87, + 128, + 99, + 24, + 22, + 13, + 221, + 20, + 97, + 1, + 48, + 87, + 91, + 96, + 0, + 128, + 253, + 91, + 97, + 0, + 247, + 97, + 2, + 92, + 86, + 91, + 96, + 64, + 81, + 97, + 1, + 4, + 145, + 144, + 97, + 8, + 187, + 86, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 243, + 91, + 97, + 1, + 32, + 97, + 1, + 27, + 54, + 96, + 4, + 97, + 9, + 44, + 86, + 91, + 97, + 2, + 234, + 86, + 91, + 96, + 64, + 81, + 144, + 21, + 21, + 129, + 82, + 96, + 32, + 1, + 97, + 1, + 4, + 86, + 91, + 97, + 1, + 57, + 96, + 2, + 84, + 129, + 86, + 91, + 96, + 64, + 81, + 144, + 129, + 82, + 96, + 32, + 1, + 97, + 1, + 4, + 86, + 91, + 97, + 1, + 32, + 97, + 1, + 85, + 54, + 96, + 4, + 97, + 9, + 86, + 86, + 91, + 97, + 3, + 86, + 86, + 91, + 97, + 1, + 129, + 127, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 129, + 86, + 91, + 96, + 64, + 81, + 96, + 255, + 144, + 145, + 22, + 129, + 82, + 96, + 32, + 1, + 97, + 1, + 4, + 86, + 91, + 97, + 1, + 57, + 97, + 4, + 54, + 86, + 91, + 97, + 1, + 174, + 97, + 1, + 169, + 54, + 96, + 4, + 97, + 9, + 44, + 86, + 91, + 97, + 4, + 145, + 86, + 91, + 0, + 91, + 97, + 1, + 57, + 97, + 1, + 190, + 54, + 96, + 4, + 97, + 9, + 146, + 86, + 91, + 96, + 3, + 96, + 32, + 82, + 96, + 0, + 144, + 129, + 82, + 96, + 64, + 144, + 32, + 84, + 129, + 86, + 91, + 97, + 1, + 57, + 97, + 1, + 222, + 54, + 96, + 4, + 97, + 9, + 146, + 86, + 91, + 96, + 5, + 96, + 32, + 82, + 96, + 0, + 144, + 129, + 82, + 96, + 64, + 144, + 32, + 84, + 129, + 86, + 91, + 97, + 0, + 247, + 97, + 4, + 159, + 86, + 91, + 97, + 1, + 174, + 97, + 2, + 6, + 54, + 96, + 4, + 97, + 9, + 44, + 86, + 91, + 97, + 4, + 172, + 86, + 91, + 97, + 1, + 32, + 97, + 2, + 25, + 54, + 96, + 4, + 97, + 9, + 44, + 86, + 91, + 97, + 4, + 182, + 86, + 91, + 97, + 1, + 174, + 97, + 2, + 44, + 54, + 96, + 4, + 97, + 9, + 180, + 86, + 91, + 97, + 5, + 28, + 86, + 91, + 97, + 1, + 57, + 97, + 2, + 63, + 54, + 96, + 4, + 97, + 10, + 39, + 86, + 91, + 96, + 4, + 96, + 32, + 144, + 129, + 82, + 96, + 0, + 146, + 131, + 82, + 96, + 64, + 128, + 132, + 32, + 144, + 145, + 82, + 144, + 130, + 82, + 144, + 32, + 84, + 129, + 86, + 91, + 96, + 0, + 128, + 84, + 97, + 2, + 105, + 144, + 97, + 10, + 90, + 86, + 91, + 128, + 96, + 31, + 1, + 96, + 32, + 128, + 145, + 4, + 2, + 96, + 32, + 1, + 96, + 64, + 81, + 144, + 129, + 1, + 96, + 64, + 82, + 128, + 146, + 145, + 144, + 129, + 129, + 82, + 96, + 32, + 1, + 130, + 128, + 84, + 97, + 2, + 149, + 144, + 97, + 10, + 90, + 86, + 91, + 128, + 21, + 97, + 2, + 226, + 87, + 128, + 96, + 31, + 16, + 97, + 2, + 183, + 87, + 97, + 1, + 0, + 128, + 131, + 84, + 4, + 2, + 131, + 82, + 145, + 96, + 32, + 1, + 145, + 97, + 2, + 226, + 86, + 91, + 130, + 1, + 145, + 144, + 96, + 0, + 82, + 96, + 32, + 96, + 0, + 32, + 144, + 91, + 129, + 84, + 129, + 82, + 144, + 96, + 1, + 1, + 144, + 96, + 32, + 1, + 128, + 131, + 17, + 97, + 2, + 197, + 87, + 130, + 144, + 3, + 96, + 31, + 22, + 130, + 1, + 145, + 91, + 80, + 80, + 80, + 80, + 80, + 129, + 86, + 91, + 51, + 96, + 0, + 129, + 129, + 82, + 96, + 4, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 135, + 22, + 128, + 133, + 82, + 146, + 82, + 128, + 131, + 32, + 133, + 144, + 85, + 81, + 145, + 146, + 144, + 145, + 127, + 140, + 91, + 225, + 229, + 235, + 236, + 125, + 91, + 209, + 79, + 113, + 66, + 125, + 30, + 132, + 243, + 221, + 3, + 20, + 192, + 247, + 178, + 41, + 30, + 91, + 32, + 10, + 200, + 199, + 195, + 185, + 37, + 144, + 97, + 3, + 69, + 144, + 134, + 129, + 82, + 96, + 32, + 1, + 144, + 86, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 80, + 96, + 1, + 146, + 145, + 80, + 80, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 4, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 51, + 132, + 82, + 144, + 145, + 82, + 129, + 32, + 84, + 96, + 0, + 25, + 129, + 20, + 97, + 3, + 178, + 87, + 97, + 3, + 141, + 131, + 130, + 97, + 10, + 170, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 134, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 4, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 51, + 132, + 82, + 144, + 145, + 82, + 144, + 32, + 85, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 133, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 3, + 96, + 32, + 82, + 96, + 64, + 129, + 32, + 128, + 84, + 133, + 146, + 144, + 97, + 3, + 218, + 144, + 132, + 144, + 97, + 10, + 170, + 86, + 91, + 144, + 145, + 85, + 80, + 80, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 128, + 133, + 22, + 96, + 0, + 129, + 129, + 82, + 96, + 3, + 96, + 32, + 82, + 96, + 64, + 144, + 129, + 144, + 32, + 128, + 84, + 135, + 1, + 144, + 85, + 81, + 144, + 145, + 135, + 22, + 144, + 96, + 0, + 128, + 81, + 96, + 32, + 97, + 11, + 117, + 131, + 57, + 129, + 81, + 145, + 82, + 144, + 97, + 4, + 35, + 144, + 135, + 129, + 82, + 96, + 32, + 1, + 144, + 86, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 80, + 96, + 1, + 148, + 147, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 127, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 70, + 20, + 97, + 4, + 108, + 87, + 97, + 4, + 103, + 97, + 7, + 101, + 86, + 91, + 144, + 80, + 144, + 86, + 91, + 80, + 127, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 144, + 86, + 91, + 97, + 4, + 155, + 130, + 130, + 97, + 7, + 255, + 86, + 91, + 80, + 80, + 86, + 91, + 96, + 1, + 128, + 84, + 97, + 2, + 105, + 144, + 97, + 10, + 90, + 86, + 91, + 97, + 4, + 155, + 130, + 130, + 97, + 8, + 89, + 86, + 91, + 51, + 96, + 0, + 144, + 129, + 82, + 96, + 3, + 96, + 32, + 82, + 96, + 64, + 129, + 32, + 128, + 84, + 131, + 145, + 144, + 131, + 144, + 97, + 4, + 215, + 144, + 132, + 144, + 97, + 10, + 170, + 86, + 91, + 144, + 145, + 85, + 80, + 80, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 22, + 96, + 0, + 129, + 129, + 82, + 96, + 3, + 96, + 32, + 82, + 96, + 64, + 144, + 129, + 144, + 32, + 128, + 84, + 133, + 1, + 144, + 85, + 81, + 51, + 144, + 96, + 0, + 128, + 81, + 96, + 32, + 97, + 11, + 117, + 131, + 57, + 129, + 81, + 145, + 82, + 144, + 97, + 3, + 69, + 144, + 134, + 129, + 82, + 96, + 32, + 1, + 144, + 86, + 91, + 66, + 132, + 16, + 21, + 97, + 5, + 113, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 23, + 96, + 36, + 130, + 1, + 82, + 127, + 80, + 69, + 82, + 77, + 73, + 84, + 95, + 68, + 69, + 65, + 68, + 76, + 73, + 78, + 69, + 95, + 69, + 88, + 80, + 73, + 82, + 69, + 68, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 96, + 68, + 130, + 1, + 82, + 96, + 100, + 1, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 0, + 96, + 1, + 97, + 5, + 125, + 97, + 4, + 54, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 138, + 129, + 22, + 96, + 0, + 129, + 129, + 82, + 96, + 5, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 145, + 130, + 144, + 32, + 128, + 84, + 96, + 1, + 129, + 1, + 144, + 145, + 85, + 130, + 81, + 127, + 110, + 113, + 237, + 174, + 18, + 177, + 185, + 127, + 77, + 31, + 96, + 55, + 15, + 239, + 16, + 16, + 95, + 162, + 250, + 174, + 1, + 38, + 17, + 74, + 22, + 156, + 100, + 132, + 93, + 97, + 38, + 201, + 129, + 132, + 1, + 82, + 128, + 132, + 1, + 148, + 144, + 148, + 82, + 147, + 141, + 22, + 96, + 96, + 132, + 1, + 82, + 96, + 128, + 131, + 1, + 140, + 144, + 82, + 96, + 160, + 131, + 1, + 147, + 144, + 147, + 82, + 96, + 192, + 128, + 131, + 1, + 139, + 144, + 82, + 129, + 81, + 128, + 132, + 3, + 144, + 145, + 1, + 129, + 82, + 96, + 224, + 131, + 1, + 144, + 145, + 82, + 128, + 81, + 146, + 1, + 145, + 144, + 145, + 32, + 97, + 25, + 1, + 96, + 240, + 27, + 97, + 1, + 0, + 131, + 1, + 82, + 97, + 1, + 2, + 130, + 1, + 146, + 144, + 146, + 82, + 97, + 1, + 34, + 129, + 1, + 145, + 144, + 145, + 82, + 97, + 1, + 66, + 1, + 96, + 64, + 128, + 81, + 96, + 31, + 25, + 129, + 132, + 3, + 1, + 129, + 82, + 130, + 130, + 82, + 128, + 81, + 96, + 32, + 145, + 130, + 1, + 32, + 96, + 0, + 132, + 82, + 144, + 131, + 1, + 128, + 131, + 82, + 82, + 96, + 255, + 135, + 22, + 144, + 130, + 1, + 82, + 96, + 96, + 129, + 1, + 133, + 144, + 82, + 96, + 128, + 129, + 1, + 132, + 144, + 82, + 96, + 160, + 1, + 96, + 32, + 96, + 64, + 81, + 96, + 32, + 129, + 3, + 144, + 128, + 132, + 3, + 144, + 133, + 90, + 250, + 21, + 128, + 21, + 97, + 6, + 137, + 87, + 61, + 96, + 0, + 128, + 62, + 61, + 96, + 0, + 253, + 91, + 80, + 80, + 96, + 64, + 81, + 96, + 31, + 25, + 1, + 81, + 145, + 80, + 80, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 129, + 22, + 21, + 128, + 21, + 144, + 97, + 6, + 191, + 87, + 80, + 135, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 20, + 91, + 97, + 6, + 252, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 14, + 96, + 36, + 130, + 1, + 82, + 109, + 36, + 167, + 43, + 32, + 166, + 36, + 162, + 47, + 169, + 164, + 163, + 167, + 34, + 169, + 96, + 145, + 27, + 96, + 68, + 130, + 1, + 82, + 96, + 100, + 1, + 97, + 5, + 104, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 144, + 129, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 4, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 138, + 133, + 22, + 128, + 133, + 82, + 144, + 131, + 82, + 146, + 129, + 144, + 32, + 137, + 144, + 85, + 81, + 136, + 129, + 82, + 145, + 146, + 138, + 22, + 145, + 127, + 140, + 91, + 225, + 229, + 235, + 236, + 125, + 91, + 209, + 79, + 113, + 66, + 125, + 30, + 132, + 243, + 221, + 3, + 20, + 192, + 247, + 178, + 41, + 30, + 91, + 32, + 10, + 200, + 199, + 195, + 185, + 37, + 145, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 127, + 139, + 115, + 195, + 198, + 155, + 184, + 254, + 61, + 81, + 46, + 204, + 76, + 247, + 89, + 204, + 121, + 35, + 159, + 123, + 23, + 155, + 15, + 250, + 202, + 169, + 167, + 93, + 82, + 43, + 57, + 64, + 15, + 96, + 0, + 96, + 64, + 81, + 97, + 7, + 151, + 145, + 144, + 97, + 10, + 193, + 86, + 91, + 96, + 64, + 128, + 81, + 145, + 130, + 144, + 3, + 130, + 32, + 96, + 32, + 131, + 1, + 147, + 144, + 147, + 82, + 129, + 1, + 145, + 144, + 145, + 82, + 127, + 200, + 158, + 253, + 170, + 84, + 192, + 242, + 12, + 122, + 223, + 97, + 40, + 130, + 223, + 9, + 80, + 245, + 169, + 81, + 99, + 126, + 3, + 7, + 205, + 203, + 76, + 103, + 47, + 41, + 139, + 139, + 198, + 96, + 96, + 130, + 1, + 82, + 70, + 96, + 128, + 130, + 1, + 82, + 48, + 96, + 160, + 130, + 1, + 82, + 96, + 192, + 1, + 96, + 64, + 81, + 96, + 32, + 129, + 131, + 3, + 3, + 129, + 82, + 144, + 96, + 64, + 82, + 128, + 81, + 144, + 96, + 32, + 1, + 32, + 144, + 80, + 144, + 86, + 91, + 128, + 96, + 2, + 96, + 0, + 130, + 130, + 84, + 97, + 8, + 17, + 145, + 144, + 97, + 11, + 92, + 86, + 91, + 144, + 145, + 85, + 80, + 80, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 96, + 0, + 129, + 129, + 82, + 96, + 3, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 128, + 84, + 134, + 1, + 144, + 85, + 81, + 132, + 129, + 82, + 96, + 0, + 128, + 81, + 96, + 32, + 97, + 11, + 117, + 131, + 57, + 129, + 81, + 145, + 82, + 145, + 1, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 80, + 80, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 3, + 96, + 32, + 82, + 96, + 64, + 129, + 32, + 128, + 84, + 131, + 146, + 144, + 97, + 8, + 129, + 144, + 132, + 144, + 97, + 10, + 170, + 86, + 91, + 144, + 145, + 85, + 80, + 80, + 96, + 2, + 128, + 84, + 130, + 144, + 3, + 144, + 85, + 96, + 64, + 81, + 129, + 129, + 82, + 96, + 0, + 144, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 132, + 22, + 144, + 96, + 0, + 128, + 81, + 96, + 32, + 97, + 11, + 117, + 131, + 57, + 129, + 81, + 145, + 82, + 144, + 96, + 32, + 1, + 97, + 8, + 77, + 86, + 91, + 96, + 0, + 96, + 32, + 128, + 131, + 82, + 131, + 81, + 128, + 130, + 133, + 1, + 82, + 96, + 0, + 91, + 129, + 129, + 16, + 21, + 97, + 8, + 232, + 87, + 133, + 129, + 1, + 131, + 1, + 81, + 133, + 130, + 1, + 96, + 64, + 1, + 82, + 130, + 1, + 97, + 8, + 204, + 86, + 91, + 129, + 129, + 17, + 21, + 97, + 8, + 250, + 87, + 96, + 0, + 96, + 64, + 131, + 135, + 1, + 1, + 82, + 91, + 80, + 96, + 31, + 1, + 96, + 31, + 25, + 22, + 146, + 144, + 146, + 1, + 96, + 64, + 1, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 128, + 53, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 129, + 22, + 129, + 20, + 97, + 9, + 39, + 87, + 96, + 0, + 128, + 253, + 91, + 145, + 144, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 64, + 131, + 133, + 3, + 18, + 21, + 97, + 9, + 63, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 9, + 72, + 131, + 97, + 9, + 16, + 86, + 91, + 148, + 96, + 32, + 147, + 144, + 147, + 1, + 53, + 147, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 96, + 96, + 132, + 134, + 3, + 18, + 21, + 97, + 9, + 107, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 9, + 116, + 132, + 97, + 9, + 16, + 86, + 91, + 146, + 80, + 97, + 9, + 130, + 96, + 32, + 133, + 1, + 97, + 9, + 16, + 86, + 91, + 145, + 80, + 96, + 64, + 132, + 1, + 53, + 144, + 80, + 146, + 80, + 146, + 80, + 146, + 86, + 91, + 96, + 0, + 96, + 32, + 130, + 132, + 3, + 18, + 21, + 97, + 9, + 164, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 9, + 173, + 130, + 97, + 9, + 16, + 86, + 91, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 128, + 96, + 0, + 128, + 96, + 0, + 96, + 224, + 136, + 138, + 3, + 18, + 21, + 97, + 9, + 207, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 9, + 216, + 136, + 97, + 9, + 16, + 86, + 91, + 150, + 80, + 97, + 9, + 230, + 96, + 32, + 137, + 1, + 97, + 9, + 16, + 86, + 91, + 149, + 80, + 96, + 64, + 136, + 1, + 53, + 148, + 80, + 96, + 96, + 136, + 1, + 53, + 147, + 80, + 96, + 128, + 136, + 1, + 53, + 96, + 255, + 129, + 22, + 129, + 20, + 97, + 10, + 10, + 87, + 96, + 0, + 128, + 253, + 91, + 150, + 153, + 149, + 152, + 80, + 147, + 150, + 146, + 149, + 148, + 96, + 160, + 132, + 1, + 53, + 148, + 80, + 96, + 192, + 144, + 147, + 1, + 53, + 146, + 145, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 64, + 131, + 133, + 3, + 18, + 21, + 97, + 10, + 58, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 10, + 67, + 131, + 97, + 9, + 16, + 86, + 91, + 145, + 80, + 97, + 10, + 81, + 96, + 32, + 132, + 1, + 97, + 9, + 16, + 86, + 91, + 144, + 80, + 146, + 80, + 146, + 144, + 80, + 86, + 91, + 96, + 1, + 129, + 129, + 28, + 144, + 130, + 22, + 128, + 97, + 10, + 110, + 87, + 96, + 127, + 130, + 22, + 145, + 80, + 91, + 96, + 32, + 130, + 16, + 129, + 3, + 97, + 10, + 142, + 87, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 34, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 80, + 145, + 144, + 80, + 86, + 91, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 17, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 96, + 0, + 130, + 130, + 16, + 21, + 97, + 10, + 188, + 87, + 97, + 10, + 188, + 97, + 10, + 148, + 86, + 91, + 80, + 3, + 144, + 86, + 91, + 96, + 0, + 128, + 131, + 84, + 129, + 96, + 1, + 130, + 129, + 28, + 145, + 80, + 128, + 131, + 22, + 128, + 97, + 10, + 221, + 87, + 96, + 127, + 131, + 22, + 146, + 80, + 91, + 96, + 32, + 128, + 132, + 16, + 130, + 3, + 97, + 10, + 252, + 87, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 134, + 82, + 96, + 34, + 96, + 4, + 82, + 96, + 36, + 134, + 253, + 91, + 129, + 128, + 21, + 97, + 11, + 16, + 87, + 96, + 1, + 129, + 20, + 97, + 11, + 33, + 87, + 97, + 11, + 78, + 86, + 91, + 96, + 255, + 25, + 134, + 22, + 137, + 82, + 132, + 137, + 1, + 150, + 80, + 97, + 11, + 78, + 86, + 91, + 96, + 0, + 138, + 129, + 82, + 96, + 32, + 144, + 32, + 96, + 0, + 91, + 134, + 129, + 16, + 21, + 97, + 11, + 70, + 87, + 129, + 84, + 139, + 130, + 1, + 82, + 144, + 133, + 1, + 144, + 131, + 1, + 97, + 11, + 45, + 86, + 91, + 80, + 80, + 132, + 137, + 1, + 150, + 80, + 91, + 80, + 148, + 152, + 151, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 130, + 25, + 130, + 17, + 21, + 97, + 11, + 111, + 87, + 97, + 11, + 111, + 97, + 10, + 148, + 86, + 91, + 80, + 1, + 144, + 86, + 254, + 221, + 242, + 82, + 173, + 27, + 226, + 200, + 155, + 105, + 194, + 176, + 104, + 252, + 55, + 141, + 170, + 149, + 43, + 167, + 241, + 99, + 196, + 161, + 22, + 40, + 245, + 90, + 77, + 245, + 35, + 179, + 239, + 162, + 100, + 105, + 112, + 102, + 115, + 88, + 34, + 18, + 32, + 167, + 204, + 69, + 157, + 95, + 42, + 45, + 14, + 55, + 178, + 98, + 77, + 194, + 152, + 205, + 97, + 76, + 17, + 180, + 234, + 89, + 175, + 84, + 65, + 126, + 136, + 222, + 142, + 67, + 135, + 229, + 127, + 100, + 115, + 111, + 108, + 99, + 67, + 0, + 8, + 13, + 0, + 51, + ]; + ///The deployed bytecode of the contract. + pub static MOCKERC20_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __DEPLOYED_BYTECODE, + ); + pub struct MockERC20(::ethers::contract::Contract); + impl ::core::clone::Clone for MockERC20 { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for MockERC20 { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for MockERC20 { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for MockERC20 { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(stringify!(MockERC20)).field(&self.address()).finish() + } + } + impl MockERC20 { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + MOCKERC20_ABI.clone(), + client, + ), + ) + } + /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. + /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction + /// + /// Notes: + /// - If there are no constructor arguments, you should pass `()` as the argument. + /// - The default poll duration is 7 seconds. + /// - The default number of confirmations is 1 block. + /// + /// + /// # Example + /// + /// Generate contract bindings with `abigen!` and deploy a new contract instance. + /// + /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. + /// + /// ```ignore + /// # async fn deploy(client: ::std::sync::Arc) { + /// abigen!(Greeter, "../greeter.json"); + /// + /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); + /// let msg = greeter_contract.greet().call().await.unwrap(); + /// # } + /// ``` + pub fn deploy( + client: ::std::sync::Arc, + constructor_args: T, + ) -> ::core::result::Result< + ::ethers::contract::builders::ContractDeployer, + ::ethers::contract::ContractError, + > { + let factory = ::ethers::contract::ContractFactory::new( + MOCKERC20_ABI.clone(), + MOCKERC20_BYTECODE.clone().into(), + client, + ); + let deployer = factory.deploy(constructor_args)?; + let deployer = ::ethers::contract::ContractDeployer::new(deployer); + Ok(deployer) + } + ///Calls the contract's `DOMAIN_SEPARATOR` (0x3644e515) function + pub fn domain_separator( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([54, 68, 229, 21], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `allowance` (0xdd62ed3e) function + pub fn allowance( + &self, + p0: ::ethers::core::types::Address, + p1: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([221, 98, 237, 62], (p0, p1)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `approve` (0x095ea7b3) function + pub fn approve( + &self, + spender: ::ethers::core::types::Address, + amount: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([9, 94, 167, 179], (spender, amount)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `balanceOf` (0x70a08231) function + pub fn balance_of( + &self, + p0: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([112, 160, 130, 49], p0) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `burn` (0x9dc29fac) function + pub fn burn( + &self, + from: ::ethers::core::types::Address, + value: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([157, 194, 159, 172], (from, value)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `decimals` (0x313ce567) function + pub fn decimals(&self) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([49, 60, 229, 103], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `mint` (0x40c10f19) function + pub fn mint( + &self, + to: ::ethers::core::types::Address, + value: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([64, 193, 15, 25], (to, value)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `name` (0x06fdde03) function + pub fn name( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([6, 253, 222, 3], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `nonces` (0x7ecebe00) function + pub fn nonces( + &self, + p0: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([126, 206, 190, 0], p0) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `permit` (0xd505accf) function + pub fn permit( + &self, + owner: ::ethers::core::types::Address, + spender: ::ethers::core::types::Address, + value: ::ethers::core::types::U256, + deadline: ::ethers::core::types::U256, + v: u8, + r: [u8; 32], + s: [u8; 32], + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash( + [213, 5, 172, 207], + (owner, spender, value, deadline, v, r, s), + ) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `symbol` (0x95d89b41) function + pub fn symbol( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([149, 216, 155, 65], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `totalSupply` (0x18160ddd) function + pub fn total_supply( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([24, 22, 13, 221], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `transfer` (0xa9059cbb) function + pub fn transfer( + &self, + to: ::ethers::core::types::Address, + amount: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([169, 5, 156, 187], (to, amount)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `transferFrom` (0x23b872dd) function + pub fn transfer_from( + &self, + from: ::ethers::core::types::Address, + to: ::ethers::core::types::Address, + amount: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([35, 184, 114, 221], (from, to, amount)) + .expect("method not found (this should never happen)") + } + ///Gets the contract's `Approval` event + pub fn approval_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + ApprovalFilter, + > { + self.0.event() + } + ///Gets the contract's `Transfer` event + pub fn transfer_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + TransferFilter, + > { + self.0.event() + } + /// Returns an `Event` builder for all the events of this contract. + pub fn events( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + MockERC20Events, + > { + self.0.event_with_filter(::core::default::Default::default()) + } + } + impl From<::ethers::contract::Contract> + for MockERC20 { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "Approval", abi = "Approval(address,address,uint256)")] + pub struct ApprovalFilter { + #[ethevent(indexed)] + pub owner: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub spender: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "Transfer", abi = "Transfer(address,address,uint256)")] + pub struct TransferFilter { + #[ethevent(indexed)] + pub from: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub to: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + ///Container type for all of the contract's events + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum MockERC20Events { + ApprovalFilter(ApprovalFilter), + TransferFilter(TransferFilter), + } + impl ::ethers::contract::EthLogDecode for MockERC20Events { + fn decode_log( + log: &::ethers::core::abi::RawLog, + ) -> ::core::result::Result { + if let Ok(decoded) = ApprovalFilter::decode_log(log) { + return Ok(MockERC20Events::ApprovalFilter(decoded)); + } + if let Ok(decoded) = TransferFilter::decode_log(log) { + return Ok(MockERC20Events::TransferFilter(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData) + } + } + impl ::core::fmt::Display for MockERC20Events { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::ApprovalFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::TransferFilter(element) => ::core::fmt::Display::fmt(element, f), + } + } + } + impl ::core::convert::From for MockERC20Events { + fn from(value: ApprovalFilter) -> Self { + Self::ApprovalFilter(value) + } + } + impl ::core::convert::From for MockERC20Events { + fn from(value: TransferFilter) -> Self { + Self::TransferFilter(value) + } + } + ///Container type for all input parameters for the `DOMAIN_SEPARATOR` function with signature `DOMAIN_SEPARATOR()` and selector `0x3644e515` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "DOMAIN_SEPARATOR", abi = "DOMAIN_SEPARATOR()")] + pub struct DomainSeparatorCall; + ///Container type for all input parameters for the `allowance` function with signature `allowance(address,address)` and selector `0xdd62ed3e` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "allowance", abi = "allowance(address,address)")] + pub struct AllowanceCall( + pub ::ethers::core::types::Address, + pub ::ethers::core::types::Address, + ); + ///Container type for all input parameters for the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "approve", abi = "approve(address,uint256)")] + pub struct ApproveCall { + pub spender: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "balanceOf", abi = "balanceOf(address)")] + pub struct BalanceOfCall(pub ::ethers::core::types::Address); + ///Container type for all input parameters for the `burn` function with signature `burn(address,uint256)` and selector `0x9dc29fac` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "burn", abi = "burn(address,uint256)")] + pub struct BurnCall { + pub from: ::ethers::core::types::Address, + pub value: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `decimals` function with signature `decimals()` and selector `0x313ce567` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "decimals", abi = "decimals()")] + pub struct DecimalsCall; + ///Container type for all input parameters for the `mint` function with signature `mint(address,uint256)` and selector `0x40c10f19` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "mint", abi = "mint(address,uint256)")] + pub struct MintCall { + pub to: ::ethers::core::types::Address, + pub value: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `name` function with signature `name()` and selector `0x06fdde03` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "name", abi = "name()")] + pub struct NameCall; + ///Container type for all input parameters for the `nonces` function with signature `nonces(address)` and selector `0x7ecebe00` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "nonces", abi = "nonces(address)")] + pub struct NoncesCall(pub ::ethers::core::types::Address); + ///Container type for all input parameters for the `permit` function with signature `permit(address,address,uint256,uint256,uint8,bytes32,bytes32)` and selector `0xd505accf` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall( + name = "permit", + abi = "permit(address,address,uint256,uint256,uint8,bytes32,bytes32)" + )] + pub struct PermitCall { + pub owner: ::ethers::core::types::Address, + pub spender: ::ethers::core::types::Address, + pub value: ::ethers::core::types::U256, + pub deadline: ::ethers::core::types::U256, + pub v: u8, + pub r: [u8; 32], + pub s: [u8; 32], + } + ///Container type for all input parameters for the `symbol` function with signature `symbol()` and selector `0x95d89b41` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "symbol", abi = "symbol()")] + pub struct SymbolCall; + ///Container type for all input parameters for the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "totalSupply", abi = "totalSupply()")] + pub struct TotalSupplyCall; + ///Container type for all input parameters for the `transfer` function with signature `transfer(address,uint256)` and selector `0xa9059cbb` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "transfer", abi = "transfer(address,uint256)")] + pub struct TransferCall { + pub to: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "transferFrom", abi = "transferFrom(address,address,uint256)")] + pub struct TransferFromCall { + pub from: ::ethers::core::types::Address, + pub to: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + ///Container type for all of the contract's call + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum MockERC20Calls { + DomainSeparator(DomainSeparatorCall), + Allowance(AllowanceCall), + Approve(ApproveCall), + BalanceOf(BalanceOfCall), + Burn(BurnCall), + Decimals(DecimalsCall), + Mint(MintCall), + Name(NameCall), + Nonces(NoncesCall), + Permit(PermitCall), + Symbol(SymbolCall), + TotalSupply(TotalSupplyCall), + Transfer(TransferCall), + TransferFrom(TransferFromCall), + } + impl ::ethers::core::abi::AbiDecode for MockERC20Calls { + fn decode( + data: impl AsRef<[u8]>, + ) -> ::core::result::Result { + let data = data.as_ref(); + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::DomainSeparator(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Allowance(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Approve(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::BalanceOf(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Burn(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Decimals(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Mint(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Name(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Nonces(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Permit(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Symbol(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::TotalSupply(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Transfer(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::TransferFrom(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData.into()) + } + } + impl ::ethers::core::abi::AbiEncode for MockERC20Calls { + fn encode(self) -> Vec { + match self { + Self::DomainSeparator(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Allowance(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Approve(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::BalanceOf(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Burn(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Decimals(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Mint(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Name(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Nonces(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Permit(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Symbol(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::TotalSupply(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Transfer(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::TransferFrom(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + } + } + } + impl ::core::fmt::Display for MockERC20Calls { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::DomainSeparator(element) => ::core::fmt::Display::fmt(element, f), + Self::Allowance(element) => ::core::fmt::Display::fmt(element, f), + Self::Approve(element) => ::core::fmt::Display::fmt(element, f), + Self::BalanceOf(element) => ::core::fmt::Display::fmt(element, f), + Self::Burn(element) => ::core::fmt::Display::fmt(element, f), + Self::Decimals(element) => ::core::fmt::Display::fmt(element, f), + Self::Mint(element) => ::core::fmt::Display::fmt(element, f), + Self::Name(element) => ::core::fmt::Display::fmt(element, f), + Self::Nonces(element) => ::core::fmt::Display::fmt(element, f), + Self::Permit(element) => ::core::fmt::Display::fmt(element, f), + Self::Symbol(element) => ::core::fmt::Display::fmt(element, f), + Self::TotalSupply(element) => ::core::fmt::Display::fmt(element, f), + Self::Transfer(element) => ::core::fmt::Display::fmt(element, f), + Self::TransferFrom(element) => ::core::fmt::Display::fmt(element, f), + } + } + } + impl ::core::convert::From for MockERC20Calls { + fn from(value: DomainSeparatorCall) -> Self { + Self::DomainSeparator(value) + } + } + impl ::core::convert::From for MockERC20Calls { + fn from(value: AllowanceCall) -> Self { + Self::Allowance(value) + } + } + impl ::core::convert::From for MockERC20Calls { + fn from(value: ApproveCall) -> Self { + Self::Approve(value) + } + } + impl ::core::convert::From for MockERC20Calls { + fn from(value: BalanceOfCall) -> Self { + Self::BalanceOf(value) + } + } + impl ::core::convert::From for MockERC20Calls { + fn from(value: BurnCall) -> Self { + Self::Burn(value) + } + } + impl ::core::convert::From for MockERC20Calls { + fn from(value: DecimalsCall) -> Self { + Self::Decimals(value) + } + } + impl ::core::convert::From for MockERC20Calls { + fn from(value: MintCall) -> Self { + Self::Mint(value) + } + } + impl ::core::convert::From for MockERC20Calls { + fn from(value: NameCall) -> Self { + Self::Name(value) + } + } + impl ::core::convert::From for MockERC20Calls { + fn from(value: NoncesCall) -> Self { + Self::Nonces(value) + } + } + impl ::core::convert::From for MockERC20Calls { + fn from(value: PermitCall) -> Self { + Self::Permit(value) + } + } + impl ::core::convert::From for MockERC20Calls { + fn from(value: SymbolCall) -> Self { + Self::Symbol(value) + } + } + impl ::core::convert::From for MockERC20Calls { + fn from(value: TotalSupplyCall) -> Self { + Self::TotalSupply(value) + } + } + impl ::core::convert::From for MockERC20Calls { + fn from(value: TransferCall) -> Self { + Self::Transfer(value) + } + } + impl ::core::convert::From for MockERC20Calls { + fn from(value: TransferFromCall) -> Self { + Self::TransferFrom(value) + } + } + ///Container type for all return fields from the `DOMAIN_SEPARATOR` function with signature `DOMAIN_SEPARATOR()` and selector `0x3644e515` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct DomainSeparatorReturn(pub [u8; 32]); + ///Container type for all return fields from the `allowance` function with signature `allowance(address,address)` and selector `0xdd62ed3e` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct AllowanceReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct ApproveReturn(pub bool); + ///Container type for all return fields from the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct BalanceOfReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `decimals` function with signature `decimals()` and selector `0x313ce567` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct DecimalsReturn(pub u8); + ///Container type for all return fields from the `name` function with signature `name()` and selector `0x06fdde03` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct NameReturn(pub ::std::string::String); + ///Container type for all return fields from the `nonces` function with signature `nonces(address)` and selector `0x7ecebe00` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct NoncesReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `symbol` function with signature `symbol()` and selector `0x95d89b41` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct SymbolReturn(pub ::std::string::String); + ///Container type for all return fields from the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct TotalSupplyReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `transfer` function with signature `transfer(address,uint256)` and selector `0xa9059cbb` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct TransferReturn(pub bool); + ///Container type for all return fields from the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct TransferFromReturn(pub bool); +} +pub use objective::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod objective { + pub use super::__shared_types::*; + #[rustfmt::skip] + const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaLiquidity\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Allocate\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint16\",\"name\":\"priorityFee\",\"type\":\"uint16\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint16\",\"name\":\"fee\",\"type\":\"uint16\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint16\",\"name\":\"jit\",\"type\":\"uint16\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"ChangeParameters\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"feeAssetDec\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"feeQuoteDec\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true}],\"type\":\"event\",\"name\":\"Collect\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"pairId\",\"type\":\"uint24\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint8\",\"name\":\"decimalsAsset\",\"type\":\"uint8\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint8\",\"name\":\"decimalsQuote\",\"type\":\"uint8\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"CreatePair\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"bool\",\"name\":\"isMutable\",\"type\":\"bool\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"CreatePool\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaLiquidity\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Deallocate\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"DecreaseReserveBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"DecreaseUserBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Deposit\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"IncreaseReserveBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"IncreaseUserBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"sellAsset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"input\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"tokenOut\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"output\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"feeAmountDec\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"int256\",\"name\":\"invariantWad\",\"type\":\"int256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Swap\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"prevFee\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"nextFee\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"UpdateProtocolFee\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\",\"name\":\"VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"WETH\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"priorityFee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"fee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"jit\",\"type\":\"uint16\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"changeParameters\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"int256\",\"name\":\"invariant\",\"type\":\"int256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"reserveX\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"reserveY\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"checkInvariant\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\",\"components\":[]},{\"internalType\":\"int256\",\"name\":\"nextInvariant\",\"type\":\"int256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"checkPool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"int256\",\"name\":\"delta\",\"type\":\"int256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"checkPosition\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"bool\",\"name\":\"sellAsset\",\"type\":\"bool\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"reserveIn\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"computeMaxInput\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"computeReservesFromPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"reserveX\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"reserveY\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"deposit\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"draw\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"fund\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"bool\",\"name\":\"sellAsset\",\"type\":\"bool\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getAmountOut\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"output\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"int128\",\"name\":\"deltaLiquidity\",\"type\":\"int128\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getLiquidityDeltas\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"deltaAsset\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"deltaQuote\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getMaxLiquidity\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"deltaLiquidity\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getNetBalance\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPairId\",\"outputs\":[{\"internalType\":\"uint24\",\"name\":\"pairId\",\"type\":\"uint24\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPairNonce\",\"outputs\":[{\"internalType\":\"uint24\",\"name\":\"\",\"type\":\"uint24\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"pairNonce\",\"type\":\"uint24\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPoolNonce\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPoolReserves\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getReserve\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getVirtualPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getVirtualReservesPerLiquidity\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"deltaAsset\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"deltaQuote\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\",\"components\":[]}],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"multiprocess\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"pairId\",\"type\":\"uint24\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"pairs\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"tokenAsset\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsAsset\",\"type\":\"uint8\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"tokenQuote\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsQuote\",\"type\":\"uint8\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"pools\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"virtualX\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"virtualY\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"liquidity\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint32\",\"name\":\"lastTimestamp\",\"type\":\"uint32\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"controller\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"invariantGrowthGlobal\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthGlobalAsset\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthGlobalQuote\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"struct PortfolioCurve\",\"name\":\"\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"uint128\",\"name\":\"maxPrice\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"jit\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"fee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"duration\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"volatility\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"priorityFee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint32\",\"name\":\"createdAt\",\"type\":\"uint32\",\"components\":[]},{\"internalType\":\"bool\",\"name\":\"perpetual\",\"type\":\"bool\",\"components\":[]}]},{\"internalType\":\"struct PortfolioPair\",\"name\":\"\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"address\",\"name\":\"tokenAsset\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsAsset\",\"type\":\"uint8\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"tokenQuote\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsQuote\",\"type\":\"uint8\",\"components\":[]}]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"positions\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"freeLiquidity\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint32\",\"name\":\"lastTimestamp\",\"type\":\"uint32\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"invariantGrowthLast\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthAssetLast\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthQuoteLast\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"tokensOwedAsset\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"tokensOwedQuote\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"invariantOwed\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"setProtocolFee\",\"outputs\":[]}]"; + ///The parsed JSON ABI of the contract. + pub static OBJECTIVE_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| + ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); + pub struct Objective(::ethers::contract::Contract); + impl ::core::clone::Clone for Objective { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for Objective { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for Objective { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for Objective { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(stringify!(Objective)).field(&self.address()).finish() + } + } + impl Objective { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + OBJECTIVE_ABI.clone(), + client, + ), + ) + } + ///Calls the contract's `REGISTRY` (0x06433b1b) function + pub fn registry( + &self, + ) -> ::ethers::contract::builders::ContractCall< + M, + ::ethers::core::types::Address, + > { + self.0 + .method_hash([6, 67, 59, 27], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `VERSION` (0xffa1ad74) function + pub fn version( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([255, 161, 173, 116], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `WETH` (0xad5c4648) function + pub fn weth( + &self, + ) -> ::ethers::contract::builders::ContractCall< + M, + ::ethers::core::types::Address, + > { + self.0 + .method_hash([173, 92, 70, 72], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `changeParameters` (0xaf777855) function + pub fn change_parameters( + &self, + pool_id: u64, + priority_fee: u16, + fee: u16, + jit: u16, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([175, 119, 120, 85], (pool_id, priority_fee, fee, jit)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `checkInvariant` (0x2f337da5) function + pub fn check_invariant( + &self, + pool_id: u64, + invariant: ::ethers::core::types::I256, + reserve_x: ::ethers::core::types::U256, + reserve_y: ::ethers::core::types::U256, + timestamp: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall< + M, + (bool, ::ethers::core::types::I256), + > { + self.0 + .method_hash( + [47, 51, 125, 165], + (pool_id, invariant, reserve_x, reserve_y, timestamp), + ) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `checkPool` (0xa68aaa41) function + pub fn check_pool( + &self, + pool_id: u64, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([166, 138, 170, 65], pool_id) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `checkPosition` (0x2cc6641e) function + pub fn check_position( + &self, + pool_id: u64, + owner: ::ethers::core::types::Address, + delta: ::ethers::core::types::I256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([44, 198, 100, 30], (pool_id, owner, delta)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `computeMaxInput` (0x989bafba) function + pub fn compute_max_input( + &self, + pool_id: u64, + sell_asset: bool, + reserve_in: ::ethers::core::types::U256, + liquidity: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash( + [152, 155, 175, 186], + (pool_id, sell_asset, reserve_in, liquidity), + ) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `computeReservesFromPrice` (0xc48d887a) function + pub fn compute_reserves_from_price( + &self, + pool_id: u64, + price: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall< + M, + (::ethers::core::types::U256, ::ethers::core::types::U256), + > { + self.0 + .method_hash([196, 141, 136, 122], (pool_id, price)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `deposit` (0xd0e30db0) function + pub fn deposit(&self) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([208, 227, 13, 176], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `draw` (0xad24d6a0) function + pub fn draw( + &self, + token: ::ethers::core::types::Address, + amount: ::ethers::core::types::U256, + to: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([173, 36, 214, 160], (token, amount, to)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `fund` (0x7b1837de) function + pub fn fund( + &self, + token: ::ethers::core::types::Address, + amount: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([123, 24, 55, 222], (token, amount)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getAmountOut` (0x7dae4890) function + pub fn get_amount_out( + &self, + pool_id: u64, + sell_asset: bool, + amount_in: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([125, 174, 72, 144], (pool_id, sell_asset, amount_in)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getBalance` (0xd4fac45d) function + pub fn get_balance( + &self, + owner: ::ethers::core::types::Address, + token: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([212, 250, 196, 93], (owner, token)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getLiquidityDeltas` (0x8992f20a) function + pub fn get_liquidity_deltas( + &self, + pool_id: u64, + delta_liquidity: i128, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([137, 146, 242, 10], (pool_id, delta_liquidity)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getMaxLiquidity` (0xd6b7dec5) function + pub fn get_max_liquidity( + &self, + pool_id: u64, + delta_asset: ::ethers::core::types::U256, + delta_quote: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([214, 183, 222, 197], (pool_id, delta_asset, delta_quote)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getNetBalance` (0x4dc68a90) function + pub fn get_net_balance( + &self, + token: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([77, 198, 138, 144], token) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getPairId` (0x3f92a339) function + pub fn get_pair_id( + &self, + asset: ::ethers::core::types::Address, + quote: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([63, 146, 163, 57], (asset, quote)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getPairNonce` (0x078888d6) function + pub fn get_pair_nonce( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([7, 136, 136, 214], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getPoolNonce` (0xa5cd8a49) function + pub fn get_pool_nonce( + &self, + pair_nonce: u32, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([165, 205, 138, 73], pair_nonce) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getPoolReserves` (0x2afb9df8) function + pub fn get_pool_reserves( + &self, + pool_id: u64, + ) -> ::ethers::contract::builders::ContractCall< + M, + (::ethers::core::types::U256, ::ethers::core::types::U256), + > { + self.0 + .method_hash([42, 251, 157, 248], pool_id) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getReserve` (0xc9a396e9) function + pub fn get_reserve( + &self, + token: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([201, 163, 150, 233], token) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getVirtualPrice` (0x61b7ea6a) function + pub fn get_virtual_price( + &self, + pool_id: u64, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([97, 183, 234, 106], pool_id) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getVirtualReservesPerLiquidity` (0x1a4b905b) function + pub fn get_virtual_reserves_per_liquidity( + &self, + pool_id: u64, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([26, 75, 144, 91], pool_id) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `multiprocess` (0xa0fdf413) function + pub fn multiprocess( + &self, + data: ::ethers::core::types::Bytes, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([160, 253, 244, 19], data) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `pairs` (0x5e47663c) function + pub fn pairs( + &self, + pair_id: u32, + ) -> ::ethers::contract::builders::ContractCall< + M, + (::ethers::core::types::Address, u8, ::ethers::core::types::Address, u8), + > { + self.0 + .method_hash([94, 71, 102, 60], pair_id) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `pools` (0x89a5f084) function + pub fn pools( + &self, + pool_id: u64, + ) -> ::ethers::contract::builders::ContractCall< + M, + ( + u128, + u128, + u128, + u32, + ::ethers::core::types::Address, + ::ethers::core::types::U256, + ::ethers::core::types::U256, + ::ethers::core::types::U256, + PortfolioCurve, + PortfolioPair, + ), + > { + self.0 + .method_hash([137, 165, 240, 132], pool_id) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `positions` (0xb68513ea) function + pub fn positions( + &self, + owner: ::ethers::core::types::Address, + pool_id: u64, + ) -> ::ethers::contract::builders::ContractCall< + M, + ( + u128, + u32, + ::ethers::core::types::U256, + ::ethers::core::types::U256, + ::ethers::core::types::U256, + u128, + u128, + u128, + ), + > { + self.0 + .method_hash([182, 133, 19, 234], (owner, pool_id)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `setProtocolFee` (0x787dce3d) function + pub fn set_protocol_fee( + &self, + fee: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([120, 125, 206, 61], fee) + .expect("method not found (this should never happen)") + } + ///Gets the contract's `Allocate` event + pub fn allocate_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + AllocateFilter, + > { + self.0.event() + } + ///Gets the contract's `ChangeParameters` event + pub fn change_parameters_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + ChangeParametersFilter, + > { + self.0.event() + } + ///Gets the contract's `Collect` event + pub fn collect_filter( + &self, + ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, CollectFilter> { + self.0.event() + } + ///Gets the contract's `CreatePair` event + pub fn create_pair_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + CreatePairFilter, + > { + self.0.event() + } + ///Gets the contract's `CreatePool` event + pub fn create_pool_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + CreatePoolFilter, + > { + self.0.event() + } + ///Gets the contract's `Deallocate` event + pub fn deallocate_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + DeallocateFilter, + > { + self.0.event() + } + ///Gets the contract's `DecreaseReserveBalance` event + pub fn decrease_reserve_balance_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + DecreaseReserveBalanceFilter, + > { + self.0.event() + } + ///Gets the contract's `DecreaseUserBalance` event + pub fn decrease_user_balance_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + DecreaseUserBalanceFilter, + > { + self.0.event() + } + ///Gets the contract's `Deposit` event + pub fn deposit_filter( + &self, + ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, DepositFilter> { + self.0.event() + } + ///Gets the contract's `IncreaseReserveBalance` event + pub fn increase_reserve_balance_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + IncreaseReserveBalanceFilter, + > { + self.0.event() + } + ///Gets the contract's `IncreaseUserBalance` event + pub fn increase_user_balance_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + IncreaseUserBalanceFilter, + > { + self.0.event() + } + ///Gets the contract's `Swap` event + pub fn swap_filter( + &self, + ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, SwapFilter> { + self.0.event() + } + ///Gets the contract's `UpdateProtocolFee` event + pub fn update_protocol_fee_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + UpdateProtocolFeeFilter, + > { + self.0.event() + } + /// Returns an `Event` builder for all the events of this contract. + pub fn events( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + ObjectiveEvents, + > { + self.0.event_with_filter(::core::default::Default::default()) + } + } + impl From<::ethers::contract::Contract> + for Objective { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "Allocate", + abi = "Allocate(uint64,address,address,uint256,uint256,uint256)" + )] + pub struct AllocateFilter { + #[ethevent(indexed)] + pub pool_id: u64, + #[ethevent(indexed)] + pub asset: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub quote: ::ethers::core::types::Address, + pub delta_asset: ::ethers::core::types::U256, + pub delta_quote: ::ethers::core::types::U256, + pub delta_liquidity: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "ChangeParameters", + abi = "ChangeParameters(uint64,uint16,uint16,uint16)" + )] + pub struct ChangeParametersFilter { + #[ethevent(indexed)] + pub pool_id: u64, + #[ethevent(indexed)] + pub priority_fee: u16, + #[ethevent(indexed)] + pub fee: u16, + pub jit: u16, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "Collect", + abi = "Collect(uint64,address,uint256,address,uint256,address)" + )] + pub struct CollectFilter { + pub pool_id: u64, + #[ethevent(indexed)] + pub account: ::ethers::core::types::Address, + pub fee_asset_dec: ::ethers::core::types::U256, + #[ethevent(indexed)] + pub asset: ::ethers::core::types::Address, + pub fee_quote_dec: ::ethers::core::types::U256, + #[ethevent(indexed)] + pub quote: ::ethers::core::types::Address, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "CreatePair", + abi = "CreatePair(uint24,address,address,uint8,uint8)" + )] + pub struct CreatePairFilter { + #[ethevent(indexed)] + pub pair_id: u32, + #[ethevent(indexed)] + pub asset: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub quote: ::ethers::core::types::Address, + pub decimals_asset: u8, + pub decimals_quote: u8, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "CreatePool", + abi = "CreatePool(uint64,bool,address,address,uint256)" + )] + pub struct CreatePoolFilter { + #[ethevent(indexed)] + pub pool_id: u64, + pub is_mutable: bool, + #[ethevent(indexed)] + pub asset: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub quote: ::ethers::core::types::Address, + pub price: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "Deallocate", + abi = "Deallocate(uint64,address,address,uint256,uint256,uint256)" + )] + pub struct DeallocateFilter { + #[ethevent(indexed)] + pub pool_id: u64, + #[ethevent(indexed)] + pub asset: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub quote: ::ethers::core::types::Address, + pub delta_asset: ::ethers::core::types::U256, + pub delta_quote: ::ethers::core::types::U256, + pub delta_liquidity: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "DecreaseReserveBalance", + abi = "DecreaseReserveBalance(address,uint256)" + )] + pub struct DecreaseReserveBalanceFilter { + #[ethevent(indexed)] + pub token: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "DecreaseUserBalance", + abi = "DecreaseUserBalance(address,address,uint256)" + )] + pub struct DecreaseUserBalanceFilter { + #[ethevent(indexed)] + pub account: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub token: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "Deposit", abi = "Deposit(address,uint256)")] + pub struct DepositFilter { + #[ethevent(indexed)] + pub account: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "IncreaseReserveBalance", + abi = "IncreaseReserveBalance(address,uint256)" + )] + pub struct IncreaseReserveBalanceFilter { + #[ethevent(indexed)] + pub token: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "IncreaseUserBalance", + abi = "IncreaseUserBalance(address,address,uint256)" + )] + pub struct IncreaseUserBalanceFilter { + #[ethevent(indexed)] + pub account: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub token: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "Swap", + abi = "Swap(uint64,uint256,address,uint256,address,uint256,uint256,int256)" + )] + pub struct SwapFilter { + #[ethevent(indexed)] + pub pool_id: u64, + pub price: ::ethers::core::types::U256, + #[ethevent(indexed)] + pub sell_asset: ::ethers::core::types::Address, + pub input: ::ethers::core::types::U256, + #[ethevent(indexed)] + pub token_out: ::ethers::core::types::Address, + pub output: ::ethers::core::types::U256, + pub fee_amount_dec: ::ethers::core::types::U256, + pub invariant_wad: ::ethers::core::types::I256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "UpdateProtocolFee", abi = "UpdateProtocolFee(uint256,uint256)")] + pub struct UpdateProtocolFeeFilter { + pub prev_fee: ::ethers::core::types::U256, + pub next_fee: ::ethers::core::types::U256, + } + ///Container type for all of the contract's events + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum ObjectiveEvents { + AllocateFilter(AllocateFilter), + ChangeParametersFilter(ChangeParametersFilter), + CollectFilter(CollectFilter), + CreatePairFilter(CreatePairFilter), + CreatePoolFilter(CreatePoolFilter), + DeallocateFilter(DeallocateFilter), + DecreaseReserveBalanceFilter(DecreaseReserveBalanceFilter), + DecreaseUserBalanceFilter(DecreaseUserBalanceFilter), + DepositFilter(DepositFilter), + IncreaseReserveBalanceFilter(IncreaseReserveBalanceFilter), + IncreaseUserBalanceFilter(IncreaseUserBalanceFilter), + SwapFilter(SwapFilter), + UpdateProtocolFeeFilter(UpdateProtocolFeeFilter), + } + impl ::ethers::contract::EthLogDecode for ObjectiveEvents { + fn decode_log( + log: &::ethers::core::abi::RawLog, + ) -> ::core::result::Result { + if let Ok(decoded) = AllocateFilter::decode_log(log) { + return Ok(ObjectiveEvents::AllocateFilter(decoded)); + } + if let Ok(decoded) = ChangeParametersFilter::decode_log(log) { + return Ok(ObjectiveEvents::ChangeParametersFilter(decoded)); + } + if let Ok(decoded) = CollectFilter::decode_log(log) { + return Ok(ObjectiveEvents::CollectFilter(decoded)); + } + if let Ok(decoded) = CreatePairFilter::decode_log(log) { + return Ok(ObjectiveEvents::CreatePairFilter(decoded)); + } + if let Ok(decoded) = CreatePoolFilter::decode_log(log) { + return Ok(ObjectiveEvents::CreatePoolFilter(decoded)); + } + if let Ok(decoded) = DeallocateFilter::decode_log(log) { + return Ok(ObjectiveEvents::DeallocateFilter(decoded)); + } + if let Ok(decoded) = DecreaseReserveBalanceFilter::decode_log(log) { + return Ok(ObjectiveEvents::DecreaseReserveBalanceFilter(decoded)); + } + if let Ok(decoded) = DecreaseUserBalanceFilter::decode_log(log) { + return Ok(ObjectiveEvents::DecreaseUserBalanceFilter(decoded)); + } + if let Ok(decoded) = DepositFilter::decode_log(log) { + return Ok(ObjectiveEvents::DepositFilter(decoded)); + } + if let Ok(decoded) = IncreaseReserveBalanceFilter::decode_log(log) { + return Ok(ObjectiveEvents::IncreaseReserveBalanceFilter(decoded)); + } + if let Ok(decoded) = IncreaseUserBalanceFilter::decode_log(log) { + return Ok(ObjectiveEvents::IncreaseUserBalanceFilter(decoded)); + } + if let Ok(decoded) = SwapFilter::decode_log(log) { + return Ok(ObjectiveEvents::SwapFilter(decoded)); + } + if let Ok(decoded) = UpdateProtocolFeeFilter::decode_log(log) { + return Ok(ObjectiveEvents::UpdateProtocolFeeFilter(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData) + } + } + impl ::core::fmt::Display for ObjectiveEvents { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::AllocateFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::ChangeParametersFilter(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::CollectFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::CreatePairFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::CreatePoolFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::DeallocateFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::DecreaseReserveBalanceFilter(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::DecreaseUserBalanceFilter(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::DepositFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::IncreaseReserveBalanceFilter(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::IncreaseUserBalanceFilter(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::SwapFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::UpdateProtocolFeeFilter(element) => { + ::core::fmt::Display::fmt(element, f) + } + } + } + } + impl ::core::convert::From for ObjectiveEvents { + fn from(value: AllocateFilter) -> Self { + Self::AllocateFilter(value) + } + } + impl ::core::convert::From for ObjectiveEvents { + fn from(value: ChangeParametersFilter) -> Self { + Self::ChangeParametersFilter(value) + } + } + impl ::core::convert::From for ObjectiveEvents { + fn from(value: CollectFilter) -> Self { + Self::CollectFilter(value) + } + } + impl ::core::convert::From for ObjectiveEvents { + fn from(value: CreatePairFilter) -> Self { + Self::CreatePairFilter(value) + } + } + impl ::core::convert::From for ObjectiveEvents { + fn from(value: CreatePoolFilter) -> Self { + Self::CreatePoolFilter(value) + } + } + impl ::core::convert::From for ObjectiveEvents { + fn from(value: DeallocateFilter) -> Self { + Self::DeallocateFilter(value) + } + } + impl ::core::convert::From for ObjectiveEvents { + fn from(value: DecreaseReserveBalanceFilter) -> Self { + Self::DecreaseReserveBalanceFilter(value) + } + } + impl ::core::convert::From for ObjectiveEvents { + fn from(value: DecreaseUserBalanceFilter) -> Self { + Self::DecreaseUserBalanceFilter(value) + } + } + impl ::core::convert::From for ObjectiveEvents { + fn from(value: DepositFilter) -> Self { + Self::DepositFilter(value) + } + } + impl ::core::convert::From for ObjectiveEvents { + fn from(value: IncreaseReserveBalanceFilter) -> Self { + Self::IncreaseReserveBalanceFilter(value) + } + } + impl ::core::convert::From for ObjectiveEvents { + fn from(value: IncreaseUserBalanceFilter) -> Self { + Self::IncreaseUserBalanceFilter(value) + } + } + impl ::core::convert::From for ObjectiveEvents { + fn from(value: SwapFilter) -> Self { + Self::SwapFilter(value) + } + } + impl ::core::convert::From for ObjectiveEvents { + fn from(value: UpdateProtocolFeeFilter) -> Self { + Self::UpdateProtocolFeeFilter(value) + } + } + ///Container type for all input parameters for the `REGISTRY` function with signature `REGISTRY()` and selector `0x06433b1b` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "REGISTRY", abi = "REGISTRY()")] + pub struct RegistryCall; + ///Container type for all input parameters for the `VERSION` function with signature `VERSION()` and selector `0xffa1ad74` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "VERSION", abi = "VERSION()")] + pub struct VersionCall; + ///Container type for all input parameters for the `WETH` function with signature `WETH()` and selector `0xad5c4648` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "WETH", abi = "WETH()")] + pub struct WethCall; + ///Container type for all input parameters for the `changeParameters` function with signature `changeParameters(uint64,uint16,uint16,uint16)` and selector `0xaf777855` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall( + name = "changeParameters", + abi = "changeParameters(uint64,uint16,uint16,uint16)" + )] + pub struct ChangeParametersCall { + pub pool_id: u64, + pub priority_fee: u16, + pub fee: u16, + pub jit: u16, + } + ///Container type for all input parameters for the `checkInvariant` function with signature `checkInvariant(uint64,int256,uint256,uint256,uint256)` and selector `0x2f337da5` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall( + name = "checkInvariant", + abi = "checkInvariant(uint64,int256,uint256,uint256,uint256)" + )] + pub struct CheckInvariantCall { + pub pool_id: u64, + pub invariant: ::ethers::core::types::I256, + pub reserve_x: ::ethers::core::types::U256, + pub reserve_y: ::ethers::core::types::U256, + pub timestamp: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `checkPool` function with signature `checkPool(uint64)` and selector `0xa68aaa41` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "checkPool", abi = "checkPool(uint64)")] + pub struct CheckPoolCall { + pub pool_id: u64, + } + ///Container type for all input parameters for the `checkPosition` function with signature `checkPosition(uint64,address,int256)` and selector `0x2cc6641e` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "checkPosition", abi = "checkPosition(uint64,address,int256)")] + pub struct CheckPositionCall { + pub pool_id: u64, + pub owner: ::ethers::core::types::Address, + pub delta: ::ethers::core::types::I256, + } + ///Container type for all input parameters for the `computeMaxInput` function with signature `computeMaxInput(uint64,bool,uint256,uint256)` and selector `0x989bafba` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall( + name = "computeMaxInput", + abi = "computeMaxInput(uint64,bool,uint256,uint256)" + )] + pub struct ComputeMaxInputCall { + pub pool_id: u64, + pub sell_asset: bool, + pub reserve_in: ::ethers::core::types::U256, + pub liquidity: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `computeReservesFromPrice` function with signature `computeReservesFromPrice(uint64,uint256)` and selector `0xc48d887a` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall( + name = "computeReservesFromPrice", + abi = "computeReservesFromPrice(uint64,uint256)" + )] + pub struct ComputeReservesFromPriceCall { + pub pool_id: u64, + pub price: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `deposit` function with signature `deposit()` and selector `0xd0e30db0` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "deposit", abi = "deposit()")] + pub struct DepositCall; + ///Container type for all input parameters for the `draw` function with signature `draw(address,uint256,address)` and selector `0xad24d6a0` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "draw", abi = "draw(address,uint256,address)")] + pub struct DrawCall { + pub token: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + pub to: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `fund` function with signature `fund(address,uint256)` and selector `0x7b1837de` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "fund", abi = "fund(address,uint256)")] + pub struct FundCall { + pub token: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `getAmountOut` function with signature `getAmountOut(uint64,bool,uint256)` and selector `0x7dae4890` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getAmountOut", abi = "getAmountOut(uint64,bool,uint256)")] + pub struct GetAmountOutCall { + pub pool_id: u64, + pub sell_asset: bool, + pub amount_in: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `getBalance` function with signature `getBalance(address,address)` and selector `0xd4fac45d` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getBalance", abi = "getBalance(address,address)")] + pub struct GetBalanceCall { + pub owner: ::ethers::core::types::Address, + pub token: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `getLiquidityDeltas` function with signature `getLiquidityDeltas(uint64,int128)` and selector `0x8992f20a` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getLiquidityDeltas", abi = "getLiquidityDeltas(uint64,int128)")] + pub struct GetLiquidityDeltasCall { + pub pool_id: u64, + pub delta_liquidity: i128, + } + ///Container type for all input parameters for the `getMaxLiquidity` function with signature `getMaxLiquidity(uint64,uint256,uint256)` and selector `0xd6b7dec5` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getMaxLiquidity", abi = "getMaxLiquidity(uint64,uint256,uint256)")] + pub struct GetMaxLiquidityCall { + pub pool_id: u64, + pub delta_asset: ::ethers::core::types::U256, + pub delta_quote: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `getNetBalance` function with signature `getNetBalance(address)` and selector `0x4dc68a90` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getNetBalance", abi = "getNetBalance(address)")] + pub struct GetNetBalanceCall { + pub token: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `getPairId` function with signature `getPairId(address,address)` and selector `0x3f92a339` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getPairId", abi = "getPairId(address,address)")] + pub struct GetPairIdCall { + pub asset: ::ethers::core::types::Address, + pub quote: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `getPairNonce` function with signature `getPairNonce()` and selector `0x078888d6` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getPairNonce", abi = "getPairNonce()")] + pub struct GetPairNonceCall; + ///Container type for all input parameters for the `getPoolNonce` function with signature `getPoolNonce(uint24)` and selector `0xa5cd8a49` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getPoolNonce", abi = "getPoolNonce(uint24)")] + pub struct GetPoolNonceCall { + pub pair_nonce: u32, + } + ///Container type for all input parameters for the `getPoolReserves` function with signature `getPoolReserves(uint64)` and selector `0x2afb9df8` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getPoolReserves", abi = "getPoolReserves(uint64)")] + pub struct GetPoolReservesCall { + pub pool_id: u64, + } + ///Container type for all input parameters for the `getReserve` function with signature `getReserve(address)` and selector `0xc9a396e9` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getReserve", abi = "getReserve(address)")] + pub struct GetReserveCall { + pub token: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `getVirtualPrice` function with signature `getVirtualPrice(uint64)` and selector `0x61b7ea6a` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getVirtualPrice", abi = "getVirtualPrice(uint64)")] + pub struct GetVirtualPriceCall { + pub pool_id: u64, + } + ///Container type for all input parameters for the `getVirtualReservesPerLiquidity` function with signature `getVirtualReservesPerLiquidity(uint64)` and selector `0x1a4b905b` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall( + name = "getVirtualReservesPerLiquidity", + abi = "getVirtualReservesPerLiquidity(uint64)" + )] + pub struct GetVirtualReservesPerLiquidityCall { + pub pool_id: u64, + } + ///Container type for all input parameters for the `multiprocess` function with signature `multiprocess(bytes)` and selector `0xa0fdf413` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "multiprocess", abi = "multiprocess(bytes)")] + pub struct MultiprocessCall { + pub data: ::ethers::core::types::Bytes, + } + ///Container type for all input parameters for the `pairs` function with signature `pairs(uint24)` and selector `0x5e47663c` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "pairs", abi = "pairs(uint24)")] + pub struct PairsCall { + pub pair_id: u32, + } + ///Container type for all input parameters for the `pools` function with signature `pools(uint64)` and selector `0x89a5f084` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "pools", abi = "pools(uint64)")] + pub struct PoolsCall { + pub pool_id: u64, + } + ///Container type for all input parameters for the `positions` function with signature `positions(address,uint64)` and selector `0xb68513ea` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "positions", abi = "positions(address,uint64)")] + pub struct PositionsCall { + pub owner: ::ethers::core::types::Address, + pub pool_id: u64, + } + ///Container type for all input parameters for the `setProtocolFee` function with signature `setProtocolFee(uint256)` and selector `0x787dce3d` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "setProtocolFee", abi = "setProtocolFee(uint256)")] + pub struct SetProtocolFeeCall { + pub fee: ::ethers::core::types::U256, + } + ///Container type for all of the contract's call + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum ObjectiveCalls { + Registry(RegistryCall), + Version(VersionCall), + Weth(WethCall), + ChangeParameters(ChangeParametersCall), + CheckInvariant(CheckInvariantCall), + CheckPool(CheckPoolCall), + CheckPosition(CheckPositionCall), + ComputeMaxInput(ComputeMaxInputCall), + ComputeReservesFromPrice(ComputeReservesFromPriceCall), + Deposit(DepositCall), + Draw(DrawCall), + Fund(FundCall), + GetAmountOut(GetAmountOutCall), + GetBalance(GetBalanceCall), + GetLiquidityDeltas(GetLiquidityDeltasCall), + GetMaxLiquidity(GetMaxLiquidityCall), + GetNetBalance(GetNetBalanceCall), + GetPairId(GetPairIdCall), + GetPairNonce(GetPairNonceCall), + GetPoolNonce(GetPoolNonceCall), + GetPoolReserves(GetPoolReservesCall), + GetReserve(GetReserveCall), + GetVirtualPrice(GetVirtualPriceCall), + GetVirtualReservesPerLiquidity(GetVirtualReservesPerLiquidityCall), + Multiprocess(MultiprocessCall), + Pairs(PairsCall), + Pools(PoolsCall), + Positions(PositionsCall), + SetProtocolFee(SetProtocolFeeCall), + } + impl ::ethers::core::abi::AbiDecode for ObjectiveCalls { + fn decode( + data: impl AsRef<[u8]>, + ) -> ::core::result::Result { + let data = data.as_ref(); + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Registry(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Version(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Weth(decoded)); + } + if let Ok(decoded) + = ::decode( + data, + ) { + return Ok(Self::ChangeParameters(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::CheckInvariant(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::CheckPool(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::CheckPosition(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::ComputeMaxInput(decoded)); + } + if let Ok(decoded) + = ::decode( + data, + ) { + return Ok(Self::ComputeReservesFromPrice(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Deposit(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Draw(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Fund(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetAmountOut(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetBalance(decoded)); + } + if let Ok(decoded) + = ::decode( + data, + ) { + return Ok(Self::GetLiquidityDeltas(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetMaxLiquidity(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetNetBalance(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetPairId(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetPairNonce(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetPoolNonce(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetPoolReserves(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetReserve(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetVirtualPrice(decoded)); + } + if let Ok(decoded) + = ::decode( + data, + ) { + return Ok(Self::GetVirtualReservesPerLiquidity(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Multiprocess(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Pairs(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Pools(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Positions(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::SetProtocolFee(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData.into()) + } + } + impl ::ethers::core::abi::AbiEncode for ObjectiveCalls { + fn encode(self) -> Vec { + match self { + Self::Registry(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Version(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Weth(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::ChangeParameters(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::CheckInvariant(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::CheckPool(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::CheckPosition(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::ComputeMaxInput(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::ComputeReservesFromPrice(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Deposit(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Draw(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Fund(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::GetAmountOut(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetBalance(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetLiquidityDeltas(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetMaxLiquidity(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetNetBalance(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetPairId(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetPairNonce(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetPoolNonce(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetPoolReserves(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetReserve(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetVirtualPrice(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetVirtualReservesPerLiquidity(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Multiprocess(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Pairs(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Pools(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Positions(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::SetProtocolFee(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + } + } + } + impl ::core::fmt::Display for ObjectiveCalls { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::Registry(element) => ::core::fmt::Display::fmt(element, f), + Self::Version(element) => ::core::fmt::Display::fmt(element, f), + Self::Weth(element) => ::core::fmt::Display::fmt(element, f), + Self::ChangeParameters(element) => ::core::fmt::Display::fmt(element, f), + Self::CheckInvariant(element) => ::core::fmt::Display::fmt(element, f), + Self::CheckPool(element) => ::core::fmt::Display::fmt(element, f), + Self::CheckPosition(element) => ::core::fmt::Display::fmt(element, f), + Self::ComputeMaxInput(element) => ::core::fmt::Display::fmt(element, f), + Self::ComputeReservesFromPrice(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::Deposit(element) => ::core::fmt::Display::fmt(element, f), + Self::Draw(element) => ::core::fmt::Display::fmt(element, f), + Self::Fund(element) => ::core::fmt::Display::fmt(element, f), + Self::GetAmountOut(element) => ::core::fmt::Display::fmt(element, f), + Self::GetBalance(element) => ::core::fmt::Display::fmt(element, f), + Self::GetLiquidityDeltas(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::GetMaxLiquidity(element) => ::core::fmt::Display::fmt(element, f), + Self::GetNetBalance(element) => ::core::fmt::Display::fmt(element, f), + Self::GetPairId(element) => ::core::fmt::Display::fmt(element, f), + Self::GetPairNonce(element) => ::core::fmt::Display::fmt(element, f), + Self::GetPoolNonce(element) => ::core::fmt::Display::fmt(element, f), + Self::GetPoolReserves(element) => ::core::fmt::Display::fmt(element, f), + Self::GetReserve(element) => ::core::fmt::Display::fmt(element, f), + Self::GetVirtualPrice(element) => ::core::fmt::Display::fmt(element, f), + Self::GetVirtualReservesPerLiquidity(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::Multiprocess(element) => ::core::fmt::Display::fmt(element, f), + Self::Pairs(element) => ::core::fmt::Display::fmt(element, f), + Self::Pools(element) => ::core::fmt::Display::fmt(element, f), + Self::Positions(element) => ::core::fmt::Display::fmt(element, f), + Self::SetProtocolFee(element) => ::core::fmt::Display::fmt(element, f), + } + } + } + impl ::core::convert::From for ObjectiveCalls { + fn from(value: RegistryCall) -> Self { + Self::Registry(value) + } + } + impl ::core::convert::From for ObjectiveCalls { + fn from(value: VersionCall) -> Self { + Self::Version(value) + } + } + impl ::core::convert::From for ObjectiveCalls { + fn from(value: WethCall) -> Self { + Self::Weth(value) + } + } + impl ::core::convert::From for ObjectiveCalls { + fn from(value: ChangeParametersCall) -> Self { + Self::ChangeParameters(value) + } + } + impl ::core::convert::From for ObjectiveCalls { + fn from(value: CheckInvariantCall) -> Self { + Self::CheckInvariant(value) + } + } + impl ::core::convert::From for ObjectiveCalls { + fn from(value: CheckPoolCall) -> Self { + Self::CheckPool(value) + } + } + impl ::core::convert::From for ObjectiveCalls { + fn from(value: CheckPositionCall) -> Self { + Self::CheckPosition(value) + } + } + impl ::core::convert::From for ObjectiveCalls { + fn from(value: ComputeMaxInputCall) -> Self { + Self::ComputeMaxInput(value) + } + } + impl ::core::convert::From for ObjectiveCalls { + fn from(value: ComputeReservesFromPriceCall) -> Self { + Self::ComputeReservesFromPrice(value) + } + } + impl ::core::convert::From for ObjectiveCalls { + fn from(value: DepositCall) -> Self { + Self::Deposit(value) + } + } + impl ::core::convert::From for ObjectiveCalls { + fn from(value: DrawCall) -> Self { + Self::Draw(value) + } + } + impl ::core::convert::From for ObjectiveCalls { + fn from(value: FundCall) -> Self { + Self::Fund(value) + } + } + impl ::core::convert::From for ObjectiveCalls { + fn from(value: GetAmountOutCall) -> Self { + Self::GetAmountOut(value) + } + } + impl ::core::convert::From for ObjectiveCalls { + fn from(value: GetBalanceCall) -> Self { + Self::GetBalance(value) + } + } + impl ::core::convert::From for ObjectiveCalls { + fn from(value: GetLiquidityDeltasCall) -> Self { + Self::GetLiquidityDeltas(value) + } + } + impl ::core::convert::From for ObjectiveCalls { + fn from(value: GetMaxLiquidityCall) -> Self { + Self::GetMaxLiquidity(value) + } + } + impl ::core::convert::From for ObjectiveCalls { + fn from(value: GetNetBalanceCall) -> Self { + Self::GetNetBalance(value) + } + } + impl ::core::convert::From for ObjectiveCalls { + fn from(value: GetPairIdCall) -> Self { + Self::GetPairId(value) + } + } + impl ::core::convert::From for ObjectiveCalls { + fn from(value: GetPairNonceCall) -> Self { + Self::GetPairNonce(value) + } + } + impl ::core::convert::From for ObjectiveCalls { + fn from(value: GetPoolNonceCall) -> Self { + Self::GetPoolNonce(value) + } + } + impl ::core::convert::From for ObjectiveCalls { + fn from(value: GetPoolReservesCall) -> Self { + Self::GetPoolReserves(value) + } + } + impl ::core::convert::From for ObjectiveCalls { + fn from(value: GetReserveCall) -> Self { + Self::GetReserve(value) + } + } + impl ::core::convert::From for ObjectiveCalls { + fn from(value: GetVirtualPriceCall) -> Self { + Self::GetVirtualPrice(value) + } + } + impl ::core::convert::From for ObjectiveCalls { + fn from(value: GetVirtualReservesPerLiquidityCall) -> Self { + Self::GetVirtualReservesPerLiquidity(value) + } + } + impl ::core::convert::From for ObjectiveCalls { + fn from(value: MultiprocessCall) -> Self { + Self::Multiprocess(value) + } + } + impl ::core::convert::From for ObjectiveCalls { + fn from(value: PairsCall) -> Self { + Self::Pairs(value) + } + } + impl ::core::convert::From for ObjectiveCalls { + fn from(value: PoolsCall) -> Self { + Self::Pools(value) + } + } + impl ::core::convert::From for ObjectiveCalls { + fn from(value: PositionsCall) -> Self { + Self::Positions(value) + } + } + impl ::core::convert::From for ObjectiveCalls { + fn from(value: SetProtocolFeeCall) -> Self { + Self::SetProtocolFee(value) + } + } + ///Container type for all return fields from the `REGISTRY` function with signature `REGISTRY()` and selector `0x06433b1b` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct RegistryReturn(pub ::ethers::core::types::Address); + ///Container type for all return fields from the `VERSION` function with signature `VERSION()` and selector `0xffa1ad74` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct VersionReturn(pub ::std::string::String); + ///Container type for all return fields from the `WETH` function with signature `WETH()` and selector `0xad5c4648` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct WethReturn(pub ::ethers::core::types::Address); + ///Container type for all return fields from the `checkInvariant` function with signature `checkInvariant(uint64,int256,uint256,uint256,uint256)` and selector `0x2f337da5` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct CheckInvariantReturn { + pub success: bool, + pub next_invariant: ::ethers::core::types::I256, + } + ///Container type for all return fields from the `checkPool` function with signature `checkPool(uint64)` and selector `0xa68aaa41` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct CheckPoolReturn(pub bool); + ///Container type for all return fields from the `checkPosition` function with signature `checkPosition(uint64,address,int256)` and selector `0x2cc6641e` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct CheckPositionReturn(pub bool); + ///Container type for all return fields from the `computeMaxInput` function with signature `computeMaxInput(uint64,bool,uint256,uint256)` and selector `0x989bafba` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct ComputeMaxInputReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `computeReservesFromPrice` function with signature `computeReservesFromPrice(uint64,uint256)` and selector `0xc48d887a` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct ComputeReservesFromPriceReturn { + pub reserve_x: ::ethers::core::types::U256, + pub reserve_y: ::ethers::core::types::U256, + } + ///Container type for all return fields from the `getAmountOut` function with signature `getAmountOut(uint64,bool,uint256)` and selector `0x7dae4890` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetAmountOutReturn { + pub output: ::ethers::core::types::U256, + } + ///Container type for all return fields from the `getBalance` function with signature `getBalance(address,address)` and selector `0xd4fac45d` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetBalanceReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `getLiquidityDeltas` function with signature `getLiquidityDeltas(uint64,int128)` and selector `0x8992f20a` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetLiquidityDeltasReturn { + pub delta_asset: u128, + pub delta_quote: u128, + } + ///Container type for all return fields from the `getMaxLiquidity` function with signature `getMaxLiquidity(uint64,uint256,uint256)` and selector `0xd6b7dec5` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetMaxLiquidityReturn { + pub delta_liquidity: u128, + } + ///Container type for all return fields from the `getNetBalance` function with signature `getNetBalance(address)` and selector `0x4dc68a90` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetNetBalanceReturn(pub ::ethers::core::types::I256); + ///Container type for all return fields from the `getPairId` function with signature `getPairId(address,address)` and selector `0x3f92a339` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetPairIdReturn { + pub pair_id: u32, + } + ///Container type for all return fields from the `getPairNonce` function with signature `getPairNonce()` and selector `0x078888d6` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetPairNonceReturn(pub u32); + ///Container type for all return fields from the `getPoolNonce` function with signature `getPoolNonce(uint24)` and selector `0xa5cd8a49` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetPoolNonceReturn(pub u32); + ///Container type for all return fields from the `getPoolReserves` function with signature `getPoolReserves(uint64)` and selector `0x2afb9df8` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetPoolReservesReturn { + pub delta_asset: ::ethers::core::types::U256, + pub delta_quote: ::ethers::core::types::U256, + } + ///Container type for all return fields from the `getReserve` function with signature `getReserve(address)` and selector `0xc9a396e9` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetReserveReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `getVirtualPrice` function with signature `getVirtualPrice(uint64)` and selector `0x61b7ea6a` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetVirtualPriceReturn { + pub price: ::ethers::core::types::U256, + } + ///Container type for all return fields from the `getVirtualReservesPerLiquidity` function with signature `getVirtualReservesPerLiquidity(uint64)` and selector `0x1a4b905b` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetVirtualReservesPerLiquidityReturn { + pub delta_asset: u128, + pub delta_quote: u128, + } + ///Container type for all return fields from the `pairs` function with signature `pairs(uint24)` and selector `0x5e47663c` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct PairsReturn { + pub token_asset: ::ethers::core::types::Address, + pub decimals_asset: u8, + pub token_quote: ::ethers::core::types::Address, + pub decimals_quote: u8, + } + ///Container type for all return fields from the `pools` function with signature `pools(uint64)` and selector `0x89a5f084` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct PoolsReturn { + pub virtual_x: u128, + pub virtual_y: u128, + pub liquidity: u128, + pub last_timestamp: u32, + pub controller: ::ethers::core::types::Address, + pub invariant_growth_global: ::ethers::core::types::U256, + pub fee_growth_global_asset: ::ethers::core::types::U256, + pub fee_growth_global_quote: ::ethers::core::types::U256, + pub p8: PortfolioCurve, + pub p9: PortfolioPair, + } + ///Container type for all return fields from the `positions` function with signature `positions(address,uint64)` and selector `0xb68513ea` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct PositionsReturn { + pub free_liquidity: u128, + pub last_timestamp: u32, + pub invariant_growth_last: ::ethers::core::types::U256, + pub fee_growth_asset_last: ::ethers::core::types::U256, + pub fee_growth_quote_last: ::ethers::core::types::U256, + pub tokens_owed_asset: u128, + pub tokens_owed_quote: u128, + pub invariant_owed: u128, + } +} +pub use portfolio_lib::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod portfolio_lib { + #[rustfmt::skip] + const __ABI: &str = "[]"; + ///The parsed JSON ABI of the contract. + pub static PORTFOLIOLIB_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| + ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); + pub struct PortfolioLib(::ethers::contract::Contract); + impl ::core::clone::Clone for PortfolioLib { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for PortfolioLib { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for PortfolioLib { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for PortfolioLib { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(stringify!(PortfolioLib)).field(&self.address()).finish() + } + } + impl PortfolioLib { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + PORTFOLIOLIB_ABI.clone(), + client, + ), + ) + } + } + impl From<::ethers::contract::Contract> + for PortfolioLib { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } +} +pub use portfolio_like::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod portfolio_like { + #[rustfmt::skip] + const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"draw\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"setProtocolFee\",\"outputs\":[]}]"; + ///The parsed JSON ABI of the contract. + pub static PORTFOLIOLIKE_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| + ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); + pub struct PortfolioLike(::ethers::contract::Contract); + impl ::core::clone::Clone for PortfolioLike { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for PortfolioLike { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for PortfolioLike { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for PortfolioLike { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(stringify!(PortfolioLike)).field(&self.address()).finish() + } + } + impl PortfolioLike { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + PORTFOLIOLIKE_ABI.clone(), + client, + ), + ) + } + ///Calls the contract's `draw` (0xad24d6a0) function + pub fn draw( + &self, + p0: ::ethers::core::types::Address, + p1: ::ethers::core::types::U256, + p2: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([173, 36, 214, 160], (p0, p1, p2)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `setProtocolFee` (0x787dce3d) function + pub fn set_protocol_fee( + &self, + p0: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([120, 125, 206, 61], p0) + .expect("method not found (this should never happen)") + } + } + impl From<::ethers::contract::Contract> + for PortfolioLike { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } + ///Container type for all input parameters for the `draw` function with signature `draw(address,uint256,address)` and selector `0xad24d6a0` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "draw", abi = "draw(address,uint256,address)")] + pub struct DrawCall( + pub ::ethers::core::types::Address, + pub ::ethers::core::types::U256, + pub ::ethers::core::types::Address, + ); + ///Container type for all input parameters for the `setProtocolFee` function with signature `setProtocolFee(uint256)` and selector `0x787dce3d` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "setProtocolFee", abi = "setProtocolFee(uint256)")] + pub struct SetProtocolFeeCall(pub ::ethers::core::types::U256); + ///Container type for all of the contract's call + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum PortfolioLikeCalls { + Draw(DrawCall), + SetProtocolFee(SetProtocolFeeCall), + } + impl ::ethers::core::abi::AbiDecode for PortfolioLikeCalls { + fn decode( + data: impl AsRef<[u8]>, + ) -> ::core::result::Result { + let data = data.as_ref(); + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Draw(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::SetProtocolFee(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData.into()) + } + } + impl ::ethers::core::abi::AbiEncode for PortfolioLikeCalls { + fn encode(self) -> Vec { + match self { + Self::Draw(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::SetProtocolFee(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + } + } + } + impl ::core::fmt::Display for PortfolioLikeCalls { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::Draw(element) => ::core::fmt::Display::fmt(element, f), + Self::SetProtocolFee(element) => ::core::fmt::Display::fmt(element, f), + } + } + } + impl ::core::convert::From for PortfolioLikeCalls { + fn from(value: DrawCall) -> Self { + Self::Draw(value) + } + } + impl ::core::convert::From for PortfolioLikeCalls { + fn from(value: SetProtocolFeeCall) -> Self { + Self::SetProtocolFee(value) + } + } +} +pub use portfolio_virtual::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod portfolio_virtual { + pub use super::__shared_types::*; + #[rustfmt::skip] + const __ABI: &str = "[{\"inputs\":[],\"type\":\"error\",\"name\":\"DrawBalance\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"EtherTransferFail\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"delta\",\"type\":\"uint256\",\"components\":[]}],\"type\":\"error\",\"name\":\"InsufficientReserve\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"InvalidBalance\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\",\"components\":[]}],\"type\":\"error\",\"name\":\"InvalidBytesLength\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\",\"components\":[]}],\"type\":\"error\",\"name\":\"InvalidDecimals\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"fee\",\"type\":\"uint16\",\"components\":[]}],\"type\":\"error\",\"name\":\"InvalidFee\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"InvalidInstruction\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"prev\",\"type\":\"int256\",\"components\":[]},{\"internalType\":\"int256\",\"name\":\"next\",\"type\":\"int256\",\"components\":[]}],\"type\":\"error\",\"name\":\"InvalidInvariant\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"pointer\",\"type\":\"uint256\",\"components\":[]}],\"type\":\"error\",\"name\":\"InvalidJump\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"InvalidPair\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"InvalidReentrancy\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"InvalidSettlement\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"InvalidTransfer\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"distance\",\"type\":\"uint256\",\"components\":[]}],\"type\":\"error\",\"name\":\"JitLiquidity\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"int256\",\"name\":\"net\",\"type\":\"int256\",\"components\":[]}],\"type\":\"error\",\"name\":\"NegativeBalance\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"type\":\"error\",\"name\":\"NonExistentPool\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"type\":\"error\",\"name\":\"NonExistentPosition\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"NotController\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"pairId\",\"type\":\"uint24\",\"components\":[]}],\"type\":\"error\",\"name\":\"PairExists\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"PoolExpired\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"SameTokenError\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"ZeroAmounts\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"ZeroInput\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"ZeroLiquidity\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"ZeroOutput\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"ZeroPrice\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"ZeroValue\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaLiquidity\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Allocate\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint16\",\"name\":\"priorityFee\",\"type\":\"uint16\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint16\",\"name\":\"fee\",\"type\":\"uint16\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint16\",\"name\":\"jit\",\"type\":\"uint16\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"ChangeParameters\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"feeAssetDec\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"feeQuoteDec\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true}],\"type\":\"event\",\"name\":\"Collect\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"pairId\",\"type\":\"uint24\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint8\",\"name\":\"decimalsAsset\",\"type\":\"uint8\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint8\",\"name\":\"decimalsQuote\",\"type\":\"uint8\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"CreatePair\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"bool\",\"name\":\"isMutable\",\"type\":\"bool\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"CreatePool\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaLiquidity\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Deallocate\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"DecreaseReserveBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"DecreaseUserBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Deposit\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"IncreaseReserveBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"IncreaseUserBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"sellAsset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"input\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"tokenOut\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"output\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"feeAmountDec\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"int256\",\"name\":\"invariantWad\",\"type\":\"int256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Swap\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"prevFee\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"nextFee\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"UpdateProtocolFee\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\",\"name\":\"VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"WETH\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"__account__\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"settled\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"priorityFee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"fee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"jit\",\"type\":\"uint16\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"changeParameters\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"int256\",\"name\":\"invariant\",\"type\":\"int256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"reserveX\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"reserveY\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"checkInvariant\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\",\"components\":[]},{\"internalType\":\"int256\",\"name\":\"nextInvariant\",\"type\":\"int256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"checkPool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"int256\",\"name\":\"delta\",\"type\":\"int256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"checkPosition\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"bool\",\"name\":\"sellAsset\",\"type\":\"bool\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"reserveIn\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"computeMaxInput\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"computeReservesFromPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"reserveX\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"reserveY\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"deposit\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"draw\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"fund\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"bool\",\"name\":\"sellAsset\",\"type\":\"bool\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getAmountOut\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"output\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"int128\",\"name\":\"deltaLiquidity\",\"type\":\"int128\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getLiquidityDeltas\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"deltaAsset\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"deltaQuote\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getMaxLiquidity\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"deltaLiquidity\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getNetBalance\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPairId\",\"outputs\":[{\"internalType\":\"uint24\",\"name\":\"\",\"type\":\"uint24\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPairNonce\",\"outputs\":[{\"internalType\":\"uint24\",\"name\":\"\",\"type\":\"uint24\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"\",\"type\":\"uint24\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPoolNonce\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPoolReserves\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getReserve\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getVirtualPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getVirtualReservesPerLiquidity\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"deltaAsset\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"deltaQuote\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\",\"components\":[]}],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"multiprocess\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"\",\"type\":\"uint24\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"pairs\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"tokenAsset\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsAsset\",\"type\":\"uint8\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"tokenQuote\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsQuote\",\"type\":\"uint8\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"pools\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"virtualX\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"virtualY\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"liquidity\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint32\",\"name\":\"lastTimestamp\",\"type\":\"uint32\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"controller\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"invariantGrowthGlobal\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthGlobalAsset\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthGlobalQuote\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"struct PortfolioCurve\",\"name\":\"params\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"uint128\",\"name\":\"maxPrice\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"jit\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"fee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"duration\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"volatility\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"priorityFee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint32\",\"name\":\"createdAt\",\"type\":\"uint32\",\"components\":[]},{\"internalType\":\"bool\",\"name\":\"perpetual\",\"type\":\"bool\",\"components\":[]}]},{\"internalType\":\"struct PortfolioPair\",\"name\":\"pair\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"address\",\"name\":\"tokenAsset\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsAsset\",\"type\":\"uint8\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"tokenQuote\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsQuote\",\"type\":\"uint8\",\"components\":[]}]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"positions\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"freeLiquidity\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint32\",\"name\":\"lastTimestamp\",\"type\":\"uint32\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"invariantGrowthLast\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthAssetLast\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthQuoteLast\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"tokensOwedAsset\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"tokensOwedQuote\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"invariantOwed\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"setProtocolFee\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"payable\",\"type\":\"receive\",\"outputs\":[]}]"; + ///The parsed JSON ABI of the contract. + pub static PORTFOLIOVIRTUAL_ABI: ::ethers::contract::Lazy< + ::ethers::core::abi::Abi, + > = ::ethers::contract::Lazy::new(|| { + ::ethers::core::utils::__serde_json::from_str(__ABI) + .expect("ABI is always valid") + }); + pub struct PortfolioVirtual(::ethers::contract::Contract); + impl ::core::clone::Clone for PortfolioVirtual { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for PortfolioVirtual { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for PortfolioVirtual { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for PortfolioVirtual { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(stringify!(PortfolioVirtual)).field(&self.address()).finish() + } + } + impl PortfolioVirtual { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + PORTFOLIOVIRTUAL_ABI.clone(), + client, + ), + ) + } + ///Calls the contract's `REGISTRY` (0x06433b1b) function + pub fn registry( + &self, + ) -> ::ethers::contract::builders::ContractCall< + M, + ::ethers::core::types::Address, + > { + self.0 + .method_hash([6, 67, 59, 27], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `VERSION` (0xffa1ad74) function + pub fn version( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([255, 161, 173, 116], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `WETH` (0xad5c4648) function + pub fn weth( + &self, + ) -> ::ethers::contract::builders::ContractCall< + M, + ::ethers::core::types::Address, + > { + self.0 + .method_hash([173, 92, 70, 72], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `__account__` (0xda31ee54) function + pub fn account(&self) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([218, 49, 238, 84], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `changeParameters` (0xaf777855) function + pub fn change_parameters( + &self, + pool_id: u64, + priority_fee: u16, + fee: u16, + jit: u16, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([175, 119, 120, 85], (pool_id, priority_fee, fee, jit)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `checkInvariant` (0x2f337da5) function + pub fn check_invariant( + &self, + pool_id: u64, + invariant: ::ethers::core::types::I256, + reserve_x: ::ethers::core::types::U256, + reserve_y: ::ethers::core::types::U256, + timestamp: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall< + M, + (bool, ::ethers::core::types::I256), + > { + self.0 + .method_hash( + [47, 51, 125, 165], + (pool_id, invariant, reserve_x, reserve_y, timestamp), + ) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `checkPool` (0xa68aaa41) function + pub fn check_pool( + &self, + pool_id: u64, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([166, 138, 170, 65], pool_id) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `checkPosition` (0x2cc6641e) function + pub fn check_position( + &self, + pool_id: u64, + owner: ::ethers::core::types::Address, + delta: ::ethers::core::types::I256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([44, 198, 100, 30], (pool_id, owner, delta)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `computeMaxInput` (0x989bafba) function + pub fn compute_max_input( + &self, + pool_id: u64, + sell_asset: bool, + reserve_in: ::ethers::core::types::U256, + liquidity: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash( + [152, 155, 175, 186], + (pool_id, sell_asset, reserve_in, liquidity), + ) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `computeReservesFromPrice` (0xc48d887a) function + pub fn compute_reserves_from_price( + &self, + pool_id: u64, + price: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall< + M, + (::ethers::core::types::U256, ::ethers::core::types::U256), + > { + self.0 + .method_hash([196, 141, 136, 122], (pool_id, price)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `deposit` (0xd0e30db0) function + pub fn deposit(&self) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([208, 227, 13, 176], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `draw` (0xad24d6a0) function + pub fn draw( + &self, + token: ::ethers::core::types::Address, + amount: ::ethers::core::types::U256, + to: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([173, 36, 214, 160], (token, amount, to)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `fund` (0x7b1837de) function + pub fn fund( + &self, + token: ::ethers::core::types::Address, + amount: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([123, 24, 55, 222], (token, amount)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getAmountOut` (0x7dae4890) function + pub fn get_amount_out( + &self, + pool_id: u64, + sell_asset: bool, + amount_in: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([125, 174, 72, 144], (pool_id, sell_asset, amount_in)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getBalance` (0xd4fac45d) function + pub fn get_balance( + &self, + owner: ::ethers::core::types::Address, + token: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([212, 250, 196, 93], (owner, token)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getLiquidityDeltas` (0x8992f20a) function + pub fn get_liquidity_deltas( + &self, + pool_id: u64, + delta_liquidity: i128, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([137, 146, 242, 10], (pool_id, delta_liquidity)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getMaxLiquidity` (0xd6b7dec5) function + pub fn get_max_liquidity( + &self, + pool_id: u64, + amount_0: ::ethers::core::types::U256, + amount_1: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([214, 183, 222, 197], (pool_id, amount_0, amount_1)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getNetBalance` (0x4dc68a90) function + pub fn get_net_balance( + &self, + token: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([77, 198, 138, 144], token) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getPairId` (0x3f92a339) function + pub fn get_pair_id( + &self, + p0: ::ethers::core::types::Address, + p1: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([63, 146, 163, 57], (p0, p1)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getPairNonce` (0x078888d6) function + pub fn get_pair_nonce( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([7, 136, 136, 214], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getPoolNonce` (0xa5cd8a49) function + pub fn get_pool_nonce( + &self, + p0: u32, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([165, 205, 138, 73], p0) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getPoolReserves` (0x2afb9df8) function + pub fn get_pool_reserves( + &self, + pool_id: u64, + ) -> ::ethers::contract::builders::ContractCall< + M, + (::ethers::core::types::U256, ::ethers::core::types::U256), + > { + self.0 + .method_hash([42, 251, 157, 248], pool_id) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getReserve` (0xc9a396e9) function + pub fn get_reserve( + &self, + token: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([201, 163, 150, 233], token) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getVirtualPrice` (0x61b7ea6a) function + pub fn get_virtual_price( + &self, + pool_id: u64, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([97, 183, 234, 106], pool_id) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getVirtualReservesPerLiquidity` (0x1a4b905b) function + pub fn get_virtual_reserves_per_liquidity( + &self, + pool_id: u64, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([26, 75, 144, 91], pool_id) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `multiprocess` (0xa0fdf413) function + pub fn multiprocess( + &self, + data: ::ethers::core::types::Bytes, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([160, 253, 244, 19], data) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `pairs` (0x5e47663c) function + pub fn pairs( + &self, + p0: u32, + ) -> ::ethers::contract::builders::ContractCall< + M, + (::ethers::core::types::Address, u8, ::ethers::core::types::Address, u8), + > { + self.0 + .method_hash([94, 71, 102, 60], p0) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `pools` (0x89a5f084) function + pub fn pools( + &self, + p0: u64, + ) -> ::ethers::contract::builders::ContractCall< + M, + ( + u128, + u128, + u128, + u32, + ::ethers::core::types::Address, + ::ethers::core::types::U256, + ::ethers::core::types::U256, + ::ethers::core::types::U256, + PortfolioCurve, + PortfolioPair, + ), + > { + self.0 + .method_hash([137, 165, 240, 132], p0) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `positions` (0xb68513ea) function + pub fn positions( + &self, + p0: ::ethers::core::types::Address, + p1: u64, + ) -> ::ethers::contract::builders::ContractCall< + M, + ( + u128, + u32, + ::ethers::core::types::U256, + ::ethers::core::types::U256, + ::ethers::core::types::U256, + u128, + u128, + u128, + ), + > { + self.0 + .method_hash([182, 133, 19, 234], (p0, p1)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `setProtocolFee` (0x787dce3d) function + pub fn set_protocol_fee( + &self, + fee: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([120, 125, 206, 61], fee) + .expect("method not found (this should never happen)") + } + ///Gets the contract's `Allocate` event + pub fn allocate_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + AllocateFilter, + > { + self.0.event() + } + ///Gets the contract's `ChangeParameters` event + pub fn change_parameters_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + ChangeParametersFilter, + > { + self.0.event() + } + ///Gets the contract's `Collect` event + pub fn collect_filter( + &self, + ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, CollectFilter> { + self.0.event() + } + ///Gets the contract's `CreatePair` event + pub fn create_pair_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + CreatePairFilter, + > { + self.0.event() + } + ///Gets the contract's `CreatePool` event + pub fn create_pool_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + CreatePoolFilter, + > { + self.0.event() + } + ///Gets the contract's `Deallocate` event + pub fn deallocate_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + DeallocateFilter, + > { + self.0.event() + } + ///Gets the contract's `DecreaseReserveBalance` event + pub fn decrease_reserve_balance_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + DecreaseReserveBalanceFilter, + > { + self.0.event() + } + ///Gets the contract's `DecreaseUserBalance` event + pub fn decrease_user_balance_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + DecreaseUserBalanceFilter, + > { + self.0.event() + } + ///Gets the contract's `Deposit` event + pub fn deposit_filter( + &self, + ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, DepositFilter> { + self.0.event() + } + ///Gets the contract's `IncreaseReserveBalance` event + pub fn increase_reserve_balance_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + IncreaseReserveBalanceFilter, + > { + self.0.event() + } + ///Gets the contract's `IncreaseUserBalance` event + pub fn increase_user_balance_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + IncreaseUserBalanceFilter, + > { + self.0.event() + } + ///Gets the contract's `Swap` event + pub fn swap_filter( + &self, + ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, SwapFilter> { + self.0.event() + } + ///Gets the contract's `UpdateProtocolFee` event + pub fn update_protocol_fee_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + UpdateProtocolFeeFilter, + > { + self.0.event() + } + /// Returns an `Event` builder for all the events of this contract. + pub fn events( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + PortfolioVirtualEvents, + > { + self.0.event_with_filter(::core::default::Default::default()) + } + } + impl From<::ethers::contract::Contract> + for PortfolioVirtual { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } + ///Custom Error type `DrawBalance` with signature `DrawBalance()` and selector `0xc9f2f26c` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "DrawBalance", abi = "DrawBalance()")] + pub struct DrawBalance; + ///Custom Error type `EtherTransferFail` with signature `EtherTransferFail()` and selector `0x75f42683` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "EtherTransferFail", abi = "EtherTransferFail()")] + pub struct EtherTransferFail; + ///Custom Error type `InsufficientReserve` with signature `InsufficientReserve(uint256,uint256)` and selector `0x315276c9` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror( + name = "InsufficientReserve", + abi = "InsufficientReserve(uint256,uint256)" + )] + pub struct InsufficientReserve { + pub amount: ::ethers::core::types::U256, + pub delta: ::ethers::core::types::U256, + } + ///Custom Error type `InvalidBalance` with signature `InvalidBalance()` and selector `0xc52e3eff` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "InvalidBalance", abi = "InvalidBalance()")] + pub struct InvalidBalance; + ///Custom Error type `InvalidBytesLength` with signature `InvalidBytesLength(uint256,uint256)` and selector `0xe19dc95e` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "InvalidBytesLength", abi = "InvalidBytesLength(uint256,uint256)")] + pub struct InvalidBytesLength { + pub expected: ::ethers::core::types::U256, + pub length: ::ethers::core::types::U256, + } + ///Custom Error type `InvalidDecimals` with signature `InvalidDecimals(uint8)` and selector `0xca950391` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "InvalidDecimals", abi = "InvalidDecimals(uint8)")] + pub struct InvalidDecimals { + pub decimals: u8, + } + ///Custom Error type `InvalidFee` with signature `InvalidFee(uint16)` and selector `0xf6f4a38f` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "InvalidFee", abi = "InvalidFee(uint16)")] + pub struct InvalidFee { + pub fee: u16, + } + ///Custom Error type `InvalidInstruction` with signature `InvalidInstruction()` and selector `0xd8c48f68` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "InvalidInstruction", abi = "InvalidInstruction()")] + pub struct InvalidInstruction; + ///Custom Error type `InvalidInvariant` with signature `InvalidInvariant(int256,int256)` and selector `0x2125a168` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "InvalidInvariant", abi = "InvalidInvariant(int256,int256)")] + pub struct InvalidInvariant { + pub prev: ::ethers::core::types::I256, + pub next: ::ethers::core::types::I256, + } + ///Custom Error type `InvalidJump` with signature `InvalidJump(uint256)` and selector `0x80f63bd1` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "InvalidJump", abi = "InvalidJump(uint256)")] + pub struct InvalidJump { + pub pointer: ::ethers::core::types::U256, + } + ///Custom Error type `InvalidPair` with signature `InvalidPair()` and selector `0x1e4f7d8c` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "InvalidPair", abi = "InvalidPair()")] + pub struct InvalidPair; + ///Custom Error type `InvalidReentrancy` with signature `InvalidReentrancy()` and selector `0xffc72209` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "InvalidReentrancy", abi = "InvalidReentrancy()")] + pub struct InvalidReentrancy; + ///Custom Error type `InvalidSettlement` with signature `InvalidSettlement()` and selector `0x115931c4` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "InvalidSettlement", abi = "InvalidSettlement()")] + pub struct InvalidSettlement; + ///Custom Error type `InvalidTransfer` with signature `InvalidTransfer()` and selector `0x2f352531` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "InvalidTransfer", abi = "InvalidTransfer()")] + pub struct InvalidTransfer; + ///Custom Error type `JitLiquidity` with signature `JitLiquidity(uint256)` and selector `0x9a231b2c` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "JitLiquidity", abi = "JitLiquidity(uint256)")] + pub struct JitLiquidity { + pub distance: ::ethers::core::types::U256, + } + ///Custom Error type `NegativeBalance` with signature `NegativeBalance(address,int256)` and selector `0xfe239baa` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "NegativeBalance", abi = "NegativeBalance(address,int256)")] + pub struct NegativeBalance { + pub token: ::ethers::core::types::Address, + pub net: ::ethers::core::types::I256, + } + ///Custom Error type `NonExistentPool` with signature `NonExistentPool(uint64)` and selector `0xd4480d46` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "NonExistentPool", abi = "NonExistentPool(uint64)")] + pub struct NonExistentPool { + pub pool_id: u64, + } + ///Custom Error type `NonExistentPosition` with signature `NonExistentPosition(address,uint64)` and selector `0x5f3605b6` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror( + name = "NonExistentPosition", + abi = "NonExistentPosition(address,uint64)" + )] + pub struct NonExistentPosition { + pub owner: ::ethers::core::types::Address, + pub pool_id: u64, + } + ///Custom Error type `NotController` with signature `NotController()` and selector `0x23019e67` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "NotController", abi = "NotController()")] + pub struct NotController; + ///Custom Error type `PairExists` with signature `PairExists(uint24)` and selector `0x3325fa77` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "PairExists", abi = "PairExists(uint24)")] + pub struct PairExists { + pub pair_id: u32, + } + ///Custom Error type `PoolExpired` with signature `PoolExpired()` and selector `0x398b36db` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "PoolExpired", abi = "PoolExpired()")] + pub struct PoolExpired; + ///Custom Error type `SameTokenError` with signature `SameTokenError()` and selector `0xec38b794` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "SameTokenError", abi = "SameTokenError()")] + pub struct SameTokenError; + ///Custom Error type `ZeroAmounts` with signature `ZeroAmounts()` and selector `0x213c7cc5` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "ZeroAmounts", abi = "ZeroAmounts()")] + pub struct ZeroAmounts; + ///Custom Error type `ZeroInput` with signature `ZeroInput()` and selector `0xaf458c07` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "ZeroInput", abi = "ZeroInput()")] + pub struct ZeroInput; + ///Custom Error type `ZeroLiquidity` with signature `ZeroLiquidity()` and selector `0x10074548` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "ZeroLiquidity", abi = "ZeroLiquidity()")] + pub struct ZeroLiquidity; + ///Custom Error type `ZeroOutput` with signature `ZeroOutput()` and selector `0xe618637e` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "ZeroOutput", abi = "ZeroOutput()")] + pub struct ZeroOutput; + ///Custom Error type `ZeroPrice` with signature `ZeroPrice()` and selector `0x4dfba023` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "ZeroPrice", abi = "ZeroPrice()")] + pub struct ZeroPrice; + ///Custom Error type `ZeroValue` with signature `ZeroValue()` and selector `0x7c946ed7` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "ZeroValue", abi = "ZeroValue()")] + pub struct ZeroValue; + ///Container type for all of the contract's custom errors + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum PortfolioVirtualErrors { + DrawBalance(DrawBalance), + EtherTransferFail(EtherTransferFail), + InsufficientReserve(InsufficientReserve), + InvalidBalance(InvalidBalance), + InvalidBytesLength(InvalidBytesLength), + InvalidDecimals(InvalidDecimals), + InvalidFee(InvalidFee), + InvalidInstruction(InvalidInstruction), + InvalidInvariant(InvalidInvariant), + InvalidJump(InvalidJump), + InvalidPair(InvalidPair), + InvalidReentrancy(InvalidReentrancy), + InvalidSettlement(InvalidSettlement), + InvalidTransfer(InvalidTransfer), + JitLiquidity(JitLiquidity), + NegativeBalance(NegativeBalance), + NonExistentPool(NonExistentPool), + NonExistentPosition(NonExistentPosition), + NotController(NotController), + PairExists(PairExists), + PoolExpired(PoolExpired), + SameTokenError(SameTokenError), + ZeroAmounts(ZeroAmounts), + ZeroInput(ZeroInput), + ZeroLiquidity(ZeroLiquidity), + ZeroOutput(ZeroOutput), + ZeroPrice(ZeroPrice), + ZeroValue(ZeroValue), + /// The standard solidity revert string, with selector + /// Error(string) -- 0x08c379a0 + RevertString(::std::string::String), + } + impl ::ethers::core::abi::AbiDecode for PortfolioVirtualErrors { + fn decode( + data: impl AsRef<[u8]>, + ) -> ::core::result::Result { + let data = data.as_ref(); + if let Ok(decoded) + = <::std::string::String as ::ethers::core::abi::AbiDecode>::decode( + data, + ) { + return Ok(Self::RevertString(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::DrawBalance(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::EtherTransferFail(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::InsufficientReserve(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::InvalidBalance(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::InvalidBytesLength(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::InvalidDecimals(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::InvalidFee(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::InvalidInstruction(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::InvalidInvariant(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::InvalidJump(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::InvalidPair(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::InvalidReentrancy(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::InvalidSettlement(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::InvalidTransfer(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::JitLiquidity(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::NegativeBalance(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::NonExistentPool(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::NonExistentPosition(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::NotController(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::PairExists(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::PoolExpired(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::SameTokenError(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::ZeroAmounts(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::ZeroInput(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::ZeroLiquidity(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::ZeroOutput(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::ZeroPrice(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::ZeroValue(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData.into()) + } + } + impl ::ethers::core::abi::AbiEncode for PortfolioVirtualErrors { + fn encode(self) -> ::std::vec::Vec { + match self { + Self::DrawBalance(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::EtherTransferFail(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::InsufficientReserve(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::InvalidBalance(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::InvalidBytesLength(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::InvalidDecimals(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::InvalidFee(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::InvalidInstruction(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::InvalidInvariant(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::InvalidJump(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::InvalidPair(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::InvalidReentrancy(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::InvalidSettlement(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::InvalidTransfer(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::JitLiquidity(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::NegativeBalance(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::NonExistentPool(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::NonExistentPosition(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::NotController(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::PairExists(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::PoolExpired(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::SameTokenError(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::ZeroAmounts(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::ZeroInput(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::ZeroLiquidity(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::ZeroOutput(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::ZeroPrice(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::ZeroValue(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::RevertString(s) => ::ethers::core::abi::AbiEncode::encode(s), + } + } + } + impl ::ethers::contract::ContractRevert for PortfolioVirtualErrors { + fn valid_selector(selector: [u8; 4]) -> bool { + match selector { + [0x08, 0xc3, 0x79, 0xa0] => true, + _ if selector + == ::selector() => true, + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => true, + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => true, + _ if selector + == ::selector() => true, + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => true, + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => true, + _ if selector + == ::selector() => true, + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => true, + _ if selector + == ::selector() => true, + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => true, + _ if selector + == ::selector() => true, + _ if selector + == ::selector() => true, + _ => false, + } + } + } + impl ::core::fmt::Display for PortfolioVirtualErrors { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::DrawBalance(element) => ::core::fmt::Display::fmt(element, f), + Self::EtherTransferFail(element) => ::core::fmt::Display::fmt(element, f), + Self::InsufficientReserve(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::InvalidBalance(element) => ::core::fmt::Display::fmt(element, f), + Self::InvalidBytesLength(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::InvalidDecimals(element) => ::core::fmt::Display::fmt(element, f), + Self::InvalidFee(element) => ::core::fmt::Display::fmt(element, f), + Self::InvalidInstruction(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::InvalidInvariant(element) => ::core::fmt::Display::fmt(element, f), + Self::InvalidJump(element) => ::core::fmt::Display::fmt(element, f), + Self::InvalidPair(element) => ::core::fmt::Display::fmt(element, f), + Self::InvalidReentrancy(element) => ::core::fmt::Display::fmt(element, f), + Self::InvalidSettlement(element) => ::core::fmt::Display::fmt(element, f), + Self::InvalidTransfer(element) => ::core::fmt::Display::fmt(element, f), + Self::JitLiquidity(element) => ::core::fmt::Display::fmt(element, f), + Self::NegativeBalance(element) => ::core::fmt::Display::fmt(element, f), + Self::NonExistentPool(element) => ::core::fmt::Display::fmt(element, f), + Self::NonExistentPosition(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::NotController(element) => ::core::fmt::Display::fmt(element, f), + Self::PairExists(element) => ::core::fmt::Display::fmt(element, f), + Self::PoolExpired(element) => ::core::fmt::Display::fmt(element, f), + Self::SameTokenError(element) => ::core::fmt::Display::fmt(element, f), + Self::ZeroAmounts(element) => ::core::fmt::Display::fmt(element, f), + Self::ZeroInput(element) => ::core::fmt::Display::fmt(element, f), + Self::ZeroLiquidity(element) => ::core::fmt::Display::fmt(element, f), + Self::ZeroOutput(element) => ::core::fmt::Display::fmt(element, f), + Self::ZeroPrice(element) => ::core::fmt::Display::fmt(element, f), + Self::ZeroValue(element) => ::core::fmt::Display::fmt(element, f), + Self::RevertString(s) => ::core::fmt::Display::fmt(s, f), + } + } + } + impl ::core::convert::From<::std::string::String> for PortfolioVirtualErrors { + fn from(value: String) -> Self { + Self::RevertString(value) + } + } + impl ::core::convert::From for PortfolioVirtualErrors { + fn from(value: DrawBalance) -> Self { + Self::DrawBalance(value) + } + } + impl ::core::convert::From for PortfolioVirtualErrors { + fn from(value: EtherTransferFail) -> Self { + Self::EtherTransferFail(value) + } + } + impl ::core::convert::From for PortfolioVirtualErrors { + fn from(value: InsufficientReserve) -> Self { + Self::InsufficientReserve(value) + } + } + impl ::core::convert::From for PortfolioVirtualErrors { + fn from(value: InvalidBalance) -> Self { + Self::InvalidBalance(value) + } + } + impl ::core::convert::From for PortfolioVirtualErrors { + fn from(value: InvalidBytesLength) -> Self { + Self::InvalidBytesLength(value) + } + } + impl ::core::convert::From for PortfolioVirtualErrors { + fn from(value: InvalidDecimals) -> Self { + Self::InvalidDecimals(value) + } + } + impl ::core::convert::From for PortfolioVirtualErrors { + fn from(value: InvalidFee) -> Self { + Self::InvalidFee(value) + } + } + impl ::core::convert::From for PortfolioVirtualErrors { + fn from(value: InvalidInstruction) -> Self { + Self::InvalidInstruction(value) + } + } + impl ::core::convert::From for PortfolioVirtualErrors { + fn from(value: InvalidInvariant) -> Self { + Self::InvalidInvariant(value) + } + } + impl ::core::convert::From for PortfolioVirtualErrors { + fn from(value: InvalidJump) -> Self { + Self::InvalidJump(value) + } + } + impl ::core::convert::From for PortfolioVirtualErrors { + fn from(value: InvalidPair) -> Self { + Self::InvalidPair(value) + } + } + impl ::core::convert::From for PortfolioVirtualErrors { + fn from(value: InvalidReentrancy) -> Self { + Self::InvalidReentrancy(value) + } + } + impl ::core::convert::From for PortfolioVirtualErrors { + fn from(value: InvalidSettlement) -> Self { + Self::InvalidSettlement(value) + } + } + impl ::core::convert::From for PortfolioVirtualErrors { + fn from(value: InvalidTransfer) -> Self { + Self::InvalidTransfer(value) + } + } + impl ::core::convert::From for PortfolioVirtualErrors { + fn from(value: JitLiquidity) -> Self { + Self::JitLiquidity(value) + } + } + impl ::core::convert::From for PortfolioVirtualErrors { + fn from(value: NegativeBalance) -> Self { + Self::NegativeBalance(value) + } + } + impl ::core::convert::From for PortfolioVirtualErrors { + fn from(value: NonExistentPool) -> Self { + Self::NonExistentPool(value) + } + } + impl ::core::convert::From for PortfolioVirtualErrors { + fn from(value: NonExistentPosition) -> Self { + Self::NonExistentPosition(value) + } + } + impl ::core::convert::From for PortfolioVirtualErrors { + fn from(value: NotController) -> Self { + Self::NotController(value) + } + } + impl ::core::convert::From for PortfolioVirtualErrors { + fn from(value: PairExists) -> Self { + Self::PairExists(value) + } + } + impl ::core::convert::From for PortfolioVirtualErrors { + fn from(value: PoolExpired) -> Self { + Self::PoolExpired(value) + } + } + impl ::core::convert::From for PortfolioVirtualErrors { + fn from(value: SameTokenError) -> Self { + Self::SameTokenError(value) + } + } + impl ::core::convert::From for PortfolioVirtualErrors { + fn from(value: ZeroAmounts) -> Self { + Self::ZeroAmounts(value) + } + } + impl ::core::convert::From for PortfolioVirtualErrors { + fn from(value: ZeroInput) -> Self { + Self::ZeroInput(value) + } + } + impl ::core::convert::From for PortfolioVirtualErrors { + fn from(value: ZeroLiquidity) -> Self { + Self::ZeroLiquidity(value) + } + } + impl ::core::convert::From for PortfolioVirtualErrors { + fn from(value: ZeroOutput) -> Self { + Self::ZeroOutput(value) + } + } + impl ::core::convert::From for PortfolioVirtualErrors { + fn from(value: ZeroPrice) -> Self { + Self::ZeroPrice(value) + } + } + impl ::core::convert::From for PortfolioVirtualErrors { + fn from(value: ZeroValue) -> Self { + Self::ZeroValue(value) + } + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "Allocate", + abi = "Allocate(uint64,address,address,uint256,uint256,uint256)" + )] + pub struct AllocateFilter { + #[ethevent(indexed)] + pub pool_id: u64, + #[ethevent(indexed)] + pub asset: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub quote: ::ethers::core::types::Address, + pub delta_asset: ::ethers::core::types::U256, + pub delta_quote: ::ethers::core::types::U256, + pub delta_liquidity: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "ChangeParameters", + abi = "ChangeParameters(uint64,uint16,uint16,uint16)" + )] + pub struct ChangeParametersFilter { + #[ethevent(indexed)] + pub pool_id: u64, + #[ethevent(indexed)] + pub priority_fee: u16, + #[ethevent(indexed)] + pub fee: u16, + pub jit: u16, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "Collect", + abi = "Collect(uint64,address,uint256,address,uint256,address)" + )] + pub struct CollectFilter { + pub pool_id: u64, + #[ethevent(indexed)] + pub account: ::ethers::core::types::Address, + pub fee_asset_dec: ::ethers::core::types::U256, + #[ethevent(indexed)] + pub asset: ::ethers::core::types::Address, + pub fee_quote_dec: ::ethers::core::types::U256, + #[ethevent(indexed)] + pub quote: ::ethers::core::types::Address, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "CreatePair", + abi = "CreatePair(uint24,address,address,uint8,uint8)" + )] + pub struct CreatePairFilter { + #[ethevent(indexed)] + pub pair_id: u32, + #[ethevent(indexed)] + pub asset: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub quote: ::ethers::core::types::Address, + pub decimals_asset: u8, + pub decimals_quote: u8, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "CreatePool", + abi = "CreatePool(uint64,bool,address,address,uint256)" + )] + pub struct CreatePoolFilter { + #[ethevent(indexed)] + pub pool_id: u64, + pub is_mutable: bool, + #[ethevent(indexed)] + pub asset: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub quote: ::ethers::core::types::Address, + pub price: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "Deallocate", + abi = "Deallocate(uint64,address,address,uint256,uint256,uint256)" + )] + pub struct DeallocateFilter { + #[ethevent(indexed)] + pub pool_id: u64, + #[ethevent(indexed)] + pub asset: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub quote: ::ethers::core::types::Address, + pub delta_asset: ::ethers::core::types::U256, + pub delta_quote: ::ethers::core::types::U256, + pub delta_liquidity: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "DecreaseReserveBalance", + abi = "DecreaseReserveBalance(address,uint256)" + )] + pub struct DecreaseReserveBalanceFilter { + #[ethevent(indexed)] + pub token: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "DecreaseUserBalance", + abi = "DecreaseUserBalance(address,address,uint256)" + )] + pub struct DecreaseUserBalanceFilter { + #[ethevent(indexed)] + pub account: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub token: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "Deposit", abi = "Deposit(address,uint256)")] + pub struct DepositFilter { + #[ethevent(indexed)] + pub account: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "IncreaseReserveBalance", + abi = "IncreaseReserveBalance(address,uint256)" + )] + pub struct IncreaseReserveBalanceFilter { + #[ethevent(indexed)] + pub token: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "IncreaseUserBalance", + abi = "IncreaseUserBalance(address,address,uint256)" + )] + pub struct IncreaseUserBalanceFilter { + #[ethevent(indexed)] + pub account: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub token: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "Swap", + abi = "Swap(uint64,uint256,address,uint256,address,uint256,uint256,int256)" + )] + pub struct SwapFilter { + #[ethevent(indexed)] + pub pool_id: u64, + pub price: ::ethers::core::types::U256, + #[ethevent(indexed)] + pub sell_asset: ::ethers::core::types::Address, + pub input: ::ethers::core::types::U256, + #[ethevent(indexed)] + pub token_out: ::ethers::core::types::Address, + pub output: ::ethers::core::types::U256, + pub fee_amount_dec: ::ethers::core::types::U256, + pub invariant_wad: ::ethers::core::types::I256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "UpdateProtocolFee", abi = "UpdateProtocolFee(uint256,uint256)")] + pub struct UpdateProtocolFeeFilter { + pub prev_fee: ::ethers::core::types::U256, + pub next_fee: ::ethers::core::types::U256, + } + ///Container type for all of the contract's events + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum PortfolioVirtualEvents { + AllocateFilter(AllocateFilter), + ChangeParametersFilter(ChangeParametersFilter), + CollectFilter(CollectFilter), + CreatePairFilter(CreatePairFilter), + CreatePoolFilter(CreatePoolFilter), + DeallocateFilter(DeallocateFilter), + DecreaseReserveBalanceFilter(DecreaseReserveBalanceFilter), + DecreaseUserBalanceFilter(DecreaseUserBalanceFilter), + DepositFilter(DepositFilter), + IncreaseReserveBalanceFilter(IncreaseReserveBalanceFilter), + IncreaseUserBalanceFilter(IncreaseUserBalanceFilter), + SwapFilter(SwapFilter), + UpdateProtocolFeeFilter(UpdateProtocolFeeFilter), + } + impl ::ethers::contract::EthLogDecode for PortfolioVirtualEvents { + fn decode_log( + log: &::ethers::core::abi::RawLog, + ) -> ::core::result::Result { + if let Ok(decoded) = AllocateFilter::decode_log(log) { + return Ok(PortfolioVirtualEvents::AllocateFilter(decoded)); + } + if let Ok(decoded) = ChangeParametersFilter::decode_log(log) { + return Ok(PortfolioVirtualEvents::ChangeParametersFilter(decoded)); + } + if let Ok(decoded) = CollectFilter::decode_log(log) { + return Ok(PortfolioVirtualEvents::CollectFilter(decoded)); + } + if let Ok(decoded) = CreatePairFilter::decode_log(log) { + return Ok(PortfolioVirtualEvents::CreatePairFilter(decoded)); + } + if let Ok(decoded) = CreatePoolFilter::decode_log(log) { + return Ok(PortfolioVirtualEvents::CreatePoolFilter(decoded)); + } + if let Ok(decoded) = DeallocateFilter::decode_log(log) { + return Ok(PortfolioVirtualEvents::DeallocateFilter(decoded)); + } + if let Ok(decoded) = DecreaseReserveBalanceFilter::decode_log(log) { + return Ok(PortfolioVirtualEvents::DecreaseReserveBalanceFilter(decoded)); + } + if let Ok(decoded) = DecreaseUserBalanceFilter::decode_log(log) { + return Ok(PortfolioVirtualEvents::DecreaseUserBalanceFilter(decoded)); + } + if let Ok(decoded) = DepositFilter::decode_log(log) { + return Ok(PortfolioVirtualEvents::DepositFilter(decoded)); + } + if let Ok(decoded) = IncreaseReserveBalanceFilter::decode_log(log) { + return Ok(PortfolioVirtualEvents::IncreaseReserveBalanceFilter(decoded)); + } + if let Ok(decoded) = IncreaseUserBalanceFilter::decode_log(log) { + return Ok(PortfolioVirtualEvents::IncreaseUserBalanceFilter(decoded)); + } + if let Ok(decoded) = SwapFilter::decode_log(log) { + return Ok(PortfolioVirtualEvents::SwapFilter(decoded)); + } + if let Ok(decoded) = UpdateProtocolFeeFilter::decode_log(log) { + return Ok(PortfolioVirtualEvents::UpdateProtocolFeeFilter(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData) + } + } + impl ::core::fmt::Display for PortfolioVirtualEvents { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::AllocateFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::ChangeParametersFilter(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::CollectFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::CreatePairFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::CreatePoolFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::DeallocateFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::DecreaseReserveBalanceFilter(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::DecreaseUserBalanceFilter(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::DepositFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::IncreaseReserveBalanceFilter(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::IncreaseUserBalanceFilter(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::SwapFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::UpdateProtocolFeeFilter(element) => { + ::core::fmt::Display::fmt(element, f) + } + } + } + } + impl ::core::convert::From for PortfolioVirtualEvents { + fn from(value: AllocateFilter) -> Self { + Self::AllocateFilter(value) + } + } + impl ::core::convert::From for PortfolioVirtualEvents { + fn from(value: ChangeParametersFilter) -> Self { + Self::ChangeParametersFilter(value) + } + } + impl ::core::convert::From for PortfolioVirtualEvents { + fn from(value: CollectFilter) -> Self { + Self::CollectFilter(value) + } + } + impl ::core::convert::From for PortfolioVirtualEvents { + fn from(value: CreatePairFilter) -> Self { + Self::CreatePairFilter(value) + } + } + impl ::core::convert::From for PortfolioVirtualEvents { + fn from(value: CreatePoolFilter) -> Self { + Self::CreatePoolFilter(value) + } + } + impl ::core::convert::From for PortfolioVirtualEvents { + fn from(value: DeallocateFilter) -> Self { + Self::DeallocateFilter(value) + } + } + impl ::core::convert::From for PortfolioVirtualEvents { + fn from(value: DecreaseReserveBalanceFilter) -> Self { + Self::DecreaseReserveBalanceFilter(value) + } + } + impl ::core::convert::From for PortfolioVirtualEvents { + fn from(value: DecreaseUserBalanceFilter) -> Self { + Self::DecreaseUserBalanceFilter(value) + } + } + impl ::core::convert::From for PortfolioVirtualEvents { + fn from(value: DepositFilter) -> Self { + Self::DepositFilter(value) + } + } + impl ::core::convert::From for PortfolioVirtualEvents { + fn from(value: IncreaseReserveBalanceFilter) -> Self { + Self::IncreaseReserveBalanceFilter(value) + } + } + impl ::core::convert::From for PortfolioVirtualEvents { + fn from(value: IncreaseUserBalanceFilter) -> Self { + Self::IncreaseUserBalanceFilter(value) + } + } + impl ::core::convert::From for PortfolioVirtualEvents { + fn from(value: SwapFilter) -> Self { + Self::SwapFilter(value) + } + } + impl ::core::convert::From for PortfolioVirtualEvents { + fn from(value: UpdateProtocolFeeFilter) -> Self { + Self::UpdateProtocolFeeFilter(value) + } + } + ///Container type for all input parameters for the `REGISTRY` function with signature `REGISTRY()` and selector `0x06433b1b` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "REGISTRY", abi = "REGISTRY()")] + pub struct RegistryCall; + ///Container type for all input parameters for the `VERSION` function with signature `VERSION()` and selector `0xffa1ad74` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "VERSION", abi = "VERSION()")] + pub struct VersionCall; + ///Container type for all input parameters for the `WETH` function with signature `WETH()` and selector `0xad5c4648` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "WETH", abi = "WETH()")] + pub struct WethCall; + ///Container type for all input parameters for the `__account__` function with signature `__account__()` and selector `0xda31ee54` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "__account__", abi = "__account__()")] + pub struct AccountCall; + ///Container type for all input parameters for the `changeParameters` function with signature `changeParameters(uint64,uint16,uint16,uint16)` and selector `0xaf777855` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall( + name = "changeParameters", + abi = "changeParameters(uint64,uint16,uint16,uint16)" + )] + pub struct ChangeParametersCall { + pub pool_id: u64, + pub priority_fee: u16, + pub fee: u16, + pub jit: u16, + } + ///Container type for all input parameters for the `checkInvariant` function with signature `checkInvariant(uint64,int256,uint256,uint256,uint256)` and selector `0x2f337da5` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall( + name = "checkInvariant", + abi = "checkInvariant(uint64,int256,uint256,uint256,uint256)" + )] + pub struct CheckInvariantCall { + pub pool_id: u64, + pub invariant: ::ethers::core::types::I256, + pub reserve_x: ::ethers::core::types::U256, + pub reserve_y: ::ethers::core::types::U256, + pub timestamp: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `checkPool` function with signature `checkPool(uint64)` and selector `0xa68aaa41` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "checkPool", abi = "checkPool(uint64)")] + pub struct CheckPoolCall { + pub pool_id: u64, + } + ///Container type for all input parameters for the `checkPosition` function with signature `checkPosition(uint64,address,int256)` and selector `0x2cc6641e` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "checkPosition", abi = "checkPosition(uint64,address,int256)")] + pub struct CheckPositionCall { + pub pool_id: u64, + pub owner: ::ethers::core::types::Address, + pub delta: ::ethers::core::types::I256, + } + ///Container type for all input parameters for the `computeMaxInput` function with signature `computeMaxInput(uint64,bool,uint256,uint256)` and selector `0x989bafba` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall( + name = "computeMaxInput", + abi = "computeMaxInput(uint64,bool,uint256,uint256)" + )] + pub struct ComputeMaxInputCall { + pub pool_id: u64, + pub sell_asset: bool, + pub reserve_in: ::ethers::core::types::U256, + pub liquidity: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `computeReservesFromPrice` function with signature `computeReservesFromPrice(uint64,uint256)` and selector `0xc48d887a` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall( + name = "computeReservesFromPrice", + abi = "computeReservesFromPrice(uint64,uint256)" + )] + pub struct ComputeReservesFromPriceCall { + pub pool_id: u64, + pub price: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `deposit` function with signature `deposit()` and selector `0xd0e30db0` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "deposit", abi = "deposit()")] + pub struct DepositCall; + ///Container type for all input parameters for the `draw` function with signature `draw(address,uint256,address)` and selector `0xad24d6a0` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "draw", abi = "draw(address,uint256,address)")] + pub struct DrawCall { + pub token: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + pub to: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `fund` function with signature `fund(address,uint256)` and selector `0x7b1837de` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "fund", abi = "fund(address,uint256)")] + pub struct FundCall { + pub token: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `getAmountOut` function with signature `getAmountOut(uint64,bool,uint256)` and selector `0x7dae4890` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getAmountOut", abi = "getAmountOut(uint64,bool,uint256)")] + pub struct GetAmountOutCall { + pub pool_id: u64, + pub sell_asset: bool, + pub amount_in: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `getBalance` function with signature `getBalance(address,address)` and selector `0xd4fac45d` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getBalance", abi = "getBalance(address,address)")] + pub struct GetBalanceCall { + pub owner: ::ethers::core::types::Address, + pub token: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `getLiquidityDeltas` function with signature `getLiquidityDeltas(uint64,int128)` and selector `0x8992f20a` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getLiquidityDeltas", abi = "getLiquidityDeltas(uint64,int128)")] + pub struct GetLiquidityDeltasCall { + pub pool_id: u64, + pub delta_liquidity: i128, + } + ///Container type for all input parameters for the `getMaxLiquidity` function with signature `getMaxLiquidity(uint64,uint256,uint256)` and selector `0xd6b7dec5` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getMaxLiquidity", abi = "getMaxLiquidity(uint64,uint256,uint256)")] + pub struct GetMaxLiquidityCall { + pub pool_id: u64, + pub amount_0: ::ethers::core::types::U256, + pub amount_1: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `getNetBalance` function with signature `getNetBalance(address)` and selector `0x4dc68a90` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getNetBalance", abi = "getNetBalance(address)")] + pub struct GetNetBalanceCall { + pub token: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `getPairId` function with signature `getPairId(address,address)` and selector `0x3f92a339` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getPairId", abi = "getPairId(address,address)")] + pub struct GetPairIdCall( + pub ::ethers::core::types::Address, + pub ::ethers::core::types::Address, + ); + ///Container type for all input parameters for the `getPairNonce` function with signature `getPairNonce()` and selector `0x078888d6` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getPairNonce", abi = "getPairNonce()")] + pub struct GetPairNonceCall; + ///Container type for all input parameters for the `getPoolNonce` function with signature `getPoolNonce(uint24)` and selector `0xa5cd8a49` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getPoolNonce", abi = "getPoolNonce(uint24)")] + pub struct GetPoolNonceCall(pub u32); + ///Container type for all input parameters for the `getPoolReserves` function with signature `getPoolReserves(uint64)` and selector `0x2afb9df8` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getPoolReserves", abi = "getPoolReserves(uint64)")] + pub struct GetPoolReservesCall { + pub pool_id: u64, + } + ///Container type for all input parameters for the `getReserve` function with signature `getReserve(address)` and selector `0xc9a396e9` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getReserve", abi = "getReserve(address)")] + pub struct GetReserveCall { + pub token: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `getVirtualPrice` function with signature `getVirtualPrice(uint64)` and selector `0x61b7ea6a` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getVirtualPrice", abi = "getVirtualPrice(uint64)")] + pub struct GetVirtualPriceCall { + pub pool_id: u64, + } + ///Container type for all input parameters for the `getVirtualReservesPerLiquidity` function with signature `getVirtualReservesPerLiquidity(uint64)` and selector `0x1a4b905b` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall( + name = "getVirtualReservesPerLiquidity", + abi = "getVirtualReservesPerLiquidity(uint64)" + )] + pub struct GetVirtualReservesPerLiquidityCall { + pub pool_id: u64, + } + ///Container type for all input parameters for the `multiprocess` function with signature `multiprocess(bytes)` and selector `0xa0fdf413` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "multiprocess", abi = "multiprocess(bytes)")] + pub struct MultiprocessCall { + pub data: ::ethers::core::types::Bytes, + } + ///Container type for all input parameters for the `pairs` function with signature `pairs(uint24)` and selector `0x5e47663c` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "pairs", abi = "pairs(uint24)")] + pub struct PairsCall(pub u32); + ///Container type for all input parameters for the `pools` function with signature `pools(uint64)` and selector `0x89a5f084` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "pools", abi = "pools(uint64)")] + pub struct PoolsCall(pub u64); + ///Container type for all input parameters for the `positions` function with signature `positions(address,uint64)` and selector `0xb68513ea` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "positions", abi = "positions(address,uint64)")] + pub struct PositionsCall(pub ::ethers::core::types::Address, pub u64); + ///Container type for all input parameters for the `setProtocolFee` function with signature `setProtocolFee(uint256)` and selector `0x787dce3d` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "setProtocolFee", abi = "setProtocolFee(uint256)")] + pub struct SetProtocolFeeCall { + pub fee: ::ethers::core::types::U256, + } + ///Container type for all of the contract's call + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum PortfolioVirtualCalls { + Registry(RegistryCall), + Version(VersionCall), + Weth(WethCall), + Account(AccountCall), + ChangeParameters(ChangeParametersCall), + CheckInvariant(CheckInvariantCall), + CheckPool(CheckPoolCall), + CheckPosition(CheckPositionCall), + ComputeMaxInput(ComputeMaxInputCall), + ComputeReservesFromPrice(ComputeReservesFromPriceCall), + Deposit(DepositCall), + Draw(DrawCall), + Fund(FundCall), + GetAmountOut(GetAmountOutCall), + GetBalance(GetBalanceCall), + GetLiquidityDeltas(GetLiquidityDeltasCall), + GetMaxLiquidity(GetMaxLiquidityCall), + GetNetBalance(GetNetBalanceCall), + GetPairId(GetPairIdCall), + GetPairNonce(GetPairNonceCall), + GetPoolNonce(GetPoolNonceCall), + GetPoolReserves(GetPoolReservesCall), + GetReserve(GetReserveCall), + GetVirtualPrice(GetVirtualPriceCall), + GetVirtualReservesPerLiquidity(GetVirtualReservesPerLiquidityCall), + Multiprocess(MultiprocessCall), + Pairs(PairsCall), + Pools(PoolsCall), + Positions(PositionsCall), + SetProtocolFee(SetProtocolFeeCall), + } + impl ::ethers::core::abi::AbiDecode for PortfolioVirtualCalls { + fn decode( + data: impl AsRef<[u8]>, + ) -> ::core::result::Result { + let data = data.as_ref(); + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Registry(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Version(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Weth(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Account(decoded)); + } + if let Ok(decoded) + = ::decode( + data, + ) { + return Ok(Self::ChangeParameters(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::CheckInvariant(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::CheckPool(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::CheckPosition(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::ComputeMaxInput(decoded)); + } + if let Ok(decoded) + = ::decode( + data, + ) { + return Ok(Self::ComputeReservesFromPrice(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Deposit(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Draw(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Fund(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetAmountOut(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetBalance(decoded)); + } + if let Ok(decoded) + = ::decode( + data, + ) { + return Ok(Self::GetLiquidityDeltas(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetMaxLiquidity(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetNetBalance(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetPairId(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetPairNonce(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetPoolNonce(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetPoolReserves(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetReserve(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetVirtualPrice(decoded)); + } + if let Ok(decoded) + = ::decode( + data, + ) { + return Ok(Self::GetVirtualReservesPerLiquidity(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Multiprocess(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Pairs(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Pools(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Positions(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::SetProtocolFee(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData.into()) + } + } + impl ::ethers::core::abi::AbiEncode for PortfolioVirtualCalls { + fn encode(self) -> Vec { + match self { + Self::Registry(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Version(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Weth(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Account(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::ChangeParameters(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::CheckInvariant(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::CheckPool(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::CheckPosition(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::ComputeMaxInput(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::ComputeReservesFromPrice(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Deposit(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Draw(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Fund(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::GetAmountOut(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetBalance(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetLiquidityDeltas(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetMaxLiquidity(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetNetBalance(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetPairId(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetPairNonce(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetPoolNonce(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetPoolReserves(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetReserve(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetVirtualPrice(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetVirtualReservesPerLiquidity(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Multiprocess(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Pairs(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Pools(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Positions(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::SetProtocolFee(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + } + } + } + impl ::core::fmt::Display for PortfolioVirtualCalls { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::Registry(element) => ::core::fmt::Display::fmt(element, f), + Self::Version(element) => ::core::fmt::Display::fmt(element, f), + Self::Weth(element) => ::core::fmt::Display::fmt(element, f), + Self::Account(element) => ::core::fmt::Display::fmt(element, f), + Self::ChangeParameters(element) => ::core::fmt::Display::fmt(element, f), + Self::CheckInvariant(element) => ::core::fmt::Display::fmt(element, f), + Self::CheckPool(element) => ::core::fmt::Display::fmt(element, f), + Self::CheckPosition(element) => ::core::fmt::Display::fmt(element, f), + Self::ComputeMaxInput(element) => ::core::fmt::Display::fmt(element, f), + Self::ComputeReservesFromPrice(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::Deposit(element) => ::core::fmt::Display::fmt(element, f), + Self::Draw(element) => ::core::fmt::Display::fmt(element, f), + Self::Fund(element) => ::core::fmt::Display::fmt(element, f), + Self::GetAmountOut(element) => ::core::fmt::Display::fmt(element, f), + Self::GetBalance(element) => ::core::fmt::Display::fmt(element, f), + Self::GetLiquidityDeltas(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::GetMaxLiquidity(element) => ::core::fmt::Display::fmt(element, f), + Self::GetNetBalance(element) => ::core::fmt::Display::fmt(element, f), + Self::GetPairId(element) => ::core::fmt::Display::fmt(element, f), + Self::GetPairNonce(element) => ::core::fmt::Display::fmt(element, f), + Self::GetPoolNonce(element) => ::core::fmt::Display::fmt(element, f), + Self::GetPoolReserves(element) => ::core::fmt::Display::fmt(element, f), + Self::GetReserve(element) => ::core::fmt::Display::fmt(element, f), + Self::GetVirtualPrice(element) => ::core::fmt::Display::fmt(element, f), + Self::GetVirtualReservesPerLiquidity(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::Multiprocess(element) => ::core::fmt::Display::fmt(element, f), + Self::Pairs(element) => ::core::fmt::Display::fmt(element, f), + Self::Pools(element) => ::core::fmt::Display::fmt(element, f), + Self::Positions(element) => ::core::fmt::Display::fmt(element, f), + Self::SetProtocolFee(element) => ::core::fmt::Display::fmt(element, f), + } + } + } + impl ::core::convert::From for PortfolioVirtualCalls { + fn from(value: RegistryCall) -> Self { + Self::Registry(value) + } + } + impl ::core::convert::From for PortfolioVirtualCalls { + fn from(value: VersionCall) -> Self { + Self::Version(value) + } + } + impl ::core::convert::From for PortfolioVirtualCalls { + fn from(value: WethCall) -> Self { + Self::Weth(value) + } + } + impl ::core::convert::From for PortfolioVirtualCalls { + fn from(value: AccountCall) -> Self { + Self::Account(value) + } + } + impl ::core::convert::From for PortfolioVirtualCalls { + fn from(value: ChangeParametersCall) -> Self { + Self::ChangeParameters(value) + } + } + impl ::core::convert::From for PortfolioVirtualCalls { + fn from(value: CheckInvariantCall) -> Self { + Self::CheckInvariant(value) + } + } + impl ::core::convert::From for PortfolioVirtualCalls { + fn from(value: CheckPoolCall) -> Self { + Self::CheckPool(value) + } + } + impl ::core::convert::From for PortfolioVirtualCalls { + fn from(value: CheckPositionCall) -> Self { + Self::CheckPosition(value) + } + } + impl ::core::convert::From for PortfolioVirtualCalls { + fn from(value: ComputeMaxInputCall) -> Self { + Self::ComputeMaxInput(value) + } + } + impl ::core::convert::From for PortfolioVirtualCalls { + fn from(value: ComputeReservesFromPriceCall) -> Self { + Self::ComputeReservesFromPrice(value) + } + } + impl ::core::convert::From for PortfolioVirtualCalls { + fn from(value: DepositCall) -> Self { + Self::Deposit(value) + } + } + impl ::core::convert::From for PortfolioVirtualCalls { + fn from(value: DrawCall) -> Self { + Self::Draw(value) + } + } + impl ::core::convert::From for PortfolioVirtualCalls { + fn from(value: FundCall) -> Self { + Self::Fund(value) + } + } + impl ::core::convert::From for PortfolioVirtualCalls { + fn from(value: GetAmountOutCall) -> Self { + Self::GetAmountOut(value) + } + } + impl ::core::convert::From for PortfolioVirtualCalls { + fn from(value: GetBalanceCall) -> Self { + Self::GetBalance(value) + } + } + impl ::core::convert::From for PortfolioVirtualCalls { + fn from(value: GetLiquidityDeltasCall) -> Self { + Self::GetLiquidityDeltas(value) + } + } + impl ::core::convert::From for PortfolioVirtualCalls { + fn from(value: GetMaxLiquidityCall) -> Self { + Self::GetMaxLiquidity(value) + } + } + impl ::core::convert::From for PortfolioVirtualCalls { + fn from(value: GetNetBalanceCall) -> Self { + Self::GetNetBalance(value) + } + } + impl ::core::convert::From for PortfolioVirtualCalls { + fn from(value: GetPairIdCall) -> Self { + Self::GetPairId(value) + } + } + impl ::core::convert::From for PortfolioVirtualCalls { + fn from(value: GetPairNonceCall) -> Self { + Self::GetPairNonce(value) + } + } + impl ::core::convert::From for PortfolioVirtualCalls { + fn from(value: GetPoolNonceCall) -> Self { + Self::GetPoolNonce(value) + } + } + impl ::core::convert::From for PortfolioVirtualCalls { + fn from(value: GetPoolReservesCall) -> Self { + Self::GetPoolReserves(value) + } + } + impl ::core::convert::From for PortfolioVirtualCalls { + fn from(value: GetReserveCall) -> Self { + Self::GetReserve(value) + } + } + impl ::core::convert::From for PortfolioVirtualCalls { + fn from(value: GetVirtualPriceCall) -> Self { + Self::GetVirtualPrice(value) + } + } + impl ::core::convert::From + for PortfolioVirtualCalls { + fn from(value: GetVirtualReservesPerLiquidityCall) -> Self { + Self::GetVirtualReservesPerLiquidity(value) + } + } + impl ::core::convert::From for PortfolioVirtualCalls { + fn from(value: MultiprocessCall) -> Self { + Self::Multiprocess(value) + } + } + impl ::core::convert::From for PortfolioVirtualCalls { + fn from(value: PairsCall) -> Self { + Self::Pairs(value) + } + } + impl ::core::convert::From for PortfolioVirtualCalls { + fn from(value: PoolsCall) -> Self { + Self::Pools(value) + } + } + impl ::core::convert::From for PortfolioVirtualCalls { + fn from(value: PositionsCall) -> Self { + Self::Positions(value) + } + } + impl ::core::convert::From for PortfolioVirtualCalls { + fn from(value: SetProtocolFeeCall) -> Self { + Self::SetProtocolFee(value) + } + } + ///Container type for all return fields from the `REGISTRY` function with signature `REGISTRY()` and selector `0x06433b1b` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct RegistryReturn(pub ::ethers::core::types::Address); + ///Container type for all return fields from the `VERSION` function with signature `VERSION()` and selector `0xffa1ad74` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct VersionReturn(pub ::std::string::String); + ///Container type for all return fields from the `WETH` function with signature `WETH()` and selector `0xad5c4648` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct WethReturn(pub ::ethers::core::types::Address); + ///Container type for all return fields from the `__account__` function with signature `__account__()` and selector `0xda31ee54` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct AccountReturn { + pub settled: bool, + } + ///Container type for all return fields from the `checkInvariant` function with signature `checkInvariant(uint64,int256,uint256,uint256,uint256)` and selector `0x2f337da5` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct CheckInvariantReturn { + pub success: bool, + pub next_invariant: ::ethers::core::types::I256, + } + ///Container type for all return fields from the `checkPool` function with signature `checkPool(uint64)` and selector `0xa68aaa41` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct CheckPoolReturn(pub bool); + ///Container type for all return fields from the `checkPosition` function with signature `checkPosition(uint64,address,int256)` and selector `0x2cc6641e` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct CheckPositionReturn(pub bool); + ///Container type for all return fields from the `computeMaxInput` function with signature `computeMaxInput(uint64,bool,uint256,uint256)` and selector `0x989bafba` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct ComputeMaxInputReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `computeReservesFromPrice` function with signature `computeReservesFromPrice(uint64,uint256)` and selector `0xc48d887a` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct ComputeReservesFromPriceReturn { + pub reserve_x: ::ethers::core::types::U256, + pub reserve_y: ::ethers::core::types::U256, + } + ///Container type for all return fields from the `getAmountOut` function with signature `getAmountOut(uint64,bool,uint256)` and selector `0x7dae4890` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetAmountOutReturn { + pub output: ::ethers::core::types::U256, + } + ///Container type for all return fields from the `getBalance` function with signature `getBalance(address,address)` and selector `0xd4fac45d` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetBalanceReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `getLiquidityDeltas` function with signature `getLiquidityDeltas(uint64,int128)` and selector `0x8992f20a` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetLiquidityDeltasReturn { + pub delta_asset: u128, + pub delta_quote: u128, + } + ///Container type for all return fields from the `getMaxLiquidity` function with signature `getMaxLiquidity(uint64,uint256,uint256)` and selector `0xd6b7dec5` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetMaxLiquidityReturn { + pub delta_liquidity: u128, + } + ///Container type for all return fields from the `getNetBalance` function with signature `getNetBalance(address)` and selector `0x4dc68a90` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetNetBalanceReturn(pub ::ethers::core::types::I256); + ///Container type for all return fields from the `getPairId` function with signature `getPairId(address,address)` and selector `0x3f92a339` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetPairIdReturn(pub u32); + ///Container type for all return fields from the `getPairNonce` function with signature `getPairNonce()` and selector `0x078888d6` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetPairNonceReturn(pub u32); + ///Container type for all return fields from the `getPoolNonce` function with signature `getPoolNonce(uint24)` and selector `0xa5cd8a49` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetPoolNonceReturn(pub u32); + ///Container type for all return fields from the `getPoolReserves` function with signature `getPoolReserves(uint64)` and selector `0x2afb9df8` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetPoolReservesReturn { + pub delta_asset: ::ethers::core::types::U256, + pub delta_quote: ::ethers::core::types::U256, + } + ///Container type for all return fields from the `getReserve` function with signature `getReserve(address)` and selector `0xc9a396e9` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetReserveReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `getVirtualPrice` function with signature `getVirtualPrice(uint64)` and selector `0x61b7ea6a` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetVirtualPriceReturn { + pub price: ::ethers::core::types::U256, + } + ///Container type for all return fields from the `getVirtualReservesPerLiquidity` function with signature `getVirtualReservesPerLiquidity(uint64)` and selector `0x1a4b905b` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetVirtualReservesPerLiquidityReturn { + pub delta_asset: u128, + pub delta_quote: u128, + } + ///Container type for all return fields from the `pairs` function with signature `pairs(uint24)` and selector `0x5e47663c` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct PairsReturn { + pub token_asset: ::ethers::core::types::Address, + pub decimals_asset: u8, + pub token_quote: ::ethers::core::types::Address, + pub decimals_quote: u8, + } + ///Container type for all return fields from the `pools` function with signature `pools(uint64)` and selector `0x89a5f084` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct PoolsReturn { + pub virtual_x: u128, + pub virtual_y: u128, + pub liquidity: u128, + pub last_timestamp: u32, + pub controller: ::ethers::core::types::Address, + pub invariant_growth_global: ::ethers::core::types::U256, + pub fee_growth_global_asset: ::ethers::core::types::U256, + pub fee_growth_global_quote: ::ethers::core::types::U256, + pub params: PortfolioCurve, + pub pair: PortfolioPair, + } + ///Container type for all return fields from the `positions` function with signature `positions(address,uint64)` and selector `0xb68513ea` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct PositionsReturn { + pub free_liquidity: u128, + pub last_timestamp: u32, + pub invariant_growth_last: ::ethers::core::types::U256, + pub fee_growth_asset_last: ::ethers::core::types::U256, + pub fee_growth_quote_last: ::ethers::core::types::U256, + pub tokens_owed_asset: u128, + pub tokens_owed_quote: u128, + pub invariant_owed: u128, + } +} +pub use rmm01_extended_lib::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod rmm01_extended_lib { + #[rustfmt::skip] + const __ABI: &str = "[]"; + ///The parsed JSON ABI of the contract. + pub static RMM01EXTENDEDLIB_ABI: ::ethers::contract::Lazy< + ::ethers::core::abi::Abi, + > = ::ethers::contract::Lazy::new(|| { + ::ethers::core::utils::__serde_json::from_str(__ABI) + .expect("ABI is always valid") + }); + #[rustfmt::skip] + const __BYTECODE: &[u8] = &[ + 96, + 86, + 96, + 55, + 96, + 11, + 130, + 130, + 130, + 57, + 128, + 81, + 96, + 0, + 26, + 96, + 115, + 20, + 96, + 42, + 87, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 0, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 48, + 96, + 0, + 82, + 96, + 115, + 129, + 83, + 130, + 129, + 243, + 254, + 115, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 48, + 20, + 96, + 128, + 96, + 64, + 82, + 96, + 0, + 128, + 253, + 254, + 162, + 100, + 105, + 112, + 102, + 115, + 88, + 34, + 18, + 32, + 3, + 58, + 70, + 213, + 162, + 55, + 206, + 12, + 107, + 43, + 161, + 254, + 242, + 37, + 151, + 0, + 125, + 156, + 202, + 149, + 9, + 193, + 2, + 177, + 246, + 156, + 97, + 161, + 89, + 115, + 29, + 85, + 100, + 115, + 111, + 108, + 99, + 67, + 0, + 8, + 13, + 0, + 51, + ]; + ///The bytecode of the contract. + pub static RMM01EXTENDEDLIB_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __BYTECODE, + ); + #[rustfmt::skip] + const __DEPLOYED_BYTECODE: &[u8] = &[ + 115, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 48, + 20, + 96, + 128, + 96, + 64, + 82, + 96, + 0, + 128, + 253, + 254, + 162, + 100, + 105, + 112, + 102, + 115, + 88, + 34, + 18, + 32, + 3, + 58, + 70, + 213, + 162, + 55, + 206, + 12, + 107, + 43, + 161, + 254, + 242, + 37, + 151, + 0, + 125, + 156, + 202, + 149, + 9, + 193, + 2, + 177, + 246, + 156, + 97, + 161, + 89, + 115, + 29, + 85, + 100, + 115, + 111, + 108, + 99, + 67, + 0, + 8, + 13, + 0, + 51, + ]; + ///The deployed bytecode of the contract. + pub static RMM01EXTENDEDLIB_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __DEPLOYED_BYTECODE, + ); + pub struct RMM01ExtendedLib(::ethers::contract::Contract); + impl ::core::clone::Clone for RMM01ExtendedLib { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for RMM01ExtendedLib { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for RMM01ExtendedLib { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for RMM01ExtendedLib { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(stringify!(RMM01ExtendedLib)).field(&self.address()).finish() + } + } + impl RMM01ExtendedLib { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + RMM01EXTENDEDLIB_ABI.clone(), + client, + ), + ) + } + /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. + /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction + /// + /// Notes: + /// - If there are no constructor arguments, you should pass `()` as the argument. + /// - The default poll duration is 7 seconds. + /// - The default number of confirmations is 1 block. + /// + /// + /// # Example + /// + /// Generate contract bindings with `abigen!` and deploy a new contract instance. + /// + /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. + /// + /// ```ignore + /// # async fn deploy(client: ::std::sync::Arc) { + /// abigen!(Greeter, "../greeter.json"); + /// + /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); + /// let msg = greeter_contract.greet().call().await.unwrap(); + /// # } + /// ``` + pub fn deploy( + client: ::std::sync::Arc, + constructor_args: T, + ) -> ::core::result::Result< + ::ethers::contract::builders::ContractDeployer, + ::ethers::contract::ContractError, + > { + let factory = ::ethers::contract::ContractFactory::new( + RMM01EXTENDEDLIB_ABI.clone(), + RMM01EXTENDEDLIB_BYTECODE.clone().into(), + client, + ); + let deployer = factory.deploy(constructor_args)?; + let deployer = ::ethers::contract::ContractDeployer::new(deployer); + Ok(deployer) + } + } + impl From<::ethers::contract::Contract> + for RMM01ExtendedLib { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } +} +pub use rmm01_lib::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod rmm01_lib { + #[rustfmt::skip] + const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"wad\",\"type\":\"int256\",\"components\":[]}],\"type\":\"error\",\"name\":\"OverflowWad\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"UndefinedPrice\",\"outputs\":[]}]"; + ///The parsed JSON ABI of the contract. + pub static RMM01LIB_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| + ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); + #[rustfmt::skip] + const __BYTECODE: &[u8] = &[ + 96, + 86, + 96, + 55, + 96, + 11, + 130, + 130, + 130, + 57, + 128, + 81, + 96, + 0, + 26, + 96, + 115, + 20, + 96, + 42, + 87, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 0, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 48, + 96, + 0, + 82, + 96, + 115, + 129, + 83, + 130, + 129, + 243, + 254, + 115, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 48, + 20, + 96, + 128, + 96, + 64, + 82, + 96, + 0, + 128, + 253, + 254, + 162, + 100, + 105, + 112, + 102, + 115, + 88, + 34, + 18, + 32, + 42, + 65, + 89, + 100, + 183, + 82, + 12, + 142, + 4, + 248, + 149, + 181, + 92, + 206, + 43, + 249, + 158, + 33, + 30, + 88, + 53, + 229, + 254, + 227, + 29, + 52, + 61, + 245, + 47, + 178, + 207, + 81, + 100, + 115, + 111, + 108, + 99, + 67, + 0, + 8, + 13, + 0, + 51, + ]; + ///The bytecode of the contract. + pub static RMM01LIB_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __BYTECODE, + ); + #[rustfmt::skip] + const __DEPLOYED_BYTECODE: &[u8] = &[ + 115, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 48, + 20, + 96, + 128, + 96, + 64, + 82, + 96, + 0, + 128, + 253, + 254, + 162, + 100, + 105, + 112, + 102, + 115, + 88, + 34, + 18, + 32, + 42, + 65, + 89, + 100, + 183, + 82, + 12, + 142, + 4, + 248, + 149, + 181, + 92, + 206, + 43, + 249, + 158, + 33, + 30, + 88, + 53, + 229, + 254, + 227, + 29, + 52, + 61, + 245, + 47, + 178, + 207, + 81, + 100, + 115, + 111, + 108, + 99, + 67, + 0, + 8, + 13, + 0, + 51, + ]; + ///The deployed bytecode of the contract. + pub static RMM01LIB_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __DEPLOYED_BYTECODE, + ); + pub struct RMM01Lib(::ethers::contract::Contract); + impl ::core::clone::Clone for RMM01Lib { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for RMM01Lib { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for RMM01Lib { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for RMM01Lib { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(stringify!(RMM01Lib)).field(&self.address()).finish() + } + } + impl RMM01Lib { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + RMM01LIB_ABI.clone(), + client, + ), + ) + } + /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. + /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction + /// + /// Notes: + /// - If there are no constructor arguments, you should pass `()` as the argument. + /// - The default poll duration is 7 seconds. + /// - The default number of confirmations is 1 block. + /// + /// + /// # Example + /// + /// Generate contract bindings with `abigen!` and deploy a new contract instance. + /// + /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. + /// + /// ```ignore + /// # async fn deploy(client: ::std::sync::Arc) { + /// abigen!(Greeter, "../greeter.json"); + /// + /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); + /// let msg = greeter_contract.greet().call().await.unwrap(); + /// # } + /// ``` + pub fn deploy( + client: ::std::sync::Arc, + constructor_args: T, + ) -> ::core::result::Result< + ::ethers::contract::builders::ContractDeployer, + ::ethers::contract::ContractError, + > { + let factory = ::ethers::contract::ContractFactory::new( + RMM01LIB_ABI.clone(), + RMM01LIB_BYTECODE.clone().into(), + client, + ); + let deployer = factory.deploy(constructor_args)?; + let deployer = ::ethers::contract::ContractDeployer::new(deployer); + Ok(deployer) + } + } + impl From<::ethers::contract::Contract> + for RMM01Lib { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } + ///Custom Error type `OverflowWad` with signature `OverflowWad(int256)` and selector `0xb11558df` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "OverflowWad", abi = "OverflowWad(int256)")] + pub struct OverflowWad { + pub wad: ::ethers::core::types::I256, + } + ///Custom Error type `UndefinedPrice` with signature `UndefinedPrice()` and selector `0x22053363` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "UndefinedPrice", abi = "UndefinedPrice()")] + pub struct UndefinedPrice; + ///Container type for all of the contract's custom errors + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum RMM01LibErrors { + OverflowWad(OverflowWad), + UndefinedPrice(UndefinedPrice), + /// The standard solidity revert string, with selector + /// Error(string) -- 0x08c379a0 + RevertString(::std::string::String), + } + impl ::ethers::core::abi::AbiDecode for RMM01LibErrors { + fn decode( + data: impl AsRef<[u8]>, + ) -> ::core::result::Result { + let data = data.as_ref(); + if let Ok(decoded) + = <::std::string::String as ::ethers::core::abi::AbiDecode>::decode( + data, + ) { + return Ok(Self::RevertString(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::OverflowWad(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::UndefinedPrice(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData.into()) + } + } + impl ::ethers::core::abi::AbiEncode for RMM01LibErrors { + fn encode(self) -> ::std::vec::Vec { + match self { + Self::OverflowWad(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::UndefinedPrice(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::RevertString(s) => ::ethers::core::abi::AbiEncode::encode(s), + } + } + } + impl ::ethers::contract::ContractRevert for RMM01LibErrors { + fn valid_selector(selector: [u8; 4]) -> bool { + match selector { + [0x08, 0xc3, 0x79, 0xa0] => true, + _ if selector + == ::selector() => true, + _ if selector + == ::selector() => { + true + } + _ => false, + } + } + } + impl ::core::fmt::Display for RMM01LibErrors { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::OverflowWad(element) => ::core::fmt::Display::fmt(element, f), + Self::UndefinedPrice(element) => ::core::fmt::Display::fmt(element, f), + Self::RevertString(s) => ::core::fmt::Display::fmt(s, f), + } + } + } + impl ::core::convert::From<::std::string::String> for RMM01LibErrors { + fn from(value: String) -> Self { + Self::RevertString(value) + } + } + impl ::core::convert::From for RMM01LibErrors { + fn from(value: OverflowWad) -> Self { + Self::OverflowWad(value) + } + } + impl ::core::convert::From for RMM01LibErrors { + fn from(value: UndefinedPrice) -> Self { + Self::UndefinedPrice(value) + } + } +} +pub use rmm01_portfolio::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod rmm01_portfolio { + pub use super::__shared_types::*; + #[rustfmt::skip] + const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"weth\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"registry\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"DrawBalance\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"EtherTransferFail\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"Infinity\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"delta\",\"type\":\"uint256\",\"components\":[]}],\"type\":\"error\",\"name\":\"InsufficientReserve\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"InvalidBalance\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\",\"components\":[]}],\"type\":\"error\",\"name\":\"InvalidBytesLength\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\",\"components\":[]}],\"type\":\"error\",\"name\":\"InvalidDecimals\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"fee\",\"type\":\"uint16\",\"components\":[]}],\"type\":\"error\",\"name\":\"InvalidFee\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"InvalidInstruction\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"prev\",\"type\":\"int256\",\"components\":[]},{\"internalType\":\"int256\",\"name\":\"next\",\"type\":\"int256\",\"components\":[]}],\"type\":\"error\",\"name\":\"InvalidInvariant\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"pointer\",\"type\":\"uint256\",\"components\":[]}],\"type\":\"error\",\"name\":\"InvalidJump\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"InvalidPair\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"InvalidReentrancy\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"InvalidSettlement\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"InvalidTransfer\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"distance\",\"type\":\"uint256\",\"components\":[]}],\"type\":\"error\",\"name\":\"JitLiquidity\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"Min\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"int256\",\"name\":\"net\",\"type\":\"int256\",\"components\":[]}],\"type\":\"error\",\"name\":\"NegativeBalance\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"NegativeInfinity\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"type\":\"error\",\"name\":\"NonExistentPool\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"type\":\"error\",\"name\":\"NonExistentPosition\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"NotController\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"OOB\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"OutOfBounds\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"wad\",\"type\":\"int256\",\"components\":[]}],\"type\":\"error\",\"name\":\"OverflowWad\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"pairId\",\"type\":\"uint24\",\"components\":[]}],\"type\":\"error\",\"name\":\"PairExists\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"PoolExpired\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"SameTokenError\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"SwapInputTooSmall\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"UndefinedPrice\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"ZeroAmounts\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"ZeroInput\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"ZeroLiquidity\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"ZeroOutput\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"ZeroPrice\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"ZeroValue\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaLiquidity\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Allocate\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint16\",\"name\":\"priorityFee\",\"type\":\"uint16\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint16\",\"name\":\"fee\",\"type\":\"uint16\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint16\",\"name\":\"jit\",\"type\":\"uint16\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"ChangeParameters\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"feeAssetDec\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"feeQuoteDec\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true}],\"type\":\"event\",\"name\":\"Collect\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"pairId\",\"type\":\"uint24\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint8\",\"name\":\"decimalsAsset\",\"type\":\"uint8\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint8\",\"name\":\"decimalsQuote\",\"type\":\"uint8\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"CreatePair\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"bool\",\"name\":\"isMutable\",\"type\":\"bool\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"CreatePool\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaLiquidity\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Deallocate\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"DecreaseReserveBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"DecreaseUserBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Deposit\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"IncreaseReserveBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"IncreaseUserBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"sellAsset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"input\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"tokenOut\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"output\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"feeAmountDec\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"int256\",\"name\":\"invariantWad\",\"type\":\"int256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Swap\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"prevFee\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"nextFee\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"UpdateProtocolFee\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\",\"name\":\"VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"WETH\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"__account__\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"settled\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"priorityFee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"fee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"jit\",\"type\":\"uint16\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"changeParameters\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"int256\",\"name\":\"invariant\",\"type\":\"int256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"reserveX\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"reserveY\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"checkInvariant\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]},{\"internalType\":\"int256\",\"name\":\"nextInvariant\",\"type\":\"int256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"checkPool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"int256\",\"name\":\"delta\",\"type\":\"int256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"checkPosition\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"bool\",\"name\":\"sellAsset\",\"type\":\"bool\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"reserveIn\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"computeMaxInput\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"computeReservesFromPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"reserveX\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"reserveY\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"deposit\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"draw\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"fund\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"bool\",\"name\":\"sellAsset\",\"type\":\"bool\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getAmountOut\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"output\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"int128\",\"name\":\"deltaLiquidity\",\"type\":\"int128\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getLiquidityDeltas\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"deltaAsset\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"deltaQuote\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getMaxLiquidity\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"deltaLiquidity\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getNetBalance\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPairId\",\"outputs\":[{\"internalType\":\"uint24\",\"name\":\"\",\"type\":\"uint24\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPairNonce\",\"outputs\":[{\"internalType\":\"uint24\",\"name\":\"\",\"type\":\"uint24\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"\",\"type\":\"uint24\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPoolNonce\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPoolReserves\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getReserve\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getVirtualPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getVirtualReservesPerLiquidity\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"deltaAsset\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"deltaQuote\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\",\"components\":[]}],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"multiprocess\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"\",\"type\":\"uint24\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"pairs\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"tokenAsset\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsAsset\",\"type\":\"uint8\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"tokenQuote\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsQuote\",\"type\":\"uint8\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"pools\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"virtualX\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"virtualY\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"liquidity\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint32\",\"name\":\"lastTimestamp\",\"type\":\"uint32\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"controller\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"invariantGrowthGlobal\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthGlobalAsset\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthGlobalQuote\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"struct PortfolioCurve\",\"name\":\"params\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"uint128\",\"name\":\"maxPrice\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"jit\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"fee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"duration\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"volatility\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"priorityFee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint32\",\"name\":\"createdAt\",\"type\":\"uint32\",\"components\":[]},{\"internalType\":\"bool\",\"name\":\"perpetual\",\"type\":\"bool\",\"components\":[]}]},{\"internalType\":\"struct PortfolioPair\",\"name\":\"pair\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"address\",\"name\":\"tokenAsset\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsAsset\",\"type\":\"uint8\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"tokenQuote\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsQuote\",\"type\":\"uint8\",\"components\":[]}]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"positions\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"freeLiquidity\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint32\",\"name\":\"lastTimestamp\",\"type\":\"uint32\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"invariantGrowthLast\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthAssetLast\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthQuoteLast\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"tokensOwedAsset\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"tokensOwedQuote\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"invariantOwed\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"setProtocolFee\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"payable\",\"type\":\"receive\",\"outputs\":[]}]"; + ///The parsed JSON ABI of the contract. + pub static RMM01PORTFOLIO_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| + ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); + #[rustfmt::skip] + const __BYTECODE: &[u8] = &[ + 96, + 192, + 96, + 64, + 82, + 96, + 1, + 96, + 11, + 85, + 96, + 4, + 96, + 12, + 85, + 52, + 128, + 21, + 98, + 0, + 0, + 27, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 96, + 64, + 81, + 98, + 0, + 141, + 216, + 56, + 3, + 128, + 98, + 0, + 141, + 216, + 131, + 57, + 129, + 1, + 96, + 64, + 129, + 144, + 82, + 98, + 0, + 0, + 62, + 145, + 98, + 0, + 0, + 128, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 145, + 130, + 22, + 96, + 128, + 82, + 22, + 96, + 160, + 82, + 96, + 4, + 128, + 84, + 96, + 255, + 25, + 22, + 96, + 1, + 23, + 144, + 85, + 98, + 0, + 0, + 184, + 86, + 91, + 128, + 81, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 129, + 22, + 129, + 20, + 98, + 0, + 0, + 123, + 87, + 96, + 0, + 128, + 253, + 91, + 145, + 144, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 64, + 131, + 133, + 3, + 18, + 21, + 98, + 0, + 0, + 148, + 87, + 96, + 0, + 128, + 253, + 91, + 98, + 0, + 0, + 159, + 131, + 98, + 0, + 0, + 99, + 86, + 91, + 145, + 80, + 98, + 0, + 0, + 175, + 96, + 32, + 132, + 1, + 98, + 0, + 0, + 99, + 86, + 91, + 144, + 80, + 146, + 80, + 146, + 144, + 80, + 86, + 91, + 96, + 128, + 81, + 96, + 160, + 81, + 97, + 140, + 208, + 98, + 0, + 1, + 8, + 96, + 0, + 57, + 96, + 0, + 129, + 129, + 97, + 2, + 36, + 1, + 82, + 129, + 129, + 97, + 24, + 150, + 1, + 82, + 97, + 88, + 223, + 1, + 82, + 96, + 0, + 129, + 129, + 97, + 1, + 225, + 1, + 82, + 129, + 129, + 97, + 8, + 112, + 1, + 82, + 129, + 129, + 97, + 37, + 97, + 1, + 82, + 129, + 129, + 97, + 37, + 157, + 1, + 82, + 97, + 65, + 87, + 1, + 82, + 97, + 140, + 208, + 96, + 0, + 243, + 254, + 96, + 128, + 96, + 64, + 82, + 96, + 4, + 54, + 16, + 97, + 1, + 209, + 87, + 96, + 0, + 53, + 96, + 224, + 28, + 128, + 99, + 152, + 155, + 175, + 186, + 17, + 97, + 0, + 247, + 87, + 128, + 99, + 182, + 133, + 19, + 234, + 17, + 97, + 0, + 149, + 87, + 128, + 99, + 212, + 250, + 196, + 93, + 17, + 97, + 0, + 100, + 87, + 128, + 99, + 212, + 250, + 196, + 93, + 20, + 97, + 9, + 221, + 87, + 128, + 99, + 214, + 183, + 222, + 197, + 20, + 97, + 9, + 253, + 87, + 128, + 99, + 218, + 49, + 238, + 84, + 20, + 97, + 10, + 53, + 87, + 128, + 99, + 255, + 161, + 173, + 116, + 20, + 97, + 10, + 79, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 182, + 133, + 19, + 234, + 20, + 97, + 8, + 178, + 87, + 128, + 99, + 196, + 141, + 136, + 122, + 20, + 97, + 9, + 127, + 87, + 128, + 99, + 201, + 163, + 150, + 233, + 20, + 97, + 9, + 159, + 87, + 128, + 99, + 208, + 227, + 13, + 176, + 20, + 97, + 9, + 213, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 166, + 138, + 170, + 65, + 17, + 97, + 0, + 209, + 87, + 128, + 99, + 166, + 138, + 170, + 65, + 20, + 97, + 8, + 30, + 87, + 128, + 99, + 173, + 36, + 214, + 160, + 20, + 97, + 8, + 62, + 87, + 128, + 99, + 173, + 92, + 70, + 72, + 20, + 97, + 8, + 94, + 87, + 128, + 99, + 175, + 119, + 120, + 85, + 20, + 97, + 8, + 146, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 152, + 155, + 175, + 186, + 20, + 97, + 7, + 163, + 87, + 128, + 99, + 160, + 253, + 244, + 19, + 20, + 97, + 7, + 195, + 87, + 128, + 99, + 165, + 205, + 138, + 73, + 20, + 97, + 7, + 214, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 77, + 198, + 138, + 144, + 17, + 97, + 1, + 111, + 87, + 128, + 99, + 123, + 24, + 55, + 222, + 17, + 97, + 1, + 62, + 87, + 128, + 99, + 123, + 24, + 55, + 222, + 20, + 97, + 4, + 165, + 87, + 128, + 99, + 125, + 174, + 72, + 144, + 20, + 97, + 4, + 197, + 87, + 128, + 99, + 137, + 146, + 242, + 10, + 20, + 97, + 4, + 229, + 87, + 128, + 99, + 137, + 165, + 240, + 132, + 20, + 97, + 5, + 5, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 77, + 198, + 138, + 144, + 20, + 97, + 3, + 172, + 87, + 128, + 99, + 94, + 71, + 102, + 60, + 20, + 97, + 3, + 218, + 87, + 128, + 99, + 97, + 183, + 234, + 106, + 20, + 97, + 4, + 101, + 87, + 128, + 99, + 120, + 125, + 206, + 61, + 20, + 97, + 4, + 133, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 42, + 251, + 157, + 248, + 17, + 97, + 1, + 171, + 87, + 128, + 99, + 42, + 251, + 157, + 248, + 20, + 97, + 2, + 211, + 87, + 128, + 99, + 44, + 198, + 100, + 30, + 20, + 97, + 3, + 8, + 87, + 128, + 99, + 47, + 51, + 125, + 165, + 20, + 97, + 3, + 56, + 87, + 128, + 99, + 63, + 146, + 163, + 57, + 20, + 97, + 3, + 111, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 6, + 67, + 59, + 27, + 20, + 97, + 2, + 18, + 87, + 128, + 99, + 7, + 136, + 136, + 214, + 20, + 97, + 2, + 99, + 87, + 128, + 99, + 26, + 75, + 144, + 91, + 20, + 97, + 2, + 147, + 87, + 96, + 0, + 128, + 253, + 91, + 54, + 97, + 2, + 13, + 87, + 51, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 127, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 22, + 20, + 97, + 2, + 11, + 87, + 96, + 0, + 128, + 253, + 91, + 0, + 91, + 96, + 0, + 128, + 253, + 91, + 52, + 128, + 21, + 97, + 2, + 30, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 2, + 70, + 127, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 129, + 86, + 91, + 96, + 64, + 81, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 144, + 145, + 22, + 129, + 82, + 96, + 32, + 1, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 243, + 91, + 52, + 128, + 21, + 97, + 2, + 111, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 96, + 5, + 84, + 97, + 2, + 127, + 144, + 98, + 255, + 255, + 255, + 22, + 129, + 86, + 91, + 96, + 64, + 81, + 98, + 255, + 255, + 255, + 144, + 145, + 22, + 129, + 82, + 96, + 32, + 1, + 97, + 2, + 90, + 86, + 91, + 52, + 128, + 21, + 97, + 2, + 159, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 2, + 179, + 97, + 2, + 174, + 54, + 96, + 4, + 97, + 130, + 213, + 86, + 91, + 97, + 10, + 113, + 86, + 91, + 96, + 64, + 128, + 81, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 147, + 132, + 22, + 129, + 82, + 146, + 144, + 145, + 22, + 96, + 32, + 131, + 1, + 82, + 1, + 97, + 2, + 90, + 86, + 91, + 52, + 128, + 21, + 97, + 2, + 223, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 2, + 243, + 97, + 2, + 238, + 54, + 96, + 4, + 97, + 130, + 213, + 86, + 91, + 97, + 13, + 135, + 86, + 91, + 96, + 64, + 128, + 81, + 146, + 131, + 82, + 96, + 32, + 131, + 1, + 145, + 144, + 145, + 82, + 1, + 97, + 2, + 90, + 86, + 91, + 52, + 128, + 21, + 97, + 3, + 20, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 3, + 40, + 97, + 3, + 35, + 54, + 96, + 4, + 97, + 131, + 5, + 86, + 91, + 97, + 16, + 169, + 86, + 91, + 96, + 64, + 81, + 144, + 21, + 21, + 129, + 82, + 96, + 32, + 1, + 97, + 2, + 90, + 86, + 91, + 52, + 128, + 21, + 97, + 3, + 68, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 3, + 88, + 97, + 3, + 83, + 54, + 96, + 4, + 97, + 131, + 68, + 86, + 91, + 97, + 17, + 154, + 86, + 91, + 96, + 64, + 128, + 81, + 146, + 21, + 21, + 131, + 82, + 96, + 32, + 131, + 1, + 145, + 144, + 145, + 82, + 1, + 97, + 2, + 90, + 86, + 91, + 52, + 128, + 21, + 97, + 3, + 123, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 2, + 127, + 97, + 3, + 138, + 54, + 96, + 4, + 97, + 131, + 134, + 86, + 91, + 96, + 9, + 96, + 32, + 144, + 129, + 82, + 96, + 0, + 146, + 131, + 82, + 96, + 64, + 128, + 132, + 32, + 144, + 145, + 82, + 144, + 130, + 82, + 144, + 32, + 84, + 98, + 255, + 255, + 255, + 22, + 129, + 86, + 91, + 52, + 128, + 21, + 97, + 3, + 184, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 3, + 204, + 97, + 3, + 199, + 54, + 96, + 4, + 97, + 131, + 191, + 86, + 91, + 97, + 24, + 63, + 86, + 91, + 96, + 64, + 81, + 144, + 129, + 82, + 96, + 32, + 1, + 97, + 2, + 90, + 86, + 91, + 52, + 128, + 21, + 97, + 3, + 230, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 4, + 49, + 97, + 3, + 245, + 54, + 96, + 4, + 97, + 131, + 220, + 86, + 91, + 96, + 7, + 96, + 32, + 82, + 96, + 0, + 144, + 129, + 82, + 96, + 64, + 144, + 32, + 128, + 84, + 96, + 1, + 144, + 145, + 1, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 128, + 131, + 22, + 146, + 96, + 255, + 96, + 1, + 96, + 160, + 27, + 145, + 130, + 144, + 4, + 129, + 22, + 147, + 146, + 131, + 22, + 146, + 145, + 144, + 145, + 4, + 22, + 132, + 86, + 91, + 96, + 64, + 128, + 81, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 149, + 134, + 22, + 129, + 82, + 96, + 255, + 148, + 133, + 22, + 96, + 32, + 130, + 1, + 82, + 148, + 144, + 146, + 22, + 145, + 132, + 1, + 145, + 144, + 145, + 82, + 22, + 96, + 96, + 130, + 1, + 82, + 96, + 128, + 1, + 97, + 2, + 90, + 86, + 91, + 52, + 128, + 21, + 97, + 4, + 113, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 3, + 204, + 97, + 4, + 128, + 54, + 96, + 4, + 97, + 130, + 213, + 86, + 91, + 97, + 24, + 82, + 86, + 91, + 52, + 128, + 21, + 97, + 4, + 145, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 2, + 11, + 97, + 4, + 160, + 54, + 96, + 4, + 97, + 132, + 1, + 86, + 91, + 97, + 24, + 102, + 86, + 91, + 52, + 128, + 21, + 97, + 4, + 177, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 2, + 11, + 97, + 4, + 192, + 54, + 96, + 4, + 97, + 132, + 26, + 86, + 91, + 97, + 25, + 236, + 86, + 91, + 52, + 128, + 21, + 97, + 4, + 209, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 3, + 204, + 97, + 4, + 224, + 54, + 96, + 4, + 97, + 132, + 86, + 86, + 91, + 97, + 26, + 109, + 86, + 91, + 52, + 128, + 21, + 97, + 4, + 241, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 2, + 179, + 97, + 5, + 0, + 54, + 96, + 4, + 97, + 132, + 146, + 86, + 91, + 97, + 29, + 148, + 86, + 91, + 52, + 128, + 21, + 97, + 5, + 17, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 7, + 141, + 97, + 5, + 32, + 54, + 96, + 4, + 97, + 130, + 213, + 86, + 91, + 96, + 8, + 96, + 32, + 82, + 128, + 96, + 0, + 82, + 96, + 64, + 96, + 0, + 32, + 96, + 0, + 145, + 80, + 144, + 80, + 128, + 96, + 0, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 144, + 128, + 96, + 0, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 144, + 128, + 96, + 1, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 144, + 128, + 96, + 1, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 144, + 128, + 96, + 2, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 144, + 128, + 96, + 3, + 1, + 84, + 144, + 128, + 96, + 4, + 1, + 84, + 144, + 128, + 96, + 5, + 1, + 84, + 144, + 128, + 96, + 6, + 1, + 96, + 64, + 81, + 128, + 97, + 1, + 0, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 18, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 22, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 24, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 26, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 30, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 21, + 21, + 21, + 21, + 129, + 82, + 80, + 80, + 144, + 128, + 96, + 7, + 1, + 96, + 64, + 81, + 128, + 96, + 128, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 80, + 80, + 144, + 80, + 138, + 86, + 91, + 96, + 64, + 81, + 97, + 2, + 90, + 154, + 153, + 152, + 151, + 150, + 149, + 148, + 147, + 146, + 145, + 144, + 97, + 132, + 196, + 86, + 91, + 52, + 128, + 21, + 97, + 7, + 175, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 3, + 204, + 97, + 7, + 190, + 54, + 96, + 4, + 97, + 133, + 225, + 86, + 91, + 97, + 32, + 183, + 86, + 91, + 97, + 2, + 11, + 97, + 7, + 209, + 54, + 96, + 4, + 97, + 134, + 35, + 86, + 91, + 97, + 33, + 39, + 86, + 91, + 52, + 128, + 21, + 97, + 7, + 226, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 8, + 9, + 97, + 7, + 241, + 54, + 96, + 4, + 97, + 131, + 220, + 86, + 91, + 96, + 6, + 96, + 32, + 82, + 96, + 0, + 144, + 129, + 82, + 96, + 64, + 144, + 32, + 84, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 86, + 91, + 96, + 64, + 81, + 99, + 255, + 255, + 255, + 255, + 144, + 145, + 22, + 129, + 82, + 96, + 32, + 1, + 97, + 2, + 90, + 86, + 91, + 52, + 128, + 21, + 97, + 8, + 42, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 3, + 40, + 97, + 8, + 57, + 54, + 96, + 4, + 97, + 130, + 213, + 86, + 91, + 97, + 33, + 165, + 86, + 91, + 52, + 128, + 21, + 97, + 8, + 74, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 2, + 11, + 97, + 8, + 89, + 54, + 96, + 4, + 97, + 134, + 148, + 86, + 91, + 97, + 36, + 187, + 86, + 91, + 52, + 128, + 21, + 97, + 8, + 106, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 2, + 70, + 127, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 129, + 86, + 91, + 52, + 128, + 21, + 97, + 8, + 158, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 2, + 11, + 97, + 8, + 173, + 54, + 96, + 4, + 97, + 134, + 232, + 86, + 91, + 97, + 38, + 9, + 86, + 91, + 52, + 128, + 21, + 97, + 8, + 190, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 9, + 43, + 97, + 8, + 205, + 54, + 96, + 4, + 97, + 135, + 60, + 86, + 91, + 96, + 10, + 96, + 32, + 144, + 129, + 82, + 96, + 0, + 146, + 131, + 82, + 96, + 64, + 128, + 132, + 32, + 144, + 145, + 82, + 144, + 130, + 82, + 144, + 32, + 128, + 84, + 96, + 1, + 130, + 1, + 84, + 96, + 2, + 131, + 1, + 84, + 96, + 3, + 132, + 1, + 84, + 96, + 4, + 133, + 1, + 84, + 96, + 5, + 144, + 149, + 1, + 84, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 128, + 134, + 22, + 150, + 99, + 255, + 255, + 255, + 255, + 96, + 1, + 96, + 128, + 27, + 151, + 136, + 144, + 4, + 22, + 150, + 129, + 131, + 22, + 147, + 145, + 4, + 130, + 22, + 145, + 22, + 136, + 86, + 91, + 96, + 64, + 128, + 81, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 153, + 138, + 22, + 129, + 82, + 99, + 255, + 255, + 255, + 255, + 144, + 152, + 22, + 96, + 32, + 137, + 1, + 82, + 135, + 1, + 149, + 144, + 149, + 82, + 96, + 96, + 134, + 1, + 147, + 144, + 147, + 82, + 96, + 128, + 133, + 1, + 145, + 144, + 145, + 82, + 132, + 22, + 96, + 160, + 132, + 1, + 82, + 131, + 22, + 96, + 192, + 131, + 1, + 82, + 145, + 144, + 145, + 22, + 96, + 224, + 130, + 1, + 82, + 97, + 1, + 0, + 1, + 97, + 2, + 90, + 86, + 91, + 52, + 128, + 21, + 97, + 9, + 139, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 2, + 243, + 97, + 9, + 154, + 54, + 96, + 4, + 97, + 135, + 113, + 86, + 91, + 97, + 40, + 9, + 86, + 91, + 52, + 128, + 21, + 97, + 9, + 171, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 3, + 204, + 97, + 9, + 186, + 54, + 96, + 4, + 97, + 131, + 191, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 1, + 96, + 32, + 82, + 96, + 64, + 144, + 32, + 84, + 144, + 86, + 91, + 97, + 2, + 11, + 97, + 43, + 36, + 86, + 91, + 52, + 128, + 21, + 97, + 9, + 233, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 3, + 204, + 97, + 9, + 248, + 54, + 96, + 4, + 97, + 131, + 134, + 86, + 91, + 97, + 43, + 170, + 86, + 91, + 52, + 128, + 21, + 97, + 10, + 9, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 10, + 29, + 97, + 10, + 24, + 54, + 96, + 4, + 97, + 135, + 141, + 86, + 91, + 97, + 43, + 211, + 86, + 91, + 96, + 64, + 81, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 144, + 145, + 22, + 129, + 82, + 96, + 32, + 1, + 97, + 2, + 90, + 86, + 91, + 52, + 128, + 21, + 97, + 10, + 65, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 96, + 4, + 84, + 97, + 3, + 40, + 144, + 96, + 255, + 22, + 129, + 86, + 91, + 52, + 128, + 21, + 97, + 10, + 91, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 10, + 100, + 97, + 46, + 235, + 86, + 91, + 96, + 64, + 81, + 97, + 2, + 90, + 145, + 144, + 97, + 135, + 236, + 86, + 91, + 96, + 0, + 128, + 97, + 13, + 126, + 96, + 8, + 96, + 0, + 133, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 144, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 32, + 96, + 64, + 81, + 128, + 97, + 1, + 64, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 2, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 3, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 4, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 5, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 6, + 130, + 1, + 96, + 64, + 81, + 128, + 97, + 1, + 0, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 18, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 22, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 24, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 26, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 30, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 21, + 21, + 21, + 21, + 129, + 82, + 80, + 80, + 129, + 82, + 96, + 32, + 1, + 96, + 7, + 130, + 1, + 96, + 64, + 81, + 128, + 96, + 128, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 80, + 80, + 129, + 82, + 80, + 80, + 97, + 47, + 8, + 86, + 91, + 145, + 80, + 145, + 80, + 145, + 80, + 145, + 86, + 91, + 96, + 0, + 128, + 97, + 16, + 148, + 96, + 8, + 96, + 0, + 133, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 144, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 32, + 96, + 64, + 81, + 128, + 97, + 1, + 64, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 2, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 3, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 4, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 5, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 6, + 130, + 1, + 96, + 64, + 81, + 128, + 97, + 1, + 0, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 18, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 22, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 24, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 26, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 30, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 21, + 21, + 21, + 21, + 129, + 82, + 80, + 80, + 129, + 82, + 96, + 32, + 1, + 96, + 7, + 130, + 1, + 96, + 64, + 81, + 128, + 96, + 128, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 80, + 80, + 129, + 82, + 80, + 80, + 97, + 47, + 136, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 145, + 130, + 22, + 149, + 145, + 22, + 147, + 80, + 145, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 130, + 18, + 21, + 97, + 17, + 143, + 87, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 10, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 136, + 22, + 132, + 82, + 130, + 82, + 128, + 131, + 32, + 129, + 81, + 97, + 1, + 0, + 129, + 1, + 131, + 82, + 129, + 84, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 128, + 130, + 22, + 131, + 82, + 99, + 255, + 255, + 255, + 255, + 96, + 1, + 96, + 128, + 27, + 146, + 131, + 144, + 4, + 129, + 22, + 150, + 132, + 1, + 150, + 144, + 150, + 82, + 96, + 1, + 132, + 1, + 84, + 148, + 131, + 1, + 148, + 144, + 148, + 82, + 96, + 2, + 131, + 1, + 84, + 96, + 96, + 131, + 1, + 82, + 96, + 3, + 131, + 1, + 84, + 96, + 128, + 131, + 1, + 82, + 96, + 4, + 131, + 1, + 84, + 128, + 133, + 22, + 96, + 160, + 132, + 1, + 82, + 4, + 131, + 22, + 96, + 192, + 130, + 1, + 82, + 96, + 5, + 144, + 145, + 1, + 84, + 144, + 145, + 22, + 96, + 224, + 130, + 1, + 82, + 97, + 17, + 93, + 145, + 66, + 144, + 97, + 47, + 163, + 22, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 134, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 8, + 96, + 32, + 82, + 96, + 64, + 144, + 32, + 96, + 6, + 1, + 84, + 96, + 1, + 96, + 128, + 27, + 144, + 4, + 97, + 255, + 255, + 22, + 17, + 21, + 145, + 80, + 97, + 17, + 147, + 144, + 80, + 86, + 91, + 80, + 96, + 1, + 91, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 97, + 20, + 179, + 132, + 96, + 8, + 96, + 0, + 139, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 144, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 32, + 96, + 64, + 81, + 128, + 97, + 1, + 64, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 2, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 3, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 4, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 5, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 6, + 130, + 1, + 96, + 64, + 81, + 128, + 97, + 1, + 0, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 18, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 22, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 24, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 26, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 30, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 21, + 21, + 21, + 21, + 129, + 82, + 80, + 80, + 129, + 82, + 96, + 32, + 1, + 96, + 7, + 130, + 1, + 96, + 64, + 81, + 128, + 96, + 128, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 80, + 80, + 129, + 82, + 80, + 80, + 97, + 47, + 187, + 144, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 144, + 80, + 97, + 23, + 194, + 96, + 8, + 96, + 0, + 138, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 144, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 32, + 96, + 64, + 81, + 128, + 97, + 1, + 64, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 2, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 3, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 4, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 5, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 6, + 130, + 1, + 96, + 64, + 81, + 128, + 97, + 1, + 0, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 18, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 22, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 24, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 26, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 30, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 21, + 21, + 21, + 21, + 129, + 82, + 80, + 80, + 129, + 82, + 96, + 32, + 1, + 96, + 7, + 130, + 1, + 96, + 64, + 81, + 128, + 96, + 128, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 80, + 80, + 129, + 82, + 80, + 80, + 135, + 135, + 132, + 97, + 48, + 1, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 137, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 8, + 96, + 32, + 129, + 144, + 82, + 96, + 64, + 130, + 32, + 1, + 84, + 145, + 147, + 80, + 144, + 97, + 23, + 247, + 144, + 137, + 144, + 96, + 1, + 96, + 160, + 27, + 144, + 4, + 96, + 255, + 22, + 97, + 48, + 70, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 138, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 8, + 96, + 32, + 129, + 144, + 82, + 96, + 64, + 130, + 32, + 1, + 84, + 145, + 146, + 80, + 144, + 97, + 24, + 44, + 144, + 133, + 144, + 96, + 1, + 96, + 160, + 27, + 144, + 4, + 96, + 255, + 22, + 97, + 48, + 70, + 86, + 91, + 145, + 144, + 145, + 18, + 21, + 147, + 80, + 80, + 80, + 149, + 80, + 149, + 147, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 97, + 24, + 76, + 129, + 131, + 48, + 97, + 48, + 92, + 86, + 91, + 146, + 145, + 80, + 80, + 86, + 91, + 96, + 0, + 97, + 24, + 93, + 130, + 97, + 48, + 152, + 86, + 91, + 80, + 144, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 11, + 84, + 96, + 1, + 20, + 97, + 24, + 140, + 87, + 96, + 64, + 81, + 96, + 1, + 98, + 56, + 221, + 247, + 96, + 224, + 27, + 3, + 25, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 2, + 96, + 11, + 129, + 144, + 85, + 80, + 127, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 99, + 247, + 124, + 71, + 145, + 96, + 64, + 81, + 129, + 99, + 255, + 255, + 255, + 255, + 22, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 32, + 96, + 64, + 81, + 128, + 131, + 3, + 129, + 134, + 90, + 250, + 21, + 128, + 21, + 97, + 24, + 242, + 87, + 61, + 96, + 0, + 128, + 62, + 61, + 96, + 0, + 253, + 91, + 80, + 80, + 80, + 80, + 96, + 64, + 81, + 61, + 96, + 31, + 25, + 96, + 31, + 130, + 1, + 22, + 130, + 1, + 128, + 96, + 64, + 82, + 80, + 129, + 1, + 144, + 97, + 25, + 22, + 145, + 144, + 97, + 136, + 31, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 51, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 20, + 97, + 25, + 71, + 87, + 96, + 64, + 81, + 99, + 35, + 1, + 158, + 103, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 20, + 129, + 17, + 128, + 97, + 25, + 86, + 87, + 80, + 96, + 4, + 129, + 16, + 91, + 21, + 97, + 25, + 127, + 87, + 96, + 64, + 81, + 99, + 246, + 244, + 163, + 143, + 96, + 224, + 27, + 129, + 82, + 97, + 255, + 255, + 130, + 22, + 96, + 4, + 130, + 1, + 82, + 96, + 36, + 1, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 13, + 128, + 84, + 144, + 130, + 144, + 85, + 96, + 64, + 128, + 81, + 130, + 129, + 82, + 96, + 32, + 129, + 1, + 132, + 144, + 82, + 127, + 129, + 201, + 57, + 20, + 72, + 0, + 40, + 118, + 3, + 71, + 155, + 151, + 187, + 169, + 193, + 18, + 136, + 206, + 122, + 188, + 90, + 203, + 72, + 144, + 121, + 225, + 89, + 243, + 92, + 249, + 139, + 209, + 145, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 161, + 80, + 96, + 1, + 96, + 11, + 85, + 96, + 4, + 84, + 96, + 255, + 22, + 97, + 25, + 233, + 87, + 96, + 64, + 81, + 99, + 4, + 86, + 76, + 113, + 96, + 226, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 80, + 86, + 91, + 96, + 11, + 84, + 96, + 1, + 20, + 97, + 26, + 18, + 87, + 96, + 64, + 81, + 96, + 1, + 98, + 56, + 221, + 247, + 96, + 224, + 27, + 3, + 25, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 2, + 96, + 11, + 85, + 96, + 1, + 129, + 1, + 97, + 26, + 44, + 87, + 97, + 26, + 41, + 130, + 51, + 97, + 57, + 236, + 86, + 91, + 144, + 80, + 91, + 97, + 26, + 57, + 96, + 0, + 131, + 48, + 132, + 97, + 58, + 204, + 86, + 91, + 97, + 26, + 65, + 97, + 58, + 225, + 86, + 91, + 96, + 1, + 96, + 11, + 85, + 96, + 4, + 84, + 96, + 255, + 22, + 97, + 26, + 105, + 87, + 96, + 64, + 81, + 99, + 4, + 86, + 76, + 113, + 96, + 226, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 8, + 96, + 0, + 134, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 144, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 32, + 96, + 64, + 81, + 128, + 97, + 1, + 64, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 2, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 3, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 4, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 5, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 6, + 130, + 1, + 96, + 64, + 81, + 128, + 97, + 1, + 0, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 18, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 22, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 24, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 26, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 30, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 21, + 21, + 21, + 21, + 129, + 82, + 80, + 80, + 129, + 82, + 96, + 32, + 1, + 96, + 7, + 130, + 1, + 96, + 64, + 81, + 128, + 96, + 128, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 80, + 80, + 129, + 82, + 80, + 80, + 144, + 80, + 97, + 29, + 139, + 132, + 132, + 66, + 132, + 97, + 63, + 115, + 144, + 147, + 146, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 149, + 148, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 97, + 32, + 171, + 131, + 96, + 8, + 96, + 0, + 135, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 144, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 32, + 96, + 64, + 81, + 128, + 97, + 1, + 64, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 2, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 3, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 4, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 5, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 6, + 130, + 1, + 96, + 64, + 81, + 128, + 97, + 1, + 0, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 18, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 22, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 24, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 26, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 30, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 21, + 21, + 21, + 21, + 129, + 82, + 80, + 80, + 129, + 82, + 96, + 32, + 1, + 96, + 7, + 130, + 1, + 96, + 64, + 81, + 128, + 96, + 128, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 80, + 80, + 129, + 82, + 80, + 80, + 97, + 64, + 48, + 144, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 145, + 80, + 145, + 80, + 91, + 146, + 80, + 146, + 144, + 80, + 86, + 91, + 96, + 0, + 128, + 132, + 21, + 97, + 32, + 227, + 87, + 97, + 32, + 220, + 131, + 97, + 32, + 214, + 134, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 97, + 136, + 82, + 86, + 91, + 144, + 97, + 65, + 53, + 86, + 91, + 144, + 80, + 97, + 33, + 28, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 134, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 8, + 96, + 32, + 82, + 96, + 64, + 144, + 32, + 96, + 6, + 1, + 84, + 97, + 33, + 25, + 144, + 132, + 144, + 97, + 32, + 214, + 144, + 135, + 144, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 97, + 136, + 82, + 86, + 91, + 144, + 80, + 91, + 144, + 80, + 91, + 148, + 147, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 11, + 84, + 96, + 1, + 20, + 97, + 33, + 77, + 87, + 96, + 64, + 81, + 96, + 1, + 98, + 56, + 221, + 247, + 96, + 224, + 27, + 3, + 25, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 2, + 96, + 11, + 85, + 97, + 33, + 90, + 97, + 65, + 74, + 86, + 91, + 96, + 85, + 96, + 249, + 27, + 130, + 130, + 96, + 0, + 129, + 97, + 33, + 112, + 87, + 97, + 33, + 112, + 97, + 136, + 105, + 86, + 91, + 144, + 80, + 1, + 53, + 96, + 248, + 28, + 96, + 248, + 27, + 96, + 1, + 96, + 1, + 96, + 248, + 27, + 3, + 25, + 22, + 20, + 97, + 33, + 152, + 87, + 97, + 33, + 147, + 130, + 130, + 97, + 65, + 178, + 86, + 91, + 97, + 26, + 57, + 86, + 91, + 97, + 26, + 57, + 130, + 130, + 97, + 65, + 178, + 97, + 69, + 10, + 86, + 91, + 96, + 0, + 97, + 24, + 76, + 96, + 8, + 96, + 0, + 132, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 144, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 32, + 96, + 64, + 81, + 128, + 97, + 1, + 64, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 2, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 3, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 4, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 5, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 6, + 130, + 1, + 96, + 64, + 81, + 128, + 97, + 1, + 0, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 18, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 22, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 24, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 26, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 30, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 21, + 21, + 21, + 21, + 129, + 82, + 80, + 80, + 129, + 82, + 96, + 32, + 1, + 96, + 7, + 130, + 1, + 96, + 64, + 81, + 128, + 96, + 128, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 80, + 80, + 129, + 82, + 80, + 80, + 96, + 96, + 1, + 81, + 99, + 255, + 255, + 255, + 255, + 22, + 21, + 21, + 144, + 86, + 91, + 96, + 11, + 84, + 96, + 1, + 20, + 97, + 36, + 225, + 87, + 96, + 64, + 81, + 96, + 1, + 98, + 56, + 221, + 247, + 96, + 224, + 27, + 3, + 25, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 2, + 96, + 11, + 85, + 48, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 3, + 97, + 37, + 15, + 87, + 96, + 64, + 81, + 99, + 47, + 53, + 37, + 49, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 0, + 97, + 37, + 27, + 51, + 133, + 97, + 43, + 170, + 86, + 91, + 144, + 80, + 96, + 0, + 25, + 131, + 3, + 97, + 37, + 42, + 87, + 128, + 146, + 80, + 91, + 128, + 131, + 17, + 21, + 97, + 37, + 75, + 87, + 96, + 64, + 81, + 99, + 50, + 124, + 188, + 155, + 96, + 226, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 97, + 37, + 85, + 132, + 132, + 97, + 69, + 216, + 86, + 91, + 97, + 37, + 95, + 132, + 132, + 97, + 70, + 43, + 86, + 91, + 127, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 132, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 3, + 97, + 37, + 200, + 87, + 97, + 37, + 195, + 127, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 131, + 133, + 97, + 70, + 126, + 86, + 91, + 97, + 37, + 211, + 86, + 91, + 97, + 37, + 211, + 132, + 131, + 133, + 97, + 71, + 101, + 86, + 91, + 97, + 37, + 219, + 97, + 58, + 225, + 86, + 91, + 80, + 96, + 1, + 96, + 11, + 85, + 96, + 4, + 84, + 96, + 255, + 22, + 97, + 38, + 4, + 87, + 96, + 64, + 81, + 99, + 4, + 86, + 76, + 113, + 96, + 226, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 80, + 80, + 80, + 86, + 91, + 96, + 11, + 84, + 96, + 1, + 20, + 97, + 38, + 47, + 87, + 96, + 64, + 81, + 96, + 1, + 98, + 56, + 221, + 247, + 96, + 224, + 27, + 3, + 25, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 2, + 96, + 11, + 129, + 144, + 85, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 133, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 8, + 96, + 32, + 82, + 96, + 64, + 144, + 32, + 144, + 129, + 1, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 51, + 20, + 97, + 38, + 122, + 87, + 96, + 64, + 81, + 99, + 35, + 1, + 158, + 103, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 64, + 128, + 81, + 97, + 1, + 0, + 129, + 1, + 130, + 82, + 96, + 0, + 128, + 130, + 82, + 96, + 32, + 130, + 1, + 129, + 144, + 82, + 145, + 129, + 1, + 130, + 144, + 82, + 96, + 96, + 129, + 1, + 130, + 144, + 82, + 96, + 128, + 129, + 1, + 130, + 144, + 82, + 96, + 160, + 129, + 1, + 130, + 144, + 82, + 96, + 192, + 129, + 1, + 130, + 144, + 82, + 96, + 224, + 129, + 1, + 145, + 144, + 145, + 82, + 80, + 96, + 64, + 128, + 81, + 97, + 1, + 0, + 129, + 1, + 130, + 82, + 96, + 6, + 131, + 1, + 84, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 129, + 22, + 130, + 82, + 97, + 255, + 255, + 96, + 1, + 96, + 128, + 27, + 130, + 4, + 129, + 22, + 96, + 32, + 132, + 1, + 82, + 96, + 1, + 96, + 144, + 27, + 130, + 4, + 129, + 22, + 147, + 131, + 1, + 147, + 144, + 147, + 82, + 96, + 1, + 96, + 160, + 27, + 129, + 4, + 131, + 22, + 96, + 96, + 131, + 1, + 82, + 96, + 1, + 96, + 176, + 27, + 129, + 4, + 131, + 22, + 96, + 128, + 131, + 1, + 82, + 96, + 1, + 96, + 192, + 27, + 129, + 4, + 131, + 22, + 96, + 160, + 131, + 1, + 82, + 99, + 255, + 255, + 255, + 255, + 96, + 1, + 96, + 208, + 27, + 130, + 4, + 22, + 96, + 192, + 131, + 1, + 82, + 96, + 255, + 96, + 1, + 96, + 240, + 27, + 144, + 145, + 4, + 22, + 21, + 21, + 96, + 224, + 130, + 1, + 82, + 144, + 131, + 22, + 21, + 97, + 39, + 90, + 87, + 97, + 255, + 255, + 131, + 22, + 96, + 32, + 130, + 1, + 82, + 91, + 97, + 255, + 255, + 132, + 22, + 21, + 97, + 39, + 111, + 87, + 97, + 255, + 255, + 132, + 22, + 96, + 64, + 130, + 1, + 82, + 91, + 97, + 255, + 255, + 133, + 22, + 21, + 97, + 39, + 132, + 87, + 97, + 255, + 255, + 133, + 22, + 96, + 160, + 130, + 1, + 82, + 91, + 97, + 39, + 142, + 130, + 130, + 97, + 71, + 227, + 86, + 91, + 96, + 64, + 81, + 97, + 255, + 255, + 132, + 129, + 22, + 130, + 82, + 128, + 134, + 22, + 145, + 144, + 135, + 22, + 144, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 137, + 22, + 144, + 127, + 99, + 136, + 150, + 84, + 253, + 163, + 215, + 78, + 149, + 252, + 123, + 230, + 211, + 16, + 196, + 83, + 198, + 136, + 59, + 108, + 205, + 232, + 64, + 12, + 71, + 103, + 39, + 35, + 126, + 99, + 42, + 194, + 144, + 96, + 32, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 164, + 80, + 80, + 96, + 1, + 96, + 11, + 85, + 96, + 4, + 84, + 96, + 255, + 22, + 97, + 40, + 3, + 87, + 96, + 64, + 81, + 99, + 4, + 86, + 76, + 113, + 96, + 226, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 97, + 43, + 25, + 96, + 8, + 96, + 0, + 134, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 144, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 32, + 96, + 64, + 81, + 128, + 97, + 1, + 64, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 2, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 3, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 4, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 5, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 6, + 130, + 1, + 96, + 64, + 81, + 128, + 97, + 1, + 0, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 18, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 22, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 24, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 26, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 30, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 21, + 21, + 21, + 21, + 129, + 82, + 80, + 80, + 129, + 82, + 96, + 32, + 1, + 96, + 7, + 130, + 1, + 96, + 64, + 81, + 128, + 96, + 128, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 80, + 80, + 129, + 82, + 80, + 80, + 132, + 96, + 0, + 97, + 72, + 225, + 86, + 91, + 144, + 149, + 144, + 148, + 80, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 11, + 84, + 96, + 1, + 20, + 97, + 43, + 74, + 87, + 96, + 64, + 81, + 96, + 1, + 98, + 56, + 221, + 247, + 96, + 224, + 27, + 3, + 25, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 2, + 96, + 11, + 85, + 52, + 96, + 0, + 3, + 97, + 43, + 112, + 87, + 96, + 64, + 81, + 99, + 124, + 148, + 110, + 215, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 97, + 43, + 120, + 97, + 65, + 74, + 86, + 91, + 97, + 43, + 128, + 97, + 58, + 225, + 86, + 91, + 96, + 1, + 96, + 11, + 85, + 96, + 4, + 84, + 96, + 255, + 22, + 97, + 43, + 168, + 87, + 96, + 64, + 81, + 99, + 4, + 86, + 76, + 113, + 96, + 226, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 145, + 130, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 32, + 129, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 147, + 144, + 148, + 22, + 130, + 82, + 145, + 144, + 145, + 82, + 32, + 84, + 144, + 86, + 91, + 96, + 0, + 97, + 33, + 31, + 131, + 131, + 96, + 8, + 96, + 0, + 136, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 144, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 32, + 96, + 64, + 81, + 128, + 97, + 1, + 64, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 2, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 3, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 4, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 5, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 6, + 130, + 1, + 96, + 64, + 81, + 128, + 97, + 1, + 0, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 18, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 22, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 24, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 26, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 30, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 21, + 21, + 21, + 21, + 129, + 82, + 80, + 80, + 129, + 82, + 96, + 32, + 1, + 96, + 7, + 130, + 1, + 96, + 64, + 81, + 128, + 96, + 128, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 80, + 80, + 129, + 82, + 80, + 80, + 97, + 73, + 105, + 144, + 146, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 96, + 96, + 96, + 32, + 96, + 0, + 82, + 107, + 11, + 118, + 49, + 46, + 48, + 46, + 48, + 45, + 98, + 101, + 116, + 97, + 96, + 43, + 82, + 96, + 96, + 96, + 0, + 243, + 91, + 96, + 0, + 128, + 96, + 0, + 128, + 97, + 47, + 30, + 133, + 128, + 81, + 96, + 32, + 144, + 145, + 1, + 81, + 144, + 145, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 145, + 80, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 145, + 80, + 97, + 47, + 91, + 97, + 47, + 86, + 134, + 97, + 1, + 32, + 1, + 81, + 96, + 32, + 1, + 81, + 96, + 255, + 22, + 132, + 97, + 74, + 33, + 144, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 97, + 74, + 55, + 86, + 91, + 147, + 80, + 97, + 47, + 127, + 97, + 47, + 86, + 134, + 97, + 1, + 32, + 1, + 81, + 96, + 96, + 1, + 81, + 96, + 255, + 22, + 131, + 97, + 74, + 33, + 144, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 146, + 80, + 80, + 80, + 145, + 80, + 145, + 86, + 91, + 96, + 0, + 128, + 97, + 13, + 126, + 131, + 96, + 64, + 1, + 81, + 97, + 47, + 156, + 144, + 97, + 136, + 127, + 86, + 91, + 132, + 144, + 97, + 64, + 48, + 86, + 91, + 96, + 0, + 130, + 96, + 32, + 1, + 81, + 99, + 255, + 255, + 255, + 255, + 22, + 130, + 97, + 17, + 147, + 145, + 144, + 97, + 136, + 82, + 86, + 91, + 96, + 0, + 130, + 97, + 1, + 0, + 1, + 81, + 96, + 224, + 1, + 81, + 21, + 97, + 47, + 215, + 87, + 80, + 99, + 1, + 225, + 133, + 89, + 97, + 24, + 76, + 86, + 91, + 96, + 0, + 97, + 47, + 231, + 132, + 97, + 1, + 0, + 1, + 81, + 97, + 74, + 77, + 86, + 91, + 99, + 255, + 255, + 255, + 255, + 22, + 128, + 132, + 3, + 144, + 132, + 16, + 2, + 131, + 3, + 146, + 144, + 146, + 3, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 97, + 33, + 28, + 131, + 133, + 135, + 97, + 1, + 0, + 1, + 81, + 96, + 0, + 1, + 81, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 97, + 48, + 64, + 137, + 97, + 1, + 0, + 1, + 81, + 96, + 128, + 1, + 81, + 97, + 255, + 255, + 22, + 97, + 39, + 16, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 145, + 144, + 145, + 2, + 4, + 144, + 86, + 91, + 134, + 97, + 74, + 116, + 86, + 91, + 96, + 0, + 128, + 97, + 48, + 82, + 131, + 97, + 74, + 145, + 86, + 91, + 144, + 147, + 5, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 1, + 132, + 1, + 96, + 32, + 82, + 96, + 64, + 129, + 32, + 84, + 129, + 97, + 48, + 130, + 133, + 133, + 97, + 57, + 236, + 86, + 91, + 144, + 80, + 97, + 48, + 142, + 130, + 130, + 97, + 136, + 165, + 86, + 91, + 150, + 149, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 128, + 96, + 8, + 96, + 0, + 134, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 144, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 32, + 144, + 80, + 97, + 51, + 181, + 66, + 130, + 96, + 64, + 81, + 128, + 97, + 1, + 64, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 2, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 3, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 4, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 5, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 6, + 130, + 1, + 96, + 64, + 81, + 128, + 97, + 1, + 0, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 18, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 22, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 24, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 26, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 30, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 21, + 21, + 21, + 21, + 129, + 82, + 80, + 80, + 129, + 82, + 96, + 32, + 1, + 96, + 7, + 130, + 1, + 96, + 64, + 81, + 128, + 96, + 128, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 80, + 80, + 129, + 82, + 80, + 80, + 97, + 47, + 187, + 144, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 145, + 80, + 96, + 0, + 128, + 97, + 54, + 167, + 131, + 96, + 64, + 81, + 128, + 97, + 1, + 64, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 2, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 3, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 4, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 5, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 6, + 130, + 1, + 96, + 64, + 81, + 128, + 97, + 1, + 0, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 18, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 22, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 24, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 26, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 30, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 21, + 21, + 21, + 21, + 129, + 82, + 80, + 80, + 129, + 82, + 96, + 32, + 1, + 96, + 7, + 130, + 1, + 96, + 64, + 81, + 128, + 96, + 128, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 80, + 80, + 129, + 82, + 80, + 80, + 128, + 81, + 96, + 32, + 144, + 145, + 1, + 81, + 144, + 145, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 145, + 80, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 145, + 80, + 97, + 57, + 177, + 130, + 130, + 134, + 134, + 96, + 64, + 81, + 128, + 97, + 1, + 64, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 2, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 3, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 4, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 5, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 6, + 130, + 1, + 96, + 64, + 81, + 128, + 97, + 1, + 0, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 18, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 22, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 24, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 26, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 30, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 21, + 21, + 21, + 21, + 129, + 82, + 80, + 80, + 129, + 82, + 96, + 32, + 1, + 96, + 7, + 130, + 1, + 96, + 64, + 81, + 128, + 96, + 128, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 80, + 80, + 129, + 82, + 80, + 80, + 97, + 48, + 1, + 144, + 147, + 146, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 96, + 6, + 132, + 1, + 84, + 96, + 15, + 145, + 144, + 145, + 11, + 149, + 80, + 97, + 57, + 224, + 144, + 131, + 144, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 129, + 22, + 144, + 96, + 1, + 96, + 176, + 27, + 144, + 4, + 97, + 255, + 255, + 22, + 135, + 97, + 74, + 169, + 86, + 91, + 149, + 80, + 80, + 80, + 80, + 145, + 147, + 144, + 146, + 80, + 86, + 91, + 96, + 64, + 128, + 81, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 129, + 22, + 96, + 36, + 128, + 132, + 1, + 145, + 144, + 145, + 82, + 131, + 81, + 128, + 132, + 3, + 144, + 145, + 1, + 129, + 82, + 96, + 68, + 144, + 146, + 1, + 131, + 82, + 96, + 32, + 130, + 1, + 128, + 81, + 96, + 1, + 96, + 1, + 96, + 224, + 27, + 3, + 22, + 99, + 112, + 160, + 130, + 49, + 96, + 224, + 27, + 23, + 144, + 82, + 145, + 81, + 96, + 0, + 146, + 131, + 146, + 131, + 146, + 145, + 135, + 22, + 145, + 97, + 58, + 70, + 145, + 144, + 97, + 136, + 228, + 86, + 91, + 96, + 0, + 96, + 64, + 81, + 128, + 131, + 3, + 129, + 133, + 90, + 250, + 145, + 80, + 80, + 61, + 128, + 96, + 0, + 129, + 20, + 97, + 58, + 129, + 87, + 96, + 64, + 81, + 145, + 80, + 96, + 31, + 25, + 96, + 63, + 61, + 1, + 22, + 130, + 1, + 96, + 64, + 82, + 61, + 130, + 82, + 61, + 96, + 0, + 96, + 32, + 132, + 1, + 62, + 97, + 58, + 134, + 86, + 91, + 96, + 96, + 145, + 80, + 91, + 80, + 145, + 80, + 145, + 80, + 129, + 21, + 128, + 97, + 58, + 154, + 87, + 80, + 128, + 81, + 96, + 32, + 20, + 21, + 91, + 21, + 97, + 58, + 184, + 87, + 96, + 64, + 81, + 99, + 197, + 46, + 62, + 255, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 128, + 128, + 96, + 32, + 1, + 144, + 81, + 129, + 1, + 144, + 97, + 29, + 139, + 145, + 144, + 97, + 137, + 0, + 86, + 91, + 97, + 58, + 214, + 132, + 132, + 97, + 76, + 48, + 86, + 91, + 97, + 40, + 3, + 131, + 131, + 131, + 97, + 76, + 192, + 86, + 91, + 96, + 0, + 128, + 96, + 3, + 1, + 128, + 84, + 128, + 96, + 32, + 2, + 96, + 32, + 1, + 96, + 64, + 81, + 144, + 129, + 1, + 96, + 64, + 82, + 128, + 146, + 145, + 144, + 129, + 129, + 82, + 96, + 32, + 1, + 130, + 128, + 84, + 128, + 21, + 97, + 59, + 59, + 87, + 96, + 32, + 2, + 130, + 1, + 145, + 144, + 96, + 0, + 82, + 96, + 32, + 96, + 0, + 32, + 144, + 91, + 129, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 1, + 144, + 145, + 1, + 144, + 96, + 32, + 1, + 128, + 131, + 17, + 97, + 59, + 29, + 87, + 91, + 80, + 80, + 80, + 80, + 80, + 144, + 80, + 96, + 0, + 129, + 81, + 144, + 80, + 128, + 96, + 0, + 3, + 97, + 59, + 90, + 87, + 97, + 26, + 105, + 96, + 0, + 97, + 76, + 204, + 86, + 91, + 128, + 91, + 96, + 0, + 131, + 97, + 59, + 106, + 96, + 1, + 132, + 97, + 136, + 82, + 86, + 91, + 129, + 81, + 129, + 16, + 97, + 59, + 122, + 87, + 97, + 59, + 122, + 97, + 136, + 105, + 86, + 91, + 96, + 32, + 2, + 96, + 32, + 1, + 1, + 81, + 144, + 80, + 96, + 0, + 128, + 96, + 0, + 97, + 59, + 159, + 132, + 48, + 96, + 0, + 97, + 76, + 251, + 144, + 146, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 145, + 148, + 80, + 146, + 80, + 144, + 80, + 130, + 21, + 97, + 60, + 52, + 87, + 96, + 64, + 81, + 131, + 129, + 82, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 133, + 22, + 144, + 51, + 144, + 127, + 73, + 225, + 68, + 60, + 178, + 94, + 23, + 203, + 235, + 197, + 10, + 163, + 227, + 165, + 163, + 223, + 58, + 195, + 52, + 175, + 133, + 43, + 198, + 243, + 232, + 210, + 88, + 85, + 130, + 87, + 187, + 17, + 144, + 96, + 32, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 131, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 127, + 128, + 178, + 23, + 72, + 199, + 135, + 197, + 46, + 135, + 166, + 178, + 34, + 1, + 30, + 10, + 14, + 208, + 249, + 204, + 32, + 21, + 240, + 206, + 212, + 103, + 72, + 100, + 45, + 198, + 46, + 233, + 248, + 132, + 96, + 64, + 81, + 97, + 60, + 39, + 145, + 129, + 82, + 96, + 32, + 1, + 144, + 86, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 162, + 97, + 61, + 65, + 86, + 91, + 129, + 21, + 97, + 60, + 190, + 87, + 96, + 64, + 81, + 130, + 129, + 82, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 133, + 22, + 144, + 51, + 144, + 127, + 11, + 11, + 130, + 25, + 83, + 229, + 84, + 91, + 113, + 242, + 8, + 88, + 51, + 228, + 168, + 223, + 208, + 217, + 155, + 189, + 255, + 81, + 24, + 152, + 103, + 42, + 232, + 23, + 154, + 152, + 45, + 243, + 144, + 96, + 32, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 131, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 127, + 28, + 113, + 30, + 202, + 141, + 11, + 105, + 75, + 188, + 176, + 161, + 68, + 98, + 167, + 0, + 98, + 34, + 231, + 33, + 149, + 75, + 44, + 95, + 247, + 152, + 246, + 6, + 129, + 126, + 177, + 16, + 50, + 131, + 96, + 64, + 81, + 97, + 60, + 181, + 145, + 129, + 82, + 96, + 32, + 1, + 144, + 86, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 162, + 91, + 128, + 21, + 97, + 61, + 65, + 87, + 96, + 14, + 96, + 64, + 81, + 128, + 96, + 96, + 1, + 96, + 64, + 82, + 128, + 134, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 131, + 129, + 82, + 96, + 32, + 1, + 97, + 60, + 240, + 135, + 48, + 97, + 57, + 236, + 86, + 91, + 144, + 82, + 129, + 84, + 96, + 1, + 128, + 130, + 1, + 132, + 85, + 96, + 0, + 147, + 132, + 82, + 96, + 32, + 147, + 132, + 144, + 32, + 131, + 81, + 96, + 3, + 144, + 147, + 2, + 1, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 25, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 144, + 147, + 22, + 146, + 144, + 146, + 23, + 130, + 85, + 146, + 130, + 1, + 81, + 146, + 129, + 1, + 146, + 144, + 146, + 85, + 96, + 64, + 1, + 81, + 96, + 2, + 144, + 145, + 1, + 85, + 91, + 96, + 3, + 128, + 84, + 128, + 97, + 61, + 82, + 87, + 97, + 61, + 82, + 97, + 137, + 25, + 86, + 91, + 96, + 0, + 130, + 129, + 82, + 96, + 32, + 129, + 32, + 130, + 1, + 96, + 0, + 25, + 144, + 129, + 1, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 25, + 22, + 144, + 85, + 145, + 130, + 1, + 144, + 146, + 85, + 134, + 1, + 149, + 144, + 3, + 96, + 1, + 1, + 147, + 80, + 97, + 59, + 92, + 146, + 80, + 80, + 80, + 87, + 96, + 0, + 96, + 14, + 128, + 84, + 128, + 96, + 32, + 2, + 96, + 32, + 1, + 96, + 64, + 81, + 144, + 129, + 1, + 96, + 64, + 82, + 128, + 146, + 145, + 144, + 129, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 144, + 91, + 130, + 130, + 16, + 21, + 97, + 62, + 2, + 87, + 96, + 0, + 132, + 129, + 82, + 96, + 32, + 144, + 129, + 144, + 32, + 96, + 64, + 128, + 81, + 96, + 96, + 129, + 1, + 130, + 82, + 96, + 3, + 134, + 2, + 144, + 146, + 1, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 131, + 82, + 96, + 1, + 128, + 130, + 1, + 84, + 132, + 134, + 1, + 82, + 96, + 2, + 144, + 145, + 1, + 84, + 145, + 131, + 1, + 145, + 144, + 145, + 82, + 144, + 131, + 82, + 144, + 146, + 1, + 145, + 1, + 97, + 61, + 173, + 86, + 91, + 80, + 80, + 130, + 81, + 146, + 147, + 80, + 80, + 80, + 91, + 128, + 21, + 97, + 62, + 112, + 87, + 96, + 0, + 97, + 62, + 31, + 96, + 1, + 131, + 97, + 136, + 82, + 86, + 91, + 144, + 80, + 97, + 62, + 102, + 131, + 130, + 129, + 81, + 129, + 16, + 97, + 62, + 54, + 87, + 97, + 62, + 54, + 97, + 136, + 105, + 86, + 91, + 96, + 32, + 2, + 96, + 32, + 1, + 1, + 81, + 96, + 0, + 1, + 81, + 48, + 133, + 132, + 129, + 81, + 129, + 16, + 97, + 62, + 85, + 87, + 97, + 62, + 85, + 97, + 136, + 105, + 86, + 91, + 96, + 32, + 2, + 96, + 32, + 1, + 1, + 81, + 96, + 32, + 1, + 81, + 97, + 76, + 192, + 86, + 91, + 80, + 96, + 0, + 25, + 1, + 97, + 62, + 12, + 86, + 91, + 80, + 128, + 81, + 91, + 128, + 21, + 97, + 63, + 86, + 87, + 96, + 0, + 97, + 62, + 135, + 96, + 1, + 131, + 97, + 136, + 82, + 86, + 91, + 144, + 80, + 96, + 0, + 131, + 130, + 129, + 81, + 129, + 16, + 97, + 62, + 157, + 87, + 97, + 62, + 157, + 97, + 136, + 105, + 86, + 91, + 96, + 32, + 2, + 96, + 32, + 1, + 1, + 81, + 96, + 0, + 1, + 81, + 144, + 80, + 96, + 0, + 132, + 131, + 129, + 81, + 129, + 16, + 97, + 62, + 191, + 87, + 97, + 62, + 191, + 97, + 136, + 105, + 86, + 91, + 96, + 32, + 2, + 96, + 32, + 1, + 1, + 81, + 96, + 64, + 1, + 81, + 144, + 80, + 96, + 0, + 97, + 62, + 217, + 131, + 48, + 97, + 57, + 236, + 86, + 91, + 144, + 80, + 96, + 0, + 130, + 135, + 134, + 129, + 81, + 129, + 16, + 97, + 62, + 240, + 87, + 97, + 62, + 240, + 97, + 136, + 105, + 86, + 91, + 96, + 32, + 2, + 96, + 32, + 1, + 1, + 81, + 96, + 32, + 1, + 81, + 97, + 63, + 6, + 145, + 144, + 97, + 137, + 47, + 86, + 91, + 144, + 80, + 128, + 130, + 16, + 21, + 97, + 63, + 69, + 87, + 131, + 97, + 63, + 27, + 130, + 132, + 97, + 136, + 165, + 86, + 91, + 96, + 64, + 81, + 99, + 127, + 17, + 205, + 213, + 96, + 225, + 27, + 129, + 82, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 144, + 146, + 22, + 96, + 4, + 131, + 1, + 82, + 96, + 36, + 130, + 1, + 82, + 96, + 68, + 1, + 97, + 25, + 118, + 86, + 91, + 133, + 96, + 1, + 144, + 3, + 149, + 80, + 80, + 80, + 80, + 80, + 80, + 97, + 62, + 116, + 86, + 91, + 97, + 63, + 96, + 96, + 0, + 97, + 76, + 204, + 86, + 91, + 97, + 63, + 108, + 96, + 14, + 96, + 0, + 97, + 129, + 241, + 86, + 91, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 97, + 63, + 132, + 135, + 135, + 135, + 135, + 97, + 77, + 224, + 86, + 91, + 145, + 80, + 145, + 80, + 96, + 0, + 128, + 97, + 63, + 151, + 137, + 133, + 138, + 134, + 97, + 78, + 223, + 86, + 91, + 145, + 80, + 145, + 80, + 129, + 129, + 17, + 21, + 97, + 63, + 188, + 87, + 96, + 64, + 81, + 99, + 1, + 0, + 7, + 39, + 96, + 229, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 192, + 132, + 1, + 81, + 97, + 63, + 207, + 144, + 97, + 32, + 214, + 131, + 133, + 97, + 136, + 82, + 86, + 91, + 132, + 97, + 1, + 0, + 1, + 129, + 129, + 81, + 97, + 63, + 225, + 145, + 144, + 97, + 137, + 47, + 86, + 91, + 144, + 82, + 80, + 96, + 0, + 136, + 97, + 63, + 250, + 87, + 137, + 97, + 1, + 32, + 1, + 81, + 96, + 32, + 1, + 81, + 97, + 64, + 5, + 86, + 91, + 137, + 97, + 1, + 32, + 1, + 81, + 96, + 96, + 1, + 81, + 91, + 96, + 255, + 22, + 144, + 80, + 97, + 64, + 34, + 129, + 134, + 97, + 1, + 0, + 1, + 81, + 97, + 74, + 33, + 144, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 154, + 153, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 15, + 131, + 144, + 11, + 21, + 97, + 32, + 176, + 87, + 131, + 81, + 96, + 32, + 133, + 1, + 81, + 96, + 0, + 145, + 130, + 145, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 145, + 80, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 145, + 80, + 96, + 0, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 97, + 64, + 127, + 136, + 97, + 1, + 32, + 1, + 81, + 96, + 32, + 1, + 81, + 96, + 255, + 22, + 97, + 74, + 145, + 86, + 91, + 97, + 64, + 137, + 145, + 144, + 97, + 137, + 71, + 86, + 91, + 144, + 80, + 96, + 0, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 97, + 64, + 171, + 137, + 97, + 1, + 32, + 1, + 81, + 96, + 96, + 1, + 81, + 96, + 255, + 22, + 97, + 74, + 145, + 86, + 91, + 97, + 64, + 181, + 145, + 144, + 97, + 137, + 71, + 86, + 91, + 144, + 80, + 96, + 0, + 128, + 136, + 96, + 15, + 11, + 19, + 21, + 97, + 64, + 244, + 87, + 80, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 135, + 22, + 97, + 64, + 221, + 97, + 47, + 86, + 134, + 131, + 134, + 97, + 79, + 199, + 86, + 91, + 150, + 80, + 97, + 64, + 237, + 97, + 47, + 86, + 133, + 131, + 133, + 97, + 79, + 199, + 86, + 91, + 149, + 80, + 97, + 65, + 41, + 86, + 91, + 97, + 64, + 253, + 136, + 97, + 136, + 127, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 144, + 80, + 97, + 65, + 22, + 97, + 47, + 86, + 134, + 131, + 134, + 97, + 79, + 245, + 86, + 91, + 150, + 80, + 97, + 65, + 38, + 97, + 47, + 86, + 133, + 131, + 133, + 97, + 79, + 245, + 86, + 91, + 149, + 80, + 91, + 80, + 80, + 80, + 80, + 80, + 146, + 80, + 146, + 144, + 80, + 86, + 91, + 96, + 0, + 97, + 17, + 147, + 131, + 131, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 97, + 79, + 245, + 86, + 91, + 52, + 21, + 97, + 43, + 168, + 87, + 97, + 65, + 123, + 96, + 0, + 127, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 97, + 80, + 20, + 86, + 91, + 96, + 64, + 81, + 52, + 129, + 82, + 51, + 144, + 127, + 225, + 255, + 252, + 196, + 146, + 61, + 4, + 181, + 89, + 244, + 210, + 154, + 139, + 252, + 108, + 218, + 4, + 235, + 91, + 13, + 60, + 70, + 7, + 81, + 194, + 64, + 44, + 92, + 92, + 201, + 16, + 156, + 144, + 96, + 32, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 162, + 86, + 91, + 96, + 0, + 97, + 65, + 231, + 131, + 131, + 96, + 0, + 129, + 129, + 16, + 97, + 65, + 202, + 87, + 97, + 65, + 202, + 97, + 136, + 105, + 86, + 91, + 145, + 144, + 145, + 1, + 53, + 96, + 4, + 129, + 144, + 28, + 96, + 255, + 96, + 244, + 27, + 22, + 146, + 96, + 15, + 96, + 248, + 27, + 144, + 145, + 22, + 145, + 80, + 86, + 91, + 145, + 80, + 80, + 96, + 1, + 96, + 1, + 96, + 248, + 27, + 3, + 25, + 128, + 130, + 22, + 1, + 97, + 66, + 43, + 87, + 96, + 0, + 128, + 96, + 0, + 97, + 66, + 10, + 134, + 134, + 97, + 80, + 115, + 86, + 91, + 146, + 80, + 146, + 80, + 146, + 80, + 97, + 66, + 33, + 131, + 96, + 255, + 22, + 96, + 1, + 20, + 131, + 131, + 97, + 80, + 227, + 86, + 91, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 253, + 96, + 248, + 27, + 96, + 1, + 96, + 1, + 96, + 248, + 27, + 3, + 25, + 130, + 22, + 1, + 97, + 66, + 102, + 87, + 96, + 0, + 128, + 96, + 0, + 97, + 66, + 79, + 134, + 134, + 97, + 80, + 115, + 86, + 91, + 146, + 80, + 146, + 80, + 146, + 80, + 97, + 66, + 33, + 131, + 96, + 255, + 22, + 96, + 1, + 20, + 131, + 131, + 97, + 82, + 206, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 248, + 27, + 3, + 25, + 129, + 22, + 96, + 3, + 96, + 249, + 27, + 20, + 128, + 97, + 66, + 143, + 87, + 80, + 96, + 1, + 96, + 1, + 96, + 248, + 27, + 3, + 25, + 129, + 22, + 96, + 5, + 96, + 248, + 27, + 20, + 91, + 21, + 97, + 67, + 74, + 87, + 96, + 64, + 128, + 81, + 96, + 160, + 129, + 1, + 130, + 82, + 132, + 53, + 96, + 0, + 144, + 129, + 26, + 96, + 15, + 129, + 22, + 96, + 6, + 20, + 96, + 255, + 144, + 129, + 22, + 96, + 128, + 133, + 1, + 82, + 96, + 1, + 96, + 9, + 137, + 1, + 53, + 132, + 26, + 128, + 138, + 1, + 130, + 129, + 1, + 53, + 96, + 8, + 131, + 140, + 3, + 96, + 0, + 25, + 1, + 129, + 2, + 97, + 1, + 0, + 144, + 129, + 3, + 146, + 144, + 146, + 28, + 146, + 53, + 136, + 26, + 96, + 10, + 144, + 129, + 10, + 147, + 144, + 147, + 2, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 144, + 129, + 22, + 96, + 96, + 139, + 1, + 82, + 96, + 11, + 142, + 1, + 53, + 96, + 10, + 25, + 144, + 149, + 1, + 144, + 145, + 2, + 144, + 145, + 3, + 146, + 144, + 146, + 28, + 129, + 140, + 1, + 53, + 144, + 150, + 26, + 144, + 10, + 148, + 144, + 148, + 2, + 144, + 147, + 22, + 148, + 132, + 1, + 148, + 144, + 148, + 82, + 144, + 134, + 1, + 53, + 96, + 192, + 28, + 96, + 32, + 131, + 1, + 82, + 96, + 4, + 28, + 144, + 145, + 22, + 129, + 82, + 97, + 67, + 65, + 129, + 97, + 84, + 180, + 86, + 91, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 245, + 96, + 248, + 27, + 96, + 1, + 96, + 1, + 96, + 248, + 27, + 3, + 25, + 130, + 22, + 1, + 97, + 68, + 59, + 87, + 96, + 0, + 128, + 96, + 0, + 128, + 96, + 0, + 128, + 96, + 0, + 128, + 96, + 0, + 97, + 68, + 9, + 140, + 140, + 96, + 1, + 128, + 131, + 1, + 53, + 96, + 232, + 28, + 147, + 96, + 4, + 132, + 1, + 53, + 96, + 96, + 28, + 147, + 96, + 24, + 129, + 1, + 53, + 96, + 240, + 144, + 129, + 28, + 148, + 96, + 26, + 131, + 1, + 53, + 130, + 28, + 148, + 96, + 28, + 132, + 1, + 53, + 131, + 28, + 148, + 96, + 30, + 133, + 1, + 53, + 132, + 28, + 148, + 96, + 32, + 129, + 1, + 53, + 144, + 148, + 28, + 147, + 96, + 35, + 129, + 1, + 53, + 96, + 0, + 144, + 129, + 26, + 96, + 10, + 144, + 129, + 10, + 96, + 36, + 132, + 1, + 53, + 96, + 8, + 96, + 35, + 25, + 96, + 34, + 135, + 1, + 53, + 134, + 26, + 144, + 129, + 1, + 130, + 2, + 97, + 1, + 0, + 144, + 129, + 3, + 147, + 144, + 147, + 28, + 147, + 144, + 147, + 2, + 152, + 149, + 131, + 1, + 128, + 53, + 144, + 149, + 26, + 144, + 147, + 10, + 147, + 144, + 150, + 1, + 53, + 96, + 0, + 25, + 145, + 144, + 148, + 3, + 1, + 2, + 144, + 147, + 3, + 28, + 145, + 144, + 145, + 2, + 144, + 86, + 91, + 152, + 80, + 152, + 80, + 152, + 80, + 152, + 80, + 152, + 80, + 152, + 80, + 152, + 80, + 152, + 80, + 152, + 80, + 97, + 68, + 44, + 137, + 137, + 137, + 137, + 137, + 137, + 137, + 137, + 137, + 97, + 92, + 89, + 86, + 91, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 61, + 96, + 250, + 27, + 96, + 1, + 96, + 1, + 96, + 248, + 27, + 3, + 25, + 130, + 22, + 1, + 97, + 68, + 115, + 87, + 96, + 0, + 128, + 97, + 68, + 93, + 133, + 133, + 97, + 95, + 236, + 86, + 91, + 145, + 80, + 145, + 80, + 97, + 68, + 107, + 130, + 130, + 97, + 96, + 51, + 86, + 91, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 63, + 96, + 250, + 27, + 96, + 1, + 96, + 1, + 96, + 248, + 27, + 3, + 25, + 130, + 22, + 1, + 97, + 68, + 241, + 87, + 96, + 0, + 128, + 128, + 133, + 53, + 96, + 184, + 129, + 144, + 28, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 144, + 96, + 10, + 129, + 129, + 26, + 129, + 10, + 96, + 11, + 138, + 1, + 53, + 96, + 8, + 96, + 9, + 133, + 144, + 26, + 96, + 10, + 25, + 129, + 1, + 130, + 2, + 97, + 1, + 0, + 144, + 129, + 3, + 147, + 144, + 147, + 28, + 147, + 144, + 147, + 2, + 148, + 131, + 26, + 144, + 147, + 10, + 96, + 1, + 131, + 141, + 1, + 1, + 53, + 146, + 139, + 3, + 96, + 0, + 25, + 1, + 144, + 147, + 2, + 144, + 3, + 28, + 2, + 146, + 80, + 146, + 80, + 146, + 80, + 97, + 68, + 107, + 131, + 131, + 131, + 97, + 99, + 52, + 86, + 91, + 96, + 64, + 81, + 99, + 27, + 24, + 145, + 237, + 96, + 227, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 0, + 131, + 131, + 96, + 1, + 129, + 129, + 16, + 97, + 69, + 31, + 87, + 97, + 69, + 31, + 97, + 136, + 105, + 86, + 91, + 145, + 144, + 145, + 1, + 53, + 96, + 248, + 28, + 145, + 80, + 96, + 2, + 144, + 80, + 96, + 0, + 128, + 128, + 91, + 132, + 96, + 255, + 22, + 129, + 20, + 97, + 66, + 33, + 87, + 131, + 146, + 80, + 135, + 135, + 132, + 129, + 129, + 16, + 97, + 69, + 81, + 87, + 97, + 69, + 81, + 97, + 136, + 105, + 86, + 91, + 97, + 69, + 98, + 146, + 1, + 53, + 96, + 248, + 28, + 144, + 80, + 132, + 97, + 137, + 47, + 86, + 91, + 97, + 69, + 109, + 144, + 96, + 1, + 97, + 137, + 47, + 86, + 91, + 145, + 80, + 134, + 130, + 17, + 21, + 97, + 69, + 147, + 87, + 96, + 64, + 81, + 99, + 128, + 246, + 59, + 209, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 129, + 1, + 131, + 144, + 82, + 96, + 36, + 1, + 97, + 25, + 118, + 86, + 91, + 54, + 96, + 0, + 97, + 69, + 162, + 132, + 134, + 139, + 141, + 97, + 137, + 102, + 86, + 91, + 148, + 150, + 80, + 134, + 148, + 144, + 146, + 80, + 144, + 80, + 97, + 69, + 197, + 97, + 69, + 188, + 130, + 96, + 1, + 129, + 134, + 97, + 137, + 102, + 86, + 91, + 138, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 80, + 80, + 128, + 97, + 69, + 209, + 144, + 97, + 137, + 144, + 86, + 91, + 144, + 80, + 97, + 69, + 50, + 86, + 91, + 97, + 69, + 229, + 96, + 0, + 51, + 132, + 132, + 97, + 101, + 143, + 86, + 91, + 80, + 80, + 96, + 64, + 81, + 129, + 129, + 82, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 22, + 144, + 51, + 144, + 127, + 11, + 11, + 130, + 25, + 83, + 229, + 84, + 91, + 113, + 242, + 8, + 88, + 51, + 228, + 168, + 223, + 208, + 217, + 155, + 189, + 255, + 81, + 24, + 152, + 103, + 42, + 232, + 23, + 154, + 152, + 45, + 243, + 144, + 96, + 32, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 80, + 80, + 86, + 91, + 97, + 70, + 55, + 96, + 0, + 131, + 131, + 97, + 101, + 221, + 86, + 91, + 129, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 127, + 28, + 113, + 30, + 202, + 141, + 11, + 105, + 75, + 188, + 176, + 161, + 68, + 98, + 167, + 0, + 98, + 34, + 231, + 33, + 149, + 75, + 44, + 95, + 247, + 152, + 246, + 6, + 129, + 126, + 177, + 16, + 50, + 130, + 96, + 64, + 81, + 97, + 70, + 114, + 145, + 129, + 82, + 96, + 32, + 1, + 144, + 86, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 162, + 80, + 80, + 86, + 91, + 96, + 64, + 81, + 99, + 46, + 26, + 125, + 77, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 129, + 1, + 130, + 144, + 82, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 132, + 22, + 144, + 99, + 46, + 26, + 125, + 77, + 144, + 96, + 36, + 1, + 96, + 0, + 96, + 64, + 81, + 128, + 131, + 3, + 129, + 96, + 0, + 135, + 128, + 59, + 21, + 128, + 21, + 97, + 70, + 192, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 90, + 241, + 21, + 128, + 21, + 97, + 70, + 212, + 87, + 61, + 96, + 0, + 128, + 62, + 61, + 96, + 0, + 253, + 91, + 80, + 80, + 96, + 64, + 128, + 81, + 96, + 0, + 128, + 130, + 82, + 96, + 32, + 130, + 1, + 146, + 131, + 144, + 82, + 147, + 80, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 134, + 22, + 146, + 80, + 132, + 145, + 97, + 71, + 1, + 145, + 144, + 97, + 136, + 228, + 86, + 91, + 96, + 0, + 96, + 64, + 81, + 128, + 131, + 3, + 129, + 133, + 135, + 90, + 241, + 146, + 80, + 80, + 80, + 61, + 128, + 96, + 0, + 129, + 20, + 97, + 71, + 62, + 87, + 96, + 64, + 81, + 145, + 80, + 96, + 31, + 25, + 96, + 63, + 61, + 1, + 22, + 130, + 1, + 96, + 64, + 82, + 61, + 130, + 82, + 61, + 96, + 0, + 96, + 32, + 132, + 1, + 62, + 97, + 71, + 67, + 86, + 91, + 96, + 96, + 145, + 80, + 91, + 80, + 80, + 144, + 80, + 128, + 97, + 40, + 3, + 87, + 96, + 64, + 81, + 99, + 117, + 244, + 38, + 131, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 0, + 96, + 64, + 81, + 99, + 169, + 5, + 156, + 187, + 96, + 224, + 27, + 96, + 0, + 82, + 131, + 96, + 4, + 82, + 130, + 96, + 36, + 82, + 96, + 32, + 96, + 0, + 96, + 68, + 96, + 0, + 128, + 137, + 90, + 241, + 61, + 21, + 96, + 31, + 61, + 17, + 96, + 1, + 96, + 0, + 81, + 20, + 22, + 23, + 22, + 145, + 80, + 96, + 0, + 96, + 96, + 82, + 128, + 96, + 64, + 82, + 80, + 128, + 97, + 40, + 3, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 15, + 96, + 36, + 130, + 1, + 82, + 110, + 21, + 20, + 144, + 83, + 148, + 209, + 145, + 84, + 151, + 209, + 144, + 82, + 83, + 17, + 81, + 96, + 138, + 27, + 96, + 68, + 130, + 1, + 82, + 96, + 100, + 1, + 97, + 25, + 118, + 86, + 91, + 97, + 71, + 236, + 129, + 97, + 102, + 98, + 86, + 91, + 128, + 81, + 96, + 6, + 146, + 144, + 146, + 1, + 128, + 84, + 96, + 32, + 131, + 1, + 81, + 96, + 64, + 132, + 1, + 81, + 96, + 96, + 133, + 1, + 81, + 96, + 128, + 134, + 1, + 81, + 96, + 160, + 135, + 1, + 81, + 96, + 192, + 136, + 1, + 81, + 96, + 224, + 144, + 152, + 1, + 81, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 144, + 153, + 22, + 113, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 25, + 144, + 150, + 22, + 149, + 144, + 149, + 23, + 96, + 1, + 96, + 128, + 27, + 97, + 255, + 255, + 149, + 134, + 22, + 2, + 23, + 99, + 255, + 255, + 255, + 255, + 96, + 144, + 27, + 25, + 22, + 96, + 1, + 96, + 144, + 27, + 147, + 133, + 22, + 147, + 144, + 147, + 2, + 97, + 255, + 255, + 96, + 160, + 27, + 25, + 22, + 146, + 144, + 146, + 23, + 96, + 1, + 96, + 160, + 27, + 145, + 132, + 22, + 145, + 144, + 145, + 2, + 23, + 99, + 255, + 255, + 255, + 255, + 96, + 176, + 27, + 25, + 22, + 96, + 1, + 96, + 176, + 27, + 145, + 131, + 22, + 145, + 144, + 145, + 2, + 97, + 255, + 255, + 96, + 192, + 27, + 25, + 22, + 23, + 96, + 1, + 96, + 192, + 27, + 145, + 144, + 146, + 22, + 2, + 23, + 100, + 255, + 255, + 255, + 255, + 255, + 96, + 208, + 27, + 25, + 22, + 96, + 1, + 96, + 208, + 27, + 99, + 255, + 255, + 255, + 255, + 144, + 147, + 22, + 146, + 144, + 146, + 2, + 96, + 255, + 96, + 240, + 27, + 25, + 22, + 145, + 144, + 145, + 23, + 96, + 1, + 96, + 240, + 27, + 146, + 21, + 21, + 146, + 144, + 146, + 2, + 145, + 144, + 145, + 23, + 144, + 85, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 133, + 97, + 1, + 0, + 1, + 81, + 96, + 0, + 1, + 81, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 144, + 80, + 96, + 0, + 97, + 73, + 34, + 135, + 97, + 1, + 0, + 1, + 81, + 96, + 128, + 1, + 81, + 97, + 255, + 255, + 22, + 97, + 39, + 16, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 145, + 144, + 145, + 2, + 4, + 144, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 73, + 47, + 136, + 97, + 102, + 127, + 86, + 91, + 144, + 80, + 97, + 73, + 74, + 135, + 132, + 138, + 97, + 1, + 0, + 1, + 81, + 96, + 128, + 1, + 81, + 97, + 255, + 255, + 22, + 132, + 97, + 102, + 158, + 86, + 91, + 148, + 80, + 97, + 73, + 92, + 133, + 132, + 132, + 132, + 138, + 96, + 15, + 11, + 97, + 103, + 173, + 86, + 91, + 147, + 80, + 80, + 80, + 80, + 147, + 80, + 147, + 145, + 80, + 80, + 86, + 91, + 96, + 0, + 97, + 73, + 141, + 97, + 47, + 86, + 133, + 97, + 1, + 32, + 1, + 81, + 96, + 32, + 1, + 81, + 96, + 255, + 22, + 133, + 97, + 104, + 200, + 144, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 146, + 80, + 97, + 73, + 186, + 97, + 47, + 86, + 133, + 97, + 1, + 32, + 1, + 81, + 96, + 96, + 1, + 81, + 96, + 255, + 22, + 132, + 97, + 104, + 200, + 144, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 145, + 80, + 96, + 0, + 128, + 97, + 73, + 216, + 134, + 128, + 81, + 96, + 32, + 144, + 145, + 1, + 81, + 144, + 145, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 145, + 130, + 22, + 147, + 80, + 22, + 144, + 80, + 96, + 0, + 97, + 73, + 244, + 134, + 132, + 97, + 104, + 223, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 74, + 2, + 134, + 132, + 97, + 104, + 223, + 86, + 91, + 144, + 80, + 97, + 74, + 21, + 129, + 131, + 17, + 130, + 132, + 3, + 2, + 131, + 3, + 97, + 74, + 55, + 86, + 91, + 152, + 151, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 97, + 74, + 45, + 131, + 97, + 74, + 145, + 86, + 91, + 144, + 147, + 4, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 96, + 1, + 96, + 128, + 27, + 130, + 16, + 97, + 74, + 73, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 144, + 86, + 91, + 96, + 0, + 97, + 24, + 76, + 130, + 96, + 192, + 1, + 81, + 99, + 255, + 255, + 255, + 255, + 22, + 97, + 74, + 110, + 132, + 96, + 96, + 1, + 81, + 97, + 255, + 255, + 22, + 97, + 104, + 244, + 86, + 91, + 1, + 97, + 105, + 65, + 86, + 91, + 96, + 0, + 128, + 97, + 74, + 132, + 134, + 134, + 134, + 134, + 134, + 97, + 103, + 173, + 86, + 91, + 144, + 150, + 3, + 150, + 149, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 97, + 74, + 158, + 130, + 96, + 18, + 97, + 136, + 82, + 86, + 91, + 97, + 24, + 76, + 144, + 96, + 10, + 97, + 138, + 141, + 86, + 91, + 96, + 0, + 128, + 99, + 1, + 225, + 133, + 89, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 132, + 2, + 4, + 144, + 80, + 96, + 0, + 97, + 39, + 16, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 134, + 2, + 4, + 144, + 80, + 134, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 16, + 21, + 97, + 74, + 254, + 87, + 96, + 64, + 81, + 99, + 177, + 21, + 88, + 223, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 129, + 1, + 136, + 144, + 82, + 96, + 36, + 1, + 97, + 25, + 118, + 86, + 91, + 134, + 96, + 0, + 3, + 97, + 75, + 31, + 87, + 96, + 64, + 81, + 99, + 34, + 5, + 51, + 99, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 129, + 21, + 128, + 97, + 75, + 42, + 87, + 80, + 128, + 21, + 91, + 21, + 97, + 75, + 57, + 87, + 133, + 146, + 80, + 80, + 80, + 97, + 33, + 31, + 86, + 91, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 135, + 3, + 97, + 75, + 82, + 87, + 133, + 146, + 80, + 80, + 80, + 97, + 33, + 31, + 86, + 91, + 96, + 0, + 97, + 75, + 102, + 136, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 97, + 136, + 165, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 75, + 115, + 130, + 97, + 105, + 84, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 75, + 147, + 132, + 99, + 59, + 154, + 202, + 0, + 97, + 75, + 137, + 136, + 97, + 105, + 241, + 86, + 91, + 97, + 32, + 214, + 145, + 144, + 97, + 137, + 71, + 86, + 91, + 144, + 80, + 96, + 0, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 97, + 75, + 170, + 131, + 133, + 97, + 138, + 153, + 86, + 91, + 97, + 75, + 180, + 145, + 144, + 97, + 139, + 52, + 86, + 91, + 144, + 80, + 96, + 0, + 103, + 27, + 193, + 109, + 103, + 78, + 200, + 0, + 0, + 97, + 75, + 203, + 135, + 128, + 97, + 137, + 71, + 86, + 91, + 97, + 75, + 213, + 145, + 144, + 97, + 139, + 98, + 86, + 91, + 144, + 80, + 96, + 0, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 97, + 75, + 236, + 137, + 132, + 97, + 137, + 71, + 86, + 91, + 97, + 75, + 246, + 145, + 144, + 97, + 139, + 52, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 76, + 4, + 130, + 133, + 97, + 136, + 165, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 76, + 17, + 130, + 97, + 106, + 149, + 86, + 91, + 144, + 80, + 97, + 76, + 29, + 129, + 143, + 97, + 65, + 53, + 86, + 91, + 159, + 158, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 4, + 130, + 1, + 84, + 96, + 255, + 22, + 21, + 97, + 76, + 74, + 87, + 96, + 4, + 130, + 1, + 128, + 84, + 96, + 255, + 25, + 22, + 144, + 85, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 129, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 2, + 131, + 1, + 96, + 32, + 82, + 96, + 64, + 144, + 32, + 84, + 96, + 255, + 22, + 97, + 26, + 105, + 87, + 96, + 3, + 130, + 1, + 128, + 84, + 96, + 1, + 128, + 130, + 1, + 131, + 85, + 96, + 0, + 146, + 131, + 82, + 96, + 32, + 128, + 132, + 32, + 144, + 146, + 1, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 134, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 25, + 144, + 145, + 22, + 129, + 23, + 144, + 145, + 85, + 131, + 82, + 96, + 2, + 133, + 1, + 144, + 145, + 82, + 96, + 64, + 144, + 145, + 32, + 128, + 84, + 96, + 255, + 25, + 22, + 144, + 145, + 23, + 144, + 85, + 80, + 80, + 86, + 91, + 97, + 38, + 4, + 131, + 51, + 132, + 132, + 97, + 108, + 62, + 86, + 91, + 96, + 3, + 129, + 1, + 84, + 21, + 97, + 76, + 222, + 87, + 97, + 76, + 222, + 97, + 139, + 118, + 86, + 91, + 96, + 4, + 129, + 1, + 128, + 84, + 96, + 255, + 25, + 22, + 96, + 1, + 23, + 144, + 85, + 97, + 25, + 233, + 96, + 3, + 130, + 1, + 96, + 0, + 97, + 130, + 18, + 86, + 91, + 96, + 0, + 128, + 128, + 128, + 97, + 77, + 11, + 135, + 135, + 135, + 97, + 48, + 92, + 86, + 91, + 144, + 80, + 96, + 0, + 129, + 19, + 21, + 97, + 77, + 90, + 87, + 146, + 80, + 130, + 97, + 77, + 37, + 135, + 51, + 136, + 132, + 97, + 108, + 197, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 134, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 1, + 136, + 1, + 96, + 32, + 82, + 96, + 64, + 129, + 32, + 128, + 84, + 131, + 146, + 144, + 97, + 77, + 79, + 144, + 132, + 144, + 97, + 137, + 47, + 86, + 91, + 144, + 145, + 85, + 80, + 97, + 77, + 181, + 144, + 80, + 86, + 91, + 96, + 0, + 129, + 18, + 21, + 97, + 77, + 181, + 87, + 97, + 77, + 108, + 129, + 97, + 139, + 140, + 86, + 91, + 145, + 80, + 97, + 77, + 122, + 135, + 51, + 136, + 133, + 97, + 101, + 143, + 86, + 91, + 144, + 147, + 80, + 145, + 80, + 130, + 21, + 97, + 77, + 181, + 87, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 134, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 1, + 136, + 1, + 96, + 32, + 82, + 96, + 64, + 129, + 32, + 128, + 84, + 133, + 146, + 144, + 97, + 77, + 175, + 144, + 132, + 144, + 97, + 136, + 82, + 86, + 91, + 144, + 145, + 85, + 80, + 80, + 91, + 80, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 144, + 148, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 2, + 144, + 149, + 1, + 96, + 32, + 82, + 96, + 64, + 144, + 148, + 32, + 128, + 84, + 96, + 255, + 25, + 22, + 144, + 85, + 147, + 144, + 80, + 86, + 91, + 97, + 77, + 232, + 97, + 130, + 48, + 86, + 91, + 96, + 0, + 97, + 77, + 242, + 97, + 130, + 48, + 86, + 91, + 96, + 128, + 135, + 1, + 81, + 96, + 0, + 144, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 97, + 78, + 22, + 87, + 135, + 97, + 1, + 0, + 1, + 81, + 96, + 64, + 1, + 81, + 97, + 78, + 33, + 86, + 91, + 135, + 97, + 1, + 0, + 1, + 81, + 96, + 160, + 1, + 81, + 91, + 97, + 255, + 255, + 22, + 144, + 80, + 97, + 78, + 55, + 136, + 128, + 81, + 96, + 32, + 144, + 145, + 1, + 81, + 144, + 145, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 144, + 129, + 22, + 96, + 96, + 133, + 1, + 82, + 22, + 96, + 64, + 131, + 1, + 82, + 97, + 78, + 87, + 136, + 134, + 97, + 47, + 187, + 86, + 91, + 146, + 80, + 97, + 78, + 109, + 136, + 131, + 96, + 64, + 1, + 81, + 132, + 96, + 96, + 1, + 81, + 134, + 97, + 48, + 1, + 86, + 91, + 130, + 82, + 97, + 78, + 155, + 135, + 97, + 78, + 134, + 87, + 136, + 97, + 1, + 32, + 1, + 81, + 96, + 96, + 1, + 81, + 97, + 78, + 145, + 86, + 91, + 136, + 97, + 1, + 32, + 1, + 81, + 96, + 32, + 1, + 81, + 91, + 135, + 144, + 96, + 255, + 22, + 97, + 104, + 200, + 86, + 91, + 96, + 128, + 131, + 1, + 129, + 144, + 82, + 96, + 64, + 137, + 1, + 81, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 192, + 132, + 1, + 82, + 97, + 39, + 16, + 144, + 97, + 78, + 196, + 144, + 131, + 144, + 97, + 137, + 71, + 86, + 91, + 97, + 78, + 206, + 145, + 144, + 97, + 139, + 98, + 86, + 91, + 96, + 160, + 131, + 1, + 82, + 80, + 145, + 80, + 148, + 80, + 148, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 128, + 96, + 0, + 97, + 79, + 12, + 137, + 97, + 1, + 0, + 1, + 81, + 96, + 128, + 1, + 81, + 97, + 255, + 255, + 22, + 97, + 39, + 16, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 145, + 144, + 145, + 2, + 4, + 144, + 86, + 91, + 144, + 80, + 134, + 21, + 97, + 79, + 39, + 87, + 96, + 64, + 136, + 1, + 81, + 96, + 96, + 137, + 1, + 81, + 149, + 80, + 146, + 80, + 97, + 79, + 55, + 86, + 91, + 96, + 64, + 136, + 1, + 81, + 96, + 96, + 137, + 1, + 81, + 144, + 149, + 80, + 146, + 80, + 91, + 97, + 79, + 89, + 136, + 96, + 192, + 1, + 81, + 137, + 96, + 160, + 1, + 81, + 138, + 96, + 128, + 1, + 81, + 97, + 79, + 83, + 145, + 144, + 97, + 136, + 82, + 86, + 91, + 144, + 97, + 104, + 223, + 86, + 91, + 97, + 79, + 99, + 144, + 132, + 97, + 137, + 47, + 86, + 91, + 145, + 80, + 134, + 21, + 97, + 79, + 149, + 87, + 97, + 79, + 142, + 130, + 138, + 97, + 1, + 0, + 1, + 81, + 96, + 0, + 1, + 81, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 131, + 137, + 140, + 96, + 0, + 1, + 81, + 97, + 103, + 173, + 86, + 91, + 147, + 80, + 97, + 79, + 187, + 86, + 91, + 97, + 79, + 184, + 130, + 138, + 97, + 1, + 0, + 1, + 81, + 96, + 0, + 1, + 81, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 131, + 137, + 140, + 96, + 0, + 1, + 81, + 97, + 109, + 4, + 86, + 91, + 147, + 80, + 91, + 80, + 80, + 80, + 148, + 80, + 148, + 146, + 80, + 80, + 80, + 86, + 91, + 130, + 130, + 2, + 129, + 21, + 21, + 132, + 21, + 133, + 131, + 4, + 133, + 20, + 23, + 22, + 97, + 79, + 223, + 87, + 96, + 0, + 128, + 253, + 91, + 96, + 1, + 130, + 96, + 1, + 131, + 3, + 4, + 1, + 129, + 21, + 21, + 2, + 144, + 80, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 130, + 130, + 2, + 129, + 21, + 21, + 132, + 21, + 133, + 131, + 4, + 133, + 20, + 23, + 22, + 97, + 80, + 13, + 87, + 96, + 0, + 128, + 253, + 91, + 4, + 146, + 145, + 80, + 80, + 86, + 91, + 52, + 21, + 97, + 26, + 105, + 87, + 97, + 80, + 36, + 130, + 130, + 97, + 76, + 48, + 86, + 91, + 128, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 99, + 208, + 227, + 13, + 176, + 52, + 96, + 64, + 81, + 130, + 99, + 255, + 255, + 255, + 255, + 22, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 0, + 96, + 64, + 81, + 128, + 131, + 3, + 129, + 133, + 136, + 128, + 59, + 21, + 128, + 21, + 97, + 80, + 95, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 90, + 241, + 21, + 128, + 21, + 97, + 67, + 65, + 87, + 61, + 96, + 0, + 128, + 62, + 61, + 96, + 0, + 253, + 91, + 96, + 0, + 128, + 128, + 96, + 11, + 132, + 16, + 21, + 97, + 80, + 163, + 87, + 96, + 64, + 81, + 99, + 112, + 206, + 228, + 175, + 96, + 225, + 27, + 129, + 82, + 96, + 11, + 96, + 4, + 130, + 1, + 82, + 96, + 36, + 129, + 1, + 133, + 144, + 82, + 96, + 68, + 1, + 97, + 25, + 118, + 86, + 91, + 80, + 80, + 80, + 144, + 53, + 96, + 252, + 129, + 144, + 28, + 146, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 96, + 184, + 131, + 144, + 28, + 22, + 146, + 96, + 255, + 96, + 176, + 132, + 144, + 28, + 22, + 96, + 10, + 10, + 96, + 80, + 147, + 144, + 147, + 27, + 96, + 9, + 25, + 144, + 145, + 1, + 96, + 8, + 2, + 97, + 1, + 0, + 3, + 28, + 145, + 144, + 145, + 2, + 144, + 86, + 91, + 96, + 0, + 128, + 97, + 80, + 239, + 132, + 97, + 33, + 165, + 86, + 91, + 97, + 81, + 23, + 87, + 96, + 64, + 81, + 99, + 106, + 36, + 6, + 163, + 96, + 225, + 27, + 129, + 82, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 133, + 22, + 96, + 4, + 130, + 1, + 82, + 96, + 36, + 1, + 97, + 25, + 118, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 132, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 8, + 96, + 32, + 129, + 144, + 82, + 96, + 64, + 144, + 145, + 32, + 96, + 7, + 129, + 1, + 84, + 145, + 1, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 145, + 130, + 22, + 145, + 22, + 134, + 21, + 97, + 81, + 104, + 87, + 97, + 81, + 101, + 134, + 97, + 81, + 91, + 51, + 133, + 97, + 43, + 170, + 86, + 91, + 97, + 10, + 24, + 51, + 133, + 97, + 43, + 170, + 86, + 91, + 148, + 80, + 91, + 132, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 0, + 3, + 97, + 81, + 146, + 87, + 96, + 64, + 81, + 99, + 2, + 0, + 232, + 169, + 96, + 227, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 97, + 81, + 159, + 134, + 97, + 5, + 0, + 135, + 97, + 110, + 64, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 145, + 130, + 22, + 149, + 80, + 22, + 146, + 80, + 131, + 21, + 128, + 97, + 81, + 186, + 87, + 80, + 130, + 21, + 91, + 21, + 97, + 81, + 216, + 87, + 96, + 64, + 81, + 99, + 33, + 60, + 124, + 197, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 0, + 96, + 64, + 81, + 128, + 97, + 1, + 0, + 1, + 96, + 64, + 82, + 128, + 51, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 136, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 66, + 129, + 82, + 96, + 32, + 1, + 134, + 129, + 82, + 96, + 32, + 1, + 133, + 129, + 82, + 96, + 32, + 1, + 132, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 131, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 97, + 82, + 61, + 136, + 97, + 110, + 64, + 86, + 91, + 96, + 15, + 11, + 144, + 82, + 144, + 80, + 97, + 82, + 77, + 129, + 97, + 110, + 86, + 86, + 91, + 80, + 80, + 80, + 129, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 131, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 136, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 127, + 253, + 255, + 236, + 167, + 81, + 240, + 220, + 170, + 183, + 85, + 49, + 203, + 129, + 60, + 18, + 187, + 253, + 86, + 238, + 62, + 150, + 76, + 196, + 113, + 215, + 239, + 67, + 147, + 36, + 2, + 238, + 24, + 136, + 136, + 139, + 96, + 64, + 81, + 97, + 82, + 187, + 147, + 146, + 145, + 144, + 146, + 131, + 82, + 96, + 32, + 131, + 1, + 145, + 144, + 145, + 82, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 64, + 130, + 1, + 82, + 96, + 96, + 1, + 144, + 86, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 164, + 80, + 80, + 80, + 147, + 80, + 147, + 145, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 97, + 82, + 218, + 132, + 97, + 33, + 165, + 86, + 91, + 97, + 83, + 2, + 87, + 96, + 64, + 81, + 99, + 106, + 36, + 6, + 163, + 96, + 225, + 27, + 129, + 82, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 133, + 22, + 96, + 4, + 130, + 1, + 82, + 96, + 36, + 1, + 97, + 25, + 118, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 132, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 8, + 96, + 32, + 129, + 144, + 82, + 96, + 64, + 144, + 145, + 32, + 96, + 7, + 129, + 1, + 84, + 145, + 1, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 145, + 130, + 22, + 145, + 22, + 134, + 21, + 97, + 83, + 104, + 87, + 51, + 96, + 0, + 144, + 129, + 82, + 96, + 10, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 138, + 22, + 132, + 82, + 144, + 145, + 82, + 144, + 32, + 84, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 148, + 80, + 91, + 132, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 0, + 3, + 97, + 83, + 146, + 87, + 96, + 64, + 81, + 99, + 2, + 0, + 232, + 169, + 96, + 227, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 97, + 83, + 168, + 134, + 97, + 83, + 159, + 135, + 97, + 110, + 64, + 86, + 91, + 97, + 5, + 0, + 144, + 97, + 136, + 127, + 86, + 91, + 129, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 145, + 80, + 128, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 144, + 80, + 128, + 148, + 80, + 129, + 149, + 80, + 80, + 80, + 96, + 0, + 96, + 64, + 81, + 128, + 97, + 1, + 0, + 1, + 96, + 64, + 82, + 128, + 51, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 136, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 66, + 129, + 82, + 96, + 32, + 1, + 134, + 129, + 82, + 96, + 32, + 1, + 133, + 129, + 82, + 96, + 32, + 1, + 132, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 131, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 97, + 84, + 45, + 136, + 97, + 110, + 64, + 86, + 91, + 97, + 84, + 54, + 144, + 97, + 136, + 127, + 86, + 91, + 96, + 15, + 11, + 144, + 82, + 144, + 80, + 97, + 84, + 70, + 129, + 97, + 110, + 86, + 86, + 91, + 80, + 80, + 80, + 129, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 131, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 136, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 127, + 48, + 132, + 202, + 244, + 137, + 102, + 92, + 171, + 7, + 69, + 44, + 254, + 79, + 61, + 14, + 181, + 224, + 220, + 21, + 234, + 198, + 252, + 101, + 128, + 152, + 133, + 142, + 99, + 158, + 112, + 229, + 58, + 136, + 136, + 139, + 96, + 64, + 81, + 97, + 82, + 187, + 147, + 146, + 145, + 144, + 146, + 131, + 82, + 96, + 32, + 131, + 1, + 145, + 144, + 145, + 82, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 64, + 130, + 1, + 82, + 96, + 96, + 1, + 144, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 131, + 96, + 64, + 1, + 81, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 0, + 3, + 97, + 84, + 231, + 87, + 96, + 64, + 81, + 99, + 175, + 69, + 140, + 7, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 32, + 128, + 133, + 1, + 128, + 81, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 8, + 144, + 146, + 82, + 96, + 64, + 144, + 145, + 32, + 144, + 81, + 97, + 85, + 17, + 144, + 97, + 33, + 165, + 86, + 91, + 97, + 85, + 63, + 87, + 96, + 32, + 133, + 1, + 81, + 96, + 64, + 81, + 99, + 106, + 36, + 6, + 163, + 96, + 225, + 27, + 129, + 82, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 144, + 145, + 22, + 96, + 4, + 130, + 1, + 82, + 96, + 36, + 1, + 97, + 25, + 118, + 86, + 91, + 96, + 128, + 133, + 1, + 81, + 96, + 15, + 128, + 84, + 96, + 255, + 144, + 146, + 22, + 96, + 1, + 20, + 96, + 255, + 25, + 144, + 146, + 22, + 145, + 144, + 145, + 23, + 144, + 85, + 96, + 2, + 129, + 1, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 51, + 20, + 97, + 85, + 133, + 87, + 96, + 6, + 129, + 1, + 84, + 96, + 1, + 96, + 144, + 27, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 85, + 150, + 86, + 91, + 96, + 6, + 129, + 1, + 84, + 96, + 1, + 96, + 192, + 27, + 144, + 4, + 97, + 255, + 255, + 22, + 91, + 96, + 15, + 128, + 84, + 97, + 255, + 255, + 146, + 144, + 146, + 22, + 96, + 1, + 96, + 168, + 27, + 2, + 97, + 255, + 255, + 96, + 168, + 27, + 25, + 131, + 22, + 129, + 23, + 144, + 145, + 85, + 96, + 255, + 144, + 129, + 22, + 145, + 22, + 23, + 21, + 97, + 86, + 17, + 87, + 96, + 4, + 129, + 1, + 84, + 96, + 17, + 85, + 96, + 7, + 129, + 1, + 84, + 96, + 15, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 146, + 131, + 22, + 97, + 1, + 0, + 2, + 97, + 1, + 0, + 96, + 1, + 96, + 168, + 27, + 3, + 25, + 144, + 145, + 22, + 23, + 144, + 85, + 96, + 8, + 130, + 1, + 84, + 96, + 16, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 25, + 22, + 145, + 144, + 146, + 22, + 23, + 144, + 85, + 97, + 86, + 92, + 86, + 91, + 96, + 5, + 129, + 1, + 84, + 96, + 17, + 85, + 96, + 8, + 129, + 1, + 84, + 96, + 15, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 146, + 131, + 22, + 97, + 1, + 0, + 2, + 97, + 1, + 0, + 96, + 1, + 96, + 168, + 27, + 3, + 25, + 144, + 145, + 22, + 23, + 144, + 85, + 96, + 7, + 130, + 1, + 84, + 96, + 16, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 25, + 22, + 145, + 144, + 146, + 22, + 23, + 144, + 85, + 91, + 97, + 86, + 100, + 97, + 130, + 48, + 86, + 91, + 96, + 0, + 128, + 97, + 86, + 116, + 136, + 96, + 32, + 1, + 81, + 97, + 111, + 185, + 86, + 91, + 145, + 80, + 145, + 80, + 129, + 97, + 86, + 150, + 87, + 96, + 64, + 81, + 99, + 57, + 139, + 54, + 219, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 15, + 84, + 96, + 0, + 144, + 97, + 86, + 207, + 144, + 51, + 144, + 96, + 255, + 22, + 97, + 86, + 188, + 87, + 96, + 8, + 135, + 1, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 97, + 43, + 170, + 86, + 91, + 96, + 7, + 135, + 1, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 97, + 43, + 170, + 86, + 91, + 144, + 80, + 136, + 96, + 0, + 1, + 81, + 96, + 255, + 22, + 96, + 1, + 20, + 97, + 86, + 243, + 87, + 136, + 96, + 64, + 1, + 81, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 97, + 86, + 245, + 86, + 91, + 128, + 91, + 96, + 15, + 84, + 144, + 151, + 80, + 97, + 87, + 52, + 144, + 96, + 255, + 22, + 97, + 87, + 26, + 87, + 96, + 8, + 134, + 1, + 84, + 96, + 1, + 96, + 160, + 27, + 144, + 4, + 96, + 255, + 22, + 97, + 87, + 42, + 86, + 91, + 96, + 7, + 134, + 1, + 84, + 96, + 1, + 96, + 160, + 27, + 144, + 4, + 96, + 255, + 22, + 91, + 136, + 144, + 96, + 255, + 22, + 97, + 104, + 200, + 86, + 91, + 96, + 96, + 138, + 1, + 81, + 96, + 15, + 84, + 145, + 152, + 80, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 150, + 80, + 97, + 87, + 127, + 144, + 96, + 255, + 22, + 97, + 87, + 105, + 87, + 96, + 7, + 134, + 1, + 84, + 96, + 1, + 96, + 160, + 27, + 144, + 4, + 96, + 255, + 22, + 97, + 78, + 145, + 86, + 91, + 96, + 8, + 134, + 1, + 84, + 135, + 144, + 96, + 1, + 96, + 160, + 27, + 144, + 4, + 96, + 255, + 22, + 97, + 104, + 200, + 86, + 91, + 145, + 132, + 82, + 80, + 96, + 224, + 131, + 1, + 134, + 144, + 82, + 96, + 1, + 132, + 1, + 84, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 144, + 129, + 22, + 96, + 192, + 133, + 1, + 82, + 97, + 1, + 0, + 132, + 1, + 130, + 144, + 82, + 132, + 84, + 96, + 1, + 96, + 128, + 27, + 129, + 4, + 130, + 22, + 96, + 96, + 134, + 1, + 82, + 22, + 96, + 64, + 132, + 1, + 82, + 147, + 80, + 80, + 96, + 0, + 131, + 144, + 3, + 97, + 87, + 226, + 87, + 96, + 64, + 81, + 99, + 115, + 12, + 49, + 191, + 96, + 225, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 128, + 96, + 224, + 1, + 81, + 96, + 0, + 3, + 97, + 88, + 7, + 87, + 96, + 64, + 81, + 99, + 175, + 69, + 140, + 7, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 128, + 96, + 192, + 1, + 81, + 96, + 0, + 3, + 97, + 88, + 44, + 87, + 96, + 64, + 81, + 99, + 2, + 0, + 232, + 169, + 96, + 227, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 97, + 1, + 0, + 129, + 1, + 81, + 96, + 15, + 84, + 96, + 0, + 145, + 130, + 145, + 130, + 145, + 130, + 145, + 130, + 145, + 130, + 145, + 130, + 145, + 144, + 96, + 255, + 22, + 21, + 97, + 88, + 97, + 87, + 96, + 64, + 137, + 1, + 81, + 96, + 96, + 138, + 1, + 81, + 144, + 152, + 80, + 148, + 80, + 97, + 88, + 112, + 86, + 91, + 96, + 64, + 137, + 1, + 81, + 96, + 96, + 138, + 1, + 81, + 152, + 80, + 148, + 80, + 91, + 96, + 224, + 137, + 1, + 81, + 96, + 15, + 84, + 144, + 147, + 80, + 97, + 39, + 16, + 144, + 97, + 88, + 148, + 144, + 96, + 1, + 96, + 168, + 27, + 144, + 4, + 97, + 255, + 255, + 22, + 133, + 97, + 137, + 71, + 86, + 91, + 97, + 88, + 158, + 145, + 144, + 97, + 139, + 98, + 86, + 91, + 96, + 160, + 138, + 1, + 82, + 96, + 13, + 84, + 21, + 97, + 89, + 21, + 87, + 96, + 0, + 96, + 13, + 84, + 138, + 96, + 160, + 1, + 81, + 97, + 88, + 191, + 145, + 144, + 97, + 139, + 98, + 86, + 91, + 144, + 80, + 128, + 138, + 96, + 160, + 1, + 129, + 129, + 81, + 97, + 88, + 211, + 145, + 144, + 97, + 136, + 82, + 86, + 91, + 144, + 82, + 80, + 96, + 15, + 84, + 97, + 89, + 19, + 144, + 127, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 144, + 97, + 1, + 0, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 131, + 97, + 115, + 21, + 86, + 91, + 80, + 91, + 96, + 160, + 137, + 1, + 81, + 97, + 89, + 36, + 144, + 132, + 97, + 136, + 82, + 86, + 91, + 145, + 80, + 97, + 89, + 61, + 137, + 96, + 192, + 1, + 81, + 132, + 97, + 104, + 223, + 144, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 97, + 89, + 71, + 144, + 137, + 97, + 137, + 47, + 86, + 91, + 150, + 80, + 97, + 89, + 96, + 137, + 96, + 192, + 1, + 81, + 131, + 97, + 104, + 223, + 144, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 97, + 89, + 106, + 144, + 137, + 97, + 137, + 47, + 86, + 91, + 149, + 80, + 97, + 89, + 131, + 137, + 96, + 192, + 1, + 81, + 130, + 97, + 104, + 223, + 144, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 97, + 89, + 141, + 144, + 134, + 97, + 136, + 82, + 86, + 91, + 96, + 15, + 84, + 144, + 148, + 80, + 96, + 0, + 147, + 80, + 131, + 146, + 80, + 96, + 255, + 22, + 21, + 144, + 80, + 97, + 89, + 183, + 87, + 96, + 96, + 136, + 1, + 131, + 144, + 82, + 96, + 64, + 136, + 1, + 133, + 144, + 82, + 97, + 89, + 198, + 86, + 91, + 96, + 96, + 136, + 1, + 133, + 144, + 82, + 96, + 64, + 136, + 1, + 131, + 144, + 82, + 91, + 97, + 89, + 227, + 141, + 96, + 32, + 1, + 81, + 137, + 96, + 0, + 1, + 81, + 138, + 96, + 64, + 1, + 81, + 139, + 96, + 96, + 1, + 81, + 66, + 97, + 17, + 154, + 86, + 91, + 144, + 146, + 80, + 144, + 80, + 129, + 97, + 90, + 19, + 87, + 135, + 81, + 96, + 64, + 81, + 99, + 4, + 36, + 180, + 45, + 96, + 227, + 27, + 129, + 82, + 96, + 4, + 129, + 1, + 145, + 144, + 145, + 82, + 96, + 36, + 129, + 1, + 130, + 144, + 82, + 96, + 68, + 1, + 97, + 25, + 118, + 86, + 91, + 96, + 15, + 11, + 96, + 32, + 128, + 137, + 1, + 145, + 144, + 145, + 82, + 140, + 1, + 81, + 96, + 0, + 145, + 80, + 97, + 90, + 48, + 144, + 136, + 97, + 115, + 116, + 86, + 91, + 144, + 80, + 128, + 97, + 90, + 86, + 87, + 96, + 15, + 84, + 96, + 255, + 22, + 21, + 97, + 90, + 78, + 87, + 96, + 64, + 135, + 1, + 133, + 144, + 82, + 97, + 90, + 86, + 86, + 91, + 96, + 96, + 135, + 1, + 133, + 144, + 82, + 91, + 80, + 96, + 32, + 139, + 1, + 81, + 96, + 64, + 135, + 1, + 81, + 96, + 96, + 136, + 1, + 81, + 96, + 192, + 137, + 1, + 81, + 96, + 15, + 84, + 97, + 90, + 165, + 148, + 147, + 146, + 145, + 144, + 96, + 255, + 22, + 97, + 90, + 132, + 87, + 96, + 0, + 97, + 90, + 136, + 86, + 91, + 96, + 17, + 84, + 91, + 96, + 15, + 84, + 96, + 255, + 22, + 97, + 90, + 154, + 87, + 96, + 17, + 84, + 97, + 90, + 157, + 86, + 91, + 96, + 0, + 91, + 96, + 18, + 84, + 97, + 116, + 46, + 86, + 91, + 96, + 15, + 84, + 96, + 0, + 144, + 129, + 144, + 96, + 255, + 22, + 21, + 97, + 90, + 216, + 87, + 80, + 80, + 96, + 7, + 135, + 1, + 84, + 96, + 8, + 136, + 1, + 84, + 96, + 255, + 96, + 1, + 96, + 160, + 27, + 146, + 131, + 144, + 4, + 129, + 22, + 146, + 144, + 145, + 4, + 22, + 97, + 90, + 247, + 86, + 91, + 80, + 80, + 96, + 8, + 135, + 1, + 84, + 96, + 7, + 136, + 1, + 84, + 96, + 255, + 96, + 1, + 96, + 160, + 27, + 146, + 131, + 144, + 4, + 129, + 22, + 146, + 144, + 145, + 4, + 22, + 91, + 96, + 224, + 136, + 1, + 81, + 97, + 91, + 6, + 144, + 131, + 97, + 74, + 33, + 86, + 91, + 96, + 224, + 137, + 1, + 82, + 97, + 1, + 0, + 136, + 1, + 81, + 97, + 91, + 27, + 144, + 130, + 97, + 74, + 33, + 86, + 91, + 136, + 97, + 1, + 0, + 1, + 129, + 129, + 82, + 80, + 80, + 80, + 80, + 97, + 91, + 77, + 96, + 15, + 96, + 0, + 1, + 96, + 1, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 135, + 96, + 224, + 1, + 81, + 97, + 116, + 238, + 86, + 91, + 96, + 16, + 84, + 97, + 1, + 0, + 135, + 1, + 81, + 97, + 91, + 105, + 145, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 144, + 97, + 70, + 43, + 86, + 91, + 96, + 16, + 84, + 96, + 15, + 84, + 96, + 32, + 141, + 1, + 81, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 146, + 131, + 22, + 146, + 97, + 1, + 0, + 144, + 146, + 4, + 144, + 145, + 22, + 144, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 129, + 22, + 144, + 127, + 97, + 126, + 155, + 20, + 125, + 3, + 180, + 78, + 28, + 201, + 66, + 120, + 47, + 118, + 32, + 200, + 150, + 51, + 38, + 149, + 107, + 101, + 163, + 96, + 8, + 242, + 129, + 202, + 97, + 147, + 2, + 50, + 144, + 97, + 91, + 192, + 144, + 97, + 24, + 82, + 86, + 91, + 138, + 96, + 224, + 1, + 81, + 139, + 97, + 1, + 0, + 1, + 81, + 140, + 96, + 160, + 1, + 81, + 141, + 96, + 32, + 1, + 81, + 96, + 64, + 81, + 97, + 92, + 4, + 149, + 148, + 147, + 146, + 145, + 144, + 148, + 133, + 82, + 96, + 32, + 133, + 1, + 147, + 144, + 147, + 82, + 96, + 64, + 132, + 1, + 145, + 144, + 145, + 82, + 96, + 96, + 131, + 1, + 82, + 96, + 128, + 130, + 1, + 82, + 96, + 160, + 1, + 144, + 86, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 164, + 80, + 80, + 96, + 15, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 184, + 27, + 3, + 25, + 22, + 144, + 85, + 80, + 80, + 96, + 16, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 25, + 22, + 144, + 85, + 80, + 96, + 0, + 96, + 17, + 129, + 144, + 85, + 96, + 18, + 85, + 96, + 32, + 149, + 144, + 149, + 1, + 81, + 96, + 224, + 134, + 1, + 81, + 97, + 1, + 0, + 144, + 150, + 1, + 81, + 144, + 150, + 144, + 148, + 80, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 129, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 0, + 3, + 97, + 92, + 133, + 87, + 96, + 64, + 81, + 99, + 77, + 251, + 160, + 35, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 0, + 98, + 255, + 255, + 255, + 139, + 22, + 21, + 97, + 92, + 152, + 87, + 138, + 97, + 92, + 161, + 86, + 91, + 96, + 5, + 84, + 98, + 255, + 255, + 255, + 22, + 91, + 144, + 80, + 128, + 98, + 255, + 255, + 255, + 22, + 96, + 0, + 3, + 97, + 92, + 201, + 87, + 96, + 64, + 81, + 99, + 7, + 147, + 223, + 99, + 96, + 226, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 98, + 255, + 255, + 255, + 129, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 6, + 96, + 32, + 82, + 96, + 64, + 129, + 32, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 141, + 22, + 21, + 21, + 146, + 145, + 144, + 130, + 144, + 97, + 92, + 255, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 97, + 139, + 168, + 86, + 91, + 145, + 144, + 97, + 1, + 0, + 10, + 129, + 84, + 129, + 99, + 255, + 255, + 255, + 255, + 2, + 25, + 22, + 144, + 131, + 99, + 255, + 255, + 255, + 255, + 22, + 2, + 23, + 144, + 85, + 144, + 80, + 97, + 93, + 53, + 131, + 131, + 131, + 96, + 40, + 146, + 144, + 146, + 27, + 96, + 32, + 145, + 144, + 145, + 27, + 23, + 23, + 144, + 86, + 91, + 147, + 80, + 80, + 96, + 0, + 96, + 8, + 96, + 0, + 133, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 144, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 32, + 144, + 80, + 139, + 129, + 96, + 2, + 1, + 96, + 0, + 97, + 1, + 0, + 10, + 129, + 84, + 129, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 2, + 25, + 22, + 144, + 131, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 2, + 23, + 144, + 85, + 80, + 129, + 128, + 21, + 97, + 93, + 153, + 87, + 80, + 97, + 255, + 255, + 139, + 22, + 21, + 91, + 21, + 97, + 93, + 189, + 87, + 96, + 64, + 81, + 99, + 246, + 244, + 163, + 143, + 96, + 224, + 27, + 129, + 82, + 97, + 255, + 255, + 140, + 22, + 96, + 4, + 130, + 1, + 82, + 96, + 36, + 1, + 97, + 25, + 118, + 86, + 91, + 96, + 0, + 97, + 93, + 200, + 66, + 97, + 105, + 65, + 86, + 91, + 96, + 1, + 131, + 129, + 1, + 128, + 84, + 99, + 255, + 255, + 255, + 255, + 96, + 128, + 27, + 25, + 22, + 96, + 1, + 96, + 128, + 27, + 99, + 255, + 255, + 255, + 255, + 133, + 22, + 2, + 23, + 144, + 85, + 98, + 255, + 255, + 255, + 134, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 7, + 96, + 32, + 129, + 144, + 82, + 96, + 64, + 130, + 32, + 128, + 84, + 145, + 135, + 1, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 147, + 132, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 25, + 128, + 131, + 22, + 130, + 23, + 132, + 85, + 132, + 84, + 96, + 1, + 96, + 1, + 96, + 168, + 27, + 3, + 25, + 147, + 132, + 22, + 144, + 146, + 23, + 96, + 1, + 96, + 160, + 27, + 146, + 131, + 144, + 4, + 96, + 255, + 144, + 129, + 22, + 132, + 2, + 145, + 144, + 145, + 23, + 144, + 148, + 85, + 147, + 144, + 150, + 1, + 128, + 84, + 96, + 8, + 139, + 1, + 128, + 84, + 145, + 144, + 150, + 22, + 148, + 129, + 22, + 133, + 23, + 134, + 85, + 144, + 84, + 145, + 22, + 144, + 146, + 23, + 145, + 133, + 144, + 4, + 22, + 144, + 147, + 2, + 146, + 144, + 146, + 23, + 144, + 145, + 85, + 144, + 145, + 80, + 97, + 255, + 255, + 138, + 129, + 22, + 20, + 97, + 94, + 139, + 87, + 96, + 0, + 97, + 94, + 142, + 86, + 91, + 96, + 1, + 91, + 144, + 80, + 96, + 0, + 96, + 64, + 81, + 128, + 97, + 1, + 0, + 1, + 96, + 64, + 82, + 128, + 138, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 134, + 97, + 94, + 189, + 87, + 96, + 12, + 84, + 96, + 255, + 22, + 97, + 94, + 191, + 86, + 91, + 139, + 91, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 142, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 131, + 97, + 94, + 221, + 87, + 140, + 97, + 94, + 225, + 86, + 91, + 97, + 1, + 244, + 91, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 141, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 134, + 97, + 95, + 0, + 87, + 96, + 0, + 97, + 95, + 2, + 86, + 91, + 143, + 91, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 132, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 131, + 21, + 21, + 129, + 82, + 80, + 144, + 80, + 97, + 95, + 50, + 129, + 133, + 97, + 71, + 227, + 144, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 96, + 0, + 128, + 97, + 95, + 72, + 137, + 139, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 97, + 40, + 9, + 86, + 91, + 145, + 80, + 145, + 80, + 97, + 95, + 85, + 129, + 97, + 74, + 55, + 86, + 91, + 97, + 95, + 94, + 131, + 97, + 74, + 55, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 145, + 130, + 22, + 96, + 1, + 96, + 128, + 27, + 2, + 144, + 130, + 22, + 23, + 135, + 85, + 96, + 8, + 135, + 1, + 84, + 96, + 7, + 136, + 1, + 84, + 96, + 64, + 128, + 81, + 139, + 21, + 21, + 129, + 82, + 147, + 142, + 22, + 96, + 32, + 133, + 1, + 82, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 146, + 131, + 22, + 147, + 145, + 144, + 146, + 22, + 145, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 141, + 22, + 145, + 127, + 118, + 9, + 244, + 94, + 22, + 55, + 139, + 176, + 120, + 40, + 132, + 113, + 155, + 162, + 77, + 59, + 188, + 90, + 182, + 163, + 115, + 185, + 234, + 202, + 204, + 37, + 198, + 20, + 59, + 135, + 207, + 119, + 145, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 164, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 153, + 152, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 41, + 131, + 20, + 97, + 96, + 26, + 87, + 96, + 64, + 81, + 99, + 112, + 206, + 228, + 175, + 96, + 225, + 27, + 129, + 82, + 96, + 41, + 96, + 4, + 130, + 1, + 82, + 96, + 36, + 129, + 1, + 132, + 144, + 82, + 96, + 68, + 1, + 97, + 25, + 118, + 86, + 91, + 80, + 80, + 80, + 96, + 1, + 129, + 1, + 53, + 96, + 96, + 144, + 129, + 28, + 146, + 96, + 21, + 144, + 146, + 1, + 53, + 144, + 28, + 144, + 86, + 91, + 96, + 0, + 129, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 131, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 3, + 97, + 96, + 103, + 87, + 96, + 64, + 81, + 99, + 59, + 14, + 45, + 229, + 96, + 226, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 80, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 128, + 131, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 9, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 147, + 133, + 22, + 131, + 82, + 146, + 144, + 82, + 32, + 84, + 98, + 255, + 255, + 255, + 22, + 128, + 21, + 97, + 96, + 185, + 87, + 96, + 64, + 81, + 99, + 51, + 37, + 250, + 119, + 96, + 224, + 27, + 129, + 82, + 98, + 255, + 255, + 255, + 130, + 22, + 96, + 4, + 130, + 1, + 82, + 96, + 36, + 1, + 97, + 25, + 118, + 86, + 91, + 96, + 0, + 128, + 132, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 99, + 49, + 60, + 229, + 103, + 96, + 64, + 81, + 129, + 99, + 255, + 255, + 255, + 255, + 22, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 32, + 96, + 64, + 81, + 128, + 131, + 3, + 129, + 134, + 90, + 250, + 21, + 128, + 21, + 97, + 96, + 250, + 87, + 61, + 96, + 0, + 128, + 62, + 61, + 96, + 0, + 253, + 91, + 80, + 80, + 80, + 80, + 96, + 64, + 81, + 61, + 96, + 31, + 25, + 96, + 31, + 130, + 1, + 22, + 130, + 1, + 128, + 96, + 64, + 82, + 80, + 129, + 1, + 144, + 97, + 97, + 30, + 145, + 144, + 97, + 139, + 203, + 86, + 91, + 132, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 99, + 49, + 60, + 229, + 103, + 96, + 64, + 81, + 129, + 99, + 255, + 255, + 255, + 255, + 22, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 32, + 96, + 64, + 81, + 128, + 131, + 3, + 129, + 134, + 90, + 250, + 21, + 128, + 21, + 97, + 97, + 92, + 87, + 61, + 96, + 0, + 128, + 62, + 61, + 96, + 0, + 253, + 91, + 80, + 80, + 80, + 80, + 96, + 64, + 81, + 61, + 96, + 31, + 25, + 96, + 31, + 130, + 1, + 22, + 130, + 1, + 128, + 96, + 64, + 82, + 80, + 129, + 1, + 144, + 97, + 97, + 128, + 145, + 144, + 97, + 139, + 203, + 86, + 91, + 144, + 146, + 80, + 144, + 80, + 97, + 97, + 166, + 96, + 255, + 131, + 22, + 96, + 6, + 96, + 18, + 129, + 131, + 20, + 145, + 131, + 17, + 145, + 144, + 145, + 23, + 130, + 130, + 20, + 145, + 144, + 146, + 16, + 23, + 22, + 144, + 86, + 91, + 97, + 97, + 200, + 87, + 96, + 64, + 81, + 99, + 202, + 149, + 3, + 145, + 96, + 224, + 27, + 129, + 82, + 96, + 255, + 131, + 22, + 96, + 4, + 130, + 1, + 82, + 96, + 36, + 1, + 97, + 25, + 118, + 86, + 91, + 97, + 97, + 233, + 96, + 255, + 130, + 22, + 96, + 6, + 96, + 18, + 129, + 131, + 20, + 145, + 131, + 17, + 145, + 144, + 145, + 23, + 130, + 130, + 20, + 145, + 144, + 146, + 16, + 23, + 22, + 144, + 86, + 91, + 97, + 98, + 11, + 87, + 96, + 64, + 81, + 99, + 202, + 149, + 3, + 145, + 96, + 224, + 27, + 129, + 82, + 96, + 255, + 130, + 22, + 96, + 4, + 130, + 1, + 82, + 96, + 36, + 1, + 97, + 25, + 118, + 86, + 91, + 96, + 5, + 128, + 84, + 96, + 0, + 144, + 97, + 98, + 32, + 144, + 98, + 255, + 255, + 255, + 22, + 97, + 139, + 238, + 86, + 91, + 130, + 84, + 97, + 1, + 0, + 146, + 144, + 146, + 10, + 98, + 255, + 255, + 255, + 129, + 129, + 2, + 25, + 144, + 147, + 22, + 146, + 130, + 22, + 144, + 129, + 2, + 146, + 144, + 146, + 23, + 144, + 146, + 85, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 135, + 129, + 22, + 96, + 0, + 129, + 129, + 82, + 96, + 9, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 139, + 134, + 22, + 128, + 133, + 82, + 144, + 131, + 82, + 129, + 132, + 32, + 128, + 84, + 98, + 255, + 255, + 255, + 25, + 22, + 136, + 23, + 144, + 85, + 129, + 81, + 96, + 128, + 129, + 1, + 131, + 82, + 133, + 129, + 82, + 96, + 255, + 139, + 129, + 22, + 130, + 134, + 1, + 129, + 129, + 82, + 131, + 134, + 1, + 133, + 129, + 82, + 141, + 132, + 22, + 96, + 96, + 134, + 1, + 129, + 129, + 82, + 141, + 139, + 82, + 96, + 7, + 138, + 82, + 153, + 136, + 144, + 32, + 149, + 81, + 134, + 84, + 147, + 81, + 144, + 141, + 22, + 96, + 1, + 96, + 1, + 96, + 168, + 27, + 3, + 25, + 148, + 133, + 22, + 23, + 96, + 1, + 96, + 160, + 27, + 145, + 135, + 22, + 130, + 2, + 23, + 135, + 85, + 145, + 81, + 96, + 1, + 150, + 144, + 150, + 1, + 128, + 84, + 154, + 81, + 150, + 144, + 156, + 22, + 153, + 144, + 146, + 22, + 152, + 144, + 152, + 23, + 147, + 144, + 146, + 22, + 144, + 150, + 2, + 145, + 144, + 145, + 23, + 144, + 150, + 85, + 129, + 81, + 147, + 132, + 82, + 145, + 131, + 1, + 148, + 144, + 148, + 82, + 148, + 151, + 80, + 144, + 146, + 145, + 127, + 192, + 197, + 223, + 152, + 164, + 202, + 135, + 163, + 33, + 163, + 59, + 241, + 39, + 124, + 243, + 45, + 49, + 169, + 123, + 108, + 225, + 75, + 151, + 71, + 56, + 33, + 73, + 185, + 226, + 99, + 30, + 163, + 145, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 164, + 80, + 80, + 146, + 145, + 80, + 80, + 86, + 91, + 51, + 96, + 0, + 144, + 129, + 82, + 96, + 10, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 135, + 22, + 132, + 82, + 144, + 145, + 82, + 129, + 32, + 128, + 84, + 144, + 145, + 96, + 1, + 96, + 128, + 27, + 144, + 145, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 144, + 3, + 97, + 99, + 153, + 87, + 96, + 64, + 81, + 99, + 47, + 155, + 2, + 219, + 96, + 225, + 27, + 129, + 82, + 51, + 96, + 4, + 130, + 1, + 82, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 133, + 22, + 96, + 36, + 130, + 1, + 82, + 96, + 68, + 1, + 97, + 25, + 118, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 132, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 8, + 96, + 32, + 129, + 144, + 82, + 96, + 64, + 144, + 145, + 32, + 96, + 4, + 129, + 1, + 84, + 96, + 5, + 130, + 1, + 84, + 96, + 3, + 131, + 1, + 84, + 96, + 7, + 132, + 1, + 84, + 148, + 132, + 1, + 84, + 147, + 148, + 146, + 147, + 145, + 146, + 144, + 145, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 145, + 130, + 22, + 145, + 22, + 97, + 99, + 237, + 135, + 134, + 134, + 134, + 97, + 117, + 53, + 86, + 91, + 80, + 96, + 0, + 145, + 80, + 80, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 138, + 129, + 22, + 20, + 97, + 100, + 9, + 87, + 137, + 97, + 100, + 24, + 86, + 91, + 96, + 4, + 136, + 1, + 84, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 91, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 144, + 80, + 96, + 0, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 128, + 22, + 138, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 20, + 97, + 100, + 68, + 87, + 137, + 97, + 100, + 90, + 86, + 91, + 96, + 4, + 137, + 1, + 84, + 96, + 1, + 96, + 128, + 27, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 91, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 144, + 80, + 97, + 100, + 110, + 130, + 97, + 74, + 55, + 86, + 91, + 96, + 4, + 138, + 1, + 128, + 84, + 96, + 0, + 144, + 97, + 100, + 139, + 144, + 132, + 144, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 97, + 140, + 6, + 86, + 91, + 146, + 80, + 97, + 1, + 0, + 10, + 129, + 84, + 129, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 2, + 25, + 22, + 144, + 131, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 2, + 23, + 144, + 85, + 80, + 97, + 100, + 184, + 129, + 97, + 74, + 55, + 86, + 91, + 96, + 4, + 138, + 1, + 128, + 84, + 96, + 16, + 144, + 97, + 100, + 220, + 144, + 132, + 144, + 96, + 1, + 96, + 128, + 27, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 97, + 140, + 6, + 86, + 91, + 146, + 80, + 97, + 1, + 0, + 10, + 129, + 84, + 129, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 2, + 25, + 22, + 144, + 131, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 2, + 23, + 144, + 85, + 80, + 96, + 0, + 130, + 17, + 21, + 97, + 101, + 20, + 87, + 97, + 101, + 20, + 51, + 133, + 132, + 97, + 115, + 21, + 86, + 91, + 128, + 21, + 97, + 101, + 37, + 87, + 97, + 101, + 37, + 51, + 132, + 131, + 97, + 115, + 21, + 86, + 91, + 96, + 64, + 128, + 81, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 142, + 22, + 129, + 82, + 96, + 32, + 129, + 1, + 132, + 144, + 82, + 144, + 129, + 1, + 130, + 144, + 82, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 128, + 133, + 22, + 145, + 144, + 134, + 22, + 144, + 51, + 144, + 127, + 61, + 77, + 68, + 65, + 44, + 245, + 221, + 218, + 92, + 53, + 136, + 92, + 203, + 130, + 210, + 76, + 94, + 57, + 133, + 24, + 235, + 124, + 251, + 17, + 109, + 70, + 235, + 126, + 75, + 190, + 14, + 123, + 144, + 96, + 96, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 164, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 97, + 101, + 156, + 134, + 133, + 97, + 76, + 48, + 86, + 91, + 80, + 80, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 146, + 131, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 32, + 148, + 133, + 82, + 96, + 64, + 128, + 130, + 32, + 147, + 144, + 148, + 22, + 129, + 82, + 145, + 144, + 147, + 82, + 32, + 128, + 84, + 130, + 129, + 17, + 131, + 130, + 3, + 2, + 129, + 3, + 144, + 129, + 144, + 3, + 144, + 145, + 85, + 145, + 144, + 130, + 144, + 3, + 144, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 1, + 132, + 1, + 96, + 32, + 82, + 96, + 64, + 144, + 32, + 84, + 128, + 130, + 17, + 21, + 97, + 102, + 35, + 87, + 96, + 64, + 81, + 99, + 49, + 82, + 118, + 201, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 129, + 1, + 130, + 144, + 82, + 96, + 36, + 129, + 1, + 131, + 144, + 82, + 96, + 68, + 1, + 97, + 25, + 118, + 86, + 91, + 97, + 102, + 45, + 132, + 132, + 97, + 76, + 48, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 1, + 133, + 1, + 96, + 32, + 82, + 96, + 64, + 129, + 32, + 128, + 84, + 132, + 146, + 144, + 97, + 102, + 87, + 144, + 132, + 144, + 97, + 136, + 82, + 86, + 91, + 144, + 145, + 85, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 97, + 102, + 110, + 131, + 97, + 118, + 193, + 86, + 91, + 145, + 80, + 145, + 80, + 129, + 97, + 38, + 4, + 87, + 128, + 81, + 129, + 96, + 32, + 1, + 253, + 91, + 96, + 0, + 97, + 24, + 76, + 130, + 96, + 96, + 1, + 81, + 99, + 255, + 255, + 255, + 255, + 22, + 131, + 97, + 47, + 187, + 144, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 96, + 0, + 128, + 97, + 102, + 171, + 134, + 134, + 97, + 104, + 223, + 86, + 91, + 144, + 80, + 128, + 21, + 97, + 103, + 164, + 87, + 96, + 0, + 97, + 102, + 190, + 130, + 97, + 120, + 224, + 86, + 91, + 144, + 80, + 99, + 1, + 225, + 133, + 89, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 133, + 129, + 2, + 145, + 144, + 145, + 4, + 144, + 97, + 39, + 16, + 144, + 135, + 2, + 4, + 96, + 0, + 103, + 27, + 193, + 109, + 103, + 78, + 200, + 0, + 0, + 97, + 102, + 242, + 131, + 128, + 97, + 137, + 71, + 86, + 91, + 97, + 102, + 252, + 145, + 144, + 97, + 139, + 98, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 103, + 10, + 132, + 131, + 97, + 137, + 71, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 103, + 32, + 132, + 99, + 59, + 154, + 202, + 0, + 97, + 75, + 137, + 136, + 97, + 105, + 241, + 86, + 91, + 144, + 80, + 96, + 0, + 129, + 131, + 97, + 103, + 56, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 138, + 97, + 138, + 153, + 86, + 91, + 97, + 103, + 66, + 145, + 144, + 97, + 140, + 46, + 86, + 91, + 97, + 103, + 76, + 145, + 144, + 97, + 139, + 52, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 103, + 89, + 130, + 97, + 122, + 187, + 86, + 91, + 144, + 80, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 129, + 19, + 21, + 97, + 103, + 135, + 87, + 96, + 64, + 81, + 99, + 177, + 21, + 88, + 223, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 129, + 1, + 130, + 144, + 82, + 96, + 36, + 1, + 97, + 25, + 118, + 86, + 91, + 97, + 103, + 153, + 129, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 97, + 136, + 165, + 86, + 91, + 153, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 91, + 80, + 148, + 147, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 134, + 17, + 21, + 97, + 103, + 216, + 87, + 96, + 64, + 81, + 99, + 170, + 243, + 149, + 111, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 134, + 3, + 97, + 103, + 238, + 87, + 80, + 128, + 97, + 29, + 139, + 86, + 91, + 133, + 96, + 0, + 3, + 97, + 104, + 7, + 87, + 97, + 104, + 0, + 130, + 134, + 97, + 140, + 46, + 86, + 91, + 144, + 80, + 97, + 29, + 139, + 86, + 91, + 130, + 21, + 97, + 104, + 162, + 87, + 96, + 0, + 97, + 104, + 29, + 132, + 99, + 1, + 225, + 133, + 88, + 97, + 104, + 223, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 104, + 42, + 130, + 97, + 105, + 241, + 86, + 91, + 144, + 80, + 97, + 104, + 58, + 99, + 59, + 154, + 202, + 0, + 130, + 97, + 137, + 71, + 86, + 91, + 144, + 80, + 97, + 104, + 70, + 134, + 130, + 97, + 65, + 53, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 104, + 92, + 137, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 97, + 136, + 165, + 86, + 91, + 144, + 80, + 97, + 104, + 103, + 129, + 97, + 105, + 84, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 104, + 117, + 131, + 131, + 97, + 136, + 165, + 86, + 91, + 144, + 80, + 97, + 104, + 128, + 129, + 97, + 122, + 187, + 86, + 91, + 144, + 80, + 133, + 97, + 104, + 141, + 138, + 131, + 97, + 123, + 36, + 86, + 91, + 97, + 104, + 151, + 145, + 144, + 97, + 140, + 46, + 86, + 91, + 148, + 80, + 80, + 80, + 80, + 80, + 97, + 29, + 139, + 86, + 91, + 129, + 97, + 104, + 190, + 134, + 97, + 104, + 185, + 137, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 97, + 136, + 165, + 86, + 91, + 97, + 123, + 36, + 86, + 91, + 97, + 48, + 142, + 145, + 144, + 97, + 140, + 46, + 86, + 91, + 96, + 0, + 128, + 97, + 104, + 212, + 131, + 97, + 74, + 145, + 86, + 91, + 147, + 144, + 147, + 2, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 97, + 17, + 147, + 131, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 132, + 97, + 79, + 245, + 86, + 91, + 96, + 64, + 128, + 81, + 96, + 4, + 129, + 82, + 96, + 36, + 129, + 1, + 144, + 145, + 82, + 96, + 32, + 129, + 1, + 128, + 81, + 96, + 1, + 96, + 1, + 96, + 224, + 27, + 3, + 22, + 99, + 11, + 190, + 187, + 51, + 96, + 227, + 27, + 23, + 144, + 82, + 98, + 1, + 81, + 128, + 130, + 2, + 144, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 130, + 17, + 21, + 97, + 105, + 59, + 87, + 128, + 81, + 129, + 96, + 32, + 1, + 253, + 91, + 80, + 145, + 144, + 80, + 86, + 91, + 96, + 0, + 100, + 1, + 0, + 0, + 0, + 0, + 130, + 16, + 97, + 74, + 73, + 87, + 96, + 0, + 128, + 253, + 91, + 96, + 0, + 103, + 6, + 240, + 91, + 89, + 211, + 178, + 0, + 0, + 130, + 3, + 97, + 105, + 109, + 87, + 80, + 96, + 0, + 145, + 144, + 80, + 86, + 91, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 130, + 18, + 97, + 105, + 149, + 87, + 96, + 64, + 81, + 99, + 7, + 160, + 33, + 39, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 129, + 96, + 0, + 3, + 97, + 105, + 182, + 87, + 96, + 64, + 81, + 99, + 34, + 237, + 89, + 133, + 96, + 226, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 0, + 97, + 105, + 195, + 131, + 96, + 2, + 97, + 138, + 153, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 105, + 208, + 130, + 97, + 123, + 57, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 105, + 230, + 103, + 19, + 160, + 75, + 189, + 253, + 201, + 190, + 136, + 131, + 97, + 123, + 36, + 86, + 91, + 144, + 80, + 97, + 29, + 139, + 129, + 97, + 139, + 140, + 86, + 91, + 96, + 181, + 129, + 96, + 1, + 96, + 136, + 27, + 129, + 16, + 97, + 106, + 10, + 87, + 96, + 64, + 145, + 144, + 145, + 27, + 144, + 96, + 128, + 28, + 91, + 105, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 129, + 16, + 97, + 106, + 38, + 87, + 96, + 32, + 145, + 144, + 145, + 27, + 144, + 96, + 64, + 28, + 91, + 101, + 1, + 0, + 0, + 0, + 0, + 0, + 129, + 16, + 97, + 106, + 62, + 87, + 96, + 16, + 145, + 144, + 145, + 27, + 144, + 96, + 32, + 28, + 91, + 99, + 1, + 0, + 0, + 0, + 129, + 16, + 97, + 106, + 84, + 87, + 96, + 8, + 145, + 144, + 145, + 27, + 144, + 96, + 16, + 28, + 91, + 98, + 1, + 0, + 0, + 1, + 2, + 96, + 18, + 28, + 128, + 130, + 4, + 1, + 96, + 1, + 144, + 129, + 28, + 128, + 131, + 4, + 1, + 129, + 28, + 128, + 131, + 4, + 1, + 129, + 28, + 128, + 131, + 4, + 1, + 129, + 28, + 128, + 131, + 4, + 1, + 129, + 28, + 128, + 131, + 4, + 1, + 129, + 28, + 128, + 131, + 4, + 1, + 144, + 28, + 144, + 129, + 144, + 4, + 129, + 17, + 144, + 3, + 144, + 86, + 91, + 96, + 0, + 104, + 2, + 72, + 206, + 54, + 167, + 12, + 178, + 107, + 62, + 25, + 130, + 19, + 97, + 106, + 176, + 87, + 80, + 96, + 0, + 145, + 144, + 80, + 86, + 91, + 104, + 7, + 85, + 191, + 121, + 139, + 74, + 27, + 241, + 229, + 130, + 18, + 97, + 106, + 247, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 12, + 96, + 36, + 130, + 1, + 82, + 107, + 69, + 88, + 80, + 95, + 79, + 86, + 69, + 82, + 70, + 76, + 79, + 87, + 96, + 160, + 27, + 96, + 68, + 130, + 1, + 82, + 96, + 100, + 1, + 97, + 25, + 118, + 86, + 91, + 101, + 3, + 120, + 45, + 172, + 233, + 217, + 96, + 78, + 131, + 144, + 27, + 5, + 145, + 80, + 96, + 0, + 96, + 96, + 107, + 177, + 114, + 23, + 247, + 209, + 207, + 121, + 171, + 201, + 227, + 179, + 152, + 132, + 130, + 27, + 5, + 96, + 1, + 96, + 95, + 27, + 1, + 144, + 29, + 107, + 177, + 114, + 23, + 247, + 209, + 207, + 121, + 171, + 201, + 227, + 179, + 152, + 129, + 2, + 144, + 147, + 3, + 108, + 36, + 12, + 51, + 14, + 159, + 178, + 217, + 203, + 175, + 15, + 213, + 170, + 251, + 25, + 129, + 1, + 129, + 2, + 96, + 96, + 144, + 129, + 29, + 109, + 2, + 119, + 89, + 73, + 145, + 207, + 200, + 95, + 110, + 36, + 97, + 131, + 124, + 217, + 1, + 130, + 2, + 129, + 29, + 109, + 26, + 82, + 18, + 85, + 227, + 79, + 106, + 80, + 97, + 178, + 94, + 241, + 201, + 195, + 25, + 1, + 130, + 2, + 129, + 29, + 109, + 177, + 187, + 178, + 1, + 244, + 67, + 207, + 150, + 47, + 26, + 29, + 61, + 180, + 165, + 1, + 130, + 2, + 129, + 29, + 110, + 2, + 199, + 35, + 136, + 217, + 247, + 79, + 81, + 169, + 51, + 31, + 237, + 105, + 63, + 20, + 25, + 1, + 130, + 2, + 129, + 29, + 110, + 5, + 24, + 11, + 177, + 71, + 153, + 171, + 71, + 168, + 168, + 203, + 42, + 82, + 125, + 87, + 1, + 109, + 2, + 209, + 103, + 32, + 87, + 123, + 209, + 155, + 246, + 20, + 23, + 111, + 233, + 234, + 108, + 16, + 254, + 104, + 231, + 253, + 55, + 208, + 0, + 123, + 113, + 63, + 118, + 80, + 132, + 1, + 132, + 2, + 131, + 29, + 144, + 129, + 1, + 144, + 132, + 1, + 109, + 1, + 211, + 150, + 126, + 211, + 15, + 196, + 248, + 156, + 2, + 186, + 181, + 112, + 129, + 25, + 1, + 2, + 144, + 145, + 29, + 110, + 5, + 135, + 245, + 3, + 187, + 110, + 162, + 157, + 37, + 252, + 183, + 64, + 25, + 100, + 80, + 1, + 144, + 145, + 2, + 109, + 54, + 13, + 122, + 238, + 160, + 147, + 38, + 62, + 204, + 110, + 14, + 203, + 41, + 23, + 96, + 98, + 27, + 1, + 5, + 116, + 2, + 157, + 157, + 195, + 133, + 99, + 195, + 46, + 92, + 47, + 109, + 193, + 146, + 238, + 112, + 239, + 101, + 249, + 151, + 138, + 243, + 2, + 96, + 195, + 147, + 144, + 147, + 3, + 146, + 144, + 146, + 28, + 146, + 145, + 80, + 80, + 86, + 91, + 96, + 0, + 96, + 64, + 81, + 99, + 35, + 184, + 114, + 221, + 96, + 224, + 27, + 96, + 0, + 82, + 132, + 96, + 4, + 82, + 131, + 96, + 36, + 82, + 130, + 96, + 68, + 82, + 96, + 32, + 96, + 0, + 96, + 100, + 96, + 0, + 128, + 138, + 90, + 241, + 61, + 21, + 96, + 31, + 61, + 17, + 96, + 1, + 96, + 0, + 81, + 20, + 22, + 23, + 22, + 145, + 80, + 96, + 0, + 96, + 96, + 82, + 128, + 96, + 64, + 82, + 80, + 128, + 97, + 63, + 108, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 20, + 96, + 36, + 130, + 1, + 82, + 115, + 21, + 20, + 144, + 83, + 148, + 209, + 145, + 84, + 151, + 209, + 148, + 147, + 211, + 87, + 209, + 144, + 82, + 83, + 17, + 81, + 96, + 98, + 27, + 96, + 68, + 130, + 1, + 82, + 96, + 100, + 1, + 97, + 25, + 118, + 86, + 91, + 97, + 108, + 207, + 132, + 131, + 97, + 76, + 48, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 128, + 132, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 32, + 134, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 147, + 134, + 22, + 131, + 82, + 146, + 144, + 82, + 144, + 129, + 32, + 128, + 84, + 131, + 146, + 144, + 97, + 102, + 87, + 144, + 132, + 144, + 97, + 137, + 47, + 86, + 91, + 96, + 0, + 130, + 21, + 97, + 110, + 21, + 87, + 96, + 0, + 97, + 109, + 28, + 132, + 99, + 1, + 225, + 133, + 88, + 97, + 104, + 223, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 109, + 41, + 130, + 97, + 105, + 241, + 86, + 91, + 144, + 80, + 97, + 109, + 57, + 99, + 59, + 154, + 202, + 0, + 130, + 97, + 137, + 71, + 86, + 91, + 144, + 80, + 97, + 109, + 69, + 134, + 130, + 97, + 65, + 53, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 109, + 92, + 97, + 109, + 86, + 134, + 139, + 97, + 140, + 46, + 86, + 91, + 137, + 97, + 125, + 178, + 86, + 91, + 144, + 80, + 96, + 0, + 129, + 18, + 21, + 97, + 109, + 128, + 87, + 96, + 64, + 81, + 99, + 170, + 243, + 149, + 111, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 129, + 19, + 21, + 97, + 109, + 169, + 87, + 96, + 64, + 81, + 99, + 170, + 243, + 149, + 111, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 129, + 3, + 97, + 109, + 196, + 87, + 96, + 0, + 147, + 80, + 80, + 80, + 80, + 97, + 29, + 139, + 86, + 91, + 128, + 96, + 0, + 3, + 97, + 109, + 223, + 87, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 147, + 80, + 80, + 80, + 80, + 97, + 29, + 139, + 86, + 91, + 97, + 109, + 232, + 129, + 97, + 105, + 84, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 109, + 246, + 131, + 131, + 97, + 140, + 46, + 86, + 91, + 144, + 80, + 97, + 110, + 1, + 129, + 97, + 122, + 187, + 86, + 91, + 144, + 80, + 97, + 104, + 151, + 129, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 97, + 136, + 165, + 86, + 91, + 96, + 0, + 97, + 110, + 33, + 131, + 136, + 97, + 140, + 46, + 86, + 91, + 144, + 80, + 133, + 97, + 110, + 46, + 130, + 130, + 97, + 125, + 178, + 86, + 91, + 97, + 74, + 21, + 144, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 97, + 136, + 165, + 86, + 91, + 96, + 0, + 96, + 1, + 96, + 1, + 96, + 127, + 27, + 3, + 130, + 17, + 21, + 97, + 74, + 73, + 87, + 96, + 0, + 128, + 253, + 91, + 96, + 32, + 128, + 130, + 1, + 128, + 81, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 144, + 129, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 8, + 132, + 82, + 96, + 64, + 128, + 130, + 32, + 134, + 81, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 131, + 82, + 96, + 10, + 134, + 82, + 129, + 131, + 32, + 148, + 81, + 144, + 147, + 22, + 130, + 82, + 146, + 144, + 147, + 82, + 144, + 130, + 32, + 96, + 4, + 130, + 1, + 84, + 96, + 5, + 131, + 1, + 84, + 96, + 3, + 132, + 1, + 84, + 133, + 148, + 133, + 148, + 144, + 147, + 144, + 146, + 97, + 110, + 188, + 146, + 132, + 146, + 145, + 144, + 97, + 117, + 53, + 86, + 91, + 96, + 32, + 137, + 1, + 81, + 137, + 81, + 96, + 224, + 139, + 1, + 81, + 148, + 153, + 80, + 146, + 151, + 80, + 144, + 149, + 80, + 96, + 0, + 146, + 97, + 110, + 225, + 146, + 144, + 96, + 15, + 11, + 97, + 16, + 169, + 86, + 91, + 144, + 80, + 128, + 97, + 111, + 19, + 87, + 96, + 6, + 131, + 1, + 84, + 96, + 64, + 81, + 99, + 38, + 136, + 198, + 203, + 96, + 226, + 27, + 129, + 82, + 96, + 1, + 96, + 128, + 27, + 144, + 145, + 4, + 97, + 255, + 255, + 22, + 96, + 4, + 130, + 1, + 82, + 96, + 36, + 1, + 97, + 25, + 118, + 86, + 91, + 96, + 64, + 135, + 1, + 81, + 96, + 224, + 136, + 1, + 81, + 97, + 111, + 40, + 145, + 132, + 145, + 97, + 125, + 199, + 86, + 91, + 96, + 224, + 135, + 1, + 81, + 96, + 32, + 128, + 137, + 1, + 81, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 8, + 144, + 145, + 82, + 96, + 64, + 144, + 32, + 97, + 111, + 83, + 145, + 97, + 126, + 29, + 86, + 91, + 96, + 160, + 135, + 1, + 81, + 96, + 192, + 136, + 1, + 81, + 96, + 224, + 137, + 1, + 81, + 96, + 0, + 96, + 15, + 145, + 144, + 145, + 11, + 18, + 21, + 97, + 111, + 145, + 87, + 97, + 111, + 126, + 130, + 138, + 96, + 96, + 1, + 81, + 97, + 70, + 43, + 86, + 91, + 97, + 111, + 140, + 129, + 138, + 96, + 128, + 1, + 81, + 97, + 70, + 43, + 86, + 91, + 97, + 111, + 173, + 86, + 91, + 97, + 111, + 159, + 130, + 138, + 96, + 96, + 1, + 81, + 97, + 116, + 238, + 86, + 91, + 97, + 111, + 173, + 129, + 138, + 96, + 128, + 1, + 81, + 97, + 116, + 238, + 86, + 91, + 80, + 80, + 80, + 80, + 80, + 145, + 147, + 144, + 146, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 97, + 111, + 199, + 132, + 97, + 48, + 152, + 86, + 91, + 80, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 134, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 8, + 96, + 32, + 82, + 96, + 64, + 144, + 32, + 144, + 146, + 80, + 97, + 111, + 238, + 145, + 80, + 66, + 97, + 126, + 92, + 86, + 91, + 97, + 114, + 248, + 96, + 8, + 96, + 0, + 134, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 144, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 32, + 96, + 64, + 81, + 128, + 97, + 1, + 64, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 2, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 3, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 4, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 5, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 6, + 130, + 1, + 96, + 64, + 81, + 128, + 97, + 1, + 0, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 18, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 22, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 24, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 26, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 30, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 21, + 21, + 21, + 21, + 129, + 82, + 80, + 80, + 129, + 82, + 96, + 32, + 1, + 96, + 7, + 130, + 1, + 96, + 64, + 81, + 128, + 96, + 128, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 80, + 80, + 129, + 82, + 80, + 80, + 97, + 102, + 127, + 86, + 91, + 96, + 0, + 3, + 97, + 115, + 10, + 87, + 96, + 0, + 148, + 144, + 147, + 80, + 145, + 80, + 80, + 86, + 91, + 96, + 1, + 148, + 144, + 147, + 80, + 145, + 80, + 80, + 86, + 91, + 97, + 115, + 34, + 96, + 0, + 132, + 132, + 132, + 97, + 108, + 197, + 86, + 91, + 129, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 131, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 127, + 73, + 225, + 68, + 60, + 178, + 94, + 23, + 203, + 235, + 197, + 10, + 163, + 227, + 165, + 163, + 223, + 58, + 195, + 52, + 175, + 133, + 43, + 198, + 243, + 232, + 210, + 88, + 85, + 130, + 87, + 187, + 17, + 131, + 96, + 64, + 81, + 97, + 115, + 103, + 145, + 129, + 82, + 96, + 32, + 1, + 144, + 86, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 80, + 80, + 80, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 130, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 8, + 96, + 32, + 82, + 96, + 64, + 129, + 32, + 96, + 2, + 1, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 51, + 3, + 97, + 115, + 246, + 87, + 129, + 81, + 96, + 32, + 131, + 1, + 81, + 96, + 0, + 145, + 97, + 115, + 178, + 145, + 97, + 136, + 165, + 86, + 91, + 144, + 80, + 96, + 0, + 128, + 130, + 18, + 97, + 115, + 195, + 87, + 129, + 97, + 115, + 204, + 86, + 91, + 97, + 115, + 204, + 130, + 97, + 139, + 140, + 86, + 91, + 144, + 80, + 128, + 21, + 97, + 115, + 243, + 87, + 97, + 115, + 243, + 97, + 115, + 238, + 133, + 96, + 192, + 1, + 81, + 131, + 97, + 104, + 223, + 144, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 96, + 18, + 85, + 86, + 91, + 80, + 80, + 91, + 96, + 0, + 130, + 96, + 32, + 1, + 81, + 19, + 21, + 97, + 116, + 37, + 87, + 97, + 116, + 29, + 97, + 116, + 24, + 131, + 96, + 160, + 1, + 81, + 132, + 96, + 192, + 1, + 81, + 97, + 104, + 223, + 86, + 91, + 96, + 17, + 85, + 86, + 91, + 80, + 96, + 1, + 97, + 24, + 76, + 86, + 91, + 80, + 96, + 0, + 146, + 145, + 80, + 80, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 135, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 8, + 96, + 32, + 82, + 96, + 64, + 144, + 32, + 97, + 116, + 79, + 135, + 97, + 74, + 55, + 86, + 91, + 129, + 84, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 25, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 145, + 144, + 145, + 22, + 23, + 129, + 85, + 97, + 116, + 115, + 134, + 97, + 74, + 55, + 86, + 91, + 129, + 84, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 145, + 130, + 22, + 96, + 1, + 96, + 128, + 27, + 2, + 145, + 22, + 23, + 129, + 85, + 97, + 116, + 148, + 133, + 97, + 74, + 55, + 86, + 91, + 96, + 1, + 130, + 1, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 25, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 146, + 144, + 146, + 22, + 145, + 144, + 145, + 23, + 144, + 85, + 97, + 116, + 192, + 129, + 66, + 97, + 126, + 92, + 86, + 91, + 96, + 4, + 129, + 1, + 84, + 132, + 1, + 96, + 4, + 130, + 1, + 85, + 96, + 5, + 129, + 1, + 84, + 131, + 1, + 96, + 5, + 130, + 1, + 85, + 96, + 3, + 129, + 1, + 84, + 130, + 1, + 96, + 3, + 144, + 145, + 1, + 85, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 97, + 116, + 250, + 96, + 0, + 131, + 131, + 97, + 126, + 139, + 86, + 91, + 129, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 127, + 128, + 178, + 23, + 72, + 199, + 135, + 197, + 46, + 135, + 166, + 178, + 34, + 1, + 30, + 10, + 14, + 208, + 249, + 204, + 32, + 21, + 240, + 206, + 212, + 103, + 72, + 100, + 45, + 198, + 46, + 233, + 248, + 130, + 96, + 64, + 81, + 97, + 70, + 114, + 145, + 129, + 82, + 96, + 32, + 1, + 144, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 128, + 97, + 117, + 73, + 135, + 137, + 96, + 2, + 1, + 84, + 144, + 3, + 144, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 117, + 91, + 135, + 138, + 96, + 3, + 1, + 84, + 144, + 3, + 144, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 117, + 109, + 135, + 139, + 96, + 1, + 1, + 84, + 144, + 3, + 144, + 86, + 91, + 138, + 84, + 144, + 145, + 80, + 97, + 117, + 134, + 144, + 132, + 144, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 97, + 65, + 53, + 86, + 91, + 138, + 84, + 144, + 150, + 80, + 97, + 117, + 159, + 144, + 131, + 144, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 97, + 65, + 53, + 86, + 91, + 138, + 84, + 144, + 149, + 80, + 97, + 117, + 184, + 144, + 130, + 144, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 97, + 65, + 53, + 86, + 91, + 96, + 2, + 139, + 1, + 138, + 144, + 85, + 96, + 3, + 139, + 1, + 137, + 144, + 85, + 96, + 1, + 139, + 1, + 136, + 144, + 85, + 147, + 80, + 97, + 117, + 216, + 134, + 97, + 74, + 55, + 86, + 91, + 96, + 4, + 139, + 1, + 128, + 84, + 96, + 0, + 144, + 97, + 117, + 245, + 144, + 132, + 144, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 97, + 140, + 111, + 86, + 91, + 146, + 80, + 97, + 1, + 0, + 10, + 129, + 84, + 129, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 2, + 25, + 22, + 144, + 131, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 2, + 23, + 144, + 85, + 80, + 97, + 118, + 34, + 133, + 97, + 74, + 55, + 86, + 91, + 96, + 4, + 139, + 1, + 128, + 84, + 96, + 16, + 144, + 97, + 118, + 70, + 144, + 132, + 144, + 96, + 1, + 96, + 128, + 27, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 97, + 140, + 111, + 86, + 91, + 146, + 80, + 97, + 1, + 0, + 10, + 129, + 84, + 129, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 2, + 25, + 22, + 144, + 131, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 2, + 23, + 144, + 85, + 80, + 97, + 118, + 115, + 132, + 97, + 74, + 55, + 86, + 91, + 96, + 5, + 139, + 1, + 128, + 84, + 96, + 0, + 144, + 97, + 118, + 144, + 144, + 132, + 144, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 97, + 140, + 111, + 86, + 91, + 146, + 80, + 97, + 1, + 0, + 10, + 129, + 84, + 129, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 2, + 25, + 22, + 144, + 131, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 2, + 23, + 144, + 85, + 80, + 80, + 80, + 80, + 148, + 80, + 148, + 80, + 148, + 145, + 80, + 80, + 86, + 91, + 96, + 0, + 96, + 96, + 97, + 2, + 88, + 131, + 96, + 32, + 1, + 81, + 97, + 255, + 255, + 22, + 17, + 21, + 97, + 119, + 54, + 87, + 96, + 32, + 131, + 1, + 81, + 96, + 64, + 81, + 97, + 255, + 255, + 144, + 145, + 22, + 96, + 36, + 130, + 1, + 82, + 96, + 0, + 144, + 99, + 122, + 127, + 16, + 65, + 96, + 225, + 27, + 144, + 96, + 68, + 1, + 91, + 96, + 64, + 128, + 81, + 96, + 31, + 25, + 129, + 132, + 3, + 1, + 129, + 82, + 145, + 144, + 82, + 96, + 32, + 129, + 1, + 128, + 81, + 96, + 1, + 96, + 1, + 96, + 224, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 224, + 27, + 3, + 25, + 144, + 147, + 22, + 146, + 144, + 146, + 23, + 144, + 145, + 82, + 144, + 148, + 144, + 147, + 80, + 145, + 80, + 80, + 86, + 91, + 97, + 119, + 93, + 131, + 96, + 128, + 1, + 81, + 97, + 255, + 255, + 22, + 96, + 100, + 97, + 97, + 168, + 129, + 131, + 20, + 145, + 131, + 17, + 145, + 144, + 145, + 23, + 130, + 130, + 20, + 145, + 144, + 146, + 16, + 23, + 22, + 144, + 86, + 91, + 97, + 119, + 136, + 87, + 96, + 128, + 131, + 1, + 81, + 96, + 64, + 81, + 97, + 255, + 255, + 144, + 145, + 22, + 96, + 36, + 130, + 1, + 82, + 96, + 0, + 144, + 99, + 9, + 98, + 43, + 49, + 96, + 225, + 27, + 144, + 96, + 68, + 1, + 97, + 118, + 250, + 86, + 91, + 97, + 119, + 175, + 131, + 96, + 96, + 1, + 81, + 97, + 255, + 255, + 22, + 96, + 1, + 97, + 1, + 244, + 129, + 131, + 20, + 145, + 131, + 17, + 145, + 144, + 145, + 23, + 130, + 130, + 20, + 145, + 144, + 146, + 16, + 23, + 22, + 144, + 86, + 91, + 97, + 119, + 218, + 87, + 96, + 96, + 131, + 1, + 81, + 96, + 64, + 81, + 97, + 255, + 255, + 144, + 145, + 22, + 96, + 36, + 130, + 1, + 82, + 96, + 0, + 144, + 99, + 174, + 145, + 144, + 39, + 96, + 224, + 27, + 144, + 96, + 68, + 1, + 97, + 118, + 250, + 86, + 91, + 130, + 81, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 144, + 129, + 22, + 129, + 129, + 16, + 145, + 129, + 20, + 145, + 144, + 145, + 23, + 96, + 1, + 128, + 131, + 17, + 146, + 20, + 145, + 144, + 145, + 23, + 22, + 97, + 120, + 42, + 87, + 130, + 81, + 96, + 64, + 81, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 144, + 145, + 22, + 96, + 36, + 130, + 1, + 82, + 96, + 0, + 144, + 99, + 139, + 191, + 136, + 181, + 96, + 224, + 27, + 144, + 96, + 68, + 1, + 97, + 118, + 250, + 86, + 91, + 97, + 120, + 81, + 131, + 96, + 64, + 1, + 81, + 97, + 255, + 255, + 22, + 96, + 1, + 97, + 3, + 232, + 129, + 131, + 20, + 145, + 131, + 17, + 145, + 144, + 145, + 23, + 130, + 130, + 20, + 145, + 144, + 146, + 16, + 23, + 22, + 144, + 86, + 91, + 97, + 120, + 124, + 87, + 96, + 64, + 128, + 132, + 1, + 81, + 144, + 81, + 97, + 255, + 255, + 144, + 145, + 22, + 96, + 36, + 130, + 1, + 82, + 96, + 0, + 144, + 99, + 246, + 244, + 163, + 143, + 96, + 224, + 27, + 144, + 96, + 68, + 1, + 97, + 118, + 250, + 86, + 91, + 96, + 160, + 131, + 1, + 81, + 96, + 64, + 132, + 1, + 81, + 97, + 255, + 255, + 145, + 130, + 22, + 128, + 21, + 128, + 21, + 23, + 146, + 144, + 145, + 22, + 129, + 129, + 20, + 145, + 16, + 23, + 22, + 97, + 120, + 199, + 87, + 96, + 160, + 131, + 1, + 81, + 96, + 64, + 81, + 97, + 255, + 255, + 144, + 145, + 22, + 96, + 36, + 130, + 1, + 82, + 96, + 0, + 144, + 99, + 246, + 244, + 163, + 143, + 96, + 224, + 27, + 144, + 96, + 68, + 1, + 97, + 118, + 250, + 86, + 91, + 80, + 80, + 96, + 64, + 128, + 81, + 96, + 32, + 129, + 1, + 144, + 145, + 82, + 96, + 0, + 129, + 82, + 96, + 1, + 146, + 144, + 145, + 80, + 86, + 91, + 96, + 0, + 128, + 130, + 19, + 97, + 121, + 29, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 9, + 96, + 36, + 130, + 1, + 82, + 104, + 21, + 83, + 145, + 17, + 81, + 146, + 83, + 145, + 81, + 96, + 186, + 27, + 96, + 68, + 130, + 1, + 82, + 96, + 100, + 1, + 97, + 25, + 118, + 86, + 91, + 96, + 0, + 96, + 96, + 97, + 121, + 42, + 132, + 97, + 126, + 201, + 86, + 91, + 3, + 96, + 159, + 129, + 129, + 3, + 148, + 144, + 148, + 27, + 144, + 147, + 28, + 108, + 70, + 87, + 114, + 178, + 187, + 187, + 95, + 130, + 75, + 21, + 32, + 122, + 48, + 129, + 1, + 129, + 2, + 96, + 96, + 144, + 129, + 29, + 109, + 3, + 136, + 234, + 162, + 116, + 18, + 213, + 172, + 160, + 38, + 129, + 93, + 99, + 110, + 1, + 130, + 2, + 129, + 29, + 109, + 13, + 249, + 154, + 197, + 2, + 3, + 27, + 249, + 83, + 239, + 244, + 114, + 253, + 204, + 1, + 130, + 2, + 129, + 29, + 109, + 19, + 205, + 255, + 178, + 157, + 81, + 217, + 147, + 34, + 189, + 255, + 95, + 34, + 17, + 1, + 130, + 2, + 129, + 29, + 109, + 10, + 15, + 116, + 32, + 35, + 222, + 247, + 131, + 163, + 7, + 169, + 134, + 145, + 46, + 1, + 130, + 2, + 129, + 29, + 109, + 1, + 146, + 13, + 128, + 67, + 202, + 137, + 181, + 35, + 146, + 83, + 40, + 78, + 66, + 1, + 130, + 2, + 129, + 29, + 108, + 11, + 122, + 134, + 215, + 55, + 84, + 104, + 250, + 198, + 103, + 160, + 165, + 39, + 1, + 108, + 41, + 80, + 142, + 69, + 133, + 67, + 216, + 170, + 77, + 242, + 171, + 238, + 120, + 131, + 1, + 131, + 2, + 130, + 29, + 109, + 1, + 57, + 96, + 26, + 46, + 250, + 190, + 113, + 126, + 96, + 76, + 187, + 72, + 148, + 1, + 131, + 2, + 130, + 29, + 109, + 2, + 36, + 127, + 122, + 123, + 101, + 148, + 50, + 6, + 73, + 170, + 3, + 171, + 161, + 1, + 131, + 2, + 130, + 29, + 108, + 140, + 63, + 56, + 233, + 90, + 107, + 31, + 242, + 171, + 28, + 59, + 52, + 54, + 25, + 1, + 131, + 2, + 130, + 29, + 109, + 2, + 56, + 71, + 115, + 189, + 241, + 172, + 86, + 118, + 250, + 204, + 237, + 96, + 144, + 25, + 1, + 131, + 2, + 144, + 145, + 29, + 108, + 185, + 160, + 37, + 216, + 20, + 178, + 156, + 33, + 43, + 139, + 26, + 7, + 205, + 25, + 1, + 144, + 145, + 2, + 120, + 10, + 9, + 80, + 112, + 132, + 204, + 105, + 155, + 176, + 231, + 30, + 168, + 105, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 25, + 1, + 5, + 113, + 19, + 64, + 218, + 160, + 213, + 247, + 105, + 219, + 161, + 145, + 92, + 239, + 89, + 240, + 129, + 90, + 85, + 6, + 2, + 125, + 2, + 103, + 163, + 108, + 12, + 149, + 179, + 151, + 90, + 179, + 238, + 91, + 32, + 58, + 118, + 20, + 163, + 247, + 83, + 115, + 240, + 71, + 216, + 3, + 174, + 123, + 102, + 135, + 242, + 179, + 147, + 144, + 147, + 2, + 146, + 144, + 146, + 1, + 125, + 87, + 17, + 94, + 71, + 1, + 140, + 113, + 119, + 238, + 191, + 124, + 211, + 112, + 163, + 53, + 106, + 27, + 120, + 99, + 0, + 138, + 90, + 232, + 2, + 140, + 114, + 184, + 134, + 66, + 132, + 1, + 96, + 174, + 29, + 146, + 145, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 103, + 19, + 160, + 75, + 189, + 253, + 201, + 190, + 136, + 97, + 122, + 217, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 133, + 97, + 138, + 153, + 86, + 91, + 97, + 122, + 227, + 145, + 144, + 97, + 139, + 52, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 122, + 240, + 130, + 97, + 139, + 140, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 122, + 253, + 130, + 97, + 127, + 103, + 86, + 91, + 144, + 80, + 103, + 27, + 193, + 109, + 103, + 78, + 200, + 0, + 0, + 97, + 123, + 26, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 131, + 97, + 138, + 153, + 86, + 91, + 97, + 29, + 139, + 145, + 144, + 97, + 139, + 52, + 86, + 91, + 96, + 0, + 97, + 17, + 147, + 131, + 131, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 97, + 129, + 75, + 86, + 91, + 96, + 0, + 128, + 130, + 18, + 128, + 97, + 123, + 80, + 87, + 80, + 103, + 27, + 193, + 109, + 103, + 78, + 200, + 0, + 0, + 130, + 19, + 91, + 21, + 97, + 123, + 110, + 87, + 96, + 64, + 81, + 99, + 45, + 4, + 131, + 197, + 96, + 226, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 129, + 96, + 0, + 3, + 97, + 123, + 143, + 87, + 96, + 64, + 81, + 99, + 7, + 160, + 33, + 39, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 129, + 103, + 27, + 193, + 109, + 103, + 78, + 200, + 0, + 0, + 3, + 97, + 123, + 183, + 87, + 96, + 64, + 81, + 99, + 34, + 237, + 89, + 133, + 96, + 226, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 128, + 21, + 97, + 123, + 194, + 87, + 145, + 144, + 80, + 86, + 91, + 96, + 0, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 131, + 18, + 97, + 123, + 234, + 87, + 97, + 123, + 229, + 131, + 103, + 27, + 193, + 109, + 103, + 78, + 200, + 0, + 0, + 97, + 136, + 165, + 86, + 91, + 97, + 123, + 236, + 86, + 91, + 130, + 91, + 144, + 80, + 96, + 0, + 97, + 124, + 2, + 130, + 103, + 27, + 193, + 109, + 103, + 78, + 200, + 0, + 0, + 97, + 125, + 178, + 86, + 91, + 144, + 80, + 128, + 96, + 0, + 3, + 97, + 124, + 37, + 87, + 96, + 64, + 81, + 99, + 7, + 160, + 33, + 39, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 0, + 97, + 124, + 48, + 130, + 97, + 120, + 224, + 86, + 91, + 144, + 80, + 96, + 0, + 99, + 59, + 154, + 202, + 0, + 97, + 124, + 91, + 97, + 124, + 86, + 97, + 124, + 80, + 103, + 27, + 193, + 109, + 103, + 78, + 200, + 0, + 0, + 97, + 139, + 140, + 86, + 91, + 133, + 97, + 123, + 36, + 86, + 91, + 97, + 105, + 241, + 86, + 91, + 97, + 124, + 101, + 145, + 144, + 97, + 138, + 153, + 86, + 91, + 144, + 80, + 96, + 0, + 128, + 97, + 124, + 124, + 131, + 103, + 3, + 193, + 102, + 92, + 122, + 171, + 32, + 0, + 97, + 123, + 36, + 86, + 91, + 97, + 124, + 142, + 144, + 103, + 32, + 5, + 254, + 79, + 38, + 142, + 160, + 0, + 97, + 140, + 46, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 124, + 185, + 132, + 97, + 124, + 167, + 134, + 102, + 159, + 50, + 117, + 36, + 98, + 160, + 0, + 97, + 123, + 36, + 86, + 91, + 97, + 104, + 185, + 144, + 103, + 13, + 197, + 82, + 127, + 100, + 44, + 32, + 0, + 97, + 140, + 46, + 86, + 91, + 97, + 124, + 203, + 144, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 97, + 140, + 46, + 86, + 91, + 144, + 80, + 97, + 124, + 239, + 103, + 9, + 208, + 40, + 204, + 111, + 32, + 95, + 255, + 25, + 133, + 97, + 124, + 229, + 133, + 133, + 97, + 125, + 178, + 86, + 91, + 97, + 104, + 185, + 145, + 144, + 97, + 136, + 165, + 86, + 91, + 146, + 80, + 80, + 80, + 96, + 0, + 91, + 96, + 2, + 129, + 16, + 21, + 97, + 125, + 138, + 87, + 96, + 0, + 134, + 97, + 125, + 11, + 132, + 97, + 127, + 103, + 86, + 91, + 97, + 125, + 21, + 145, + 144, + 97, + 136, + 165, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 125, + 35, + 132, + 133, + 97, + 123, + 36, + 86, + 91, + 97, + 125, + 44, + 144, + 97, + 139, + 140, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 125, + 57, + 130, + 97, + 106, + 149, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 125, + 71, + 134, + 133, + 97, + 123, + 36, + 86, + 91, + 97, + 125, + 89, + 103, + 15, + 168, + 206, + 223, + 194, + 173, + 221, + 250, + 132, + 97, + 123, + 36, + 86, + 91, + 97, + 125, + 99, + 145, + 144, + 97, + 136, + 165, + 86, + 91, + 144, + 80, + 97, + 125, + 111, + 132, + 130, + 97, + 125, + 178, + 86, + 91, + 97, + 125, + 121, + 144, + 135, + 97, + 140, + 46, + 86, + 91, + 149, + 80, + 132, + 96, + 1, + 1, + 148, + 80, + 80, + 80, + 80, + 80, + 97, + 124, + 246, + 86, + 91, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 136, + 18, + 97, + 125, + 167, + 87, + 97, + 125, + 162, + 130, + 97, + 139, + 140, + 86, + 91, + 97, + 74, + 21, + 86, + 91, + 80, + 150, + 149, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 97, + 17, + 147, + 131, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 132, + 97, + 129, + 75, + 86, + 91, + 130, + 84, + 99, + 255, + 255, + 255, + 255, + 131, + 22, + 96, + 1, + 96, + 128, + 27, + 2, + 99, + 255, + 255, + 255, + 255, + 96, + 128, + 27, + 25, + 130, + 22, + 129, + 23, + 133, + 85, + 97, + 125, + 253, + 145, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 145, + 130, + 22, + 145, + 22, + 23, + 130, + 97, + 129, + 106, + 86, + 91, + 131, + 84, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 25, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 145, + 144, + 145, + 22, + 23, + 144, + 146, + 85, + 80, + 80, + 86, + 91, + 96, + 1, + 130, + 1, + 84, + 97, + 126, + 53, + 144, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 130, + 97, + 129, + 106, + 86, + 91, + 96, + 1, + 146, + 144, + 146, + 1, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 25, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 144, + 147, + 22, + 146, + 144, + 146, + 23, + 144, + 145, + 85, + 80, + 86, + 91, + 97, + 126, + 101, + 129, + 97, + 105, + 65, + 86, + 91, + 130, + 96, + 1, + 1, + 96, + 16, + 97, + 1, + 0, + 10, + 129, + 84, + 129, + 99, + 255, + 255, + 255, + 255, + 2, + 25, + 22, + 144, + 131, + 99, + 255, + 255, + 255, + 255, + 22, + 2, + 23, + 144, + 85, + 80, + 80, + 80, + 86, + 91, + 97, + 126, + 149, + 131, + 131, + 97, + 76, + 48, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 1, + 132, + 1, + 96, + 32, + 82, + 96, + 64, + 129, + 32, + 128, + 84, + 131, + 146, + 144, + 97, + 126, + 191, + 144, + 132, + 144, + 97, + 137, + 47, + 86, + 91, + 144, + 145, + 85, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 130, + 17, + 97, + 127, + 6, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 9, + 96, + 36, + 130, + 1, + 82, + 104, + 21, + 83, + 145, + 17, + 81, + 146, + 83, + 145, + 81, + 96, + 186, + 27, + 96, + 68, + 130, + 1, + 82, + 96, + 100, + 1, + 97, + 25, + 118, + 86, + 91, + 80, + 96, + 1, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 130, + 17, + 96, + 7, + 27, + 130, + 129, + 28, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 16, + 96, + 6, + 27, + 23, + 130, + 129, + 28, + 99, + 255, + 255, + 255, + 255, + 16, + 96, + 5, + 27, + 23, + 130, + 129, + 28, + 97, + 255, + 255, + 16, + 96, + 4, + 27, + 23, + 130, + 129, + 28, + 96, + 255, + 16, + 96, + 3, + 144, + 129, + 27, + 144, + 145, + 23, + 131, + 129, + 28, + 96, + 15, + 16, + 96, + 2, + 27, + 23, + 131, + 129, + 28, + 144, + 145, + 16, + 130, + 27, + 23, + 145, + 130, + 28, + 17, + 23, + 144, + 86, + 91, + 96, + 0, + 129, + 96, + 0, + 3, + 97, + 127, + 128, + 87, + 80, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 145, + 144, + 80, + 86, + 91, + 103, + 86, + 152, + 238, + 240, + 102, + 112, + 0, + 0, + 130, + 18, + 97, + 127, + 151, + 87, + 80, + 96, + 0, + 145, + 144, + 80, + 86, + 91, + 97, + 127, + 168, + 103, + 86, + 152, + 238, + 240, + 102, + 112, + 0, + 0, + 97, + 139, + 140, + 86, + 91, + 130, + 19, + 97, + 127, + 189, + 87, + 80, + 103, + 27, + 193, + 109, + 103, + 78, + 200, + 0, + 0, + 145, + 144, + 80, + 86, + 91, + 96, + 0, + 97, + 127, + 200, + 131, + 97, + 129, + 181, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 128, + 1, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 97, + 127, + 234, + 132, + 103, + 27, + 193, + 109, + 103, + 78, + 200, + 0, + 0, + 97, + 104, + 223, + 86, + 91, + 97, + 127, + 252, + 144, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 97, + 140, + 46, + 86, + 91, + 97, + 125, + 178, + 86, + 91, + 144, + 80, + 96, + 0, + 128, + 130, + 97, + 128, + 93, + 129, + 97, + 128, + 74, + 129, + 97, + 128, + 56, + 129, + 97, + 128, + 37, + 129, + 103, + 2, + 95, + 15, + 225, + 5, + 163, + 20, + 0, + 97, + 123, + 36, + 86, + 91, + 97, + 104, + 185, + 144, + 103, + 11, + 104, + 223, + 24, + 228, + 113, + 251, + 255, + 25, + 97, + 140, + 46, + 86, + 91, + 97, + 104, + 185, + 144, + 103, + 20, + 168, + 69, + 76, + 25, + 225, + 172, + 0, + 97, + 140, + 46, + 86, + 91, + 97, + 104, + 185, + 144, + 103, + 15, + 193, + 14, + 1, + 87, + 130, + 119, + 255, + 25, + 97, + 140, + 46, + 86, + 91, + 97, + 128, + 111, + 144, + 103, + 3, + 222, + 189, + 8, + 59, + 140, + 124, + 0, + 97, + 140, + 46, + 86, + 91, + 145, + 80, + 131, + 144, + 80, + 97, + 128, + 215, + 129, + 97, + 128, + 197, + 129, + 97, + 128, + 179, + 129, + 97, + 128, + 161, + 129, + 97, + 128, + 142, + 129, + 139, + 97, + 123, + 36, + 86, + 91, + 97, + 104, + 185, + 144, + 103, + 2, + 149, + 212, + 0, + 234, + 50, + 87, + 255, + 25, + 97, + 140, + 46, + 86, + 91, + 97, + 104, + 185, + 144, + 103, + 1, + 87, + 216, + 178, + 236, + 199, + 8, + 0, + 97, + 140, + 46, + 86, + 91, + 97, + 104, + 185, + 144, + 103, + 5, + 49, + 10, + 167, + 213, + 33, + 48, + 0, + 97, + 140, + 46, + 86, + 91, + 97, + 104, + 185, + 144, + 103, + 13, + 224, + 204, + 61, + 21, + 97, + 0, + 0, + 97, + 140, + 46, + 86, + 91, + 145, + 80, + 129, + 103, + 17, + 144, + 0, + 171, + 16, + 15, + 252, + 0, + 97, + 128, + 237, + 135, + 136, + 97, + 123, + 36, + 86, + 91, + 97, + 128, + 249, + 144, + 96, + 0, + 25, + 97, + 138, + 153, + 86, + 91, + 97, + 129, + 3, + 145, + 144, + 97, + 136, + 165, + 86, + 91, + 97, + 129, + 13, + 145, + 144, + 97, + 140, + 46, + 86, + 91, + 146, + 80, + 80, + 96, + 0, + 97, + 129, + 27, + 131, + 97, + 106, + 149, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 129, + 41, + 133, + 131, + 97, + 123, + 36, + 86, + 91, + 144, + 80, + 96, + 0, + 136, + 18, + 97, + 129, + 57, + 87, + 128, + 97, + 74, + 21, + 86, + 91, + 97, + 74, + 21, + 129, + 103, + 27, + 193, + 109, + 103, + 78, + 200, + 0, + 0, + 97, + 136, + 165, + 86, + 91, + 130, + 130, + 2, + 129, + 21, + 21, + 132, + 21, + 133, + 131, + 5, + 133, + 20, + 23, + 22, + 97, + 129, + 99, + 87, + 96, + 0, + 128, + 253, + 91, + 5, + 146, + 145, + 80, + 80, + 86, + 91, + 96, + 64, + 128, + 81, + 96, + 4, + 129, + 82, + 96, + 36, + 129, + 1, + 144, + 145, + 82, + 96, + 32, + 129, + 1, + 128, + 81, + 96, + 1, + 96, + 1, + 96, + 224, + 27, + 3, + 22, + 99, + 31, + 255, + 150, + 129, + 96, + 224, + 27, + 23, + 144, + 82, + 130, + 130, + 1, + 144, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 130, + 17, + 21, + 97, + 129, + 174, + 87, + 128, + 81, + 129, + 96, + 32, + 1, + 253, + 91, + 80, + 146, + 145, + 80, + 80, + 86, + 91, + 96, + 0, + 96, + 1, + 96, + 255, + 27, + 130, + 3, + 97, + 129, + 219, + 87, + 96, + 64, + 81, + 99, + 77, + 45, + 117, + 177, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 0, + 130, + 18, + 21, + 97, + 74, + 73, + 87, + 80, + 25, + 96, + 1, + 1, + 144, + 86, + 91, + 145, + 144, + 80, + 86, + 91, + 80, + 128, + 84, + 96, + 0, + 130, + 85, + 96, + 3, + 2, + 144, + 96, + 0, + 82, + 96, + 32, + 96, + 0, + 32, + 144, + 129, + 1, + 144, + 97, + 25, + 233, + 145, + 144, + 97, + 130, + 124, + 86, + 91, + 80, + 128, + 84, + 96, + 0, + 130, + 85, + 144, + 96, + 0, + 82, + 96, + 32, + 96, + 0, + 32, + 144, + 129, + 1, + 144, + 97, + 25, + 233, + 145, + 144, + 97, + 130, + 169, + 86, + 91, + 96, + 64, + 81, + 128, + 97, + 1, + 32, + 1, + 96, + 64, + 82, + 128, + 96, + 0, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 129, + 82, + 80, + 144, + 86, + 91, + 91, + 128, + 130, + 17, + 21, + 97, + 74, + 73, + 87, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 25, + 22, + 129, + 85, + 96, + 0, + 96, + 1, + 130, + 1, + 129, + 144, + 85, + 96, + 2, + 130, + 1, + 85, + 96, + 3, + 1, + 97, + 130, + 125, + 86, + 91, + 91, + 128, + 130, + 17, + 21, + 97, + 74, + 73, + 87, + 96, + 0, + 129, + 85, + 96, + 1, + 1, + 97, + 130, + 170, + 86, + 91, + 128, + 53, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 129, + 22, + 129, + 20, + 97, + 129, + 236, + 87, + 96, + 0, + 128, + 253, + 91, + 96, + 0, + 96, + 32, + 130, + 132, + 3, + 18, + 21, + 97, + 130, + 231, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 17, + 147, + 130, + 97, + 130, + 190, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 129, + 22, + 129, + 20, + 97, + 25, + 233, + 87, + 96, + 0, + 128, + 253, + 91, + 96, + 0, + 128, + 96, + 0, + 96, + 96, + 132, + 134, + 3, + 18, + 21, + 97, + 131, + 26, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 131, + 35, + 132, + 97, + 130, + 190, + 86, + 91, + 146, + 80, + 96, + 32, + 132, + 1, + 53, + 97, + 131, + 51, + 129, + 97, + 130, + 240, + 86, + 91, + 146, + 149, + 146, + 148, + 80, + 80, + 80, + 96, + 64, + 145, + 144, + 145, + 1, + 53, + 144, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 128, + 96, + 0, + 96, + 160, + 134, + 136, + 3, + 18, + 21, + 97, + 131, + 92, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 131, + 101, + 134, + 97, + 130, + 190, + 86, + 91, + 151, + 96, + 32, + 135, + 1, + 53, + 151, + 80, + 96, + 64, + 135, + 1, + 53, + 150, + 96, + 96, + 129, + 1, + 53, + 150, + 80, + 96, + 128, + 1, + 53, + 148, + 80, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 64, + 131, + 133, + 3, + 18, + 21, + 97, + 131, + 153, + 87, + 96, + 0, + 128, + 253, + 91, + 130, + 53, + 97, + 131, + 164, + 129, + 97, + 130, + 240, + 86, + 91, + 145, + 80, + 96, + 32, + 131, + 1, + 53, + 97, + 131, + 180, + 129, + 97, + 130, + 240, + 86, + 91, + 128, + 145, + 80, + 80, + 146, + 80, + 146, + 144, + 80, + 86, + 91, + 96, + 0, + 96, + 32, + 130, + 132, + 3, + 18, + 21, + 97, + 131, + 209, + 87, + 96, + 0, + 128, + 253, + 91, + 129, + 53, + 97, + 17, + 147, + 129, + 97, + 130, + 240, + 86, + 91, + 96, + 0, + 96, + 32, + 130, + 132, + 3, + 18, + 21, + 97, + 131, + 238, + 87, + 96, + 0, + 128, + 253, + 91, + 129, + 53, + 98, + 255, + 255, + 255, + 129, + 22, + 129, + 20, + 97, + 17, + 147, + 87, + 96, + 0, + 128, + 253, + 91, + 96, + 0, + 96, + 32, + 130, + 132, + 3, + 18, + 21, + 97, + 132, + 19, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 53, + 145, + 144, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 64, + 131, + 133, + 3, + 18, + 21, + 97, + 132, + 45, + 87, + 96, + 0, + 128, + 253, + 91, + 130, + 53, + 97, + 132, + 56, + 129, + 97, + 130, + 240, + 86, + 91, + 148, + 96, + 32, + 147, + 144, + 147, + 1, + 53, + 147, + 80, + 80, + 80, + 86, + 91, + 128, + 53, + 128, + 21, + 21, + 129, + 20, + 97, + 129, + 236, + 87, + 96, + 0, + 128, + 253, + 91, + 96, + 0, + 128, + 96, + 0, + 96, + 96, + 132, + 134, + 3, + 18, + 21, + 97, + 132, + 107, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 132, + 116, + 132, + 97, + 130, + 190, + 86, + 91, + 146, + 80, + 97, + 132, + 130, + 96, + 32, + 133, + 1, + 97, + 132, + 70, + 86, + 91, + 145, + 80, + 96, + 64, + 132, + 1, + 53, + 144, + 80, + 146, + 80, + 146, + 80, + 146, + 86, + 91, + 96, + 0, + 128, + 96, + 64, + 131, + 133, + 3, + 18, + 21, + 97, + 132, + 165, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 132, + 174, + 131, + 97, + 130, + 190, + 86, + 91, + 145, + 80, + 96, + 32, + 131, + 1, + 53, + 128, + 96, + 15, + 11, + 129, + 20, + 97, + 131, + 180, + 87, + 96, + 0, + 128, + 253, + 91, + 96, + 0, + 97, + 2, + 128, + 130, + 1, + 144, + 80, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 128, + 141, + 22, + 131, + 82, + 128, + 140, + 22, + 96, + 32, + 132, + 1, + 82, + 128, + 139, + 22, + 96, + 64, + 132, + 1, + 82, + 99, + 255, + 255, + 255, + 255, + 138, + 22, + 96, + 96, + 132, + 1, + 82, + 96, + 1, + 128, + 96, + 160, + 27, + 3, + 137, + 22, + 96, + 128, + 132, + 1, + 82, + 135, + 96, + 160, + 132, + 1, + 82, + 134, + 96, + 192, + 132, + 1, + 82, + 133, + 96, + 224, + 132, + 1, + 82, + 128, + 133, + 81, + 22, + 97, + 1, + 0, + 132, + 1, + 82, + 80, + 96, + 32, + 132, + 1, + 81, + 97, + 255, + 255, + 128, + 130, + 22, + 97, + 1, + 32, + 133, + 1, + 82, + 128, + 96, + 64, + 135, + 1, + 81, + 22, + 97, + 1, + 64, + 133, + 1, + 82, + 80, + 80, + 96, + 96, + 132, + 1, + 81, + 97, + 133, + 87, + 97, + 1, + 96, + 132, + 1, + 130, + 97, + 255, + 255, + 22, + 144, + 82, + 86, + 91, + 80, + 96, + 128, + 132, + 1, + 81, + 97, + 255, + 255, + 144, + 129, + 22, + 97, + 1, + 128, + 132, + 1, + 82, + 96, + 160, + 133, + 1, + 81, + 22, + 97, + 1, + 160, + 131, + 1, + 82, + 96, + 192, + 132, + 1, + 81, + 99, + 255, + 255, + 255, + 255, + 22, + 97, + 1, + 192, + 131, + 1, + 82, + 96, + 224, + 144, + 147, + 1, + 81, + 21, + 21, + 97, + 1, + 224, + 130, + 1, + 82, + 129, + 81, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 144, + 129, + 22, + 97, + 2, + 0, + 131, + 1, + 82, + 96, + 32, + 131, + 1, + 81, + 96, + 255, + 144, + 129, + 22, + 97, + 2, + 32, + 132, + 1, + 82, + 96, + 64, + 132, + 1, + 81, + 144, + 145, + 22, + 97, + 2, + 64, + 131, + 1, + 82, + 96, + 96, + 144, + 146, + 1, + 81, + 144, + 145, + 22, + 97, + 2, + 96, + 144, + 145, + 1, + 82, + 152, + 151, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 128, + 96, + 128, + 133, + 135, + 3, + 18, + 21, + 97, + 133, + 247, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 134, + 0, + 133, + 97, + 130, + 190, + 86, + 91, + 147, + 80, + 97, + 134, + 14, + 96, + 32, + 134, + 1, + 97, + 132, + 70, + 86, + 91, + 147, + 150, + 147, + 149, + 80, + 80, + 80, + 80, + 96, + 64, + 130, + 1, + 53, + 145, + 96, + 96, + 1, + 53, + 144, + 86, + 91, + 96, + 0, + 128, + 96, + 32, + 131, + 133, + 3, + 18, + 21, + 97, + 134, + 54, + 87, + 96, + 0, + 128, + 253, + 91, + 130, + 53, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 128, + 130, + 17, + 21, + 97, + 134, + 77, + 87, + 96, + 0, + 128, + 253, + 91, + 129, + 133, + 1, + 145, + 80, + 133, + 96, + 31, + 131, + 1, + 18, + 97, + 134, + 97, + 87, + 96, + 0, + 128, + 253, + 91, + 129, + 53, + 129, + 129, + 17, + 21, + 97, + 134, + 112, + 87, + 96, + 0, + 128, + 253, + 91, + 134, + 96, + 32, + 130, + 133, + 1, + 1, + 17, + 21, + 97, + 134, + 130, + 87, + 96, + 0, + 128, + 253, + 91, + 96, + 32, + 146, + 144, + 146, + 1, + 150, + 145, + 149, + 80, + 144, + 147, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 96, + 96, + 132, + 134, + 3, + 18, + 21, + 97, + 134, + 169, + 87, + 96, + 0, + 128, + 253, + 91, + 131, + 53, + 97, + 134, + 180, + 129, + 97, + 130, + 240, + 86, + 91, + 146, + 80, + 96, + 32, + 132, + 1, + 53, + 145, + 80, + 96, + 64, + 132, + 1, + 53, + 97, + 134, + 203, + 129, + 97, + 130, + 240, + 86, + 91, + 128, + 145, + 80, + 80, + 146, + 80, + 146, + 80, + 146, + 86, + 91, + 128, + 53, + 97, + 255, + 255, + 129, + 22, + 129, + 20, + 97, + 129, + 236, + 87, + 96, + 0, + 128, + 253, + 91, + 96, + 0, + 128, + 96, + 0, + 128, + 96, + 128, + 133, + 135, + 3, + 18, + 21, + 97, + 134, + 254, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 135, + 7, + 133, + 97, + 130, + 190, + 86, + 91, + 147, + 80, + 97, + 135, + 21, + 96, + 32, + 134, + 1, + 97, + 134, + 214, + 86, + 91, + 146, + 80, + 97, + 135, + 35, + 96, + 64, + 134, + 1, + 97, + 134, + 214, + 86, + 91, + 145, + 80, + 97, + 135, + 49, + 96, + 96, + 134, + 1, + 97, + 134, + 214, + 86, + 91, + 144, + 80, + 146, + 149, + 145, + 148, + 80, + 146, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 64, + 131, + 133, + 3, + 18, + 21, + 97, + 135, + 79, + 87, + 96, + 0, + 128, + 253, + 91, + 130, + 53, + 97, + 135, + 90, + 129, + 97, + 130, + 240, + 86, + 91, + 145, + 80, + 97, + 135, + 104, + 96, + 32, + 132, + 1, + 97, + 130, + 190, + 86, + 91, + 144, + 80, + 146, + 80, + 146, + 144, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 64, + 131, + 133, + 3, + 18, + 21, + 97, + 135, + 132, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 132, + 56, + 131, + 97, + 130, + 190, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 96, + 96, + 132, + 134, + 3, + 18, + 21, + 97, + 135, + 162, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 135, + 171, + 132, + 97, + 130, + 190, + 86, + 91, + 149, + 96, + 32, + 133, + 1, + 53, + 149, + 80, + 96, + 64, + 144, + 148, + 1, + 53, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 91, + 131, + 129, + 16, + 21, + 97, + 135, + 219, + 87, + 129, + 129, + 1, + 81, + 131, + 130, + 1, + 82, + 96, + 32, + 1, + 97, + 135, + 195, + 86, + 91, + 131, + 129, + 17, + 21, + 97, + 40, + 3, + 87, + 80, + 80, + 96, + 0, + 145, + 1, + 82, + 86, + 91, + 96, + 32, + 129, + 82, + 96, + 0, + 130, + 81, + 128, + 96, + 32, + 132, + 1, + 82, + 97, + 136, + 11, + 129, + 96, + 64, + 133, + 1, + 96, + 32, + 135, + 1, + 97, + 135, + 192, + 86, + 91, + 96, + 31, + 1, + 96, + 31, + 25, + 22, + 145, + 144, + 145, + 1, + 96, + 64, + 1, + 146, + 145, + 80, + 80, + 86, + 91, + 96, + 0, + 96, + 32, + 130, + 132, + 3, + 18, + 21, + 97, + 136, + 49, + 87, + 96, + 0, + 128, + 253, + 91, + 129, + 81, + 97, + 17, + 147, + 129, + 97, + 130, + 240, + 86, + 91, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 17, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 96, + 0, + 130, + 130, + 16, + 21, + 97, + 136, + 100, + 87, + 97, + 136, + 100, + 97, + 136, + 60, + 86, + 91, + 80, + 3, + 144, + 86, + 91, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 50, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 96, + 0, + 129, + 96, + 15, + 11, + 96, + 1, + 96, + 1, + 96, + 127, + 27, + 3, + 25, + 129, + 3, + 97, + 136, + 156, + 87, + 97, + 136, + 156, + 97, + 136, + 60, + 86, + 91, + 96, + 0, + 3, + 146, + 145, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 131, + 18, + 128, + 21, + 96, + 1, + 96, + 255, + 27, + 133, + 1, + 132, + 18, + 22, + 21, + 97, + 136, + 195, + 87, + 97, + 136, + 195, + 97, + 136, + 60, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 255, + 27, + 3, + 132, + 1, + 131, + 19, + 129, + 22, + 21, + 97, + 136, + 222, + 87, + 97, + 136, + 222, + 97, + 136, + 60, + 86, + 91, + 80, + 80, + 3, + 144, + 86, + 91, + 96, + 0, + 130, + 81, + 97, + 136, + 246, + 129, + 132, + 96, + 32, + 135, + 1, + 97, + 135, + 192, + 86, + 91, + 145, + 144, + 145, + 1, + 146, + 145, + 80, + 80, + 86, + 91, + 96, + 0, + 96, + 32, + 130, + 132, + 3, + 18, + 21, + 97, + 137, + 18, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 81, + 145, + 144, + 80, + 86, + 91, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 49, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 96, + 0, + 130, + 25, + 130, + 17, + 21, + 97, + 137, + 66, + 87, + 97, + 137, + 66, + 97, + 136, + 60, + 86, + 91, + 80, + 1, + 144, + 86, + 91, + 96, + 0, + 129, + 96, + 0, + 25, + 4, + 131, + 17, + 130, + 21, + 21, + 22, + 21, + 97, + 137, + 97, + 87, + 97, + 137, + 97, + 97, + 136, + 60, + 86, + 91, + 80, + 2, + 144, + 86, + 91, + 96, + 0, + 128, + 133, + 133, + 17, + 21, + 97, + 137, + 118, + 87, + 96, + 0, + 128, + 253, + 91, + 131, + 134, + 17, + 21, + 97, + 137, + 131, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 80, + 130, + 1, + 147, + 145, + 144, + 146, + 3, + 145, + 80, + 86, + 91, + 96, + 0, + 96, + 1, + 130, + 1, + 97, + 137, + 162, + 87, + 97, + 137, + 162, + 97, + 136, + 60, + 86, + 91, + 80, + 96, + 1, + 1, + 144, + 86, + 91, + 96, + 1, + 129, + 129, + 91, + 128, + 133, + 17, + 21, + 97, + 137, + 228, + 87, + 129, + 96, + 0, + 25, + 4, + 130, + 17, + 21, + 97, + 137, + 202, + 87, + 97, + 137, + 202, + 97, + 136, + 60, + 86, + 91, + 128, + 133, + 22, + 21, + 97, + 137, + 215, + 87, + 145, + 129, + 2, + 145, + 91, + 147, + 132, + 28, + 147, + 144, + 128, + 2, + 144, + 97, + 137, + 174, + 86, + 91, + 80, + 146, + 80, + 146, + 144, + 80, + 86, + 91, + 96, + 0, + 130, + 97, + 137, + 251, + 87, + 80, + 96, + 1, + 97, + 24, + 76, + 86, + 91, + 129, + 97, + 138, + 8, + 87, + 80, + 96, + 0, + 97, + 24, + 76, + 86, + 91, + 129, + 96, + 1, + 129, + 20, + 97, + 138, + 30, + 87, + 96, + 2, + 129, + 20, + 97, + 138, + 40, + 87, + 97, + 138, + 68, + 86, + 91, + 96, + 1, + 145, + 80, + 80, + 97, + 24, + 76, + 86, + 91, + 96, + 255, + 132, + 17, + 21, + 97, + 138, + 57, + 87, + 97, + 138, + 57, + 97, + 136, + 60, + 86, + 91, + 80, + 80, + 96, + 1, + 130, + 27, + 97, + 24, + 76, + 86, + 91, + 80, + 96, + 32, + 131, + 16, + 97, + 1, + 51, + 131, + 16, + 22, + 96, + 78, + 132, + 16, + 96, + 11, + 132, + 16, + 22, + 23, + 21, + 97, + 138, + 103, + 87, + 80, + 129, + 129, + 10, + 97, + 24, + 76, + 86, + 91, + 97, + 138, + 113, + 131, + 131, + 97, + 137, + 169, + 86, + 91, + 128, + 96, + 0, + 25, + 4, + 130, + 17, + 21, + 97, + 138, + 133, + 87, + 97, + 138, + 133, + 97, + 136, + 60, + 86, + 91, + 2, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 97, + 17, + 147, + 131, + 131, + 97, + 137, + 236, + 86, + 91, + 96, + 0, + 96, + 1, + 96, + 1, + 96, + 255, + 27, + 3, + 129, + 132, + 19, + 130, + 132, + 19, + 128, + 130, + 22, + 134, + 132, + 4, + 134, + 17, + 22, + 21, + 97, + 138, + 191, + 87, + 97, + 138, + 191, + 97, + 136, + 60, + 86, + 91, + 96, + 1, + 96, + 255, + 27, + 96, + 0, + 135, + 18, + 130, + 129, + 22, + 135, + 131, + 5, + 137, + 18, + 22, + 21, + 97, + 138, + 222, + 87, + 97, + 138, + 222, + 97, + 136, + 60, + 86, + 91, + 96, + 0, + 135, + 18, + 146, + 80, + 135, + 130, + 5, + 135, + 18, + 132, + 132, + 22, + 22, + 21, + 97, + 138, + 250, + 87, + 97, + 138, + 250, + 97, + 136, + 60, + 86, + 91, + 135, + 133, + 5, + 135, + 18, + 129, + 132, + 22, + 22, + 21, + 97, + 139, + 16, + 87, + 97, + 139, + 16, + 97, + 136, + 60, + 86, + 91, + 80, + 80, + 80, + 146, + 144, + 147, + 2, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 18, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 96, + 0, + 130, + 97, + 139, + 67, + 87, + 97, + 139, + 67, + 97, + 139, + 30, + 86, + 91, + 96, + 1, + 96, + 255, + 27, + 130, + 20, + 96, + 0, + 25, + 132, + 20, + 22, + 21, + 97, + 139, + 93, + 87, + 97, + 139, + 93, + 97, + 136, + 60, + 86, + 91, + 80, + 5, + 144, + 86, + 91, + 96, + 0, + 130, + 97, + 139, + 113, + 87, + 97, + 139, + 113, + 97, + 139, + 30, + 86, + 91, + 80, + 4, + 144, + 86, + 91, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 1, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 96, + 0, + 96, + 1, + 96, + 255, + 27, + 130, + 1, + 97, + 139, + 161, + 87, + 97, + 139, + 161, + 97, + 136, + 60, + 86, + 91, + 80, + 96, + 0, + 3, + 144, + 86, + 91, + 96, + 0, + 99, + 255, + 255, + 255, + 255, + 128, + 131, + 22, + 129, + 129, + 3, + 97, + 139, + 193, + 87, + 97, + 139, + 193, + 97, + 136, + 60, + 86, + 91, + 96, + 1, + 1, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 96, + 32, + 130, + 132, + 3, + 18, + 21, + 97, + 139, + 221, + 87, + 96, + 0, + 128, + 253, + 91, + 129, + 81, + 96, + 255, + 129, + 22, + 129, + 20, + 97, + 17, + 147, + 87, + 96, + 0, + 128, + 253, + 91, + 96, + 0, + 98, + 255, + 255, + 255, + 128, + 131, + 22, + 129, + 129, + 3, + 97, + 139, + 193, + 87, + 97, + 139, + 193, + 97, + 136, + 60, + 86, + 91, + 96, + 0, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 131, + 129, + 22, + 144, + 131, + 22, + 129, + 129, + 16, + 21, + 97, + 140, + 38, + 87, + 97, + 140, + 38, + 97, + 136, + 60, + 86, + 91, + 3, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 130, + 18, + 128, + 21, + 96, + 1, + 96, + 1, + 96, + 255, + 27, + 3, + 132, + 144, + 3, + 133, + 19, + 22, + 21, + 97, + 140, + 80, + 87, + 97, + 140, + 80, + 97, + 136, + 60, + 86, + 91, + 96, + 1, + 96, + 255, + 27, + 131, + 144, + 3, + 132, + 18, + 129, + 22, + 21, + 97, + 140, + 105, + 87, + 97, + 140, + 105, + 97, + 136, + 60, + 86, + 91, + 80, + 80, + 1, + 144, + 86, + 91, + 96, + 0, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 128, + 131, + 22, + 129, + 133, + 22, + 128, + 131, + 3, + 130, + 17, + 21, + 97, + 140, + 145, + 87, + 97, + 140, + 145, + 97, + 136, + 60, + 86, + 91, + 1, + 148, + 147, + 80, + 80, + 80, + 80, + 86, + 254, + 162, + 100, + 105, + 112, + 102, + 115, + 88, + 34, + 18, + 32, + 6, + 40, + 123, + 95, + 202, + 66, + 166, + 114, + 199, + 70, + 37, + 241, + 101, + 39, + 188, + 9, + 174, + 5, + 137, + 237, + 35, + 203, + 7, + 15, + 41, + 242, + 234, + 5, + 25, + 223, + 159, + 17, + 100, + 115, + 111, + 108, + 99, + 67, + 0, + 8, + 13, + 0, + 51, + ]; + ///The bytecode of the contract. + pub static RMM01PORTFOLIO_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __BYTECODE, + ); + #[rustfmt::skip] + const __DEPLOYED_BYTECODE: &[u8] = &[ + 96, + 128, + 96, + 64, + 82, + 96, + 4, + 54, + 16, + 97, + 1, + 209, + 87, + 96, + 0, + 53, + 96, + 224, + 28, + 128, + 99, + 152, + 155, + 175, + 186, + 17, + 97, + 0, + 247, + 87, + 128, + 99, + 182, + 133, + 19, + 234, + 17, + 97, + 0, + 149, + 87, + 128, + 99, + 212, + 250, + 196, + 93, + 17, + 97, + 0, + 100, + 87, + 128, + 99, + 212, + 250, + 196, + 93, + 20, + 97, + 9, + 221, + 87, + 128, + 99, + 214, + 183, + 222, + 197, + 20, + 97, + 9, + 253, + 87, + 128, + 99, + 218, + 49, + 238, + 84, + 20, + 97, + 10, + 53, + 87, + 128, + 99, + 255, + 161, + 173, + 116, + 20, + 97, + 10, + 79, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 182, + 133, + 19, + 234, + 20, + 97, + 8, + 178, + 87, + 128, + 99, + 196, + 141, + 136, + 122, + 20, + 97, + 9, + 127, + 87, + 128, + 99, + 201, + 163, + 150, + 233, + 20, + 97, + 9, + 159, + 87, + 128, + 99, + 208, + 227, + 13, + 176, + 20, + 97, + 9, + 213, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 166, + 138, + 170, + 65, + 17, + 97, + 0, + 209, + 87, + 128, + 99, + 166, + 138, + 170, + 65, + 20, + 97, + 8, + 30, + 87, + 128, + 99, + 173, + 36, + 214, + 160, + 20, + 97, + 8, + 62, + 87, + 128, + 99, + 173, + 92, + 70, + 72, + 20, + 97, + 8, + 94, + 87, + 128, + 99, + 175, + 119, + 120, + 85, + 20, + 97, + 8, + 146, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 152, + 155, + 175, + 186, + 20, + 97, + 7, + 163, + 87, + 128, + 99, + 160, + 253, + 244, + 19, + 20, + 97, + 7, + 195, + 87, + 128, + 99, + 165, + 205, + 138, + 73, + 20, + 97, + 7, + 214, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 77, + 198, + 138, + 144, + 17, + 97, + 1, + 111, + 87, + 128, + 99, + 123, + 24, + 55, + 222, + 17, + 97, + 1, + 62, + 87, + 128, + 99, + 123, + 24, + 55, + 222, + 20, + 97, + 4, + 165, + 87, + 128, + 99, + 125, + 174, + 72, + 144, + 20, + 97, + 4, + 197, + 87, + 128, + 99, + 137, + 146, + 242, + 10, + 20, + 97, + 4, + 229, + 87, + 128, + 99, + 137, + 165, + 240, + 132, + 20, + 97, + 5, + 5, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 77, + 198, + 138, + 144, + 20, + 97, + 3, + 172, + 87, + 128, + 99, + 94, + 71, + 102, + 60, + 20, + 97, + 3, + 218, + 87, + 128, + 99, + 97, + 183, + 234, + 106, + 20, + 97, + 4, + 101, + 87, + 128, + 99, + 120, + 125, + 206, + 61, + 20, + 97, + 4, + 133, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 42, + 251, + 157, + 248, + 17, + 97, + 1, + 171, + 87, + 128, + 99, + 42, + 251, + 157, + 248, + 20, + 97, + 2, + 211, + 87, + 128, + 99, + 44, + 198, + 100, + 30, + 20, + 97, + 3, + 8, + 87, + 128, + 99, + 47, + 51, + 125, + 165, + 20, + 97, + 3, + 56, + 87, + 128, + 99, + 63, + 146, + 163, + 57, + 20, + 97, + 3, + 111, + 87, + 96, + 0, + 128, + 253, + 91, + 128, + 99, + 6, + 67, + 59, + 27, + 20, + 97, + 2, + 18, + 87, + 128, + 99, + 7, + 136, + 136, + 214, + 20, + 97, + 2, + 99, + 87, + 128, + 99, + 26, + 75, + 144, + 91, + 20, + 97, + 2, + 147, + 87, + 96, + 0, + 128, + 253, + 91, + 54, + 97, + 2, + 13, + 87, + 51, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 127, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 22, + 20, + 97, + 2, + 11, + 87, + 96, + 0, + 128, + 253, + 91, + 0, + 91, + 96, + 0, + 128, + 253, + 91, + 52, + 128, + 21, + 97, + 2, + 30, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 2, + 70, + 127, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 129, + 86, + 91, + 96, + 64, + 81, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 144, + 145, + 22, + 129, + 82, + 96, + 32, + 1, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 243, + 91, + 52, + 128, + 21, + 97, + 2, + 111, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 96, + 5, + 84, + 97, + 2, + 127, + 144, + 98, + 255, + 255, + 255, + 22, + 129, + 86, + 91, + 96, + 64, + 81, + 98, + 255, + 255, + 255, + 144, + 145, + 22, + 129, + 82, + 96, + 32, + 1, + 97, + 2, + 90, + 86, + 91, + 52, + 128, + 21, + 97, + 2, + 159, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 2, + 179, + 97, + 2, + 174, + 54, + 96, + 4, + 97, + 130, + 213, + 86, + 91, + 97, + 10, + 113, + 86, + 91, + 96, + 64, + 128, + 81, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 147, + 132, + 22, + 129, + 82, + 146, + 144, + 145, + 22, + 96, + 32, + 131, + 1, + 82, + 1, + 97, + 2, + 90, + 86, + 91, + 52, + 128, + 21, + 97, + 2, + 223, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 2, + 243, + 97, + 2, + 238, + 54, + 96, + 4, + 97, + 130, + 213, + 86, + 91, + 97, + 13, + 135, + 86, + 91, + 96, + 64, + 128, + 81, + 146, + 131, + 82, + 96, + 32, + 131, + 1, + 145, + 144, + 145, + 82, + 1, + 97, + 2, + 90, + 86, + 91, + 52, + 128, + 21, + 97, + 3, + 20, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 3, + 40, + 97, + 3, + 35, + 54, + 96, + 4, + 97, + 131, + 5, + 86, + 91, + 97, + 16, + 169, + 86, + 91, + 96, + 64, + 81, + 144, + 21, + 21, + 129, + 82, + 96, + 32, + 1, + 97, + 2, + 90, + 86, + 91, + 52, + 128, + 21, + 97, + 3, + 68, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 3, + 88, + 97, + 3, + 83, + 54, + 96, + 4, + 97, + 131, + 68, + 86, + 91, + 97, + 17, + 154, + 86, + 91, + 96, + 64, + 128, + 81, + 146, + 21, + 21, + 131, + 82, + 96, + 32, + 131, + 1, + 145, + 144, + 145, + 82, + 1, + 97, + 2, + 90, + 86, + 91, + 52, + 128, + 21, + 97, + 3, + 123, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 2, + 127, + 97, + 3, + 138, + 54, + 96, + 4, + 97, + 131, + 134, + 86, + 91, + 96, + 9, + 96, + 32, + 144, + 129, + 82, + 96, + 0, + 146, + 131, + 82, + 96, + 64, + 128, + 132, + 32, + 144, + 145, + 82, + 144, + 130, + 82, + 144, + 32, + 84, + 98, + 255, + 255, + 255, + 22, + 129, + 86, + 91, + 52, + 128, + 21, + 97, + 3, + 184, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 3, + 204, + 97, + 3, + 199, + 54, + 96, + 4, + 97, + 131, + 191, + 86, + 91, + 97, + 24, + 63, + 86, + 91, + 96, + 64, + 81, + 144, + 129, + 82, + 96, + 32, + 1, + 97, + 2, + 90, + 86, + 91, + 52, + 128, + 21, + 97, + 3, + 230, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 4, + 49, + 97, + 3, + 245, + 54, + 96, + 4, + 97, + 131, + 220, + 86, + 91, + 96, + 7, + 96, + 32, + 82, + 96, + 0, + 144, + 129, + 82, + 96, + 64, + 144, + 32, + 128, + 84, + 96, + 1, + 144, + 145, + 1, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 128, + 131, + 22, + 146, + 96, + 255, + 96, + 1, + 96, + 160, + 27, + 145, + 130, + 144, + 4, + 129, + 22, + 147, + 146, + 131, + 22, + 146, + 145, + 144, + 145, + 4, + 22, + 132, + 86, + 91, + 96, + 64, + 128, + 81, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 149, + 134, + 22, + 129, + 82, + 96, + 255, + 148, + 133, + 22, + 96, + 32, + 130, + 1, + 82, + 148, + 144, + 146, + 22, + 145, + 132, + 1, + 145, + 144, + 145, + 82, + 22, + 96, + 96, + 130, + 1, + 82, + 96, + 128, + 1, + 97, + 2, + 90, + 86, + 91, + 52, + 128, + 21, + 97, + 4, + 113, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 3, + 204, + 97, + 4, + 128, + 54, + 96, + 4, + 97, + 130, + 213, + 86, + 91, + 97, + 24, + 82, + 86, + 91, + 52, + 128, + 21, + 97, + 4, + 145, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 2, + 11, + 97, + 4, + 160, + 54, + 96, + 4, + 97, + 132, + 1, + 86, + 91, + 97, + 24, + 102, + 86, + 91, + 52, + 128, + 21, + 97, + 4, + 177, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 2, + 11, + 97, + 4, + 192, + 54, + 96, + 4, + 97, + 132, + 26, + 86, + 91, + 97, + 25, + 236, + 86, + 91, + 52, + 128, + 21, + 97, + 4, + 209, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 3, + 204, + 97, + 4, + 224, + 54, + 96, + 4, + 97, + 132, + 86, + 86, + 91, + 97, + 26, + 109, + 86, + 91, + 52, + 128, + 21, + 97, + 4, + 241, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 2, + 179, + 97, + 5, + 0, + 54, + 96, + 4, + 97, + 132, + 146, + 86, + 91, + 97, + 29, + 148, + 86, + 91, + 52, + 128, + 21, + 97, + 5, + 17, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 7, + 141, + 97, + 5, + 32, + 54, + 96, + 4, + 97, + 130, + 213, + 86, + 91, + 96, + 8, + 96, + 32, + 82, + 128, + 96, + 0, + 82, + 96, + 64, + 96, + 0, + 32, + 96, + 0, + 145, + 80, + 144, + 80, + 128, + 96, + 0, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 144, + 128, + 96, + 0, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 144, + 128, + 96, + 1, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 144, + 128, + 96, + 1, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 144, + 128, + 96, + 2, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 144, + 128, + 96, + 3, + 1, + 84, + 144, + 128, + 96, + 4, + 1, + 84, + 144, + 128, + 96, + 5, + 1, + 84, + 144, + 128, + 96, + 6, + 1, + 96, + 64, + 81, + 128, + 97, + 1, + 0, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 18, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 22, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 24, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 26, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 30, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 21, + 21, + 21, + 21, + 129, + 82, + 80, + 80, + 144, + 128, + 96, + 7, + 1, + 96, + 64, + 81, + 128, + 96, + 128, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 80, + 80, + 144, + 80, + 138, + 86, + 91, + 96, + 64, + 81, + 97, + 2, + 90, + 154, + 153, + 152, + 151, + 150, + 149, + 148, + 147, + 146, + 145, + 144, + 97, + 132, + 196, + 86, + 91, + 52, + 128, + 21, + 97, + 7, + 175, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 3, + 204, + 97, + 7, + 190, + 54, + 96, + 4, + 97, + 133, + 225, + 86, + 91, + 97, + 32, + 183, + 86, + 91, + 97, + 2, + 11, + 97, + 7, + 209, + 54, + 96, + 4, + 97, + 134, + 35, + 86, + 91, + 97, + 33, + 39, + 86, + 91, + 52, + 128, + 21, + 97, + 7, + 226, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 8, + 9, + 97, + 7, + 241, + 54, + 96, + 4, + 97, + 131, + 220, + 86, + 91, + 96, + 6, + 96, + 32, + 82, + 96, + 0, + 144, + 129, + 82, + 96, + 64, + 144, + 32, + 84, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 86, + 91, + 96, + 64, + 81, + 99, + 255, + 255, + 255, + 255, + 144, + 145, + 22, + 129, + 82, + 96, + 32, + 1, + 97, + 2, + 90, + 86, + 91, + 52, + 128, + 21, + 97, + 8, + 42, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 3, + 40, + 97, + 8, + 57, + 54, + 96, + 4, + 97, + 130, + 213, + 86, + 91, + 97, + 33, + 165, + 86, + 91, + 52, + 128, + 21, + 97, + 8, + 74, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 2, + 11, + 97, + 8, + 89, + 54, + 96, + 4, + 97, + 134, + 148, + 86, + 91, + 97, + 36, + 187, + 86, + 91, + 52, + 128, + 21, + 97, + 8, + 106, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 2, + 70, + 127, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 129, + 86, + 91, + 52, + 128, + 21, + 97, + 8, + 158, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 2, + 11, + 97, + 8, + 173, + 54, + 96, + 4, + 97, + 134, + 232, + 86, + 91, + 97, + 38, + 9, + 86, + 91, + 52, + 128, + 21, + 97, + 8, + 190, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 9, + 43, + 97, + 8, + 205, + 54, + 96, + 4, + 97, + 135, + 60, + 86, + 91, + 96, + 10, + 96, + 32, + 144, + 129, + 82, + 96, + 0, + 146, + 131, + 82, + 96, + 64, + 128, + 132, + 32, + 144, + 145, + 82, + 144, + 130, + 82, + 144, + 32, + 128, + 84, + 96, + 1, + 130, + 1, + 84, + 96, + 2, + 131, + 1, + 84, + 96, + 3, + 132, + 1, + 84, + 96, + 4, + 133, + 1, + 84, + 96, + 5, + 144, + 149, + 1, + 84, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 128, + 134, + 22, + 150, + 99, + 255, + 255, + 255, + 255, + 96, + 1, + 96, + 128, + 27, + 151, + 136, + 144, + 4, + 22, + 150, + 129, + 131, + 22, + 147, + 145, + 4, + 130, + 22, + 145, + 22, + 136, + 86, + 91, + 96, + 64, + 128, + 81, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 153, + 138, + 22, + 129, + 82, + 99, + 255, + 255, + 255, + 255, + 144, + 152, + 22, + 96, + 32, + 137, + 1, + 82, + 135, + 1, + 149, + 144, + 149, + 82, + 96, + 96, + 134, + 1, + 147, + 144, + 147, + 82, + 96, + 128, + 133, + 1, + 145, + 144, + 145, + 82, + 132, + 22, + 96, + 160, + 132, + 1, + 82, + 131, + 22, + 96, + 192, + 131, + 1, + 82, + 145, + 144, + 145, + 22, + 96, + 224, + 130, + 1, + 82, + 97, + 1, + 0, + 1, + 97, + 2, + 90, + 86, + 91, + 52, + 128, + 21, + 97, + 9, + 139, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 2, + 243, + 97, + 9, + 154, + 54, + 96, + 4, + 97, + 135, + 113, + 86, + 91, + 97, + 40, + 9, + 86, + 91, + 52, + 128, + 21, + 97, + 9, + 171, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 3, + 204, + 97, + 9, + 186, + 54, + 96, + 4, + 97, + 131, + 191, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 1, + 96, + 32, + 82, + 96, + 64, + 144, + 32, + 84, + 144, + 86, + 91, + 97, + 2, + 11, + 97, + 43, + 36, + 86, + 91, + 52, + 128, + 21, + 97, + 9, + 233, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 3, + 204, + 97, + 9, + 248, + 54, + 96, + 4, + 97, + 131, + 134, + 86, + 91, + 97, + 43, + 170, + 86, + 91, + 52, + 128, + 21, + 97, + 10, + 9, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 10, + 29, + 97, + 10, + 24, + 54, + 96, + 4, + 97, + 135, + 141, + 86, + 91, + 97, + 43, + 211, + 86, + 91, + 96, + 64, + 81, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 144, + 145, + 22, + 129, + 82, + 96, + 32, + 1, + 97, + 2, + 90, + 86, + 91, + 52, + 128, + 21, + 97, + 10, + 65, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 96, + 4, + 84, + 97, + 3, + 40, + 144, + 96, + 255, + 22, + 129, + 86, + 91, + 52, + 128, + 21, + 97, + 10, + 91, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 10, + 100, + 97, + 46, + 235, + 86, + 91, + 96, + 64, + 81, + 97, + 2, + 90, + 145, + 144, + 97, + 135, + 236, + 86, + 91, + 96, + 0, + 128, + 97, + 13, + 126, + 96, + 8, + 96, + 0, + 133, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 144, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 32, + 96, + 64, + 81, + 128, + 97, + 1, + 64, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 2, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 3, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 4, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 5, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 6, + 130, + 1, + 96, + 64, + 81, + 128, + 97, + 1, + 0, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 18, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 22, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 24, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 26, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 30, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 21, + 21, + 21, + 21, + 129, + 82, + 80, + 80, + 129, + 82, + 96, + 32, + 1, + 96, + 7, + 130, + 1, + 96, + 64, + 81, + 128, + 96, + 128, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 80, + 80, + 129, + 82, + 80, + 80, + 97, + 47, + 8, + 86, + 91, + 145, + 80, + 145, + 80, + 145, + 80, + 145, + 86, + 91, + 96, + 0, + 128, + 97, + 16, + 148, + 96, + 8, + 96, + 0, + 133, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 144, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 32, + 96, + 64, + 81, + 128, + 97, + 1, + 64, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 2, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 3, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 4, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 5, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 6, + 130, + 1, + 96, + 64, + 81, + 128, + 97, + 1, + 0, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 18, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 22, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 24, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 26, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 30, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 21, + 21, + 21, + 21, + 129, + 82, + 80, + 80, + 129, + 82, + 96, + 32, + 1, + 96, + 7, + 130, + 1, + 96, + 64, + 81, + 128, + 96, + 128, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 80, + 80, + 129, + 82, + 80, + 80, + 97, + 47, + 136, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 145, + 130, + 22, + 149, + 145, + 22, + 147, + 80, + 145, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 130, + 18, + 21, + 97, + 17, + 143, + 87, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 10, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 136, + 22, + 132, + 82, + 130, + 82, + 128, + 131, + 32, + 129, + 81, + 97, + 1, + 0, + 129, + 1, + 131, + 82, + 129, + 84, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 128, + 130, + 22, + 131, + 82, + 99, + 255, + 255, + 255, + 255, + 96, + 1, + 96, + 128, + 27, + 146, + 131, + 144, + 4, + 129, + 22, + 150, + 132, + 1, + 150, + 144, + 150, + 82, + 96, + 1, + 132, + 1, + 84, + 148, + 131, + 1, + 148, + 144, + 148, + 82, + 96, + 2, + 131, + 1, + 84, + 96, + 96, + 131, + 1, + 82, + 96, + 3, + 131, + 1, + 84, + 96, + 128, + 131, + 1, + 82, + 96, + 4, + 131, + 1, + 84, + 128, + 133, + 22, + 96, + 160, + 132, + 1, + 82, + 4, + 131, + 22, + 96, + 192, + 130, + 1, + 82, + 96, + 5, + 144, + 145, + 1, + 84, + 144, + 145, + 22, + 96, + 224, + 130, + 1, + 82, + 97, + 17, + 93, + 145, + 66, + 144, + 97, + 47, + 163, + 22, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 134, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 8, + 96, + 32, + 82, + 96, + 64, + 144, + 32, + 96, + 6, + 1, + 84, + 96, + 1, + 96, + 128, + 27, + 144, + 4, + 97, + 255, + 255, + 22, + 17, + 21, + 145, + 80, + 97, + 17, + 147, + 144, + 80, + 86, + 91, + 80, + 96, + 1, + 91, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 97, + 20, + 179, + 132, + 96, + 8, + 96, + 0, + 139, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 144, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 32, + 96, + 64, + 81, + 128, + 97, + 1, + 64, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 2, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 3, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 4, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 5, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 6, + 130, + 1, + 96, + 64, + 81, + 128, + 97, + 1, + 0, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 18, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 22, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 24, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 26, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 30, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 21, + 21, + 21, + 21, + 129, + 82, + 80, + 80, + 129, + 82, + 96, + 32, + 1, + 96, + 7, + 130, + 1, + 96, + 64, + 81, + 128, + 96, + 128, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 80, + 80, + 129, + 82, + 80, + 80, + 97, + 47, + 187, + 144, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 144, + 80, + 97, + 23, + 194, + 96, + 8, + 96, + 0, + 138, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 144, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 32, + 96, + 64, + 81, + 128, + 97, + 1, + 64, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 2, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 3, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 4, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 5, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 6, + 130, + 1, + 96, + 64, + 81, + 128, + 97, + 1, + 0, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 18, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 22, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 24, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 26, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 30, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 21, + 21, + 21, + 21, + 129, + 82, + 80, + 80, + 129, + 82, + 96, + 32, + 1, + 96, + 7, + 130, + 1, + 96, + 64, + 81, + 128, + 96, + 128, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 80, + 80, + 129, + 82, + 80, + 80, + 135, + 135, + 132, + 97, + 48, + 1, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 137, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 8, + 96, + 32, + 129, + 144, + 82, + 96, + 64, + 130, + 32, + 1, + 84, + 145, + 147, + 80, + 144, + 97, + 23, + 247, + 144, + 137, + 144, + 96, + 1, + 96, + 160, + 27, + 144, + 4, + 96, + 255, + 22, + 97, + 48, + 70, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 138, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 8, + 96, + 32, + 129, + 144, + 82, + 96, + 64, + 130, + 32, + 1, + 84, + 145, + 146, + 80, + 144, + 97, + 24, + 44, + 144, + 133, + 144, + 96, + 1, + 96, + 160, + 27, + 144, + 4, + 96, + 255, + 22, + 97, + 48, + 70, + 86, + 91, + 145, + 144, + 145, + 18, + 21, + 147, + 80, + 80, + 80, + 149, + 80, + 149, + 147, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 97, + 24, + 76, + 129, + 131, + 48, + 97, + 48, + 92, + 86, + 91, + 146, + 145, + 80, + 80, + 86, + 91, + 96, + 0, + 97, + 24, + 93, + 130, + 97, + 48, + 152, + 86, + 91, + 80, + 144, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 11, + 84, + 96, + 1, + 20, + 97, + 24, + 140, + 87, + 96, + 64, + 81, + 96, + 1, + 98, + 56, + 221, + 247, + 96, + 224, + 27, + 3, + 25, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 2, + 96, + 11, + 129, + 144, + 85, + 80, + 127, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 99, + 247, + 124, + 71, + 145, + 96, + 64, + 81, + 129, + 99, + 255, + 255, + 255, + 255, + 22, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 32, + 96, + 64, + 81, + 128, + 131, + 3, + 129, + 134, + 90, + 250, + 21, + 128, + 21, + 97, + 24, + 242, + 87, + 61, + 96, + 0, + 128, + 62, + 61, + 96, + 0, + 253, + 91, + 80, + 80, + 80, + 80, + 96, + 64, + 81, + 61, + 96, + 31, + 25, + 96, + 31, + 130, + 1, + 22, + 130, + 1, + 128, + 96, + 64, + 82, + 80, + 129, + 1, + 144, + 97, + 25, + 22, + 145, + 144, + 97, + 136, + 31, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 51, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 20, + 97, + 25, + 71, + 87, + 96, + 64, + 81, + 99, + 35, + 1, + 158, + 103, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 20, + 129, + 17, + 128, + 97, + 25, + 86, + 87, + 80, + 96, + 4, + 129, + 16, + 91, + 21, + 97, + 25, + 127, + 87, + 96, + 64, + 81, + 99, + 246, + 244, + 163, + 143, + 96, + 224, + 27, + 129, + 82, + 97, + 255, + 255, + 130, + 22, + 96, + 4, + 130, + 1, + 82, + 96, + 36, + 1, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 13, + 128, + 84, + 144, + 130, + 144, + 85, + 96, + 64, + 128, + 81, + 130, + 129, + 82, + 96, + 32, + 129, + 1, + 132, + 144, + 82, + 127, + 129, + 201, + 57, + 20, + 72, + 0, + 40, + 118, + 3, + 71, + 155, + 151, + 187, + 169, + 193, + 18, + 136, + 206, + 122, + 188, + 90, + 203, + 72, + 144, + 121, + 225, + 89, + 243, + 92, + 249, + 139, + 209, + 145, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 161, + 80, + 96, + 1, + 96, + 11, + 85, + 96, + 4, + 84, + 96, + 255, + 22, + 97, + 25, + 233, + 87, + 96, + 64, + 81, + 99, + 4, + 86, + 76, + 113, + 96, + 226, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 80, + 86, + 91, + 96, + 11, + 84, + 96, + 1, + 20, + 97, + 26, + 18, + 87, + 96, + 64, + 81, + 96, + 1, + 98, + 56, + 221, + 247, + 96, + 224, + 27, + 3, + 25, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 2, + 96, + 11, + 85, + 96, + 1, + 129, + 1, + 97, + 26, + 44, + 87, + 97, + 26, + 41, + 130, + 51, + 97, + 57, + 236, + 86, + 91, + 144, + 80, + 91, + 97, + 26, + 57, + 96, + 0, + 131, + 48, + 132, + 97, + 58, + 204, + 86, + 91, + 97, + 26, + 65, + 97, + 58, + 225, + 86, + 91, + 96, + 1, + 96, + 11, + 85, + 96, + 4, + 84, + 96, + 255, + 22, + 97, + 26, + 105, + 87, + 96, + 64, + 81, + 99, + 4, + 86, + 76, + 113, + 96, + 226, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 8, + 96, + 0, + 134, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 144, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 32, + 96, + 64, + 81, + 128, + 97, + 1, + 64, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 2, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 3, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 4, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 5, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 6, + 130, + 1, + 96, + 64, + 81, + 128, + 97, + 1, + 0, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 18, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 22, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 24, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 26, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 30, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 21, + 21, + 21, + 21, + 129, + 82, + 80, + 80, + 129, + 82, + 96, + 32, + 1, + 96, + 7, + 130, + 1, + 96, + 64, + 81, + 128, + 96, + 128, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 80, + 80, + 129, + 82, + 80, + 80, + 144, + 80, + 97, + 29, + 139, + 132, + 132, + 66, + 132, + 97, + 63, + 115, + 144, + 147, + 146, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 149, + 148, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 97, + 32, + 171, + 131, + 96, + 8, + 96, + 0, + 135, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 144, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 32, + 96, + 64, + 81, + 128, + 97, + 1, + 64, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 2, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 3, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 4, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 5, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 6, + 130, + 1, + 96, + 64, + 81, + 128, + 97, + 1, + 0, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 18, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 22, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 24, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 26, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 30, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 21, + 21, + 21, + 21, + 129, + 82, + 80, + 80, + 129, + 82, + 96, + 32, + 1, + 96, + 7, + 130, + 1, + 96, + 64, + 81, + 128, + 96, + 128, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 80, + 80, + 129, + 82, + 80, + 80, + 97, + 64, + 48, + 144, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 145, + 80, + 145, + 80, + 91, + 146, + 80, + 146, + 144, + 80, + 86, + 91, + 96, + 0, + 128, + 132, + 21, + 97, + 32, + 227, + 87, + 97, + 32, + 220, + 131, + 97, + 32, + 214, + 134, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 97, + 136, + 82, + 86, + 91, + 144, + 97, + 65, + 53, + 86, + 91, + 144, + 80, + 97, + 33, + 28, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 134, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 8, + 96, + 32, + 82, + 96, + 64, + 144, + 32, + 96, + 6, + 1, + 84, + 97, + 33, + 25, + 144, + 132, + 144, + 97, + 32, + 214, + 144, + 135, + 144, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 97, + 136, + 82, + 86, + 91, + 144, + 80, + 91, + 144, + 80, + 91, + 148, + 147, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 11, + 84, + 96, + 1, + 20, + 97, + 33, + 77, + 87, + 96, + 64, + 81, + 96, + 1, + 98, + 56, + 221, + 247, + 96, + 224, + 27, + 3, + 25, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 2, + 96, + 11, + 85, + 97, + 33, + 90, + 97, + 65, + 74, + 86, + 91, + 96, + 85, + 96, + 249, + 27, + 130, + 130, + 96, + 0, + 129, + 97, + 33, + 112, + 87, + 97, + 33, + 112, + 97, + 136, + 105, + 86, + 91, + 144, + 80, + 1, + 53, + 96, + 248, + 28, + 96, + 248, + 27, + 96, + 1, + 96, + 1, + 96, + 248, + 27, + 3, + 25, + 22, + 20, + 97, + 33, + 152, + 87, + 97, + 33, + 147, + 130, + 130, + 97, + 65, + 178, + 86, + 91, + 97, + 26, + 57, + 86, + 91, + 97, + 26, + 57, + 130, + 130, + 97, + 65, + 178, + 97, + 69, + 10, + 86, + 91, + 96, + 0, + 97, + 24, + 76, + 96, + 8, + 96, + 0, + 132, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 144, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 32, + 96, + 64, + 81, + 128, + 97, + 1, + 64, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 2, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 3, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 4, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 5, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 6, + 130, + 1, + 96, + 64, + 81, + 128, + 97, + 1, + 0, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 18, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 22, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 24, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 26, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 30, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 21, + 21, + 21, + 21, + 129, + 82, + 80, + 80, + 129, + 82, + 96, + 32, + 1, + 96, + 7, + 130, + 1, + 96, + 64, + 81, + 128, + 96, + 128, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 80, + 80, + 129, + 82, + 80, + 80, + 96, + 96, + 1, + 81, + 99, + 255, + 255, + 255, + 255, + 22, + 21, + 21, + 144, + 86, + 91, + 96, + 11, + 84, + 96, + 1, + 20, + 97, + 36, + 225, + 87, + 96, + 64, + 81, + 96, + 1, + 98, + 56, + 221, + 247, + 96, + 224, + 27, + 3, + 25, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 2, + 96, + 11, + 85, + 48, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 3, + 97, + 37, + 15, + 87, + 96, + 64, + 81, + 99, + 47, + 53, + 37, + 49, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 0, + 97, + 37, + 27, + 51, + 133, + 97, + 43, + 170, + 86, + 91, + 144, + 80, + 96, + 0, + 25, + 131, + 3, + 97, + 37, + 42, + 87, + 128, + 146, + 80, + 91, + 128, + 131, + 17, + 21, + 97, + 37, + 75, + 87, + 96, + 64, + 81, + 99, + 50, + 124, + 188, + 155, + 96, + 226, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 97, + 37, + 85, + 132, + 132, + 97, + 69, + 216, + 86, + 91, + 97, + 37, + 95, + 132, + 132, + 97, + 70, + 43, + 86, + 91, + 127, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 132, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 3, + 97, + 37, + 200, + 87, + 97, + 37, + 195, + 127, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 131, + 133, + 97, + 70, + 126, + 86, + 91, + 97, + 37, + 211, + 86, + 91, + 97, + 37, + 211, + 132, + 131, + 133, + 97, + 71, + 101, + 86, + 91, + 97, + 37, + 219, + 97, + 58, + 225, + 86, + 91, + 80, + 96, + 1, + 96, + 11, + 85, + 96, + 4, + 84, + 96, + 255, + 22, + 97, + 38, + 4, + 87, + 96, + 64, + 81, + 99, + 4, + 86, + 76, + 113, + 96, + 226, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 80, + 80, + 80, + 86, + 91, + 96, + 11, + 84, + 96, + 1, + 20, + 97, + 38, + 47, + 87, + 96, + 64, + 81, + 96, + 1, + 98, + 56, + 221, + 247, + 96, + 224, + 27, + 3, + 25, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 2, + 96, + 11, + 129, + 144, + 85, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 133, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 8, + 96, + 32, + 82, + 96, + 64, + 144, + 32, + 144, + 129, + 1, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 51, + 20, + 97, + 38, + 122, + 87, + 96, + 64, + 81, + 99, + 35, + 1, + 158, + 103, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 64, + 128, + 81, + 97, + 1, + 0, + 129, + 1, + 130, + 82, + 96, + 0, + 128, + 130, + 82, + 96, + 32, + 130, + 1, + 129, + 144, + 82, + 145, + 129, + 1, + 130, + 144, + 82, + 96, + 96, + 129, + 1, + 130, + 144, + 82, + 96, + 128, + 129, + 1, + 130, + 144, + 82, + 96, + 160, + 129, + 1, + 130, + 144, + 82, + 96, + 192, + 129, + 1, + 130, + 144, + 82, + 96, + 224, + 129, + 1, + 145, + 144, + 145, + 82, + 80, + 96, + 64, + 128, + 81, + 97, + 1, + 0, + 129, + 1, + 130, + 82, + 96, + 6, + 131, + 1, + 84, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 129, + 22, + 130, + 82, + 97, + 255, + 255, + 96, + 1, + 96, + 128, + 27, + 130, + 4, + 129, + 22, + 96, + 32, + 132, + 1, + 82, + 96, + 1, + 96, + 144, + 27, + 130, + 4, + 129, + 22, + 147, + 131, + 1, + 147, + 144, + 147, + 82, + 96, + 1, + 96, + 160, + 27, + 129, + 4, + 131, + 22, + 96, + 96, + 131, + 1, + 82, + 96, + 1, + 96, + 176, + 27, + 129, + 4, + 131, + 22, + 96, + 128, + 131, + 1, + 82, + 96, + 1, + 96, + 192, + 27, + 129, + 4, + 131, + 22, + 96, + 160, + 131, + 1, + 82, + 99, + 255, + 255, + 255, + 255, + 96, + 1, + 96, + 208, + 27, + 130, + 4, + 22, + 96, + 192, + 131, + 1, + 82, + 96, + 255, + 96, + 1, + 96, + 240, + 27, + 144, + 145, + 4, + 22, + 21, + 21, + 96, + 224, + 130, + 1, + 82, + 144, + 131, + 22, + 21, + 97, + 39, + 90, + 87, + 97, + 255, + 255, + 131, + 22, + 96, + 32, + 130, + 1, + 82, + 91, + 97, + 255, + 255, + 132, + 22, + 21, + 97, + 39, + 111, + 87, + 97, + 255, + 255, + 132, + 22, + 96, + 64, + 130, + 1, + 82, + 91, + 97, + 255, + 255, + 133, + 22, + 21, + 97, + 39, + 132, + 87, + 97, + 255, + 255, + 133, + 22, + 96, + 160, + 130, + 1, + 82, + 91, + 97, + 39, + 142, + 130, + 130, + 97, + 71, + 227, + 86, + 91, + 96, + 64, + 81, + 97, + 255, + 255, + 132, + 129, + 22, + 130, + 82, + 128, + 134, + 22, + 145, + 144, + 135, + 22, + 144, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 137, + 22, + 144, + 127, + 99, + 136, + 150, + 84, + 253, + 163, + 215, + 78, + 149, + 252, + 123, + 230, + 211, + 16, + 196, + 83, + 198, + 136, + 59, + 108, + 205, + 232, + 64, + 12, + 71, + 103, + 39, + 35, + 126, + 99, + 42, + 194, + 144, + 96, + 32, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 164, + 80, + 80, + 96, + 1, + 96, + 11, + 85, + 96, + 4, + 84, + 96, + 255, + 22, + 97, + 40, + 3, + 87, + 96, + 64, + 81, + 99, + 4, + 86, + 76, + 113, + 96, + 226, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 97, + 43, + 25, + 96, + 8, + 96, + 0, + 134, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 144, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 32, + 96, + 64, + 81, + 128, + 97, + 1, + 64, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 2, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 3, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 4, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 5, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 6, + 130, + 1, + 96, + 64, + 81, + 128, + 97, + 1, + 0, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 18, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 22, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 24, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 26, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 30, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 21, + 21, + 21, + 21, + 129, + 82, + 80, + 80, + 129, + 82, + 96, + 32, + 1, + 96, + 7, + 130, + 1, + 96, + 64, + 81, + 128, + 96, + 128, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 80, + 80, + 129, + 82, + 80, + 80, + 132, + 96, + 0, + 97, + 72, + 225, + 86, + 91, + 144, + 149, + 144, + 148, + 80, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 11, + 84, + 96, + 1, + 20, + 97, + 43, + 74, + 87, + 96, + 64, + 81, + 96, + 1, + 98, + 56, + 221, + 247, + 96, + 224, + 27, + 3, + 25, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 2, + 96, + 11, + 85, + 52, + 96, + 0, + 3, + 97, + 43, + 112, + 87, + 96, + 64, + 81, + 99, + 124, + 148, + 110, + 215, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 97, + 43, + 120, + 97, + 65, + 74, + 86, + 91, + 97, + 43, + 128, + 97, + 58, + 225, + 86, + 91, + 96, + 1, + 96, + 11, + 85, + 96, + 4, + 84, + 96, + 255, + 22, + 97, + 43, + 168, + 87, + 96, + 64, + 81, + 99, + 4, + 86, + 76, + 113, + 96, + 226, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 145, + 130, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 32, + 129, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 147, + 144, + 148, + 22, + 130, + 82, + 145, + 144, + 145, + 82, + 32, + 84, + 144, + 86, + 91, + 96, + 0, + 97, + 33, + 31, + 131, + 131, + 96, + 8, + 96, + 0, + 136, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 144, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 32, + 96, + 64, + 81, + 128, + 97, + 1, + 64, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 2, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 3, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 4, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 5, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 6, + 130, + 1, + 96, + 64, + 81, + 128, + 97, + 1, + 0, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 18, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 22, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 24, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 26, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 30, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 21, + 21, + 21, + 21, + 129, + 82, + 80, + 80, + 129, + 82, + 96, + 32, + 1, + 96, + 7, + 130, + 1, + 96, + 64, + 81, + 128, + 96, + 128, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 80, + 80, + 129, + 82, + 80, + 80, + 97, + 73, + 105, + 144, + 146, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 96, + 96, + 96, + 32, + 96, + 0, + 82, + 107, + 11, + 118, + 49, + 46, + 48, + 46, + 48, + 45, + 98, + 101, + 116, + 97, + 96, + 43, + 82, + 96, + 96, + 96, + 0, + 243, + 91, + 96, + 0, + 128, + 96, + 0, + 128, + 97, + 47, + 30, + 133, + 128, + 81, + 96, + 32, + 144, + 145, + 1, + 81, + 144, + 145, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 145, + 80, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 145, + 80, + 97, + 47, + 91, + 97, + 47, + 86, + 134, + 97, + 1, + 32, + 1, + 81, + 96, + 32, + 1, + 81, + 96, + 255, + 22, + 132, + 97, + 74, + 33, + 144, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 97, + 74, + 55, + 86, + 91, + 147, + 80, + 97, + 47, + 127, + 97, + 47, + 86, + 134, + 97, + 1, + 32, + 1, + 81, + 96, + 96, + 1, + 81, + 96, + 255, + 22, + 131, + 97, + 74, + 33, + 144, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 146, + 80, + 80, + 80, + 145, + 80, + 145, + 86, + 91, + 96, + 0, + 128, + 97, + 13, + 126, + 131, + 96, + 64, + 1, + 81, + 97, + 47, + 156, + 144, + 97, + 136, + 127, + 86, + 91, + 132, + 144, + 97, + 64, + 48, + 86, + 91, + 96, + 0, + 130, + 96, + 32, + 1, + 81, + 99, + 255, + 255, + 255, + 255, + 22, + 130, + 97, + 17, + 147, + 145, + 144, + 97, + 136, + 82, + 86, + 91, + 96, + 0, + 130, + 97, + 1, + 0, + 1, + 81, + 96, + 224, + 1, + 81, + 21, + 97, + 47, + 215, + 87, + 80, + 99, + 1, + 225, + 133, + 89, + 97, + 24, + 76, + 86, + 91, + 96, + 0, + 97, + 47, + 231, + 132, + 97, + 1, + 0, + 1, + 81, + 97, + 74, + 77, + 86, + 91, + 99, + 255, + 255, + 255, + 255, + 22, + 128, + 132, + 3, + 144, + 132, + 16, + 2, + 131, + 3, + 146, + 144, + 146, + 3, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 97, + 33, + 28, + 131, + 133, + 135, + 97, + 1, + 0, + 1, + 81, + 96, + 0, + 1, + 81, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 97, + 48, + 64, + 137, + 97, + 1, + 0, + 1, + 81, + 96, + 128, + 1, + 81, + 97, + 255, + 255, + 22, + 97, + 39, + 16, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 145, + 144, + 145, + 2, + 4, + 144, + 86, + 91, + 134, + 97, + 74, + 116, + 86, + 91, + 96, + 0, + 128, + 97, + 48, + 82, + 131, + 97, + 74, + 145, + 86, + 91, + 144, + 147, + 5, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 1, + 132, + 1, + 96, + 32, + 82, + 96, + 64, + 129, + 32, + 84, + 129, + 97, + 48, + 130, + 133, + 133, + 97, + 57, + 236, + 86, + 91, + 144, + 80, + 97, + 48, + 142, + 130, + 130, + 97, + 136, + 165, + 86, + 91, + 150, + 149, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 128, + 96, + 8, + 96, + 0, + 134, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 144, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 32, + 144, + 80, + 97, + 51, + 181, + 66, + 130, + 96, + 64, + 81, + 128, + 97, + 1, + 64, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 2, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 3, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 4, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 5, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 6, + 130, + 1, + 96, + 64, + 81, + 128, + 97, + 1, + 0, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 18, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 22, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 24, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 26, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 30, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 21, + 21, + 21, + 21, + 129, + 82, + 80, + 80, + 129, + 82, + 96, + 32, + 1, + 96, + 7, + 130, + 1, + 96, + 64, + 81, + 128, + 96, + 128, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 80, + 80, + 129, + 82, + 80, + 80, + 97, + 47, + 187, + 144, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 145, + 80, + 96, + 0, + 128, + 97, + 54, + 167, + 131, + 96, + 64, + 81, + 128, + 97, + 1, + 64, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 2, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 3, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 4, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 5, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 6, + 130, + 1, + 96, + 64, + 81, + 128, + 97, + 1, + 0, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 18, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 22, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 24, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 26, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 30, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 21, + 21, + 21, + 21, + 129, + 82, + 80, + 80, + 129, + 82, + 96, + 32, + 1, + 96, + 7, + 130, + 1, + 96, + 64, + 81, + 128, + 96, + 128, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 80, + 80, + 129, + 82, + 80, + 80, + 128, + 81, + 96, + 32, + 144, + 145, + 1, + 81, + 144, + 145, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 145, + 80, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 145, + 80, + 97, + 57, + 177, + 130, + 130, + 134, + 134, + 96, + 64, + 81, + 128, + 97, + 1, + 64, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 2, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 3, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 4, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 5, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 6, + 130, + 1, + 96, + 64, + 81, + 128, + 97, + 1, + 0, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 18, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 22, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 24, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 26, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 30, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 21, + 21, + 21, + 21, + 129, + 82, + 80, + 80, + 129, + 82, + 96, + 32, + 1, + 96, + 7, + 130, + 1, + 96, + 64, + 81, + 128, + 96, + 128, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 80, + 80, + 129, + 82, + 80, + 80, + 97, + 48, + 1, + 144, + 147, + 146, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 96, + 6, + 132, + 1, + 84, + 96, + 15, + 145, + 144, + 145, + 11, + 149, + 80, + 97, + 57, + 224, + 144, + 131, + 144, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 129, + 22, + 144, + 96, + 1, + 96, + 176, + 27, + 144, + 4, + 97, + 255, + 255, + 22, + 135, + 97, + 74, + 169, + 86, + 91, + 149, + 80, + 80, + 80, + 80, + 145, + 147, + 144, + 146, + 80, + 86, + 91, + 96, + 64, + 128, + 81, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 129, + 22, + 96, + 36, + 128, + 132, + 1, + 145, + 144, + 145, + 82, + 131, + 81, + 128, + 132, + 3, + 144, + 145, + 1, + 129, + 82, + 96, + 68, + 144, + 146, + 1, + 131, + 82, + 96, + 32, + 130, + 1, + 128, + 81, + 96, + 1, + 96, + 1, + 96, + 224, + 27, + 3, + 22, + 99, + 112, + 160, + 130, + 49, + 96, + 224, + 27, + 23, + 144, + 82, + 145, + 81, + 96, + 0, + 146, + 131, + 146, + 131, + 146, + 145, + 135, + 22, + 145, + 97, + 58, + 70, + 145, + 144, + 97, + 136, + 228, + 86, + 91, + 96, + 0, + 96, + 64, + 81, + 128, + 131, + 3, + 129, + 133, + 90, + 250, + 145, + 80, + 80, + 61, + 128, + 96, + 0, + 129, + 20, + 97, + 58, + 129, + 87, + 96, + 64, + 81, + 145, + 80, + 96, + 31, + 25, + 96, + 63, + 61, + 1, + 22, + 130, + 1, + 96, + 64, + 82, + 61, + 130, + 82, + 61, + 96, + 0, + 96, + 32, + 132, + 1, + 62, + 97, + 58, + 134, + 86, + 91, + 96, + 96, + 145, + 80, + 91, + 80, + 145, + 80, + 145, + 80, + 129, + 21, + 128, + 97, + 58, + 154, + 87, + 80, + 128, + 81, + 96, + 32, + 20, + 21, + 91, + 21, + 97, + 58, + 184, + 87, + 96, + 64, + 81, + 99, + 197, + 46, + 62, + 255, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 128, + 128, + 96, + 32, + 1, + 144, + 81, + 129, + 1, + 144, + 97, + 29, + 139, + 145, + 144, + 97, + 137, + 0, + 86, + 91, + 97, + 58, + 214, + 132, + 132, + 97, + 76, + 48, + 86, + 91, + 97, + 40, + 3, + 131, + 131, + 131, + 97, + 76, + 192, + 86, + 91, + 96, + 0, + 128, + 96, + 3, + 1, + 128, + 84, + 128, + 96, + 32, + 2, + 96, + 32, + 1, + 96, + 64, + 81, + 144, + 129, + 1, + 96, + 64, + 82, + 128, + 146, + 145, + 144, + 129, + 129, + 82, + 96, + 32, + 1, + 130, + 128, + 84, + 128, + 21, + 97, + 59, + 59, + 87, + 96, + 32, + 2, + 130, + 1, + 145, + 144, + 96, + 0, + 82, + 96, + 32, + 96, + 0, + 32, + 144, + 91, + 129, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 1, + 144, + 145, + 1, + 144, + 96, + 32, + 1, + 128, + 131, + 17, + 97, + 59, + 29, + 87, + 91, + 80, + 80, + 80, + 80, + 80, + 144, + 80, + 96, + 0, + 129, + 81, + 144, + 80, + 128, + 96, + 0, + 3, + 97, + 59, + 90, + 87, + 97, + 26, + 105, + 96, + 0, + 97, + 76, + 204, + 86, + 91, + 128, + 91, + 96, + 0, + 131, + 97, + 59, + 106, + 96, + 1, + 132, + 97, + 136, + 82, + 86, + 91, + 129, + 81, + 129, + 16, + 97, + 59, + 122, + 87, + 97, + 59, + 122, + 97, + 136, + 105, + 86, + 91, + 96, + 32, + 2, + 96, + 32, + 1, + 1, + 81, + 144, + 80, + 96, + 0, + 128, + 96, + 0, + 97, + 59, + 159, + 132, + 48, + 96, + 0, + 97, + 76, + 251, + 144, + 146, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 145, + 148, + 80, + 146, + 80, + 144, + 80, + 130, + 21, + 97, + 60, + 52, + 87, + 96, + 64, + 81, + 131, + 129, + 82, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 133, + 22, + 144, + 51, + 144, + 127, + 73, + 225, + 68, + 60, + 178, + 94, + 23, + 203, + 235, + 197, + 10, + 163, + 227, + 165, + 163, + 223, + 58, + 195, + 52, + 175, + 133, + 43, + 198, + 243, + 232, + 210, + 88, + 85, + 130, + 87, + 187, + 17, + 144, + 96, + 32, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 131, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 127, + 128, + 178, + 23, + 72, + 199, + 135, + 197, + 46, + 135, + 166, + 178, + 34, + 1, + 30, + 10, + 14, + 208, + 249, + 204, + 32, + 21, + 240, + 206, + 212, + 103, + 72, + 100, + 45, + 198, + 46, + 233, + 248, + 132, + 96, + 64, + 81, + 97, + 60, + 39, + 145, + 129, + 82, + 96, + 32, + 1, + 144, + 86, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 162, + 97, + 61, + 65, + 86, + 91, + 129, + 21, + 97, + 60, + 190, + 87, + 96, + 64, + 81, + 130, + 129, + 82, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 133, + 22, + 144, + 51, + 144, + 127, + 11, + 11, + 130, + 25, + 83, + 229, + 84, + 91, + 113, + 242, + 8, + 88, + 51, + 228, + 168, + 223, + 208, + 217, + 155, + 189, + 255, + 81, + 24, + 152, + 103, + 42, + 232, + 23, + 154, + 152, + 45, + 243, + 144, + 96, + 32, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 131, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 127, + 28, + 113, + 30, + 202, + 141, + 11, + 105, + 75, + 188, + 176, + 161, + 68, + 98, + 167, + 0, + 98, + 34, + 231, + 33, + 149, + 75, + 44, + 95, + 247, + 152, + 246, + 6, + 129, + 126, + 177, + 16, + 50, + 131, + 96, + 64, + 81, + 97, + 60, + 181, + 145, + 129, + 82, + 96, + 32, + 1, + 144, + 86, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 162, + 91, + 128, + 21, + 97, + 61, + 65, + 87, + 96, + 14, + 96, + 64, + 81, + 128, + 96, + 96, + 1, + 96, + 64, + 82, + 128, + 134, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 131, + 129, + 82, + 96, + 32, + 1, + 97, + 60, + 240, + 135, + 48, + 97, + 57, + 236, + 86, + 91, + 144, + 82, + 129, + 84, + 96, + 1, + 128, + 130, + 1, + 132, + 85, + 96, + 0, + 147, + 132, + 82, + 96, + 32, + 147, + 132, + 144, + 32, + 131, + 81, + 96, + 3, + 144, + 147, + 2, + 1, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 25, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 144, + 147, + 22, + 146, + 144, + 146, + 23, + 130, + 85, + 146, + 130, + 1, + 81, + 146, + 129, + 1, + 146, + 144, + 146, + 85, + 96, + 64, + 1, + 81, + 96, + 2, + 144, + 145, + 1, + 85, + 91, + 96, + 3, + 128, + 84, + 128, + 97, + 61, + 82, + 87, + 97, + 61, + 82, + 97, + 137, + 25, + 86, + 91, + 96, + 0, + 130, + 129, + 82, + 96, + 32, + 129, + 32, + 130, + 1, + 96, + 0, + 25, + 144, + 129, + 1, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 25, + 22, + 144, + 85, + 145, + 130, + 1, + 144, + 146, + 85, + 134, + 1, + 149, + 144, + 3, + 96, + 1, + 1, + 147, + 80, + 97, + 59, + 92, + 146, + 80, + 80, + 80, + 87, + 96, + 0, + 96, + 14, + 128, + 84, + 128, + 96, + 32, + 2, + 96, + 32, + 1, + 96, + 64, + 81, + 144, + 129, + 1, + 96, + 64, + 82, + 128, + 146, + 145, + 144, + 129, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 144, + 91, + 130, + 130, + 16, + 21, + 97, + 62, + 2, + 87, + 96, + 0, + 132, + 129, + 82, + 96, + 32, + 144, + 129, + 144, + 32, + 96, + 64, + 128, + 81, + 96, + 96, + 129, + 1, + 130, + 82, + 96, + 3, + 134, + 2, + 144, + 146, + 1, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 131, + 82, + 96, + 1, + 128, + 130, + 1, + 84, + 132, + 134, + 1, + 82, + 96, + 2, + 144, + 145, + 1, + 84, + 145, + 131, + 1, + 145, + 144, + 145, + 82, + 144, + 131, + 82, + 144, + 146, + 1, + 145, + 1, + 97, + 61, + 173, + 86, + 91, + 80, + 80, + 130, + 81, + 146, + 147, + 80, + 80, + 80, + 91, + 128, + 21, + 97, + 62, + 112, + 87, + 96, + 0, + 97, + 62, + 31, + 96, + 1, + 131, + 97, + 136, + 82, + 86, + 91, + 144, + 80, + 97, + 62, + 102, + 131, + 130, + 129, + 81, + 129, + 16, + 97, + 62, + 54, + 87, + 97, + 62, + 54, + 97, + 136, + 105, + 86, + 91, + 96, + 32, + 2, + 96, + 32, + 1, + 1, + 81, + 96, + 0, + 1, + 81, + 48, + 133, + 132, + 129, + 81, + 129, + 16, + 97, + 62, + 85, + 87, + 97, + 62, + 85, + 97, + 136, + 105, + 86, + 91, + 96, + 32, + 2, + 96, + 32, + 1, + 1, + 81, + 96, + 32, + 1, + 81, + 97, + 76, + 192, + 86, + 91, + 80, + 96, + 0, + 25, + 1, + 97, + 62, + 12, + 86, + 91, + 80, + 128, + 81, + 91, + 128, + 21, + 97, + 63, + 86, + 87, + 96, + 0, + 97, + 62, + 135, + 96, + 1, + 131, + 97, + 136, + 82, + 86, + 91, + 144, + 80, + 96, + 0, + 131, + 130, + 129, + 81, + 129, + 16, + 97, + 62, + 157, + 87, + 97, + 62, + 157, + 97, + 136, + 105, + 86, + 91, + 96, + 32, + 2, + 96, + 32, + 1, + 1, + 81, + 96, + 0, + 1, + 81, + 144, + 80, + 96, + 0, + 132, + 131, + 129, + 81, + 129, + 16, + 97, + 62, + 191, + 87, + 97, + 62, + 191, + 97, + 136, + 105, + 86, + 91, + 96, + 32, + 2, + 96, + 32, + 1, + 1, + 81, + 96, + 64, + 1, + 81, + 144, + 80, + 96, + 0, + 97, + 62, + 217, + 131, + 48, + 97, + 57, + 236, + 86, + 91, + 144, + 80, + 96, + 0, + 130, + 135, + 134, + 129, + 81, + 129, + 16, + 97, + 62, + 240, + 87, + 97, + 62, + 240, + 97, + 136, + 105, + 86, + 91, + 96, + 32, + 2, + 96, + 32, + 1, + 1, + 81, + 96, + 32, + 1, + 81, + 97, + 63, + 6, + 145, + 144, + 97, + 137, + 47, + 86, + 91, + 144, + 80, + 128, + 130, + 16, + 21, + 97, + 63, + 69, + 87, + 131, + 97, + 63, + 27, + 130, + 132, + 97, + 136, + 165, + 86, + 91, + 96, + 64, + 81, + 99, + 127, + 17, + 205, + 213, + 96, + 225, + 27, + 129, + 82, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 144, + 146, + 22, + 96, + 4, + 131, + 1, + 82, + 96, + 36, + 130, + 1, + 82, + 96, + 68, + 1, + 97, + 25, + 118, + 86, + 91, + 133, + 96, + 1, + 144, + 3, + 149, + 80, + 80, + 80, + 80, + 80, + 80, + 97, + 62, + 116, + 86, + 91, + 97, + 63, + 96, + 96, + 0, + 97, + 76, + 204, + 86, + 91, + 97, + 63, + 108, + 96, + 14, + 96, + 0, + 97, + 129, + 241, + 86, + 91, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 97, + 63, + 132, + 135, + 135, + 135, + 135, + 97, + 77, + 224, + 86, + 91, + 145, + 80, + 145, + 80, + 96, + 0, + 128, + 97, + 63, + 151, + 137, + 133, + 138, + 134, + 97, + 78, + 223, + 86, + 91, + 145, + 80, + 145, + 80, + 129, + 129, + 17, + 21, + 97, + 63, + 188, + 87, + 96, + 64, + 81, + 99, + 1, + 0, + 7, + 39, + 96, + 229, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 192, + 132, + 1, + 81, + 97, + 63, + 207, + 144, + 97, + 32, + 214, + 131, + 133, + 97, + 136, + 82, + 86, + 91, + 132, + 97, + 1, + 0, + 1, + 129, + 129, + 81, + 97, + 63, + 225, + 145, + 144, + 97, + 137, + 47, + 86, + 91, + 144, + 82, + 80, + 96, + 0, + 136, + 97, + 63, + 250, + 87, + 137, + 97, + 1, + 32, + 1, + 81, + 96, + 32, + 1, + 81, + 97, + 64, + 5, + 86, + 91, + 137, + 97, + 1, + 32, + 1, + 81, + 96, + 96, + 1, + 81, + 91, + 96, + 255, + 22, + 144, + 80, + 97, + 64, + 34, + 129, + 134, + 97, + 1, + 0, + 1, + 81, + 97, + 74, + 33, + 144, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 154, + 153, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 15, + 131, + 144, + 11, + 21, + 97, + 32, + 176, + 87, + 131, + 81, + 96, + 32, + 133, + 1, + 81, + 96, + 0, + 145, + 130, + 145, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 145, + 80, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 145, + 80, + 96, + 0, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 97, + 64, + 127, + 136, + 97, + 1, + 32, + 1, + 81, + 96, + 32, + 1, + 81, + 96, + 255, + 22, + 97, + 74, + 145, + 86, + 91, + 97, + 64, + 137, + 145, + 144, + 97, + 137, + 71, + 86, + 91, + 144, + 80, + 96, + 0, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 97, + 64, + 171, + 137, + 97, + 1, + 32, + 1, + 81, + 96, + 96, + 1, + 81, + 96, + 255, + 22, + 97, + 74, + 145, + 86, + 91, + 97, + 64, + 181, + 145, + 144, + 97, + 137, + 71, + 86, + 91, + 144, + 80, + 96, + 0, + 128, + 136, + 96, + 15, + 11, + 19, + 21, + 97, + 64, + 244, + 87, + 80, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 135, + 22, + 97, + 64, + 221, + 97, + 47, + 86, + 134, + 131, + 134, + 97, + 79, + 199, + 86, + 91, + 150, + 80, + 97, + 64, + 237, + 97, + 47, + 86, + 133, + 131, + 133, + 97, + 79, + 199, + 86, + 91, + 149, + 80, + 97, + 65, + 41, + 86, + 91, + 97, + 64, + 253, + 136, + 97, + 136, + 127, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 144, + 80, + 97, + 65, + 22, + 97, + 47, + 86, + 134, + 131, + 134, + 97, + 79, + 245, + 86, + 91, + 150, + 80, + 97, + 65, + 38, + 97, + 47, + 86, + 133, + 131, + 133, + 97, + 79, + 245, + 86, + 91, + 149, + 80, + 91, + 80, + 80, + 80, + 80, + 80, + 146, + 80, + 146, + 144, + 80, + 86, + 91, + 96, + 0, + 97, + 17, + 147, + 131, + 131, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 97, + 79, + 245, + 86, + 91, + 52, + 21, + 97, + 43, + 168, + 87, + 97, + 65, + 123, + 96, + 0, + 127, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 97, + 80, + 20, + 86, + 91, + 96, + 64, + 81, + 52, + 129, + 82, + 51, + 144, + 127, + 225, + 255, + 252, + 196, + 146, + 61, + 4, + 181, + 89, + 244, + 210, + 154, + 139, + 252, + 108, + 218, + 4, + 235, + 91, + 13, + 60, + 70, + 7, + 81, + 194, + 64, + 44, + 92, + 92, + 201, + 16, + 156, + 144, + 96, + 32, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 162, + 86, + 91, + 96, + 0, + 97, + 65, + 231, + 131, + 131, + 96, + 0, + 129, + 129, + 16, + 97, + 65, + 202, + 87, + 97, + 65, + 202, + 97, + 136, + 105, + 86, + 91, + 145, + 144, + 145, + 1, + 53, + 96, + 4, + 129, + 144, + 28, + 96, + 255, + 96, + 244, + 27, + 22, + 146, + 96, + 15, + 96, + 248, + 27, + 144, + 145, + 22, + 145, + 80, + 86, + 91, + 145, + 80, + 80, + 96, + 1, + 96, + 1, + 96, + 248, + 27, + 3, + 25, + 128, + 130, + 22, + 1, + 97, + 66, + 43, + 87, + 96, + 0, + 128, + 96, + 0, + 97, + 66, + 10, + 134, + 134, + 97, + 80, + 115, + 86, + 91, + 146, + 80, + 146, + 80, + 146, + 80, + 97, + 66, + 33, + 131, + 96, + 255, + 22, + 96, + 1, + 20, + 131, + 131, + 97, + 80, + 227, + 86, + 91, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 253, + 96, + 248, + 27, + 96, + 1, + 96, + 1, + 96, + 248, + 27, + 3, + 25, + 130, + 22, + 1, + 97, + 66, + 102, + 87, + 96, + 0, + 128, + 96, + 0, + 97, + 66, + 79, + 134, + 134, + 97, + 80, + 115, + 86, + 91, + 146, + 80, + 146, + 80, + 146, + 80, + 97, + 66, + 33, + 131, + 96, + 255, + 22, + 96, + 1, + 20, + 131, + 131, + 97, + 82, + 206, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 248, + 27, + 3, + 25, + 129, + 22, + 96, + 3, + 96, + 249, + 27, + 20, + 128, + 97, + 66, + 143, + 87, + 80, + 96, + 1, + 96, + 1, + 96, + 248, + 27, + 3, + 25, + 129, + 22, + 96, + 5, + 96, + 248, + 27, + 20, + 91, + 21, + 97, + 67, + 74, + 87, + 96, + 64, + 128, + 81, + 96, + 160, + 129, + 1, + 130, + 82, + 132, + 53, + 96, + 0, + 144, + 129, + 26, + 96, + 15, + 129, + 22, + 96, + 6, + 20, + 96, + 255, + 144, + 129, + 22, + 96, + 128, + 133, + 1, + 82, + 96, + 1, + 96, + 9, + 137, + 1, + 53, + 132, + 26, + 128, + 138, + 1, + 130, + 129, + 1, + 53, + 96, + 8, + 131, + 140, + 3, + 96, + 0, + 25, + 1, + 129, + 2, + 97, + 1, + 0, + 144, + 129, + 3, + 146, + 144, + 146, + 28, + 146, + 53, + 136, + 26, + 96, + 10, + 144, + 129, + 10, + 147, + 144, + 147, + 2, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 144, + 129, + 22, + 96, + 96, + 139, + 1, + 82, + 96, + 11, + 142, + 1, + 53, + 96, + 10, + 25, + 144, + 149, + 1, + 144, + 145, + 2, + 144, + 145, + 3, + 146, + 144, + 146, + 28, + 129, + 140, + 1, + 53, + 144, + 150, + 26, + 144, + 10, + 148, + 144, + 148, + 2, + 144, + 147, + 22, + 148, + 132, + 1, + 148, + 144, + 148, + 82, + 144, + 134, + 1, + 53, + 96, + 192, + 28, + 96, + 32, + 131, + 1, + 82, + 96, + 4, + 28, + 144, + 145, + 22, + 129, + 82, + 97, + 67, + 65, + 129, + 97, + 84, + 180, + 86, + 91, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 245, + 96, + 248, + 27, + 96, + 1, + 96, + 1, + 96, + 248, + 27, + 3, + 25, + 130, + 22, + 1, + 97, + 68, + 59, + 87, + 96, + 0, + 128, + 96, + 0, + 128, + 96, + 0, + 128, + 96, + 0, + 128, + 96, + 0, + 97, + 68, + 9, + 140, + 140, + 96, + 1, + 128, + 131, + 1, + 53, + 96, + 232, + 28, + 147, + 96, + 4, + 132, + 1, + 53, + 96, + 96, + 28, + 147, + 96, + 24, + 129, + 1, + 53, + 96, + 240, + 144, + 129, + 28, + 148, + 96, + 26, + 131, + 1, + 53, + 130, + 28, + 148, + 96, + 28, + 132, + 1, + 53, + 131, + 28, + 148, + 96, + 30, + 133, + 1, + 53, + 132, + 28, + 148, + 96, + 32, + 129, + 1, + 53, + 144, + 148, + 28, + 147, + 96, + 35, + 129, + 1, + 53, + 96, + 0, + 144, + 129, + 26, + 96, + 10, + 144, + 129, + 10, + 96, + 36, + 132, + 1, + 53, + 96, + 8, + 96, + 35, + 25, + 96, + 34, + 135, + 1, + 53, + 134, + 26, + 144, + 129, + 1, + 130, + 2, + 97, + 1, + 0, + 144, + 129, + 3, + 147, + 144, + 147, + 28, + 147, + 144, + 147, + 2, + 152, + 149, + 131, + 1, + 128, + 53, + 144, + 149, + 26, + 144, + 147, + 10, + 147, + 144, + 150, + 1, + 53, + 96, + 0, + 25, + 145, + 144, + 148, + 3, + 1, + 2, + 144, + 147, + 3, + 28, + 145, + 144, + 145, + 2, + 144, + 86, + 91, + 152, + 80, + 152, + 80, + 152, + 80, + 152, + 80, + 152, + 80, + 152, + 80, + 152, + 80, + 152, + 80, + 152, + 80, + 97, + 68, + 44, + 137, + 137, + 137, + 137, + 137, + 137, + 137, + 137, + 137, + 97, + 92, + 89, + 86, + 91, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 61, + 96, + 250, + 27, + 96, + 1, + 96, + 1, + 96, + 248, + 27, + 3, + 25, + 130, + 22, + 1, + 97, + 68, + 115, + 87, + 96, + 0, + 128, + 97, + 68, + 93, + 133, + 133, + 97, + 95, + 236, + 86, + 91, + 145, + 80, + 145, + 80, + 97, + 68, + 107, + 130, + 130, + 97, + 96, + 51, + 86, + 91, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 63, + 96, + 250, + 27, + 96, + 1, + 96, + 1, + 96, + 248, + 27, + 3, + 25, + 130, + 22, + 1, + 97, + 68, + 241, + 87, + 96, + 0, + 128, + 128, + 133, + 53, + 96, + 184, + 129, + 144, + 28, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 144, + 96, + 10, + 129, + 129, + 26, + 129, + 10, + 96, + 11, + 138, + 1, + 53, + 96, + 8, + 96, + 9, + 133, + 144, + 26, + 96, + 10, + 25, + 129, + 1, + 130, + 2, + 97, + 1, + 0, + 144, + 129, + 3, + 147, + 144, + 147, + 28, + 147, + 144, + 147, + 2, + 148, + 131, + 26, + 144, + 147, + 10, + 96, + 1, + 131, + 141, + 1, + 1, + 53, + 146, + 139, + 3, + 96, + 0, + 25, + 1, + 144, + 147, + 2, + 144, + 3, + 28, + 2, + 146, + 80, + 146, + 80, + 146, + 80, + 97, + 68, + 107, + 131, + 131, + 131, + 97, + 99, + 52, + 86, + 91, + 96, + 64, + 81, + 99, + 27, + 24, + 145, + 237, + 96, + 227, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 0, + 131, + 131, + 96, + 1, + 129, + 129, + 16, + 97, + 69, + 31, + 87, + 97, + 69, + 31, + 97, + 136, + 105, + 86, + 91, + 145, + 144, + 145, + 1, + 53, + 96, + 248, + 28, + 145, + 80, + 96, + 2, + 144, + 80, + 96, + 0, + 128, + 128, + 91, + 132, + 96, + 255, + 22, + 129, + 20, + 97, + 66, + 33, + 87, + 131, + 146, + 80, + 135, + 135, + 132, + 129, + 129, + 16, + 97, + 69, + 81, + 87, + 97, + 69, + 81, + 97, + 136, + 105, + 86, + 91, + 97, + 69, + 98, + 146, + 1, + 53, + 96, + 248, + 28, + 144, + 80, + 132, + 97, + 137, + 47, + 86, + 91, + 97, + 69, + 109, + 144, + 96, + 1, + 97, + 137, + 47, + 86, + 91, + 145, + 80, + 134, + 130, + 17, + 21, + 97, + 69, + 147, + 87, + 96, + 64, + 81, + 99, + 128, + 246, + 59, + 209, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 129, + 1, + 131, + 144, + 82, + 96, + 36, + 1, + 97, + 25, + 118, + 86, + 91, + 54, + 96, + 0, + 97, + 69, + 162, + 132, + 134, + 139, + 141, + 97, + 137, + 102, + 86, + 91, + 148, + 150, + 80, + 134, + 148, + 144, + 146, + 80, + 144, + 80, + 97, + 69, + 197, + 97, + 69, + 188, + 130, + 96, + 1, + 129, + 134, + 97, + 137, + 102, + 86, + 91, + 138, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 80, + 80, + 128, + 97, + 69, + 209, + 144, + 97, + 137, + 144, + 86, + 91, + 144, + 80, + 97, + 69, + 50, + 86, + 91, + 97, + 69, + 229, + 96, + 0, + 51, + 132, + 132, + 97, + 101, + 143, + 86, + 91, + 80, + 80, + 96, + 64, + 81, + 129, + 129, + 82, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 22, + 144, + 51, + 144, + 127, + 11, + 11, + 130, + 25, + 83, + 229, + 84, + 91, + 113, + 242, + 8, + 88, + 51, + 228, + 168, + 223, + 208, + 217, + 155, + 189, + 255, + 81, + 24, + 152, + 103, + 42, + 232, + 23, + 154, + 152, + 45, + 243, + 144, + 96, + 32, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 80, + 80, + 86, + 91, + 97, + 70, + 55, + 96, + 0, + 131, + 131, + 97, + 101, + 221, + 86, + 91, + 129, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 127, + 28, + 113, + 30, + 202, + 141, + 11, + 105, + 75, + 188, + 176, + 161, + 68, + 98, + 167, + 0, + 98, + 34, + 231, + 33, + 149, + 75, + 44, + 95, + 247, + 152, + 246, + 6, + 129, + 126, + 177, + 16, + 50, + 130, + 96, + 64, + 81, + 97, + 70, + 114, + 145, + 129, + 82, + 96, + 32, + 1, + 144, + 86, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 162, + 80, + 80, + 86, + 91, + 96, + 64, + 81, + 99, + 46, + 26, + 125, + 77, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 129, + 1, + 130, + 144, + 82, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 132, + 22, + 144, + 99, + 46, + 26, + 125, + 77, + 144, + 96, + 36, + 1, + 96, + 0, + 96, + 64, + 81, + 128, + 131, + 3, + 129, + 96, + 0, + 135, + 128, + 59, + 21, + 128, + 21, + 97, + 70, + 192, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 90, + 241, + 21, + 128, + 21, + 97, + 70, + 212, + 87, + 61, + 96, + 0, + 128, + 62, + 61, + 96, + 0, + 253, + 91, + 80, + 80, + 96, + 64, + 128, + 81, + 96, + 0, + 128, + 130, + 82, + 96, + 32, + 130, + 1, + 146, + 131, + 144, + 82, + 147, + 80, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 134, + 22, + 146, + 80, + 132, + 145, + 97, + 71, + 1, + 145, + 144, + 97, + 136, + 228, + 86, + 91, + 96, + 0, + 96, + 64, + 81, + 128, + 131, + 3, + 129, + 133, + 135, + 90, + 241, + 146, + 80, + 80, + 80, + 61, + 128, + 96, + 0, + 129, + 20, + 97, + 71, + 62, + 87, + 96, + 64, + 81, + 145, + 80, + 96, + 31, + 25, + 96, + 63, + 61, + 1, + 22, + 130, + 1, + 96, + 64, + 82, + 61, + 130, + 82, + 61, + 96, + 0, + 96, + 32, + 132, + 1, + 62, + 97, + 71, + 67, + 86, + 91, + 96, + 96, + 145, + 80, + 91, + 80, + 80, + 144, + 80, + 128, + 97, + 40, + 3, + 87, + 96, + 64, + 81, + 99, + 117, + 244, + 38, + 131, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 0, + 96, + 64, + 81, + 99, + 169, + 5, + 156, + 187, + 96, + 224, + 27, + 96, + 0, + 82, + 131, + 96, + 4, + 82, + 130, + 96, + 36, + 82, + 96, + 32, + 96, + 0, + 96, + 68, + 96, + 0, + 128, + 137, + 90, + 241, + 61, + 21, + 96, + 31, + 61, + 17, + 96, + 1, + 96, + 0, + 81, + 20, + 22, + 23, + 22, + 145, + 80, + 96, + 0, + 96, + 96, + 82, + 128, + 96, + 64, + 82, + 80, + 128, + 97, + 40, + 3, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 15, + 96, + 36, + 130, + 1, + 82, + 110, + 21, + 20, + 144, + 83, + 148, + 209, + 145, + 84, + 151, + 209, + 144, + 82, + 83, + 17, + 81, + 96, + 138, + 27, + 96, + 68, + 130, + 1, + 82, + 96, + 100, + 1, + 97, + 25, + 118, + 86, + 91, + 97, + 71, + 236, + 129, + 97, + 102, + 98, + 86, + 91, + 128, + 81, + 96, + 6, + 146, + 144, + 146, + 1, + 128, + 84, + 96, + 32, + 131, + 1, + 81, + 96, + 64, + 132, + 1, + 81, + 96, + 96, + 133, + 1, + 81, + 96, + 128, + 134, + 1, + 81, + 96, + 160, + 135, + 1, + 81, + 96, + 192, + 136, + 1, + 81, + 96, + 224, + 144, + 152, + 1, + 81, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 144, + 153, + 22, + 113, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 25, + 144, + 150, + 22, + 149, + 144, + 149, + 23, + 96, + 1, + 96, + 128, + 27, + 97, + 255, + 255, + 149, + 134, + 22, + 2, + 23, + 99, + 255, + 255, + 255, + 255, + 96, + 144, + 27, + 25, + 22, + 96, + 1, + 96, + 144, + 27, + 147, + 133, + 22, + 147, + 144, + 147, + 2, + 97, + 255, + 255, + 96, + 160, + 27, + 25, + 22, + 146, + 144, + 146, + 23, + 96, + 1, + 96, + 160, + 27, + 145, + 132, + 22, + 145, + 144, + 145, + 2, + 23, + 99, + 255, + 255, + 255, + 255, + 96, + 176, + 27, + 25, + 22, + 96, + 1, + 96, + 176, + 27, + 145, + 131, + 22, + 145, + 144, + 145, + 2, + 97, + 255, + 255, + 96, + 192, + 27, + 25, + 22, + 23, + 96, + 1, + 96, + 192, + 27, + 145, + 144, + 146, + 22, + 2, + 23, + 100, + 255, + 255, + 255, + 255, + 255, + 96, + 208, + 27, + 25, + 22, + 96, + 1, + 96, + 208, + 27, + 99, + 255, + 255, + 255, + 255, + 144, + 147, + 22, + 146, + 144, + 146, + 2, + 96, + 255, + 96, + 240, + 27, + 25, + 22, + 145, + 144, + 145, + 23, + 96, + 1, + 96, + 240, + 27, + 146, + 21, + 21, + 146, + 144, + 146, + 2, + 145, + 144, + 145, + 23, + 144, + 85, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 133, + 97, + 1, + 0, + 1, + 81, + 96, + 0, + 1, + 81, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 144, + 80, + 96, + 0, + 97, + 73, + 34, + 135, + 97, + 1, + 0, + 1, + 81, + 96, + 128, + 1, + 81, + 97, + 255, + 255, + 22, + 97, + 39, + 16, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 145, + 144, + 145, + 2, + 4, + 144, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 73, + 47, + 136, + 97, + 102, + 127, + 86, + 91, + 144, + 80, + 97, + 73, + 74, + 135, + 132, + 138, + 97, + 1, + 0, + 1, + 81, + 96, + 128, + 1, + 81, + 97, + 255, + 255, + 22, + 132, + 97, + 102, + 158, + 86, + 91, + 148, + 80, + 97, + 73, + 92, + 133, + 132, + 132, + 132, + 138, + 96, + 15, + 11, + 97, + 103, + 173, + 86, + 91, + 147, + 80, + 80, + 80, + 80, + 147, + 80, + 147, + 145, + 80, + 80, + 86, + 91, + 96, + 0, + 97, + 73, + 141, + 97, + 47, + 86, + 133, + 97, + 1, + 32, + 1, + 81, + 96, + 32, + 1, + 81, + 96, + 255, + 22, + 133, + 97, + 104, + 200, + 144, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 146, + 80, + 97, + 73, + 186, + 97, + 47, + 86, + 133, + 97, + 1, + 32, + 1, + 81, + 96, + 96, + 1, + 81, + 96, + 255, + 22, + 132, + 97, + 104, + 200, + 144, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 145, + 80, + 96, + 0, + 128, + 97, + 73, + 216, + 134, + 128, + 81, + 96, + 32, + 144, + 145, + 1, + 81, + 144, + 145, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 145, + 130, + 22, + 147, + 80, + 22, + 144, + 80, + 96, + 0, + 97, + 73, + 244, + 134, + 132, + 97, + 104, + 223, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 74, + 2, + 134, + 132, + 97, + 104, + 223, + 86, + 91, + 144, + 80, + 97, + 74, + 21, + 129, + 131, + 17, + 130, + 132, + 3, + 2, + 131, + 3, + 97, + 74, + 55, + 86, + 91, + 152, + 151, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 97, + 74, + 45, + 131, + 97, + 74, + 145, + 86, + 91, + 144, + 147, + 4, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 96, + 1, + 96, + 128, + 27, + 130, + 16, + 97, + 74, + 73, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 144, + 86, + 91, + 96, + 0, + 97, + 24, + 76, + 130, + 96, + 192, + 1, + 81, + 99, + 255, + 255, + 255, + 255, + 22, + 97, + 74, + 110, + 132, + 96, + 96, + 1, + 81, + 97, + 255, + 255, + 22, + 97, + 104, + 244, + 86, + 91, + 1, + 97, + 105, + 65, + 86, + 91, + 96, + 0, + 128, + 97, + 74, + 132, + 134, + 134, + 134, + 134, + 134, + 97, + 103, + 173, + 86, + 91, + 144, + 150, + 3, + 150, + 149, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 97, + 74, + 158, + 130, + 96, + 18, + 97, + 136, + 82, + 86, + 91, + 97, + 24, + 76, + 144, + 96, + 10, + 97, + 138, + 141, + 86, + 91, + 96, + 0, + 128, + 99, + 1, + 225, + 133, + 89, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 132, + 2, + 4, + 144, + 80, + 96, + 0, + 97, + 39, + 16, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 134, + 2, + 4, + 144, + 80, + 134, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 16, + 21, + 97, + 74, + 254, + 87, + 96, + 64, + 81, + 99, + 177, + 21, + 88, + 223, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 129, + 1, + 136, + 144, + 82, + 96, + 36, + 1, + 97, + 25, + 118, + 86, + 91, + 134, + 96, + 0, + 3, + 97, + 75, + 31, + 87, + 96, + 64, + 81, + 99, + 34, + 5, + 51, + 99, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 129, + 21, + 128, + 97, + 75, + 42, + 87, + 80, + 128, + 21, + 91, + 21, + 97, + 75, + 57, + 87, + 133, + 146, + 80, + 80, + 80, + 97, + 33, + 31, + 86, + 91, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 135, + 3, + 97, + 75, + 82, + 87, + 133, + 146, + 80, + 80, + 80, + 97, + 33, + 31, + 86, + 91, + 96, + 0, + 97, + 75, + 102, + 136, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 97, + 136, + 165, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 75, + 115, + 130, + 97, + 105, + 84, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 75, + 147, + 132, + 99, + 59, + 154, + 202, + 0, + 97, + 75, + 137, + 136, + 97, + 105, + 241, + 86, + 91, + 97, + 32, + 214, + 145, + 144, + 97, + 137, + 71, + 86, + 91, + 144, + 80, + 96, + 0, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 97, + 75, + 170, + 131, + 133, + 97, + 138, + 153, + 86, + 91, + 97, + 75, + 180, + 145, + 144, + 97, + 139, + 52, + 86, + 91, + 144, + 80, + 96, + 0, + 103, + 27, + 193, + 109, + 103, + 78, + 200, + 0, + 0, + 97, + 75, + 203, + 135, + 128, + 97, + 137, + 71, + 86, + 91, + 97, + 75, + 213, + 145, + 144, + 97, + 139, + 98, + 86, + 91, + 144, + 80, + 96, + 0, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 97, + 75, + 236, + 137, + 132, + 97, + 137, + 71, + 86, + 91, + 97, + 75, + 246, + 145, + 144, + 97, + 139, + 52, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 76, + 4, + 130, + 133, + 97, + 136, + 165, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 76, + 17, + 130, + 97, + 106, + 149, + 86, + 91, + 144, + 80, + 97, + 76, + 29, + 129, + 143, + 97, + 65, + 53, + 86, + 91, + 159, + 158, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 4, + 130, + 1, + 84, + 96, + 255, + 22, + 21, + 97, + 76, + 74, + 87, + 96, + 4, + 130, + 1, + 128, + 84, + 96, + 255, + 25, + 22, + 144, + 85, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 129, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 2, + 131, + 1, + 96, + 32, + 82, + 96, + 64, + 144, + 32, + 84, + 96, + 255, + 22, + 97, + 26, + 105, + 87, + 96, + 3, + 130, + 1, + 128, + 84, + 96, + 1, + 128, + 130, + 1, + 131, + 85, + 96, + 0, + 146, + 131, + 82, + 96, + 32, + 128, + 132, + 32, + 144, + 146, + 1, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 134, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 25, + 144, + 145, + 22, + 129, + 23, + 144, + 145, + 85, + 131, + 82, + 96, + 2, + 133, + 1, + 144, + 145, + 82, + 96, + 64, + 144, + 145, + 32, + 128, + 84, + 96, + 255, + 25, + 22, + 144, + 145, + 23, + 144, + 85, + 80, + 80, + 86, + 91, + 97, + 38, + 4, + 131, + 51, + 132, + 132, + 97, + 108, + 62, + 86, + 91, + 96, + 3, + 129, + 1, + 84, + 21, + 97, + 76, + 222, + 87, + 97, + 76, + 222, + 97, + 139, + 118, + 86, + 91, + 96, + 4, + 129, + 1, + 128, + 84, + 96, + 255, + 25, + 22, + 96, + 1, + 23, + 144, + 85, + 97, + 25, + 233, + 96, + 3, + 130, + 1, + 96, + 0, + 97, + 130, + 18, + 86, + 91, + 96, + 0, + 128, + 128, + 128, + 97, + 77, + 11, + 135, + 135, + 135, + 97, + 48, + 92, + 86, + 91, + 144, + 80, + 96, + 0, + 129, + 19, + 21, + 97, + 77, + 90, + 87, + 146, + 80, + 130, + 97, + 77, + 37, + 135, + 51, + 136, + 132, + 97, + 108, + 197, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 134, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 1, + 136, + 1, + 96, + 32, + 82, + 96, + 64, + 129, + 32, + 128, + 84, + 131, + 146, + 144, + 97, + 77, + 79, + 144, + 132, + 144, + 97, + 137, + 47, + 86, + 91, + 144, + 145, + 85, + 80, + 97, + 77, + 181, + 144, + 80, + 86, + 91, + 96, + 0, + 129, + 18, + 21, + 97, + 77, + 181, + 87, + 97, + 77, + 108, + 129, + 97, + 139, + 140, + 86, + 91, + 145, + 80, + 97, + 77, + 122, + 135, + 51, + 136, + 133, + 97, + 101, + 143, + 86, + 91, + 144, + 147, + 80, + 145, + 80, + 130, + 21, + 97, + 77, + 181, + 87, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 134, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 1, + 136, + 1, + 96, + 32, + 82, + 96, + 64, + 129, + 32, + 128, + 84, + 133, + 146, + 144, + 97, + 77, + 175, + 144, + 132, + 144, + 97, + 136, + 82, + 86, + 91, + 144, + 145, + 85, + 80, + 80, + 91, + 80, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 144, + 148, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 2, + 144, + 149, + 1, + 96, + 32, + 82, + 96, + 64, + 144, + 148, + 32, + 128, + 84, + 96, + 255, + 25, + 22, + 144, + 85, + 147, + 144, + 80, + 86, + 91, + 97, + 77, + 232, + 97, + 130, + 48, + 86, + 91, + 96, + 0, + 97, + 77, + 242, + 97, + 130, + 48, + 86, + 91, + 96, + 128, + 135, + 1, + 81, + 96, + 0, + 144, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 97, + 78, + 22, + 87, + 135, + 97, + 1, + 0, + 1, + 81, + 96, + 64, + 1, + 81, + 97, + 78, + 33, + 86, + 91, + 135, + 97, + 1, + 0, + 1, + 81, + 96, + 160, + 1, + 81, + 91, + 97, + 255, + 255, + 22, + 144, + 80, + 97, + 78, + 55, + 136, + 128, + 81, + 96, + 32, + 144, + 145, + 1, + 81, + 144, + 145, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 144, + 129, + 22, + 96, + 96, + 133, + 1, + 82, + 22, + 96, + 64, + 131, + 1, + 82, + 97, + 78, + 87, + 136, + 134, + 97, + 47, + 187, + 86, + 91, + 146, + 80, + 97, + 78, + 109, + 136, + 131, + 96, + 64, + 1, + 81, + 132, + 96, + 96, + 1, + 81, + 134, + 97, + 48, + 1, + 86, + 91, + 130, + 82, + 97, + 78, + 155, + 135, + 97, + 78, + 134, + 87, + 136, + 97, + 1, + 32, + 1, + 81, + 96, + 96, + 1, + 81, + 97, + 78, + 145, + 86, + 91, + 136, + 97, + 1, + 32, + 1, + 81, + 96, + 32, + 1, + 81, + 91, + 135, + 144, + 96, + 255, + 22, + 97, + 104, + 200, + 86, + 91, + 96, + 128, + 131, + 1, + 129, + 144, + 82, + 96, + 64, + 137, + 1, + 81, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 192, + 132, + 1, + 82, + 97, + 39, + 16, + 144, + 97, + 78, + 196, + 144, + 131, + 144, + 97, + 137, + 71, + 86, + 91, + 97, + 78, + 206, + 145, + 144, + 97, + 139, + 98, + 86, + 91, + 96, + 160, + 131, + 1, + 82, + 80, + 145, + 80, + 148, + 80, + 148, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 128, + 96, + 0, + 97, + 79, + 12, + 137, + 97, + 1, + 0, + 1, + 81, + 96, + 128, + 1, + 81, + 97, + 255, + 255, + 22, + 97, + 39, + 16, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 145, + 144, + 145, + 2, + 4, + 144, + 86, + 91, + 144, + 80, + 134, + 21, + 97, + 79, + 39, + 87, + 96, + 64, + 136, + 1, + 81, + 96, + 96, + 137, + 1, + 81, + 149, + 80, + 146, + 80, + 97, + 79, + 55, + 86, + 91, + 96, + 64, + 136, + 1, + 81, + 96, + 96, + 137, + 1, + 81, + 144, + 149, + 80, + 146, + 80, + 91, + 97, + 79, + 89, + 136, + 96, + 192, + 1, + 81, + 137, + 96, + 160, + 1, + 81, + 138, + 96, + 128, + 1, + 81, + 97, + 79, + 83, + 145, + 144, + 97, + 136, + 82, + 86, + 91, + 144, + 97, + 104, + 223, + 86, + 91, + 97, + 79, + 99, + 144, + 132, + 97, + 137, + 47, + 86, + 91, + 145, + 80, + 134, + 21, + 97, + 79, + 149, + 87, + 97, + 79, + 142, + 130, + 138, + 97, + 1, + 0, + 1, + 81, + 96, + 0, + 1, + 81, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 131, + 137, + 140, + 96, + 0, + 1, + 81, + 97, + 103, + 173, + 86, + 91, + 147, + 80, + 97, + 79, + 187, + 86, + 91, + 97, + 79, + 184, + 130, + 138, + 97, + 1, + 0, + 1, + 81, + 96, + 0, + 1, + 81, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 131, + 137, + 140, + 96, + 0, + 1, + 81, + 97, + 109, + 4, + 86, + 91, + 147, + 80, + 91, + 80, + 80, + 80, + 148, + 80, + 148, + 146, + 80, + 80, + 80, + 86, + 91, + 130, + 130, + 2, + 129, + 21, + 21, + 132, + 21, + 133, + 131, + 4, + 133, + 20, + 23, + 22, + 97, + 79, + 223, + 87, + 96, + 0, + 128, + 253, + 91, + 96, + 1, + 130, + 96, + 1, + 131, + 3, + 4, + 1, + 129, + 21, + 21, + 2, + 144, + 80, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 130, + 130, + 2, + 129, + 21, + 21, + 132, + 21, + 133, + 131, + 4, + 133, + 20, + 23, + 22, + 97, + 80, + 13, + 87, + 96, + 0, + 128, + 253, + 91, + 4, + 146, + 145, + 80, + 80, + 86, + 91, + 52, + 21, + 97, + 26, + 105, + 87, + 97, + 80, + 36, + 130, + 130, + 97, + 76, + 48, + 86, + 91, + 128, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 99, + 208, + 227, + 13, + 176, + 52, + 96, + 64, + 81, + 130, + 99, + 255, + 255, + 255, + 255, + 22, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 0, + 96, + 64, + 81, + 128, + 131, + 3, + 129, + 133, + 136, + 128, + 59, + 21, + 128, + 21, + 97, + 80, + 95, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 90, + 241, + 21, + 128, + 21, + 97, + 67, + 65, + 87, + 61, + 96, + 0, + 128, + 62, + 61, + 96, + 0, + 253, + 91, + 96, + 0, + 128, + 128, + 96, + 11, + 132, + 16, + 21, + 97, + 80, + 163, + 87, + 96, + 64, + 81, + 99, + 112, + 206, + 228, + 175, + 96, + 225, + 27, + 129, + 82, + 96, + 11, + 96, + 4, + 130, + 1, + 82, + 96, + 36, + 129, + 1, + 133, + 144, + 82, + 96, + 68, + 1, + 97, + 25, + 118, + 86, + 91, + 80, + 80, + 80, + 144, + 53, + 96, + 252, + 129, + 144, + 28, + 146, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 96, + 184, + 131, + 144, + 28, + 22, + 146, + 96, + 255, + 96, + 176, + 132, + 144, + 28, + 22, + 96, + 10, + 10, + 96, + 80, + 147, + 144, + 147, + 27, + 96, + 9, + 25, + 144, + 145, + 1, + 96, + 8, + 2, + 97, + 1, + 0, + 3, + 28, + 145, + 144, + 145, + 2, + 144, + 86, + 91, + 96, + 0, + 128, + 97, + 80, + 239, + 132, + 97, + 33, + 165, + 86, + 91, + 97, + 81, + 23, + 87, + 96, + 64, + 81, + 99, + 106, + 36, + 6, + 163, + 96, + 225, + 27, + 129, + 82, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 133, + 22, + 96, + 4, + 130, + 1, + 82, + 96, + 36, + 1, + 97, + 25, + 118, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 132, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 8, + 96, + 32, + 129, + 144, + 82, + 96, + 64, + 144, + 145, + 32, + 96, + 7, + 129, + 1, + 84, + 145, + 1, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 145, + 130, + 22, + 145, + 22, + 134, + 21, + 97, + 81, + 104, + 87, + 97, + 81, + 101, + 134, + 97, + 81, + 91, + 51, + 133, + 97, + 43, + 170, + 86, + 91, + 97, + 10, + 24, + 51, + 133, + 97, + 43, + 170, + 86, + 91, + 148, + 80, + 91, + 132, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 0, + 3, + 97, + 81, + 146, + 87, + 96, + 64, + 81, + 99, + 2, + 0, + 232, + 169, + 96, + 227, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 97, + 81, + 159, + 134, + 97, + 5, + 0, + 135, + 97, + 110, + 64, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 145, + 130, + 22, + 149, + 80, + 22, + 146, + 80, + 131, + 21, + 128, + 97, + 81, + 186, + 87, + 80, + 130, + 21, + 91, + 21, + 97, + 81, + 216, + 87, + 96, + 64, + 81, + 99, + 33, + 60, + 124, + 197, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 0, + 96, + 64, + 81, + 128, + 97, + 1, + 0, + 1, + 96, + 64, + 82, + 128, + 51, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 136, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 66, + 129, + 82, + 96, + 32, + 1, + 134, + 129, + 82, + 96, + 32, + 1, + 133, + 129, + 82, + 96, + 32, + 1, + 132, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 131, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 97, + 82, + 61, + 136, + 97, + 110, + 64, + 86, + 91, + 96, + 15, + 11, + 144, + 82, + 144, + 80, + 97, + 82, + 77, + 129, + 97, + 110, + 86, + 86, + 91, + 80, + 80, + 80, + 129, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 131, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 136, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 127, + 253, + 255, + 236, + 167, + 81, + 240, + 220, + 170, + 183, + 85, + 49, + 203, + 129, + 60, + 18, + 187, + 253, + 86, + 238, + 62, + 150, + 76, + 196, + 113, + 215, + 239, + 67, + 147, + 36, + 2, + 238, + 24, + 136, + 136, + 139, + 96, + 64, + 81, + 97, + 82, + 187, + 147, + 146, + 145, + 144, + 146, + 131, + 82, + 96, + 32, + 131, + 1, + 145, + 144, + 145, + 82, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 64, + 130, + 1, + 82, + 96, + 96, + 1, + 144, + 86, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 164, + 80, + 80, + 80, + 147, + 80, + 147, + 145, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 97, + 82, + 218, + 132, + 97, + 33, + 165, + 86, + 91, + 97, + 83, + 2, + 87, + 96, + 64, + 81, + 99, + 106, + 36, + 6, + 163, + 96, + 225, + 27, + 129, + 82, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 133, + 22, + 96, + 4, + 130, + 1, + 82, + 96, + 36, + 1, + 97, + 25, + 118, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 132, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 8, + 96, + 32, + 129, + 144, + 82, + 96, + 64, + 144, + 145, + 32, + 96, + 7, + 129, + 1, + 84, + 145, + 1, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 145, + 130, + 22, + 145, + 22, + 134, + 21, + 97, + 83, + 104, + 87, + 51, + 96, + 0, + 144, + 129, + 82, + 96, + 10, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 138, + 22, + 132, + 82, + 144, + 145, + 82, + 144, + 32, + 84, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 148, + 80, + 91, + 132, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 0, + 3, + 97, + 83, + 146, + 87, + 96, + 64, + 81, + 99, + 2, + 0, + 232, + 169, + 96, + 227, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 97, + 83, + 168, + 134, + 97, + 83, + 159, + 135, + 97, + 110, + 64, + 86, + 91, + 97, + 5, + 0, + 144, + 97, + 136, + 127, + 86, + 91, + 129, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 145, + 80, + 128, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 144, + 80, + 128, + 148, + 80, + 129, + 149, + 80, + 80, + 80, + 96, + 0, + 96, + 64, + 81, + 128, + 97, + 1, + 0, + 1, + 96, + 64, + 82, + 128, + 51, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 136, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 66, + 129, + 82, + 96, + 32, + 1, + 134, + 129, + 82, + 96, + 32, + 1, + 133, + 129, + 82, + 96, + 32, + 1, + 132, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 131, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 97, + 84, + 45, + 136, + 97, + 110, + 64, + 86, + 91, + 97, + 84, + 54, + 144, + 97, + 136, + 127, + 86, + 91, + 96, + 15, + 11, + 144, + 82, + 144, + 80, + 97, + 84, + 70, + 129, + 97, + 110, + 86, + 86, + 91, + 80, + 80, + 80, + 129, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 131, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 136, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 127, + 48, + 132, + 202, + 244, + 137, + 102, + 92, + 171, + 7, + 69, + 44, + 254, + 79, + 61, + 14, + 181, + 224, + 220, + 21, + 234, + 198, + 252, + 101, + 128, + 152, + 133, + 142, + 99, + 158, + 112, + 229, + 58, + 136, + 136, + 139, + 96, + 64, + 81, + 97, + 82, + 187, + 147, + 146, + 145, + 144, + 146, + 131, + 82, + 96, + 32, + 131, + 1, + 145, + 144, + 145, + 82, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 64, + 130, + 1, + 82, + 96, + 96, + 1, + 144, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 131, + 96, + 64, + 1, + 81, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 0, + 3, + 97, + 84, + 231, + 87, + 96, + 64, + 81, + 99, + 175, + 69, + 140, + 7, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 32, + 128, + 133, + 1, + 128, + 81, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 8, + 144, + 146, + 82, + 96, + 64, + 144, + 145, + 32, + 144, + 81, + 97, + 85, + 17, + 144, + 97, + 33, + 165, + 86, + 91, + 97, + 85, + 63, + 87, + 96, + 32, + 133, + 1, + 81, + 96, + 64, + 81, + 99, + 106, + 36, + 6, + 163, + 96, + 225, + 27, + 129, + 82, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 144, + 145, + 22, + 96, + 4, + 130, + 1, + 82, + 96, + 36, + 1, + 97, + 25, + 118, + 86, + 91, + 96, + 128, + 133, + 1, + 81, + 96, + 15, + 128, + 84, + 96, + 255, + 144, + 146, + 22, + 96, + 1, + 20, + 96, + 255, + 25, + 144, + 146, + 22, + 145, + 144, + 145, + 23, + 144, + 85, + 96, + 2, + 129, + 1, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 51, + 20, + 97, + 85, + 133, + 87, + 96, + 6, + 129, + 1, + 84, + 96, + 1, + 96, + 144, + 27, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 85, + 150, + 86, + 91, + 96, + 6, + 129, + 1, + 84, + 96, + 1, + 96, + 192, + 27, + 144, + 4, + 97, + 255, + 255, + 22, + 91, + 96, + 15, + 128, + 84, + 97, + 255, + 255, + 146, + 144, + 146, + 22, + 96, + 1, + 96, + 168, + 27, + 2, + 97, + 255, + 255, + 96, + 168, + 27, + 25, + 131, + 22, + 129, + 23, + 144, + 145, + 85, + 96, + 255, + 144, + 129, + 22, + 145, + 22, + 23, + 21, + 97, + 86, + 17, + 87, + 96, + 4, + 129, + 1, + 84, + 96, + 17, + 85, + 96, + 7, + 129, + 1, + 84, + 96, + 15, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 146, + 131, + 22, + 97, + 1, + 0, + 2, + 97, + 1, + 0, + 96, + 1, + 96, + 168, + 27, + 3, + 25, + 144, + 145, + 22, + 23, + 144, + 85, + 96, + 8, + 130, + 1, + 84, + 96, + 16, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 25, + 22, + 145, + 144, + 146, + 22, + 23, + 144, + 85, + 97, + 86, + 92, + 86, + 91, + 96, + 5, + 129, + 1, + 84, + 96, + 17, + 85, + 96, + 8, + 129, + 1, + 84, + 96, + 15, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 146, + 131, + 22, + 97, + 1, + 0, + 2, + 97, + 1, + 0, + 96, + 1, + 96, + 168, + 27, + 3, + 25, + 144, + 145, + 22, + 23, + 144, + 85, + 96, + 7, + 130, + 1, + 84, + 96, + 16, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 25, + 22, + 145, + 144, + 146, + 22, + 23, + 144, + 85, + 91, + 97, + 86, + 100, + 97, + 130, + 48, + 86, + 91, + 96, + 0, + 128, + 97, + 86, + 116, + 136, + 96, + 32, + 1, + 81, + 97, + 111, + 185, + 86, + 91, + 145, + 80, + 145, + 80, + 129, + 97, + 86, + 150, + 87, + 96, + 64, + 81, + 99, + 57, + 139, + 54, + 219, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 15, + 84, + 96, + 0, + 144, + 97, + 86, + 207, + 144, + 51, + 144, + 96, + 255, + 22, + 97, + 86, + 188, + 87, + 96, + 8, + 135, + 1, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 97, + 43, + 170, + 86, + 91, + 96, + 7, + 135, + 1, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 97, + 43, + 170, + 86, + 91, + 144, + 80, + 136, + 96, + 0, + 1, + 81, + 96, + 255, + 22, + 96, + 1, + 20, + 97, + 86, + 243, + 87, + 136, + 96, + 64, + 1, + 81, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 97, + 86, + 245, + 86, + 91, + 128, + 91, + 96, + 15, + 84, + 144, + 151, + 80, + 97, + 87, + 52, + 144, + 96, + 255, + 22, + 97, + 87, + 26, + 87, + 96, + 8, + 134, + 1, + 84, + 96, + 1, + 96, + 160, + 27, + 144, + 4, + 96, + 255, + 22, + 97, + 87, + 42, + 86, + 91, + 96, + 7, + 134, + 1, + 84, + 96, + 1, + 96, + 160, + 27, + 144, + 4, + 96, + 255, + 22, + 91, + 136, + 144, + 96, + 255, + 22, + 97, + 104, + 200, + 86, + 91, + 96, + 96, + 138, + 1, + 81, + 96, + 15, + 84, + 145, + 152, + 80, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 150, + 80, + 97, + 87, + 127, + 144, + 96, + 255, + 22, + 97, + 87, + 105, + 87, + 96, + 7, + 134, + 1, + 84, + 96, + 1, + 96, + 160, + 27, + 144, + 4, + 96, + 255, + 22, + 97, + 78, + 145, + 86, + 91, + 96, + 8, + 134, + 1, + 84, + 135, + 144, + 96, + 1, + 96, + 160, + 27, + 144, + 4, + 96, + 255, + 22, + 97, + 104, + 200, + 86, + 91, + 145, + 132, + 82, + 80, + 96, + 224, + 131, + 1, + 134, + 144, + 82, + 96, + 1, + 132, + 1, + 84, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 144, + 129, + 22, + 96, + 192, + 133, + 1, + 82, + 97, + 1, + 0, + 132, + 1, + 130, + 144, + 82, + 132, + 84, + 96, + 1, + 96, + 128, + 27, + 129, + 4, + 130, + 22, + 96, + 96, + 134, + 1, + 82, + 22, + 96, + 64, + 132, + 1, + 82, + 147, + 80, + 80, + 96, + 0, + 131, + 144, + 3, + 97, + 87, + 226, + 87, + 96, + 64, + 81, + 99, + 115, + 12, + 49, + 191, + 96, + 225, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 128, + 96, + 224, + 1, + 81, + 96, + 0, + 3, + 97, + 88, + 7, + 87, + 96, + 64, + 81, + 99, + 175, + 69, + 140, + 7, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 128, + 96, + 192, + 1, + 81, + 96, + 0, + 3, + 97, + 88, + 44, + 87, + 96, + 64, + 81, + 99, + 2, + 0, + 232, + 169, + 96, + 227, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 97, + 1, + 0, + 129, + 1, + 81, + 96, + 15, + 84, + 96, + 0, + 145, + 130, + 145, + 130, + 145, + 130, + 145, + 130, + 145, + 130, + 145, + 130, + 145, + 144, + 96, + 255, + 22, + 21, + 97, + 88, + 97, + 87, + 96, + 64, + 137, + 1, + 81, + 96, + 96, + 138, + 1, + 81, + 144, + 152, + 80, + 148, + 80, + 97, + 88, + 112, + 86, + 91, + 96, + 64, + 137, + 1, + 81, + 96, + 96, + 138, + 1, + 81, + 152, + 80, + 148, + 80, + 91, + 96, + 224, + 137, + 1, + 81, + 96, + 15, + 84, + 144, + 147, + 80, + 97, + 39, + 16, + 144, + 97, + 88, + 148, + 144, + 96, + 1, + 96, + 168, + 27, + 144, + 4, + 97, + 255, + 255, + 22, + 133, + 97, + 137, + 71, + 86, + 91, + 97, + 88, + 158, + 145, + 144, + 97, + 139, + 98, + 86, + 91, + 96, + 160, + 138, + 1, + 82, + 96, + 13, + 84, + 21, + 97, + 89, + 21, + 87, + 96, + 0, + 96, + 13, + 84, + 138, + 96, + 160, + 1, + 81, + 97, + 88, + 191, + 145, + 144, + 97, + 139, + 98, + 86, + 91, + 144, + 80, + 128, + 138, + 96, + 160, + 1, + 129, + 129, + 81, + 97, + 88, + 211, + 145, + 144, + 97, + 136, + 82, + 86, + 91, + 144, + 82, + 80, + 96, + 15, + 84, + 97, + 89, + 19, + 144, + 127, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 144, + 97, + 1, + 0, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 131, + 97, + 115, + 21, + 86, + 91, + 80, + 91, + 96, + 160, + 137, + 1, + 81, + 97, + 89, + 36, + 144, + 132, + 97, + 136, + 82, + 86, + 91, + 145, + 80, + 97, + 89, + 61, + 137, + 96, + 192, + 1, + 81, + 132, + 97, + 104, + 223, + 144, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 97, + 89, + 71, + 144, + 137, + 97, + 137, + 47, + 86, + 91, + 150, + 80, + 97, + 89, + 96, + 137, + 96, + 192, + 1, + 81, + 131, + 97, + 104, + 223, + 144, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 97, + 89, + 106, + 144, + 137, + 97, + 137, + 47, + 86, + 91, + 149, + 80, + 97, + 89, + 131, + 137, + 96, + 192, + 1, + 81, + 130, + 97, + 104, + 223, + 144, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 97, + 89, + 141, + 144, + 134, + 97, + 136, + 82, + 86, + 91, + 96, + 15, + 84, + 144, + 148, + 80, + 96, + 0, + 147, + 80, + 131, + 146, + 80, + 96, + 255, + 22, + 21, + 144, + 80, + 97, + 89, + 183, + 87, + 96, + 96, + 136, + 1, + 131, + 144, + 82, + 96, + 64, + 136, + 1, + 133, + 144, + 82, + 97, + 89, + 198, + 86, + 91, + 96, + 96, + 136, + 1, + 133, + 144, + 82, + 96, + 64, + 136, + 1, + 131, + 144, + 82, + 91, + 97, + 89, + 227, + 141, + 96, + 32, + 1, + 81, + 137, + 96, + 0, + 1, + 81, + 138, + 96, + 64, + 1, + 81, + 139, + 96, + 96, + 1, + 81, + 66, + 97, + 17, + 154, + 86, + 91, + 144, + 146, + 80, + 144, + 80, + 129, + 97, + 90, + 19, + 87, + 135, + 81, + 96, + 64, + 81, + 99, + 4, + 36, + 180, + 45, + 96, + 227, + 27, + 129, + 82, + 96, + 4, + 129, + 1, + 145, + 144, + 145, + 82, + 96, + 36, + 129, + 1, + 130, + 144, + 82, + 96, + 68, + 1, + 97, + 25, + 118, + 86, + 91, + 96, + 15, + 11, + 96, + 32, + 128, + 137, + 1, + 145, + 144, + 145, + 82, + 140, + 1, + 81, + 96, + 0, + 145, + 80, + 97, + 90, + 48, + 144, + 136, + 97, + 115, + 116, + 86, + 91, + 144, + 80, + 128, + 97, + 90, + 86, + 87, + 96, + 15, + 84, + 96, + 255, + 22, + 21, + 97, + 90, + 78, + 87, + 96, + 64, + 135, + 1, + 133, + 144, + 82, + 97, + 90, + 86, + 86, + 91, + 96, + 96, + 135, + 1, + 133, + 144, + 82, + 91, + 80, + 96, + 32, + 139, + 1, + 81, + 96, + 64, + 135, + 1, + 81, + 96, + 96, + 136, + 1, + 81, + 96, + 192, + 137, + 1, + 81, + 96, + 15, + 84, + 97, + 90, + 165, + 148, + 147, + 146, + 145, + 144, + 96, + 255, + 22, + 97, + 90, + 132, + 87, + 96, + 0, + 97, + 90, + 136, + 86, + 91, + 96, + 17, + 84, + 91, + 96, + 15, + 84, + 96, + 255, + 22, + 97, + 90, + 154, + 87, + 96, + 17, + 84, + 97, + 90, + 157, + 86, + 91, + 96, + 0, + 91, + 96, + 18, + 84, + 97, + 116, + 46, + 86, + 91, + 96, + 15, + 84, + 96, + 0, + 144, + 129, + 144, + 96, + 255, + 22, + 21, + 97, + 90, + 216, + 87, + 80, + 80, + 96, + 7, + 135, + 1, + 84, + 96, + 8, + 136, + 1, + 84, + 96, + 255, + 96, + 1, + 96, + 160, + 27, + 146, + 131, + 144, + 4, + 129, + 22, + 146, + 144, + 145, + 4, + 22, + 97, + 90, + 247, + 86, + 91, + 80, + 80, + 96, + 8, + 135, + 1, + 84, + 96, + 7, + 136, + 1, + 84, + 96, + 255, + 96, + 1, + 96, + 160, + 27, + 146, + 131, + 144, + 4, + 129, + 22, + 146, + 144, + 145, + 4, + 22, + 91, + 96, + 224, + 136, + 1, + 81, + 97, + 91, + 6, + 144, + 131, + 97, + 74, + 33, + 86, + 91, + 96, + 224, + 137, + 1, + 82, + 97, + 1, + 0, + 136, + 1, + 81, + 97, + 91, + 27, + 144, + 130, + 97, + 74, + 33, + 86, + 91, + 136, + 97, + 1, + 0, + 1, + 129, + 129, + 82, + 80, + 80, + 80, + 80, + 97, + 91, + 77, + 96, + 15, + 96, + 0, + 1, + 96, + 1, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 135, + 96, + 224, + 1, + 81, + 97, + 116, + 238, + 86, + 91, + 96, + 16, + 84, + 97, + 1, + 0, + 135, + 1, + 81, + 97, + 91, + 105, + 145, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 144, + 97, + 70, + 43, + 86, + 91, + 96, + 16, + 84, + 96, + 15, + 84, + 96, + 32, + 141, + 1, + 81, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 146, + 131, + 22, + 146, + 97, + 1, + 0, + 144, + 146, + 4, + 144, + 145, + 22, + 144, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 129, + 22, + 144, + 127, + 97, + 126, + 155, + 20, + 125, + 3, + 180, + 78, + 28, + 201, + 66, + 120, + 47, + 118, + 32, + 200, + 150, + 51, + 38, + 149, + 107, + 101, + 163, + 96, + 8, + 242, + 129, + 202, + 97, + 147, + 2, + 50, + 144, + 97, + 91, + 192, + 144, + 97, + 24, + 82, + 86, + 91, + 138, + 96, + 224, + 1, + 81, + 139, + 97, + 1, + 0, + 1, + 81, + 140, + 96, + 160, + 1, + 81, + 141, + 96, + 32, + 1, + 81, + 96, + 64, + 81, + 97, + 92, + 4, + 149, + 148, + 147, + 146, + 145, + 144, + 148, + 133, + 82, + 96, + 32, + 133, + 1, + 147, + 144, + 147, + 82, + 96, + 64, + 132, + 1, + 145, + 144, + 145, + 82, + 96, + 96, + 131, + 1, + 82, + 96, + 128, + 130, + 1, + 82, + 96, + 160, + 1, + 144, + 86, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 164, + 80, + 80, + 96, + 15, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 184, + 27, + 3, + 25, + 22, + 144, + 85, + 80, + 80, + 96, + 16, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 25, + 22, + 144, + 85, + 80, + 96, + 0, + 96, + 17, + 129, + 144, + 85, + 96, + 18, + 85, + 96, + 32, + 149, + 144, + 149, + 1, + 81, + 96, + 224, + 134, + 1, + 81, + 97, + 1, + 0, + 144, + 150, + 1, + 81, + 144, + 150, + 144, + 148, + 80, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 129, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 0, + 3, + 97, + 92, + 133, + 87, + 96, + 64, + 81, + 99, + 77, + 251, + 160, + 35, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 0, + 98, + 255, + 255, + 255, + 139, + 22, + 21, + 97, + 92, + 152, + 87, + 138, + 97, + 92, + 161, + 86, + 91, + 96, + 5, + 84, + 98, + 255, + 255, + 255, + 22, + 91, + 144, + 80, + 128, + 98, + 255, + 255, + 255, + 22, + 96, + 0, + 3, + 97, + 92, + 201, + 87, + 96, + 64, + 81, + 99, + 7, + 147, + 223, + 99, + 96, + 226, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 98, + 255, + 255, + 255, + 129, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 6, + 96, + 32, + 82, + 96, + 64, + 129, + 32, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 141, + 22, + 21, + 21, + 146, + 145, + 144, + 130, + 144, + 97, + 92, + 255, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 97, + 139, + 168, + 86, + 91, + 145, + 144, + 97, + 1, + 0, + 10, + 129, + 84, + 129, + 99, + 255, + 255, + 255, + 255, + 2, + 25, + 22, + 144, + 131, + 99, + 255, + 255, + 255, + 255, + 22, + 2, + 23, + 144, + 85, + 144, + 80, + 97, + 93, + 53, + 131, + 131, + 131, + 96, + 40, + 146, + 144, + 146, + 27, + 96, + 32, + 145, + 144, + 145, + 27, + 23, + 23, + 144, + 86, + 91, + 147, + 80, + 80, + 96, + 0, + 96, + 8, + 96, + 0, + 133, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 144, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 32, + 144, + 80, + 139, + 129, + 96, + 2, + 1, + 96, + 0, + 97, + 1, + 0, + 10, + 129, + 84, + 129, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 2, + 25, + 22, + 144, + 131, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 2, + 23, + 144, + 85, + 80, + 129, + 128, + 21, + 97, + 93, + 153, + 87, + 80, + 97, + 255, + 255, + 139, + 22, + 21, + 91, + 21, + 97, + 93, + 189, + 87, + 96, + 64, + 81, + 99, + 246, + 244, + 163, + 143, + 96, + 224, + 27, + 129, + 82, + 97, + 255, + 255, + 140, + 22, + 96, + 4, + 130, + 1, + 82, + 96, + 36, + 1, + 97, + 25, + 118, + 86, + 91, + 96, + 0, + 97, + 93, + 200, + 66, + 97, + 105, + 65, + 86, + 91, + 96, + 1, + 131, + 129, + 1, + 128, + 84, + 99, + 255, + 255, + 255, + 255, + 96, + 128, + 27, + 25, + 22, + 96, + 1, + 96, + 128, + 27, + 99, + 255, + 255, + 255, + 255, + 133, + 22, + 2, + 23, + 144, + 85, + 98, + 255, + 255, + 255, + 134, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 7, + 96, + 32, + 129, + 144, + 82, + 96, + 64, + 130, + 32, + 128, + 84, + 145, + 135, + 1, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 147, + 132, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 25, + 128, + 131, + 22, + 130, + 23, + 132, + 85, + 132, + 84, + 96, + 1, + 96, + 1, + 96, + 168, + 27, + 3, + 25, + 147, + 132, + 22, + 144, + 146, + 23, + 96, + 1, + 96, + 160, + 27, + 146, + 131, + 144, + 4, + 96, + 255, + 144, + 129, + 22, + 132, + 2, + 145, + 144, + 145, + 23, + 144, + 148, + 85, + 147, + 144, + 150, + 1, + 128, + 84, + 96, + 8, + 139, + 1, + 128, + 84, + 145, + 144, + 150, + 22, + 148, + 129, + 22, + 133, + 23, + 134, + 85, + 144, + 84, + 145, + 22, + 144, + 146, + 23, + 145, + 133, + 144, + 4, + 22, + 144, + 147, + 2, + 146, + 144, + 146, + 23, + 144, + 145, + 85, + 144, + 145, + 80, + 97, + 255, + 255, + 138, + 129, + 22, + 20, + 97, + 94, + 139, + 87, + 96, + 0, + 97, + 94, + 142, + 86, + 91, + 96, + 1, + 91, + 144, + 80, + 96, + 0, + 96, + 64, + 81, + 128, + 97, + 1, + 0, + 1, + 96, + 64, + 82, + 128, + 138, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 134, + 97, + 94, + 189, + 87, + 96, + 12, + 84, + 96, + 255, + 22, + 97, + 94, + 191, + 86, + 91, + 139, + 91, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 142, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 131, + 97, + 94, + 221, + 87, + 140, + 97, + 94, + 225, + 86, + 91, + 97, + 1, + 244, + 91, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 141, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 134, + 97, + 95, + 0, + 87, + 96, + 0, + 97, + 95, + 2, + 86, + 91, + 143, + 91, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 132, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 131, + 21, + 21, + 129, + 82, + 80, + 144, + 80, + 97, + 95, + 50, + 129, + 133, + 97, + 71, + 227, + 144, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 96, + 0, + 128, + 97, + 95, + 72, + 137, + 139, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 97, + 40, + 9, + 86, + 91, + 145, + 80, + 145, + 80, + 97, + 95, + 85, + 129, + 97, + 74, + 55, + 86, + 91, + 97, + 95, + 94, + 131, + 97, + 74, + 55, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 145, + 130, + 22, + 96, + 1, + 96, + 128, + 27, + 2, + 144, + 130, + 22, + 23, + 135, + 85, + 96, + 8, + 135, + 1, + 84, + 96, + 7, + 136, + 1, + 84, + 96, + 64, + 128, + 81, + 139, + 21, + 21, + 129, + 82, + 147, + 142, + 22, + 96, + 32, + 133, + 1, + 82, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 146, + 131, + 22, + 147, + 145, + 144, + 146, + 22, + 145, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 141, + 22, + 145, + 127, + 118, + 9, + 244, + 94, + 22, + 55, + 139, + 176, + 120, + 40, + 132, + 113, + 155, + 162, + 77, + 59, + 188, + 90, + 182, + 163, + 115, + 185, + 234, + 202, + 204, + 37, + 198, + 20, + 59, + 135, + 207, + 119, + 145, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 164, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 153, + 152, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 41, + 131, + 20, + 97, + 96, + 26, + 87, + 96, + 64, + 81, + 99, + 112, + 206, + 228, + 175, + 96, + 225, + 27, + 129, + 82, + 96, + 41, + 96, + 4, + 130, + 1, + 82, + 96, + 36, + 129, + 1, + 132, + 144, + 82, + 96, + 68, + 1, + 97, + 25, + 118, + 86, + 91, + 80, + 80, + 80, + 96, + 1, + 129, + 1, + 53, + 96, + 96, + 144, + 129, + 28, + 146, + 96, + 21, + 144, + 146, + 1, + 53, + 144, + 28, + 144, + 86, + 91, + 96, + 0, + 129, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 131, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 3, + 97, + 96, + 103, + 87, + 96, + 64, + 81, + 99, + 59, + 14, + 45, + 229, + 96, + 226, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 80, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 128, + 131, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 9, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 147, + 133, + 22, + 131, + 82, + 146, + 144, + 82, + 32, + 84, + 98, + 255, + 255, + 255, + 22, + 128, + 21, + 97, + 96, + 185, + 87, + 96, + 64, + 81, + 99, + 51, + 37, + 250, + 119, + 96, + 224, + 27, + 129, + 82, + 98, + 255, + 255, + 255, + 130, + 22, + 96, + 4, + 130, + 1, + 82, + 96, + 36, + 1, + 97, + 25, + 118, + 86, + 91, + 96, + 0, + 128, + 132, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 99, + 49, + 60, + 229, + 103, + 96, + 64, + 81, + 129, + 99, + 255, + 255, + 255, + 255, + 22, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 32, + 96, + 64, + 81, + 128, + 131, + 3, + 129, + 134, + 90, + 250, + 21, + 128, + 21, + 97, + 96, + 250, + 87, + 61, + 96, + 0, + 128, + 62, + 61, + 96, + 0, + 253, + 91, + 80, + 80, + 80, + 80, + 96, + 64, + 81, + 61, + 96, + 31, + 25, + 96, + 31, + 130, + 1, + 22, + 130, + 1, + 128, + 96, + 64, + 82, + 80, + 129, + 1, + 144, + 97, + 97, + 30, + 145, + 144, + 97, + 139, + 203, + 86, + 91, + 132, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 99, + 49, + 60, + 229, + 103, + 96, + 64, + 81, + 129, + 99, + 255, + 255, + 255, + 255, + 22, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 32, + 96, + 64, + 81, + 128, + 131, + 3, + 129, + 134, + 90, + 250, + 21, + 128, + 21, + 97, + 97, + 92, + 87, + 61, + 96, + 0, + 128, + 62, + 61, + 96, + 0, + 253, + 91, + 80, + 80, + 80, + 80, + 96, + 64, + 81, + 61, + 96, + 31, + 25, + 96, + 31, + 130, + 1, + 22, + 130, + 1, + 128, + 96, + 64, + 82, + 80, + 129, + 1, + 144, + 97, + 97, + 128, + 145, + 144, + 97, + 139, + 203, + 86, + 91, + 144, + 146, + 80, + 144, + 80, + 97, + 97, + 166, + 96, + 255, + 131, + 22, + 96, + 6, + 96, + 18, + 129, + 131, + 20, + 145, + 131, + 17, + 145, + 144, + 145, + 23, + 130, + 130, + 20, + 145, + 144, + 146, + 16, + 23, + 22, + 144, + 86, + 91, + 97, + 97, + 200, + 87, + 96, + 64, + 81, + 99, + 202, + 149, + 3, + 145, + 96, + 224, + 27, + 129, + 82, + 96, + 255, + 131, + 22, + 96, + 4, + 130, + 1, + 82, + 96, + 36, + 1, + 97, + 25, + 118, + 86, + 91, + 97, + 97, + 233, + 96, + 255, + 130, + 22, + 96, + 6, + 96, + 18, + 129, + 131, + 20, + 145, + 131, + 17, + 145, + 144, + 145, + 23, + 130, + 130, + 20, + 145, + 144, + 146, + 16, + 23, + 22, + 144, + 86, + 91, + 97, + 98, + 11, + 87, + 96, + 64, + 81, + 99, + 202, + 149, + 3, + 145, + 96, + 224, + 27, + 129, + 82, + 96, + 255, + 130, + 22, + 96, + 4, + 130, + 1, + 82, + 96, + 36, + 1, + 97, + 25, + 118, + 86, + 91, + 96, + 5, + 128, + 84, + 96, + 0, + 144, + 97, + 98, + 32, + 144, + 98, + 255, + 255, + 255, + 22, + 97, + 139, + 238, + 86, + 91, + 130, + 84, + 97, + 1, + 0, + 146, + 144, + 146, + 10, + 98, + 255, + 255, + 255, + 129, + 129, + 2, + 25, + 144, + 147, + 22, + 146, + 130, + 22, + 144, + 129, + 2, + 146, + 144, + 146, + 23, + 144, + 146, + 85, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 135, + 129, + 22, + 96, + 0, + 129, + 129, + 82, + 96, + 9, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 139, + 134, + 22, + 128, + 133, + 82, + 144, + 131, + 82, + 129, + 132, + 32, + 128, + 84, + 98, + 255, + 255, + 255, + 25, + 22, + 136, + 23, + 144, + 85, + 129, + 81, + 96, + 128, + 129, + 1, + 131, + 82, + 133, + 129, + 82, + 96, + 255, + 139, + 129, + 22, + 130, + 134, + 1, + 129, + 129, + 82, + 131, + 134, + 1, + 133, + 129, + 82, + 141, + 132, + 22, + 96, + 96, + 134, + 1, + 129, + 129, + 82, + 141, + 139, + 82, + 96, + 7, + 138, + 82, + 153, + 136, + 144, + 32, + 149, + 81, + 134, + 84, + 147, + 81, + 144, + 141, + 22, + 96, + 1, + 96, + 1, + 96, + 168, + 27, + 3, + 25, + 148, + 133, + 22, + 23, + 96, + 1, + 96, + 160, + 27, + 145, + 135, + 22, + 130, + 2, + 23, + 135, + 85, + 145, + 81, + 96, + 1, + 150, + 144, + 150, + 1, + 128, + 84, + 154, + 81, + 150, + 144, + 156, + 22, + 153, + 144, + 146, + 22, + 152, + 144, + 152, + 23, + 147, + 144, + 146, + 22, + 144, + 150, + 2, + 145, + 144, + 145, + 23, + 144, + 150, + 85, + 129, + 81, + 147, + 132, + 82, + 145, + 131, + 1, + 148, + 144, + 148, + 82, + 148, + 151, + 80, + 144, + 146, + 145, + 127, + 192, + 197, + 223, + 152, + 164, + 202, + 135, + 163, + 33, + 163, + 59, + 241, + 39, + 124, + 243, + 45, + 49, + 169, + 123, + 108, + 225, + 75, + 151, + 71, + 56, + 33, + 73, + 185, + 226, + 99, + 30, + 163, + 145, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 164, + 80, + 80, + 146, + 145, + 80, + 80, + 86, + 91, + 51, + 96, + 0, + 144, + 129, + 82, + 96, + 10, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 135, + 22, + 132, + 82, + 144, + 145, + 82, + 129, + 32, + 128, + 84, + 144, + 145, + 96, + 1, + 96, + 128, + 27, + 144, + 145, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 144, + 3, + 97, + 99, + 153, + 87, + 96, + 64, + 81, + 99, + 47, + 155, + 2, + 219, + 96, + 225, + 27, + 129, + 82, + 51, + 96, + 4, + 130, + 1, + 82, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 133, + 22, + 96, + 36, + 130, + 1, + 82, + 96, + 68, + 1, + 97, + 25, + 118, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 132, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 8, + 96, + 32, + 129, + 144, + 82, + 96, + 64, + 144, + 145, + 32, + 96, + 4, + 129, + 1, + 84, + 96, + 5, + 130, + 1, + 84, + 96, + 3, + 131, + 1, + 84, + 96, + 7, + 132, + 1, + 84, + 148, + 132, + 1, + 84, + 147, + 148, + 146, + 147, + 145, + 146, + 144, + 145, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 145, + 130, + 22, + 145, + 22, + 97, + 99, + 237, + 135, + 134, + 134, + 134, + 97, + 117, + 53, + 86, + 91, + 80, + 96, + 0, + 145, + 80, + 80, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 138, + 129, + 22, + 20, + 97, + 100, + 9, + 87, + 137, + 97, + 100, + 24, + 86, + 91, + 96, + 4, + 136, + 1, + 84, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 91, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 144, + 80, + 96, + 0, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 128, + 22, + 138, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 20, + 97, + 100, + 68, + 87, + 137, + 97, + 100, + 90, + 86, + 91, + 96, + 4, + 137, + 1, + 84, + 96, + 1, + 96, + 128, + 27, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 91, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 144, + 80, + 97, + 100, + 110, + 130, + 97, + 74, + 55, + 86, + 91, + 96, + 4, + 138, + 1, + 128, + 84, + 96, + 0, + 144, + 97, + 100, + 139, + 144, + 132, + 144, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 97, + 140, + 6, + 86, + 91, + 146, + 80, + 97, + 1, + 0, + 10, + 129, + 84, + 129, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 2, + 25, + 22, + 144, + 131, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 2, + 23, + 144, + 85, + 80, + 97, + 100, + 184, + 129, + 97, + 74, + 55, + 86, + 91, + 96, + 4, + 138, + 1, + 128, + 84, + 96, + 16, + 144, + 97, + 100, + 220, + 144, + 132, + 144, + 96, + 1, + 96, + 128, + 27, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 97, + 140, + 6, + 86, + 91, + 146, + 80, + 97, + 1, + 0, + 10, + 129, + 84, + 129, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 2, + 25, + 22, + 144, + 131, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 2, + 23, + 144, + 85, + 80, + 96, + 0, + 130, + 17, + 21, + 97, + 101, + 20, + 87, + 97, + 101, + 20, + 51, + 133, + 132, + 97, + 115, + 21, + 86, + 91, + 128, + 21, + 97, + 101, + 37, + 87, + 97, + 101, + 37, + 51, + 132, + 131, + 97, + 115, + 21, + 86, + 91, + 96, + 64, + 128, + 81, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 142, + 22, + 129, + 82, + 96, + 32, + 129, + 1, + 132, + 144, + 82, + 144, + 129, + 1, + 130, + 144, + 82, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 128, + 133, + 22, + 145, + 144, + 134, + 22, + 144, + 51, + 144, + 127, + 61, + 77, + 68, + 65, + 44, + 245, + 221, + 218, + 92, + 53, + 136, + 92, + 203, + 130, + 210, + 76, + 94, + 57, + 133, + 24, + 235, + 124, + 251, + 17, + 109, + 70, + 235, + 126, + 75, + 190, + 14, + 123, + 144, + 96, + 96, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 164, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 97, + 101, + 156, + 134, + 133, + 97, + 76, + 48, + 86, + 91, + 80, + 80, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 146, + 131, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 32, + 148, + 133, + 82, + 96, + 64, + 128, + 130, + 32, + 147, + 144, + 148, + 22, + 129, + 82, + 145, + 144, + 147, + 82, + 32, + 128, + 84, + 130, + 129, + 17, + 131, + 130, + 3, + 2, + 129, + 3, + 144, + 129, + 144, + 3, + 144, + 145, + 85, + 145, + 144, + 130, + 144, + 3, + 144, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 1, + 132, + 1, + 96, + 32, + 82, + 96, + 64, + 144, + 32, + 84, + 128, + 130, + 17, + 21, + 97, + 102, + 35, + 87, + 96, + 64, + 81, + 99, + 49, + 82, + 118, + 201, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 129, + 1, + 130, + 144, + 82, + 96, + 36, + 129, + 1, + 131, + 144, + 82, + 96, + 68, + 1, + 97, + 25, + 118, + 86, + 91, + 97, + 102, + 45, + 132, + 132, + 97, + 76, + 48, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 131, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 1, + 133, + 1, + 96, + 32, + 82, + 96, + 64, + 129, + 32, + 128, + 84, + 132, + 146, + 144, + 97, + 102, + 87, + 144, + 132, + 144, + 97, + 136, + 82, + 86, + 91, + 144, + 145, + 85, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 97, + 102, + 110, + 131, + 97, + 118, + 193, + 86, + 91, + 145, + 80, + 145, + 80, + 129, + 97, + 38, + 4, + 87, + 128, + 81, + 129, + 96, + 32, + 1, + 253, + 91, + 96, + 0, + 97, + 24, + 76, + 130, + 96, + 96, + 1, + 81, + 99, + 255, + 255, + 255, + 255, + 22, + 131, + 97, + 47, + 187, + 144, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 96, + 0, + 128, + 97, + 102, + 171, + 134, + 134, + 97, + 104, + 223, + 86, + 91, + 144, + 80, + 128, + 21, + 97, + 103, + 164, + 87, + 96, + 0, + 97, + 102, + 190, + 130, + 97, + 120, + 224, + 86, + 91, + 144, + 80, + 99, + 1, + 225, + 133, + 89, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 133, + 129, + 2, + 145, + 144, + 145, + 4, + 144, + 97, + 39, + 16, + 144, + 135, + 2, + 4, + 96, + 0, + 103, + 27, + 193, + 109, + 103, + 78, + 200, + 0, + 0, + 97, + 102, + 242, + 131, + 128, + 97, + 137, + 71, + 86, + 91, + 97, + 102, + 252, + 145, + 144, + 97, + 139, + 98, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 103, + 10, + 132, + 131, + 97, + 137, + 71, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 103, + 32, + 132, + 99, + 59, + 154, + 202, + 0, + 97, + 75, + 137, + 136, + 97, + 105, + 241, + 86, + 91, + 144, + 80, + 96, + 0, + 129, + 131, + 97, + 103, + 56, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 138, + 97, + 138, + 153, + 86, + 91, + 97, + 103, + 66, + 145, + 144, + 97, + 140, + 46, + 86, + 91, + 97, + 103, + 76, + 145, + 144, + 97, + 139, + 52, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 103, + 89, + 130, + 97, + 122, + 187, + 86, + 91, + 144, + 80, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 129, + 19, + 21, + 97, + 103, + 135, + 87, + 96, + 64, + 81, + 99, + 177, + 21, + 88, + 223, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 129, + 1, + 130, + 144, + 82, + 96, + 36, + 1, + 97, + 25, + 118, + 86, + 91, + 97, + 103, + 153, + 129, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 97, + 136, + 165, + 86, + 91, + 153, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 91, + 80, + 148, + 147, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 134, + 17, + 21, + 97, + 103, + 216, + 87, + 96, + 64, + 81, + 99, + 170, + 243, + 149, + 111, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 134, + 3, + 97, + 103, + 238, + 87, + 80, + 128, + 97, + 29, + 139, + 86, + 91, + 133, + 96, + 0, + 3, + 97, + 104, + 7, + 87, + 97, + 104, + 0, + 130, + 134, + 97, + 140, + 46, + 86, + 91, + 144, + 80, + 97, + 29, + 139, + 86, + 91, + 130, + 21, + 97, + 104, + 162, + 87, + 96, + 0, + 97, + 104, + 29, + 132, + 99, + 1, + 225, + 133, + 88, + 97, + 104, + 223, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 104, + 42, + 130, + 97, + 105, + 241, + 86, + 91, + 144, + 80, + 97, + 104, + 58, + 99, + 59, + 154, + 202, + 0, + 130, + 97, + 137, + 71, + 86, + 91, + 144, + 80, + 97, + 104, + 70, + 134, + 130, + 97, + 65, + 53, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 104, + 92, + 137, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 97, + 136, + 165, + 86, + 91, + 144, + 80, + 97, + 104, + 103, + 129, + 97, + 105, + 84, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 104, + 117, + 131, + 131, + 97, + 136, + 165, + 86, + 91, + 144, + 80, + 97, + 104, + 128, + 129, + 97, + 122, + 187, + 86, + 91, + 144, + 80, + 133, + 97, + 104, + 141, + 138, + 131, + 97, + 123, + 36, + 86, + 91, + 97, + 104, + 151, + 145, + 144, + 97, + 140, + 46, + 86, + 91, + 148, + 80, + 80, + 80, + 80, + 80, + 97, + 29, + 139, + 86, + 91, + 129, + 97, + 104, + 190, + 134, + 97, + 104, + 185, + 137, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 97, + 136, + 165, + 86, + 91, + 97, + 123, + 36, + 86, + 91, + 97, + 48, + 142, + 145, + 144, + 97, + 140, + 46, + 86, + 91, + 96, + 0, + 128, + 97, + 104, + 212, + 131, + 97, + 74, + 145, + 86, + 91, + 147, + 144, + 147, + 2, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 97, + 17, + 147, + 131, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 132, + 97, + 79, + 245, + 86, + 91, + 96, + 64, + 128, + 81, + 96, + 4, + 129, + 82, + 96, + 36, + 129, + 1, + 144, + 145, + 82, + 96, + 32, + 129, + 1, + 128, + 81, + 96, + 1, + 96, + 1, + 96, + 224, + 27, + 3, + 22, + 99, + 11, + 190, + 187, + 51, + 96, + 227, + 27, + 23, + 144, + 82, + 98, + 1, + 81, + 128, + 130, + 2, + 144, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 130, + 17, + 21, + 97, + 105, + 59, + 87, + 128, + 81, + 129, + 96, + 32, + 1, + 253, + 91, + 80, + 145, + 144, + 80, + 86, + 91, + 96, + 0, + 100, + 1, + 0, + 0, + 0, + 0, + 130, + 16, + 97, + 74, + 73, + 87, + 96, + 0, + 128, + 253, + 91, + 96, + 0, + 103, + 6, + 240, + 91, + 89, + 211, + 178, + 0, + 0, + 130, + 3, + 97, + 105, + 109, + 87, + 80, + 96, + 0, + 145, + 144, + 80, + 86, + 91, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 130, + 18, + 97, + 105, + 149, + 87, + 96, + 64, + 81, + 99, + 7, + 160, + 33, + 39, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 129, + 96, + 0, + 3, + 97, + 105, + 182, + 87, + 96, + 64, + 81, + 99, + 34, + 237, + 89, + 133, + 96, + 226, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 0, + 97, + 105, + 195, + 131, + 96, + 2, + 97, + 138, + 153, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 105, + 208, + 130, + 97, + 123, + 57, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 105, + 230, + 103, + 19, + 160, + 75, + 189, + 253, + 201, + 190, + 136, + 131, + 97, + 123, + 36, + 86, + 91, + 144, + 80, + 97, + 29, + 139, + 129, + 97, + 139, + 140, + 86, + 91, + 96, + 181, + 129, + 96, + 1, + 96, + 136, + 27, + 129, + 16, + 97, + 106, + 10, + 87, + 96, + 64, + 145, + 144, + 145, + 27, + 144, + 96, + 128, + 28, + 91, + 105, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 129, + 16, + 97, + 106, + 38, + 87, + 96, + 32, + 145, + 144, + 145, + 27, + 144, + 96, + 64, + 28, + 91, + 101, + 1, + 0, + 0, + 0, + 0, + 0, + 129, + 16, + 97, + 106, + 62, + 87, + 96, + 16, + 145, + 144, + 145, + 27, + 144, + 96, + 32, + 28, + 91, + 99, + 1, + 0, + 0, + 0, + 129, + 16, + 97, + 106, + 84, + 87, + 96, + 8, + 145, + 144, + 145, + 27, + 144, + 96, + 16, + 28, + 91, + 98, + 1, + 0, + 0, + 1, + 2, + 96, + 18, + 28, + 128, + 130, + 4, + 1, + 96, + 1, + 144, + 129, + 28, + 128, + 131, + 4, + 1, + 129, + 28, + 128, + 131, + 4, + 1, + 129, + 28, + 128, + 131, + 4, + 1, + 129, + 28, + 128, + 131, + 4, + 1, + 129, + 28, + 128, + 131, + 4, + 1, + 129, + 28, + 128, + 131, + 4, + 1, + 144, + 28, + 144, + 129, + 144, + 4, + 129, + 17, + 144, + 3, + 144, + 86, + 91, + 96, + 0, + 104, + 2, + 72, + 206, + 54, + 167, + 12, + 178, + 107, + 62, + 25, + 130, + 19, + 97, + 106, + 176, + 87, + 80, + 96, + 0, + 145, + 144, + 80, + 86, + 91, + 104, + 7, + 85, + 191, + 121, + 139, + 74, + 27, + 241, + 229, + 130, + 18, + 97, + 106, + 247, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 12, + 96, + 36, + 130, + 1, + 82, + 107, + 69, + 88, + 80, + 95, + 79, + 86, + 69, + 82, + 70, + 76, + 79, + 87, + 96, + 160, + 27, + 96, + 68, + 130, + 1, + 82, + 96, + 100, + 1, + 97, + 25, + 118, + 86, + 91, + 101, + 3, + 120, + 45, + 172, + 233, + 217, + 96, + 78, + 131, + 144, + 27, + 5, + 145, + 80, + 96, + 0, + 96, + 96, + 107, + 177, + 114, + 23, + 247, + 209, + 207, + 121, + 171, + 201, + 227, + 179, + 152, + 132, + 130, + 27, + 5, + 96, + 1, + 96, + 95, + 27, + 1, + 144, + 29, + 107, + 177, + 114, + 23, + 247, + 209, + 207, + 121, + 171, + 201, + 227, + 179, + 152, + 129, + 2, + 144, + 147, + 3, + 108, + 36, + 12, + 51, + 14, + 159, + 178, + 217, + 203, + 175, + 15, + 213, + 170, + 251, + 25, + 129, + 1, + 129, + 2, + 96, + 96, + 144, + 129, + 29, + 109, + 2, + 119, + 89, + 73, + 145, + 207, + 200, + 95, + 110, + 36, + 97, + 131, + 124, + 217, + 1, + 130, + 2, + 129, + 29, + 109, + 26, + 82, + 18, + 85, + 227, + 79, + 106, + 80, + 97, + 178, + 94, + 241, + 201, + 195, + 25, + 1, + 130, + 2, + 129, + 29, + 109, + 177, + 187, + 178, + 1, + 244, + 67, + 207, + 150, + 47, + 26, + 29, + 61, + 180, + 165, + 1, + 130, + 2, + 129, + 29, + 110, + 2, + 199, + 35, + 136, + 217, + 247, + 79, + 81, + 169, + 51, + 31, + 237, + 105, + 63, + 20, + 25, + 1, + 130, + 2, + 129, + 29, + 110, + 5, + 24, + 11, + 177, + 71, + 153, + 171, + 71, + 168, + 168, + 203, + 42, + 82, + 125, + 87, + 1, + 109, + 2, + 209, + 103, + 32, + 87, + 123, + 209, + 155, + 246, + 20, + 23, + 111, + 233, + 234, + 108, + 16, + 254, + 104, + 231, + 253, + 55, + 208, + 0, + 123, + 113, + 63, + 118, + 80, + 132, + 1, + 132, + 2, + 131, + 29, + 144, + 129, + 1, + 144, + 132, + 1, + 109, + 1, + 211, + 150, + 126, + 211, + 15, + 196, + 248, + 156, + 2, + 186, + 181, + 112, + 129, + 25, + 1, + 2, + 144, + 145, + 29, + 110, + 5, + 135, + 245, + 3, + 187, + 110, + 162, + 157, + 37, + 252, + 183, + 64, + 25, + 100, + 80, + 1, + 144, + 145, + 2, + 109, + 54, + 13, + 122, + 238, + 160, + 147, + 38, + 62, + 204, + 110, + 14, + 203, + 41, + 23, + 96, + 98, + 27, + 1, + 5, + 116, + 2, + 157, + 157, + 195, + 133, + 99, + 195, + 46, + 92, + 47, + 109, + 193, + 146, + 238, + 112, + 239, + 101, + 249, + 151, + 138, + 243, + 2, + 96, + 195, + 147, + 144, + 147, + 3, + 146, + 144, + 146, + 28, + 146, + 145, + 80, + 80, + 86, + 91, + 96, + 0, + 96, + 64, + 81, + 99, + 35, + 184, + 114, + 221, + 96, + 224, + 27, + 96, + 0, + 82, + 132, + 96, + 4, + 82, + 131, + 96, + 36, + 82, + 130, + 96, + 68, + 82, + 96, + 32, + 96, + 0, + 96, + 100, + 96, + 0, + 128, + 138, + 90, + 241, + 61, + 21, + 96, + 31, + 61, + 17, + 96, + 1, + 96, + 0, + 81, + 20, + 22, + 23, + 22, + 145, + 80, + 96, + 0, + 96, + 96, + 82, + 128, + 96, + 64, + 82, + 80, + 128, + 97, + 63, + 108, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 20, + 96, + 36, + 130, + 1, + 82, + 115, + 21, + 20, + 144, + 83, + 148, + 209, + 145, + 84, + 151, + 209, + 148, + 147, + 211, + 87, + 209, + 144, + 82, + 83, + 17, + 81, + 96, + 98, + 27, + 96, + 68, + 130, + 1, + 82, + 96, + 100, + 1, + 97, + 25, + 118, + 86, + 91, + 97, + 108, + 207, + 132, + 131, + 97, + 76, + 48, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 128, + 132, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 32, + 134, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 147, + 134, + 22, + 131, + 82, + 146, + 144, + 82, + 144, + 129, + 32, + 128, + 84, + 131, + 146, + 144, + 97, + 102, + 87, + 144, + 132, + 144, + 97, + 137, + 47, + 86, + 91, + 96, + 0, + 130, + 21, + 97, + 110, + 21, + 87, + 96, + 0, + 97, + 109, + 28, + 132, + 99, + 1, + 225, + 133, + 88, + 97, + 104, + 223, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 109, + 41, + 130, + 97, + 105, + 241, + 86, + 91, + 144, + 80, + 97, + 109, + 57, + 99, + 59, + 154, + 202, + 0, + 130, + 97, + 137, + 71, + 86, + 91, + 144, + 80, + 97, + 109, + 69, + 134, + 130, + 97, + 65, + 53, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 109, + 92, + 97, + 109, + 86, + 134, + 139, + 97, + 140, + 46, + 86, + 91, + 137, + 97, + 125, + 178, + 86, + 91, + 144, + 80, + 96, + 0, + 129, + 18, + 21, + 97, + 109, + 128, + 87, + 96, + 64, + 81, + 99, + 170, + 243, + 149, + 111, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 129, + 19, + 21, + 97, + 109, + 169, + 87, + 96, + 64, + 81, + 99, + 170, + 243, + 149, + 111, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 129, + 3, + 97, + 109, + 196, + 87, + 96, + 0, + 147, + 80, + 80, + 80, + 80, + 97, + 29, + 139, + 86, + 91, + 128, + 96, + 0, + 3, + 97, + 109, + 223, + 87, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 147, + 80, + 80, + 80, + 80, + 97, + 29, + 139, + 86, + 91, + 97, + 109, + 232, + 129, + 97, + 105, + 84, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 109, + 246, + 131, + 131, + 97, + 140, + 46, + 86, + 91, + 144, + 80, + 97, + 110, + 1, + 129, + 97, + 122, + 187, + 86, + 91, + 144, + 80, + 97, + 104, + 151, + 129, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 97, + 136, + 165, + 86, + 91, + 96, + 0, + 97, + 110, + 33, + 131, + 136, + 97, + 140, + 46, + 86, + 91, + 144, + 80, + 133, + 97, + 110, + 46, + 130, + 130, + 97, + 125, + 178, + 86, + 91, + 97, + 74, + 21, + 144, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 97, + 136, + 165, + 86, + 91, + 96, + 0, + 96, + 1, + 96, + 1, + 96, + 127, + 27, + 3, + 130, + 17, + 21, + 97, + 74, + 73, + 87, + 96, + 0, + 128, + 253, + 91, + 96, + 32, + 128, + 130, + 1, + 128, + 81, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 144, + 129, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 8, + 132, + 82, + 96, + 64, + 128, + 130, + 32, + 134, + 81, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 131, + 82, + 96, + 10, + 134, + 82, + 129, + 131, + 32, + 148, + 81, + 144, + 147, + 22, + 130, + 82, + 146, + 144, + 147, + 82, + 144, + 130, + 32, + 96, + 4, + 130, + 1, + 84, + 96, + 5, + 131, + 1, + 84, + 96, + 3, + 132, + 1, + 84, + 133, + 148, + 133, + 148, + 144, + 147, + 144, + 146, + 97, + 110, + 188, + 146, + 132, + 146, + 145, + 144, + 97, + 117, + 53, + 86, + 91, + 96, + 32, + 137, + 1, + 81, + 137, + 81, + 96, + 224, + 139, + 1, + 81, + 148, + 153, + 80, + 146, + 151, + 80, + 144, + 149, + 80, + 96, + 0, + 146, + 97, + 110, + 225, + 146, + 144, + 96, + 15, + 11, + 97, + 16, + 169, + 86, + 91, + 144, + 80, + 128, + 97, + 111, + 19, + 87, + 96, + 6, + 131, + 1, + 84, + 96, + 64, + 81, + 99, + 38, + 136, + 198, + 203, + 96, + 226, + 27, + 129, + 82, + 96, + 1, + 96, + 128, + 27, + 144, + 145, + 4, + 97, + 255, + 255, + 22, + 96, + 4, + 130, + 1, + 82, + 96, + 36, + 1, + 97, + 25, + 118, + 86, + 91, + 96, + 64, + 135, + 1, + 81, + 96, + 224, + 136, + 1, + 81, + 97, + 111, + 40, + 145, + 132, + 145, + 97, + 125, + 199, + 86, + 91, + 96, + 224, + 135, + 1, + 81, + 96, + 32, + 128, + 137, + 1, + 81, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 8, + 144, + 145, + 82, + 96, + 64, + 144, + 32, + 97, + 111, + 83, + 145, + 97, + 126, + 29, + 86, + 91, + 96, + 160, + 135, + 1, + 81, + 96, + 192, + 136, + 1, + 81, + 96, + 224, + 137, + 1, + 81, + 96, + 0, + 96, + 15, + 145, + 144, + 145, + 11, + 18, + 21, + 97, + 111, + 145, + 87, + 97, + 111, + 126, + 130, + 138, + 96, + 96, + 1, + 81, + 97, + 70, + 43, + 86, + 91, + 97, + 111, + 140, + 129, + 138, + 96, + 128, + 1, + 81, + 97, + 70, + 43, + 86, + 91, + 97, + 111, + 173, + 86, + 91, + 97, + 111, + 159, + 130, + 138, + 96, + 96, + 1, + 81, + 97, + 116, + 238, + 86, + 91, + 97, + 111, + 173, + 129, + 138, + 96, + 128, + 1, + 81, + 97, + 116, + 238, + 86, + 91, + 80, + 80, + 80, + 80, + 80, + 145, + 147, + 144, + 146, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 97, + 111, + 199, + 132, + 97, + 48, + 152, + 86, + 91, + 80, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 134, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 8, + 96, + 32, + 82, + 96, + 64, + 144, + 32, + 144, + 146, + 80, + 97, + 111, + 238, + 145, + 80, + 66, + 97, + 126, + 92, + 86, + 91, + 97, + 114, + 248, + 96, + 8, + 96, + 0, + 134, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 144, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 32, + 96, + 64, + 81, + 128, + 97, + 1, + 64, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 2, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 3, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 4, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 5, + 130, + 1, + 84, + 129, + 82, + 96, + 32, + 1, + 96, + 6, + 130, + 1, + 96, + 64, + 81, + 128, + 97, + 1, + 0, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 16, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 18, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 22, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 24, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 97, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 26, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 99, + 255, + 255, + 255, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 30, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 21, + 21, + 21, + 21, + 129, + 82, + 80, + 80, + 129, + 82, + 96, + 32, + 1, + 96, + 7, + 130, + 1, + 96, + 64, + 81, + 128, + 96, + 128, + 1, + 96, + 64, + 82, + 144, + 129, + 96, + 0, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 0, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 1, + 130, + 1, + 96, + 20, + 144, + 84, + 144, + 97, + 1, + 0, + 10, + 144, + 4, + 96, + 255, + 22, + 96, + 255, + 22, + 96, + 255, + 22, + 129, + 82, + 80, + 80, + 129, + 82, + 80, + 80, + 97, + 102, + 127, + 86, + 91, + 96, + 0, + 3, + 97, + 115, + 10, + 87, + 96, + 0, + 148, + 144, + 147, + 80, + 145, + 80, + 80, + 86, + 91, + 96, + 1, + 148, + 144, + 147, + 80, + 145, + 80, + 80, + 86, + 91, + 97, + 115, + 34, + 96, + 0, + 132, + 132, + 132, + 97, + 108, + 197, + 86, + 91, + 129, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 131, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 127, + 73, + 225, + 68, + 60, + 178, + 94, + 23, + 203, + 235, + 197, + 10, + 163, + 227, + 165, + 163, + 223, + 58, + 195, + 52, + 175, + 133, + 43, + 198, + 243, + 232, + 210, + 88, + 85, + 130, + 87, + 187, + 17, + 131, + 96, + 64, + 81, + 97, + 115, + 103, + 145, + 129, + 82, + 96, + 32, + 1, + 144, + 86, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 163, + 80, + 80, + 80, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 130, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 8, + 96, + 32, + 82, + 96, + 64, + 129, + 32, + 96, + 2, + 1, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 51, + 3, + 97, + 115, + 246, + 87, + 129, + 81, + 96, + 32, + 131, + 1, + 81, + 96, + 0, + 145, + 97, + 115, + 178, + 145, + 97, + 136, + 165, + 86, + 91, + 144, + 80, + 96, + 0, + 128, + 130, + 18, + 97, + 115, + 195, + 87, + 129, + 97, + 115, + 204, + 86, + 91, + 97, + 115, + 204, + 130, + 97, + 139, + 140, + 86, + 91, + 144, + 80, + 128, + 21, + 97, + 115, + 243, + 87, + 97, + 115, + 243, + 97, + 115, + 238, + 133, + 96, + 192, + 1, + 81, + 131, + 97, + 104, + 223, + 144, + 145, + 144, + 99, + 255, + 255, + 255, + 255, + 22, + 86, + 91, + 96, + 18, + 85, + 86, + 91, + 80, + 80, + 91, + 96, + 0, + 130, + 96, + 32, + 1, + 81, + 19, + 21, + 97, + 116, + 37, + 87, + 97, + 116, + 29, + 97, + 116, + 24, + 131, + 96, + 160, + 1, + 81, + 132, + 96, + 192, + 1, + 81, + 97, + 104, + 223, + 86, + 91, + 96, + 17, + 85, + 86, + 91, + 80, + 96, + 1, + 97, + 24, + 76, + 86, + 91, + 80, + 96, + 0, + 146, + 145, + 80, + 80, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 135, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 8, + 96, + 32, + 82, + 96, + 64, + 144, + 32, + 97, + 116, + 79, + 135, + 97, + 74, + 55, + 86, + 91, + 129, + 84, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 25, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 145, + 144, + 145, + 22, + 23, + 129, + 85, + 97, + 116, + 115, + 134, + 97, + 74, + 55, + 86, + 91, + 129, + 84, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 145, + 130, + 22, + 96, + 1, + 96, + 128, + 27, + 2, + 145, + 22, + 23, + 129, + 85, + 97, + 116, + 148, + 133, + 97, + 74, + 55, + 86, + 91, + 96, + 1, + 130, + 1, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 25, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 146, + 144, + 146, + 22, + 145, + 144, + 145, + 23, + 144, + 85, + 97, + 116, + 192, + 129, + 66, + 97, + 126, + 92, + 86, + 91, + 96, + 4, + 129, + 1, + 84, + 132, + 1, + 96, + 4, + 130, + 1, + 85, + 96, + 5, + 129, + 1, + 84, + 131, + 1, + 96, + 5, + 130, + 1, + 85, + 96, + 3, + 129, + 1, + 84, + 130, + 1, + 96, + 3, + 144, + 145, + 1, + 85, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 97, + 116, + 250, + 96, + 0, + 131, + 131, + 97, + 126, + 139, + 86, + 91, + 129, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 127, + 128, + 178, + 23, + 72, + 199, + 135, + 197, + 46, + 135, + 166, + 178, + 34, + 1, + 30, + 10, + 14, + 208, + 249, + 204, + 32, + 21, + 240, + 206, + 212, + 103, + 72, + 100, + 45, + 198, + 46, + 233, + 248, + 130, + 96, + 64, + 81, + 97, + 70, + 114, + 145, + 129, + 82, + 96, + 32, + 1, + 144, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 128, + 97, + 117, + 73, + 135, + 137, + 96, + 2, + 1, + 84, + 144, + 3, + 144, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 117, + 91, + 135, + 138, + 96, + 3, + 1, + 84, + 144, + 3, + 144, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 117, + 109, + 135, + 139, + 96, + 1, + 1, + 84, + 144, + 3, + 144, + 86, + 91, + 138, + 84, + 144, + 145, + 80, + 97, + 117, + 134, + 144, + 132, + 144, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 97, + 65, + 53, + 86, + 91, + 138, + 84, + 144, + 150, + 80, + 97, + 117, + 159, + 144, + 131, + 144, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 97, + 65, + 53, + 86, + 91, + 138, + 84, + 144, + 149, + 80, + 97, + 117, + 184, + 144, + 130, + 144, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 97, + 65, + 53, + 86, + 91, + 96, + 2, + 139, + 1, + 138, + 144, + 85, + 96, + 3, + 139, + 1, + 137, + 144, + 85, + 96, + 1, + 139, + 1, + 136, + 144, + 85, + 147, + 80, + 97, + 117, + 216, + 134, + 97, + 74, + 55, + 86, + 91, + 96, + 4, + 139, + 1, + 128, + 84, + 96, + 0, + 144, + 97, + 117, + 245, + 144, + 132, + 144, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 97, + 140, + 111, + 86, + 91, + 146, + 80, + 97, + 1, + 0, + 10, + 129, + 84, + 129, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 2, + 25, + 22, + 144, + 131, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 2, + 23, + 144, + 85, + 80, + 97, + 118, + 34, + 133, + 97, + 74, + 55, + 86, + 91, + 96, + 4, + 139, + 1, + 128, + 84, + 96, + 16, + 144, + 97, + 118, + 70, + 144, + 132, + 144, + 96, + 1, + 96, + 128, + 27, + 144, + 4, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 97, + 140, + 111, + 86, + 91, + 146, + 80, + 97, + 1, + 0, + 10, + 129, + 84, + 129, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 2, + 25, + 22, + 144, + 131, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 2, + 23, + 144, + 85, + 80, + 97, + 118, + 115, + 132, + 97, + 74, + 55, + 86, + 91, + 96, + 5, + 139, + 1, + 128, + 84, + 96, + 0, + 144, + 97, + 118, + 144, + 144, + 132, + 144, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 97, + 140, + 111, + 86, + 91, + 146, + 80, + 97, + 1, + 0, + 10, + 129, + 84, + 129, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 2, + 25, + 22, + 144, + 131, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 2, + 23, + 144, + 85, + 80, + 80, + 80, + 80, + 148, + 80, + 148, + 80, + 148, + 145, + 80, + 80, + 86, + 91, + 96, + 0, + 96, + 96, + 97, + 2, + 88, + 131, + 96, + 32, + 1, + 81, + 97, + 255, + 255, + 22, + 17, + 21, + 97, + 119, + 54, + 87, + 96, + 32, + 131, + 1, + 81, + 96, + 64, + 81, + 97, + 255, + 255, + 144, + 145, + 22, + 96, + 36, + 130, + 1, + 82, + 96, + 0, + 144, + 99, + 122, + 127, + 16, + 65, + 96, + 225, + 27, + 144, + 96, + 68, + 1, + 91, + 96, + 64, + 128, + 81, + 96, + 31, + 25, + 129, + 132, + 3, + 1, + 129, + 82, + 145, + 144, + 82, + 96, + 32, + 129, + 1, + 128, + 81, + 96, + 1, + 96, + 1, + 96, + 224, + 27, + 3, + 22, + 96, + 1, + 96, + 1, + 96, + 224, + 27, + 3, + 25, + 144, + 147, + 22, + 146, + 144, + 146, + 23, + 144, + 145, + 82, + 144, + 148, + 144, + 147, + 80, + 145, + 80, + 80, + 86, + 91, + 97, + 119, + 93, + 131, + 96, + 128, + 1, + 81, + 97, + 255, + 255, + 22, + 96, + 100, + 97, + 97, + 168, + 129, + 131, + 20, + 145, + 131, + 17, + 145, + 144, + 145, + 23, + 130, + 130, + 20, + 145, + 144, + 146, + 16, + 23, + 22, + 144, + 86, + 91, + 97, + 119, + 136, + 87, + 96, + 128, + 131, + 1, + 81, + 96, + 64, + 81, + 97, + 255, + 255, + 144, + 145, + 22, + 96, + 36, + 130, + 1, + 82, + 96, + 0, + 144, + 99, + 9, + 98, + 43, + 49, + 96, + 225, + 27, + 144, + 96, + 68, + 1, + 97, + 118, + 250, + 86, + 91, + 97, + 119, + 175, + 131, + 96, + 96, + 1, + 81, + 97, + 255, + 255, + 22, + 96, + 1, + 97, + 1, + 244, + 129, + 131, + 20, + 145, + 131, + 17, + 145, + 144, + 145, + 23, + 130, + 130, + 20, + 145, + 144, + 146, + 16, + 23, + 22, + 144, + 86, + 91, + 97, + 119, + 218, + 87, + 96, + 96, + 131, + 1, + 81, + 96, + 64, + 81, + 97, + 255, + 255, + 144, + 145, + 22, + 96, + 36, + 130, + 1, + 82, + 96, + 0, + 144, + 99, + 174, + 145, + 144, + 39, + 96, + 224, + 27, + 144, + 96, + 68, + 1, + 97, + 118, + 250, + 86, + 91, + 130, + 81, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 144, + 129, + 22, + 129, + 129, + 16, + 145, + 129, + 20, + 145, + 144, + 145, + 23, + 96, + 1, + 128, + 131, + 17, + 146, + 20, + 145, + 144, + 145, + 23, + 22, + 97, + 120, + 42, + 87, + 130, + 81, + 96, + 64, + 81, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 144, + 145, + 22, + 96, + 36, + 130, + 1, + 82, + 96, + 0, + 144, + 99, + 139, + 191, + 136, + 181, + 96, + 224, + 27, + 144, + 96, + 68, + 1, + 97, + 118, + 250, + 86, + 91, + 97, + 120, + 81, + 131, + 96, + 64, + 1, + 81, + 97, + 255, + 255, + 22, + 96, + 1, + 97, + 3, + 232, + 129, + 131, + 20, + 145, + 131, + 17, + 145, + 144, + 145, + 23, + 130, + 130, + 20, + 145, + 144, + 146, + 16, + 23, + 22, + 144, + 86, + 91, + 97, + 120, + 124, + 87, + 96, + 64, + 128, + 132, + 1, + 81, + 144, + 81, + 97, + 255, + 255, + 144, + 145, + 22, + 96, + 36, + 130, + 1, + 82, + 96, + 0, + 144, + 99, + 246, + 244, + 163, + 143, + 96, + 224, + 27, + 144, + 96, + 68, + 1, + 97, + 118, + 250, + 86, + 91, + 96, + 160, + 131, + 1, + 81, + 96, + 64, + 132, + 1, + 81, + 97, + 255, + 255, + 145, + 130, + 22, + 128, + 21, + 128, + 21, + 23, + 146, + 144, + 145, + 22, + 129, + 129, + 20, + 145, + 16, + 23, + 22, + 97, + 120, + 199, + 87, + 96, + 160, + 131, + 1, + 81, + 96, + 64, + 81, + 97, + 255, + 255, + 144, + 145, + 22, + 96, + 36, + 130, + 1, + 82, + 96, + 0, + 144, + 99, + 246, + 244, + 163, + 143, + 96, + 224, + 27, + 144, + 96, + 68, + 1, + 97, + 118, + 250, + 86, + 91, + 80, + 80, + 96, + 64, + 128, + 81, + 96, + 32, + 129, + 1, + 144, + 145, + 82, + 96, + 0, + 129, + 82, + 96, + 1, + 146, + 144, + 145, + 80, + 86, + 91, + 96, + 0, + 128, + 130, + 19, + 97, + 121, + 29, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 9, + 96, + 36, + 130, + 1, + 82, + 104, + 21, + 83, + 145, + 17, + 81, + 146, + 83, + 145, + 81, + 96, + 186, + 27, + 96, + 68, + 130, + 1, + 82, + 96, + 100, + 1, + 97, + 25, + 118, + 86, + 91, + 96, + 0, + 96, + 96, + 97, + 121, + 42, + 132, + 97, + 126, + 201, + 86, + 91, + 3, + 96, + 159, + 129, + 129, + 3, + 148, + 144, + 148, + 27, + 144, + 147, + 28, + 108, + 70, + 87, + 114, + 178, + 187, + 187, + 95, + 130, + 75, + 21, + 32, + 122, + 48, + 129, + 1, + 129, + 2, + 96, + 96, + 144, + 129, + 29, + 109, + 3, + 136, + 234, + 162, + 116, + 18, + 213, + 172, + 160, + 38, + 129, + 93, + 99, + 110, + 1, + 130, + 2, + 129, + 29, + 109, + 13, + 249, + 154, + 197, + 2, + 3, + 27, + 249, + 83, + 239, + 244, + 114, + 253, + 204, + 1, + 130, + 2, + 129, + 29, + 109, + 19, + 205, + 255, + 178, + 157, + 81, + 217, + 147, + 34, + 189, + 255, + 95, + 34, + 17, + 1, + 130, + 2, + 129, + 29, + 109, + 10, + 15, + 116, + 32, + 35, + 222, + 247, + 131, + 163, + 7, + 169, + 134, + 145, + 46, + 1, + 130, + 2, + 129, + 29, + 109, + 1, + 146, + 13, + 128, + 67, + 202, + 137, + 181, + 35, + 146, + 83, + 40, + 78, + 66, + 1, + 130, + 2, + 129, + 29, + 108, + 11, + 122, + 134, + 215, + 55, + 84, + 104, + 250, + 198, + 103, + 160, + 165, + 39, + 1, + 108, + 41, + 80, + 142, + 69, + 133, + 67, + 216, + 170, + 77, + 242, + 171, + 238, + 120, + 131, + 1, + 131, + 2, + 130, + 29, + 109, + 1, + 57, + 96, + 26, + 46, + 250, + 190, + 113, + 126, + 96, + 76, + 187, + 72, + 148, + 1, + 131, + 2, + 130, + 29, + 109, + 2, + 36, + 127, + 122, + 123, + 101, + 148, + 50, + 6, + 73, + 170, + 3, + 171, + 161, + 1, + 131, + 2, + 130, + 29, + 108, + 140, + 63, + 56, + 233, + 90, + 107, + 31, + 242, + 171, + 28, + 59, + 52, + 54, + 25, + 1, + 131, + 2, + 130, + 29, + 109, + 2, + 56, + 71, + 115, + 189, + 241, + 172, + 86, + 118, + 250, + 204, + 237, + 96, + 144, + 25, + 1, + 131, + 2, + 144, + 145, + 29, + 108, + 185, + 160, + 37, + 216, + 20, + 178, + 156, + 33, + 43, + 139, + 26, + 7, + 205, + 25, + 1, + 144, + 145, + 2, + 120, + 10, + 9, + 80, + 112, + 132, + 204, + 105, + 155, + 176, + 231, + 30, + 168, + 105, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 25, + 1, + 5, + 113, + 19, + 64, + 218, + 160, + 213, + 247, + 105, + 219, + 161, + 145, + 92, + 239, + 89, + 240, + 129, + 90, + 85, + 6, + 2, + 125, + 2, + 103, + 163, + 108, + 12, + 149, + 179, + 151, + 90, + 179, + 238, + 91, + 32, + 58, + 118, + 20, + 163, + 247, + 83, + 115, + 240, + 71, + 216, + 3, + 174, + 123, + 102, + 135, + 242, + 179, + 147, + 144, + 147, + 2, + 146, + 144, + 146, + 1, + 125, + 87, + 17, + 94, + 71, + 1, + 140, + 113, + 119, + 238, + 191, + 124, + 211, + 112, + 163, + 53, + 106, + 27, + 120, + 99, + 0, + 138, + 90, + 232, + 2, + 140, + 114, + 184, + 134, + 66, + 132, + 1, + 96, + 174, + 29, + 146, + 145, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 103, + 19, + 160, + 75, + 189, + 253, + 201, + 190, + 136, + 97, + 122, + 217, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 133, + 97, + 138, + 153, + 86, + 91, + 97, + 122, + 227, + 145, + 144, + 97, + 139, + 52, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 122, + 240, + 130, + 97, + 139, + 140, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 122, + 253, + 130, + 97, + 127, + 103, + 86, + 91, + 144, + 80, + 103, + 27, + 193, + 109, + 103, + 78, + 200, + 0, + 0, + 97, + 123, + 26, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 131, + 97, + 138, + 153, + 86, + 91, + 97, + 29, + 139, + 145, + 144, + 97, + 139, + 52, + 86, + 91, + 96, + 0, + 97, + 17, + 147, + 131, + 131, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 97, + 129, + 75, + 86, + 91, + 96, + 0, + 128, + 130, + 18, + 128, + 97, + 123, + 80, + 87, + 80, + 103, + 27, + 193, + 109, + 103, + 78, + 200, + 0, + 0, + 130, + 19, + 91, + 21, + 97, + 123, + 110, + 87, + 96, + 64, + 81, + 99, + 45, + 4, + 131, + 197, + 96, + 226, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 129, + 96, + 0, + 3, + 97, + 123, + 143, + 87, + 96, + 64, + 81, + 99, + 7, + 160, + 33, + 39, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 129, + 103, + 27, + 193, + 109, + 103, + 78, + 200, + 0, + 0, + 3, + 97, + 123, + 183, + 87, + 96, + 64, + 81, + 99, + 34, + 237, + 89, + 133, + 96, + 226, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 128, + 21, + 97, + 123, + 194, + 87, + 145, + 144, + 80, + 86, + 91, + 96, + 0, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 131, + 18, + 97, + 123, + 234, + 87, + 97, + 123, + 229, + 131, + 103, + 27, + 193, + 109, + 103, + 78, + 200, + 0, + 0, + 97, + 136, + 165, + 86, + 91, + 97, + 123, + 236, + 86, + 91, + 130, + 91, + 144, + 80, + 96, + 0, + 97, + 124, + 2, + 130, + 103, + 27, + 193, + 109, + 103, + 78, + 200, + 0, + 0, + 97, + 125, + 178, + 86, + 91, + 144, + 80, + 128, + 96, + 0, + 3, + 97, + 124, + 37, + 87, + 96, + 64, + 81, + 99, + 7, + 160, + 33, + 39, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 0, + 97, + 124, + 48, + 130, + 97, + 120, + 224, + 86, + 91, + 144, + 80, + 96, + 0, + 99, + 59, + 154, + 202, + 0, + 97, + 124, + 91, + 97, + 124, + 86, + 97, + 124, + 80, + 103, + 27, + 193, + 109, + 103, + 78, + 200, + 0, + 0, + 97, + 139, + 140, + 86, + 91, + 133, + 97, + 123, + 36, + 86, + 91, + 97, + 105, + 241, + 86, + 91, + 97, + 124, + 101, + 145, + 144, + 97, + 138, + 153, + 86, + 91, + 144, + 80, + 96, + 0, + 128, + 97, + 124, + 124, + 131, + 103, + 3, + 193, + 102, + 92, + 122, + 171, + 32, + 0, + 97, + 123, + 36, + 86, + 91, + 97, + 124, + 142, + 144, + 103, + 32, + 5, + 254, + 79, + 38, + 142, + 160, + 0, + 97, + 140, + 46, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 124, + 185, + 132, + 97, + 124, + 167, + 134, + 102, + 159, + 50, + 117, + 36, + 98, + 160, + 0, + 97, + 123, + 36, + 86, + 91, + 97, + 104, + 185, + 144, + 103, + 13, + 197, + 82, + 127, + 100, + 44, + 32, + 0, + 97, + 140, + 46, + 86, + 91, + 97, + 124, + 203, + 144, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 97, + 140, + 46, + 86, + 91, + 144, + 80, + 97, + 124, + 239, + 103, + 9, + 208, + 40, + 204, + 111, + 32, + 95, + 255, + 25, + 133, + 97, + 124, + 229, + 133, + 133, + 97, + 125, + 178, + 86, + 91, + 97, + 104, + 185, + 145, + 144, + 97, + 136, + 165, + 86, + 91, + 146, + 80, + 80, + 80, + 96, + 0, + 91, + 96, + 2, + 129, + 16, + 21, + 97, + 125, + 138, + 87, + 96, + 0, + 134, + 97, + 125, + 11, + 132, + 97, + 127, + 103, + 86, + 91, + 97, + 125, + 21, + 145, + 144, + 97, + 136, + 165, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 125, + 35, + 132, + 133, + 97, + 123, + 36, + 86, + 91, + 97, + 125, + 44, + 144, + 97, + 139, + 140, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 125, + 57, + 130, + 97, + 106, + 149, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 125, + 71, + 134, + 133, + 97, + 123, + 36, + 86, + 91, + 97, + 125, + 89, + 103, + 15, + 168, + 206, + 223, + 194, + 173, + 221, + 250, + 132, + 97, + 123, + 36, + 86, + 91, + 97, + 125, + 99, + 145, + 144, + 97, + 136, + 165, + 86, + 91, + 144, + 80, + 97, + 125, + 111, + 132, + 130, + 97, + 125, + 178, + 86, + 91, + 97, + 125, + 121, + 144, + 135, + 97, + 140, + 46, + 86, + 91, + 149, + 80, + 132, + 96, + 1, + 1, + 148, + 80, + 80, + 80, + 80, + 80, + 97, + 124, + 246, + 86, + 91, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 136, + 18, + 97, + 125, + 167, + 87, + 97, + 125, + 162, + 130, + 97, + 139, + 140, + 86, + 91, + 97, + 74, + 21, + 86, + 91, + 80, + 150, + 149, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 97, + 17, + 147, + 131, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 132, + 97, + 129, + 75, + 86, + 91, + 130, + 84, + 99, + 255, + 255, + 255, + 255, + 131, + 22, + 96, + 1, + 96, + 128, + 27, + 2, + 99, + 255, + 255, + 255, + 255, + 96, + 128, + 27, + 25, + 130, + 22, + 129, + 23, + 133, + 85, + 97, + 125, + 253, + 145, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 145, + 130, + 22, + 145, + 22, + 23, + 130, + 97, + 129, + 106, + 86, + 91, + 131, + 84, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 25, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 145, + 144, + 145, + 22, + 23, + 144, + 146, + 85, + 80, + 80, + 86, + 91, + 96, + 1, + 130, + 1, + 84, + 97, + 126, + 53, + 144, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 22, + 130, + 97, + 129, + 106, + 86, + 91, + 96, + 1, + 146, + 144, + 146, + 1, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 25, + 22, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 144, + 147, + 22, + 146, + 144, + 146, + 23, + 144, + 145, + 85, + 80, + 86, + 91, + 97, + 126, + 101, + 129, + 97, + 105, + 65, + 86, + 91, + 130, + 96, + 1, + 1, + 96, + 16, + 97, + 1, + 0, + 10, + 129, + 84, + 129, + 99, + 255, + 255, + 255, + 255, + 2, + 25, + 22, + 144, + 131, + 99, + 255, + 255, + 255, + 255, + 22, + 2, + 23, + 144, + 85, + 80, + 80, + 80, + 86, + 91, + 97, + 126, + 149, + 131, + 131, + 97, + 76, + 48, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 130, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 1, + 132, + 1, + 96, + 32, + 82, + 96, + 64, + 129, + 32, + 128, + 84, + 131, + 146, + 144, + 97, + 126, + 191, + 144, + 132, + 144, + 97, + 137, + 47, + 86, + 91, + 144, + 145, + 85, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 130, + 17, + 97, + 127, + 6, + 87, + 96, + 64, + 81, + 98, + 70, + 27, + 205, + 96, + 229, + 27, + 129, + 82, + 96, + 32, + 96, + 4, + 130, + 1, + 82, + 96, + 9, + 96, + 36, + 130, + 1, + 82, + 104, + 21, + 83, + 145, + 17, + 81, + 146, + 83, + 145, + 81, + 96, + 186, + 27, + 96, + 68, + 130, + 1, + 82, + 96, + 100, + 1, + 97, + 25, + 118, + 86, + 91, + 80, + 96, + 1, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 130, + 17, + 96, + 7, + 27, + 130, + 129, + 28, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 16, + 96, + 6, + 27, + 23, + 130, + 129, + 28, + 99, + 255, + 255, + 255, + 255, + 16, + 96, + 5, + 27, + 23, + 130, + 129, + 28, + 97, + 255, + 255, + 16, + 96, + 4, + 27, + 23, + 130, + 129, + 28, + 96, + 255, + 16, + 96, + 3, + 144, + 129, + 27, + 144, + 145, + 23, + 131, + 129, + 28, + 96, + 15, + 16, + 96, + 2, + 27, + 23, + 131, + 129, + 28, + 144, + 145, + 16, + 130, + 27, + 23, + 145, + 130, + 28, + 17, + 23, + 144, + 86, + 91, + 96, + 0, + 129, + 96, + 0, + 3, + 97, + 127, + 128, + 87, + 80, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 145, + 144, + 80, + 86, + 91, + 103, + 86, + 152, + 238, + 240, + 102, + 112, + 0, + 0, + 130, + 18, + 97, + 127, + 151, + 87, + 80, + 96, + 0, + 145, + 144, + 80, + 86, + 91, + 97, + 127, + 168, + 103, + 86, + 152, + 238, + 240, + 102, + 112, + 0, + 0, + 97, + 139, + 140, + 86, + 91, + 130, + 19, + 97, + 127, + 189, + 87, + 80, + 103, + 27, + 193, + 109, + 103, + 78, + 200, + 0, + 0, + 145, + 144, + 80, + 86, + 91, + 96, + 0, + 97, + 127, + 200, + 131, + 97, + 129, + 181, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 128, + 1, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 97, + 127, + 234, + 132, + 103, + 27, + 193, + 109, + 103, + 78, + 200, + 0, + 0, + 97, + 104, + 223, + 86, + 91, + 97, + 127, + 252, + 144, + 103, + 13, + 224, + 182, + 179, + 167, + 100, + 0, + 0, + 97, + 140, + 46, + 86, + 91, + 97, + 125, + 178, + 86, + 91, + 144, + 80, + 96, + 0, + 128, + 130, + 97, + 128, + 93, + 129, + 97, + 128, + 74, + 129, + 97, + 128, + 56, + 129, + 97, + 128, + 37, + 129, + 103, + 2, + 95, + 15, + 225, + 5, + 163, + 20, + 0, + 97, + 123, + 36, + 86, + 91, + 97, + 104, + 185, + 144, + 103, + 11, + 104, + 223, + 24, + 228, + 113, + 251, + 255, + 25, + 97, + 140, + 46, + 86, + 91, + 97, + 104, + 185, + 144, + 103, + 20, + 168, + 69, + 76, + 25, + 225, + 172, + 0, + 97, + 140, + 46, + 86, + 91, + 97, + 104, + 185, + 144, + 103, + 15, + 193, + 14, + 1, + 87, + 130, + 119, + 255, + 25, + 97, + 140, + 46, + 86, + 91, + 97, + 128, + 111, + 144, + 103, + 3, + 222, + 189, + 8, + 59, + 140, + 124, + 0, + 97, + 140, + 46, + 86, + 91, + 145, + 80, + 131, + 144, + 80, + 97, + 128, + 215, + 129, + 97, + 128, + 197, + 129, + 97, + 128, + 179, + 129, + 97, + 128, + 161, + 129, + 97, + 128, + 142, + 129, + 139, + 97, + 123, + 36, + 86, + 91, + 97, + 104, + 185, + 144, + 103, + 2, + 149, + 212, + 0, + 234, + 50, + 87, + 255, + 25, + 97, + 140, + 46, + 86, + 91, + 97, + 104, + 185, + 144, + 103, + 1, + 87, + 216, + 178, + 236, + 199, + 8, + 0, + 97, + 140, + 46, + 86, + 91, + 97, + 104, + 185, + 144, + 103, + 5, + 49, + 10, + 167, + 213, + 33, + 48, + 0, + 97, + 140, + 46, + 86, + 91, + 97, + 104, + 185, + 144, + 103, + 13, + 224, + 204, + 61, + 21, + 97, + 0, + 0, + 97, + 140, + 46, + 86, + 91, + 145, + 80, + 129, + 103, + 17, + 144, + 0, + 171, + 16, + 15, + 252, + 0, + 97, + 128, + 237, + 135, + 136, + 97, + 123, + 36, + 86, + 91, + 97, + 128, + 249, + 144, + 96, + 0, + 25, + 97, + 138, + 153, + 86, + 91, + 97, + 129, + 3, + 145, + 144, + 97, + 136, + 165, + 86, + 91, + 97, + 129, + 13, + 145, + 144, + 97, + 140, + 46, + 86, + 91, + 146, + 80, + 80, + 96, + 0, + 97, + 129, + 27, + 131, + 97, + 106, + 149, + 86, + 91, + 144, + 80, + 96, + 0, + 97, + 129, + 41, + 133, + 131, + 97, + 123, + 36, + 86, + 91, + 144, + 80, + 96, + 0, + 136, + 18, + 97, + 129, + 57, + 87, + 128, + 97, + 74, + 21, + 86, + 91, + 97, + 74, + 21, + 129, + 103, + 27, + 193, + 109, + 103, + 78, + 200, + 0, + 0, + 97, + 136, + 165, + 86, + 91, + 130, + 130, + 2, + 129, + 21, + 21, + 132, + 21, + 133, + 131, + 5, + 133, + 20, + 23, + 22, + 97, + 129, + 99, + 87, + 96, + 0, + 128, + 253, + 91, + 5, + 146, + 145, + 80, + 80, + 86, + 91, + 96, + 64, + 128, + 81, + 96, + 4, + 129, + 82, + 96, + 36, + 129, + 1, + 144, + 145, + 82, + 96, + 32, + 129, + 1, + 128, + 81, + 96, + 1, + 96, + 1, + 96, + 224, + 27, + 3, + 22, + 99, + 31, + 255, + 150, + 129, + 96, + 224, + 27, + 23, + 144, + 82, + 130, + 130, + 1, + 144, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 130, + 17, + 21, + 97, + 129, + 174, + 87, + 128, + 81, + 129, + 96, + 32, + 1, + 253, + 91, + 80, + 146, + 145, + 80, + 80, + 86, + 91, + 96, + 0, + 96, + 1, + 96, + 255, + 27, + 130, + 3, + 97, + 129, + 219, + 87, + 96, + 64, + 81, + 99, + 77, + 45, + 117, + 177, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 253, + 91, + 96, + 0, + 130, + 18, + 21, + 97, + 74, + 73, + 87, + 80, + 25, + 96, + 1, + 1, + 144, + 86, + 91, + 145, + 144, + 80, + 86, + 91, + 80, + 128, + 84, + 96, + 0, + 130, + 85, + 96, + 3, + 2, + 144, + 96, + 0, + 82, + 96, + 32, + 96, + 0, + 32, + 144, + 129, + 1, + 144, + 97, + 25, + 233, + 145, + 144, + 97, + 130, + 124, + 86, + 91, + 80, + 128, + 84, + 96, + 0, + 130, + 85, + 144, + 96, + 0, + 82, + 96, + 32, + 96, + 0, + 32, + 144, + 129, + 1, + 144, + 97, + 25, + 233, + 145, + 144, + 97, + 130, + 169, + 86, + 91, + 96, + 64, + 81, + 128, + 97, + 1, + 32, + 1, + 96, + 64, + 82, + 128, + 96, + 0, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 129, + 82, + 96, + 32, + 1, + 96, + 0, + 129, + 82, + 80, + 144, + 86, + 91, + 91, + 128, + 130, + 17, + 21, + 97, + 74, + 73, + 87, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 25, + 22, + 129, + 85, + 96, + 0, + 96, + 1, + 130, + 1, + 129, + 144, + 85, + 96, + 2, + 130, + 1, + 85, + 96, + 3, + 1, + 97, + 130, + 125, + 86, + 91, + 91, + 128, + 130, + 17, + 21, + 97, + 74, + 73, + 87, + 96, + 0, + 129, + 85, + 96, + 1, + 1, + 97, + 130, + 170, + 86, + 91, + 128, + 53, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 129, + 22, + 129, + 20, + 97, + 129, + 236, + 87, + 96, + 0, + 128, + 253, + 91, + 96, + 0, + 96, + 32, + 130, + 132, + 3, + 18, + 21, + 97, + 130, + 231, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 17, + 147, + 130, + 97, + 130, + 190, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 129, + 22, + 129, + 20, + 97, + 25, + 233, + 87, + 96, + 0, + 128, + 253, + 91, + 96, + 0, + 128, + 96, + 0, + 96, + 96, + 132, + 134, + 3, + 18, + 21, + 97, + 131, + 26, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 131, + 35, + 132, + 97, + 130, + 190, + 86, + 91, + 146, + 80, + 96, + 32, + 132, + 1, + 53, + 97, + 131, + 51, + 129, + 97, + 130, + 240, + 86, + 91, + 146, + 149, + 146, + 148, + 80, + 80, + 80, + 96, + 64, + 145, + 144, + 145, + 1, + 53, + 144, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 128, + 96, + 0, + 96, + 160, + 134, + 136, + 3, + 18, + 21, + 97, + 131, + 92, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 131, + 101, + 134, + 97, + 130, + 190, + 86, + 91, + 151, + 96, + 32, + 135, + 1, + 53, + 151, + 80, + 96, + 64, + 135, + 1, + 53, + 150, + 96, + 96, + 129, + 1, + 53, + 150, + 80, + 96, + 128, + 1, + 53, + 148, + 80, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 64, + 131, + 133, + 3, + 18, + 21, + 97, + 131, + 153, + 87, + 96, + 0, + 128, + 253, + 91, + 130, + 53, + 97, + 131, + 164, + 129, + 97, + 130, + 240, + 86, + 91, + 145, + 80, + 96, + 32, + 131, + 1, + 53, + 97, + 131, + 180, + 129, + 97, + 130, + 240, + 86, + 91, + 128, + 145, + 80, + 80, + 146, + 80, + 146, + 144, + 80, + 86, + 91, + 96, + 0, + 96, + 32, + 130, + 132, + 3, + 18, + 21, + 97, + 131, + 209, + 87, + 96, + 0, + 128, + 253, + 91, + 129, + 53, + 97, + 17, + 147, + 129, + 97, + 130, + 240, + 86, + 91, + 96, + 0, + 96, + 32, + 130, + 132, + 3, + 18, + 21, + 97, + 131, + 238, + 87, + 96, + 0, + 128, + 253, + 91, + 129, + 53, + 98, + 255, + 255, + 255, + 129, + 22, + 129, + 20, + 97, + 17, + 147, + 87, + 96, + 0, + 128, + 253, + 91, + 96, + 0, + 96, + 32, + 130, + 132, + 3, + 18, + 21, + 97, + 132, + 19, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 53, + 145, + 144, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 64, + 131, + 133, + 3, + 18, + 21, + 97, + 132, + 45, + 87, + 96, + 0, + 128, + 253, + 91, + 130, + 53, + 97, + 132, + 56, + 129, + 97, + 130, + 240, + 86, + 91, + 148, + 96, + 32, + 147, + 144, + 147, + 1, + 53, + 147, + 80, + 80, + 80, + 86, + 91, + 128, + 53, + 128, + 21, + 21, + 129, + 20, + 97, + 129, + 236, + 87, + 96, + 0, + 128, + 253, + 91, + 96, + 0, + 128, + 96, + 0, + 96, + 96, + 132, + 134, + 3, + 18, + 21, + 97, + 132, + 107, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 132, + 116, + 132, + 97, + 130, + 190, + 86, + 91, + 146, + 80, + 97, + 132, + 130, + 96, + 32, + 133, + 1, + 97, + 132, + 70, + 86, + 91, + 145, + 80, + 96, + 64, + 132, + 1, + 53, + 144, + 80, + 146, + 80, + 146, + 80, + 146, + 86, + 91, + 96, + 0, + 128, + 96, + 64, + 131, + 133, + 3, + 18, + 21, + 97, + 132, + 165, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 132, + 174, + 131, + 97, + 130, + 190, + 86, + 91, + 145, + 80, + 96, + 32, + 131, + 1, + 53, + 128, + 96, + 15, + 11, + 129, + 20, + 97, + 131, + 180, + 87, + 96, + 0, + 128, + 253, + 91, + 96, + 0, + 97, + 2, + 128, + 130, + 1, + 144, + 80, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 128, + 141, + 22, + 131, + 82, + 128, + 140, + 22, + 96, + 32, + 132, + 1, + 82, + 128, + 139, + 22, + 96, + 64, + 132, + 1, + 82, + 99, + 255, + 255, + 255, + 255, + 138, + 22, + 96, + 96, + 132, + 1, + 82, + 96, + 1, + 128, + 96, + 160, + 27, + 3, + 137, + 22, + 96, + 128, + 132, + 1, + 82, + 135, + 96, + 160, + 132, + 1, + 82, + 134, + 96, + 192, + 132, + 1, + 82, + 133, + 96, + 224, + 132, + 1, + 82, + 128, + 133, + 81, + 22, + 97, + 1, + 0, + 132, + 1, + 82, + 80, + 96, + 32, + 132, + 1, + 81, + 97, + 255, + 255, + 128, + 130, + 22, + 97, + 1, + 32, + 133, + 1, + 82, + 128, + 96, + 64, + 135, + 1, + 81, + 22, + 97, + 1, + 64, + 133, + 1, + 82, + 80, + 80, + 96, + 96, + 132, + 1, + 81, + 97, + 133, + 87, + 97, + 1, + 96, + 132, + 1, + 130, + 97, + 255, + 255, + 22, + 144, + 82, + 86, + 91, + 80, + 96, + 128, + 132, + 1, + 81, + 97, + 255, + 255, + 144, + 129, + 22, + 97, + 1, + 128, + 132, + 1, + 82, + 96, + 160, + 133, + 1, + 81, + 22, + 97, + 1, + 160, + 131, + 1, + 82, + 96, + 192, + 132, + 1, + 81, + 99, + 255, + 255, + 255, + 255, + 22, + 97, + 1, + 192, + 131, + 1, + 82, + 96, + 224, + 144, + 147, + 1, + 81, + 21, + 21, + 97, + 1, + 224, + 130, + 1, + 82, + 129, + 81, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 144, + 129, + 22, + 97, + 2, + 0, + 131, + 1, + 82, + 96, + 32, + 131, + 1, + 81, + 96, + 255, + 144, + 129, + 22, + 97, + 2, + 32, + 132, + 1, + 82, + 96, + 64, + 132, + 1, + 81, + 144, + 145, + 22, + 97, + 2, + 64, + 131, + 1, + 82, + 96, + 96, + 144, + 146, + 1, + 81, + 144, + 145, + 22, + 97, + 2, + 96, + 144, + 145, + 1, + 82, + 152, + 151, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 128, + 96, + 128, + 133, + 135, + 3, + 18, + 21, + 97, + 133, + 247, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 134, + 0, + 133, + 97, + 130, + 190, + 86, + 91, + 147, + 80, + 97, + 134, + 14, + 96, + 32, + 134, + 1, + 97, + 132, + 70, + 86, + 91, + 147, + 150, + 147, + 149, + 80, + 80, + 80, + 80, + 96, + 64, + 130, + 1, + 53, + 145, + 96, + 96, + 1, + 53, + 144, + 86, + 91, + 96, + 0, + 128, + 96, + 32, + 131, + 133, + 3, + 18, + 21, + 97, + 134, + 54, + 87, + 96, + 0, + 128, + 253, + 91, + 130, + 53, + 96, + 1, + 96, + 1, + 96, + 64, + 27, + 3, + 128, + 130, + 17, + 21, + 97, + 134, + 77, + 87, + 96, + 0, + 128, + 253, + 91, + 129, + 133, + 1, + 145, + 80, + 133, + 96, + 31, + 131, + 1, + 18, + 97, + 134, + 97, + 87, + 96, + 0, + 128, + 253, + 91, + 129, + 53, + 129, + 129, + 17, + 21, + 97, + 134, + 112, + 87, + 96, + 0, + 128, + 253, + 91, + 134, + 96, + 32, + 130, + 133, + 1, + 1, + 17, + 21, + 97, + 134, + 130, + 87, + 96, + 0, + 128, + 253, + 91, + 96, + 32, + 146, + 144, + 146, + 1, + 150, + 145, + 149, + 80, + 144, + 147, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 96, + 96, + 132, + 134, + 3, + 18, + 21, + 97, + 134, + 169, + 87, + 96, + 0, + 128, + 253, + 91, + 131, + 53, + 97, + 134, + 180, + 129, + 97, + 130, + 240, + 86, + 91, + 146, + 80, + 96, + 32, + 132, + 1, + 53, + 145, + 80, + 96, + 64, + 132, + 1, + 53, + 97, + 134, + 203, + 129, + 97, + 130, + 240, + 86, + 91, + 128, + 145, + 80, + 80, + 146, + 80, + 146, + 80, + 146, + 86, + 91, + 128, + 53, + 97, + 255, + 255, + 129, + 22, + 129, + 20, + 97, + 129, + 236, + 87, + 96, + 0, + 128, + 253, + 91, + 96, + 0, + 128, + 96, + 0, + 128, + 96, + 128, + 133, + 135, + 3, + 18, + 21, + 97, + 134, + 254, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 135, + 7, + 133, + 97, + 130, + 190, + 86, + 91, + 147, + 80, + 97, + 135, + 21, + 96, + 32, + 134, + 1, + 97, + 134, + 214, + 86, + 91, + 146, + 80, + 97, + 135, + 35, + 96, + 64, + 134, + 1, + 97, + 134, + 214, + 86, + 91, + 145, + 80, + 97, + 135, + 49, + 96, + 96, + 134, + 1, + 97, + 134, + 214, + 86, + 91, + 144, + 80, + 146, + 149, + 145, + 148, + 80, + 146, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 64, + 131, + 133, + 3, + 18, + 21, + 97, + 135, + 79, + 87, + 96, + 0, + 128, + 253, + 91, + 130, + 53, + 97, + 135, + 90, + 129, + 97, + 130, + 240, + 86, + 91, + 145, + 80, + 97, + 135, + 104, + 96, + 32, + 132, + 1, + 97, + 130, + 190, + 86, + 91, + 144, + 80, + 146, + 80, + 146, + 144, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 64, + 131, + 133, + 3, + 18, + 21, + 97, + 135, + 132, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 132, + 56, + 131, + 97, + 130, + 190, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 96, + 96, + 132, + 134, + 3, + 18, + 21, + 97, + 135, + 162, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 135, + 171, + 132, + 97, + 130, + 190, + 86, + 91, + 149, + 96, + 32, + 133, + 1, + 53, + 149, + 80, + 96, + 64, + 144, + 148, + 1, + 53, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 91, + 131, + 129, + 16, + 21, + 97, + 135, + 219, + 87, + 129, + 129, + 1, + 81, + 131, + 130, + 1, + 82, + 96, + 32, + 1, + 97, + 135, + 195, + 86, + 91, + 131, + 129, + 17, + 21, + 97, + 40, + 3, + 87, + 80, + 80, + 96, + 0, + 145, + 1, + 82, + 86, + 91, + 96, + 32, + 129, + 82, + 96, + 0, + 130, + 81, + 128, + 96, + 32, + 132, + 1, + 82, + 97, + 136, + 11, + 129, + 96, + 64, + 133, + 1, + 96, + 32, + 135, + 1, + 97, + 135, + 192, + 86, + 91, + 96, + 31, + 1, + 96, + 31, + 25, + 22, + 145, + 144, + 145, + 1, + 96, + 64, + 1, + 146, + 145, + 80, + 80, + 86, + 91, + 96, + 0, + 96, + 32, + 130, + 132, + 3, + 18, + 21, + 97, + 136, + 49, + 87, + 96, + 0, + 128, + 253, + 91, + 129, + 81, + 97, + 17, + 147, + 129, + 97, + 130, + 240, + 86, + 91, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 17, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 96, + 0, + 130, + 130, + 16, + 21, + 97, + 136, + 100, + 87, + 97, + 136, + 100, + 97, + 136, + 60, + 86, + 91, + 80, + 3, + 144, + 86, + 91, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 50, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 96, + 0, + 129, + 96, + 15, + 11, + 96, + 1, + 96, + 1, + 96, + 127, + 27, + 3, + 25, + 129, + 3, + 97, + 136, + 156, + 87, + 97, + 136, + 156, + 97, + 136, + 60, + 86, + 91, + 96, + 0, + 3, + 146, + 145, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 131, + 18, + 128, + 21, + 96, + 1, + 96, + 255, + 27, + 133, + 1, + 132, + 18, + 22, + 21, + 97, + 136, + 195, + 87, + 97, + 136, + 195, + 97, + 136, + 60, + 86, + 91, + 96, + 1, + 96, + 1, + 96, + 255, + 27, + 3, + 132, + 1, + 131, + 19, + 129, + 22, + 21, + 97, + 136, + 222, + 87, + 97, + 136, + 222, + 97, + 136, + 60, + 86, + 91, + 80, + 80, + 3, + 144, + 86, + 91, + 96, + 0, + 130, + 81, + 97, + 136, + 246, + 129, + 132, + 96, + 32, + 135, + 1, + 97, + 135, + 192, + 86, + 91, + 145, + 144, + 145, + 1, + 146, + 145, + 80, + 80, + 86, + 91, + 96, + 0, + 96, + 32, + 130, + 132, + 3, + 18, + 21, + 97, + 137, + 18, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 81, + 145, + 144, + 80, + 86, + 91, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 49, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 96, + 0, + 130, + 25, + 130, + 17, + 21, + 97, + 137, + 66, + 87, + 97, + 137, + 66, + 97, + 136, + 60, + 86, + 91, + 80, + 1, + 144, + 86, + 91, + 96, + 0, + 129, + 96, + 0, + 25, + 4, + 131, + 17, + 130, + 21, + 21, + 22, + 21, + 97, + 137, + 97, + 87, + 97, + 137, + 97, + 97, + 136, + 60, + 86, + 91, + 80, + 2, + 144, + 86, + 91, + 96, + 0, + 128, + 133, + 133, + 17, + 21, + 97, + 137, + 118, + 87, + 96, + 0, + 128, + 253, + 91, + 131, + 134, + 17, + 21, + 97, + 137, + 131, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 80, + 130, + 1, + 147, + 145, + 144, + 146, + 3, + 145, + 80, + 86, + 91, + 96, + 0, + 96, + 1, + 130, + 1, + 97, + 137, + 162, + 87, + 97, + 137, + 162, + 97, + 136, + 60, + 86, + 91, + 80, + 96, + 1, + 1, + 144, + 86, + 91, + 96, + 1, + 129, + 129, + 91, + 128, + 133, + 17, + 21, + 97, + 137, + 228, + 87, + 129, + 96, + 0, + 25, + 4, + 130, + 17, + 21, + 97, + 137, + 202, + 87, + 97, + 137, + 202, + 97, + 136, + 60, + 86, + 91, + 128, + 133, + 22, + 21, + 97, + 137, + 215, + 87, + 145, + 129, + 2, + 145, + 91, + 147, + 132, + 28, + 147, + 144, + 128, + 2, + 144, + 97, + 137, + 174, + 86, + 91, + 80, + 146, + 80, + 146, + 144, + 80, + 86, + 91, + 96, + 0, + 130, + 97, + 137, + 251, + 87, + 80, + 96, + 1, + 97, + 24, + 76, + 86, + 91, + 129, + 97, + 138, + 8, + 87, + 80, + 96, + 0, + 97, + 24, + 76, + 86, + 91, + 129, + 96, + 1, + 129, + 20, + 97, + 138, + 30, + 87, + 96, + 2, + 129, + 20, + 97, + 138, + 40, + 87, + 97, + 138, + 68, + 86, + 91, + 96, + 1, + 145, + 80, + 80, + 97, + 24, + 76, + 86, + 91, + 96, + 255, + 132, + 17, + 21, + 97, + 138, + 57, + 87, + 97, + 138, + 57, + 97, + 136, + 60, + 86, + 91, + 80, + 80, + 96, + 1, + 130, + 27, + 97, + 24, + 76, + 86, + 91, + 80, + 96, + 32, + 131, + 16, + 97, + 1, + 51, + 131, + 16, + 22, + 96, + 78, + 132, + 16, + 96, + 11, + 132, + 16, + 22, + 23, + 21, + 97, + 138, + 103, + 87, + 80, + 129, + 129, + 10, + 97, + 24, + 76, + 86, + 91, + 97, + 138, + 113, + 131, + 131, + 97, + 137, + 169, + 86, + 91, + 128, + 96, + 0, + 25, + 4, + 130, + 17, + 21, + 97, + 138, + 133, + 87, + 97, + 138, + 133, + 97, + 136, + 60, + 86, + 91, + 2, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 97, + 17, + 147, + 131, + 131, + 97, + 137, + 236, + 86, + 91, + 96, + 0, + 96, + 1, + 96, + 1, + 96, + 255, + 27, + 3, + 129, + 132, + 19, + 130, + 132, + 19, + 128, + 130, + 22, + 134, + 132, + 4, + 134, + 17, + 22, + 21, + 97, + 138, + 191, + 87, + 97, + 138, + 191, + 97, + 136, + 60, + 86, + 91, + 96, + 1, + 96, + 255, + 27, + 96, + 0, + 135, + 18, + 130, + 129, + 22, + 135, + 131, + 5, + 137, + 18, + 22, + 21, + 97, + 138, + 222, + 87, + 97, + 138, + 222, + 97, + 136, + 60, + 86, + 91, + 96, + 0, + 135, + 18, + 146, + 80, + 135, + 130, + 5, + 135, + 18, + 132, + 132, + 22, + 22, + 21, + 97, + 138, + 250, + 87, + 97, + 138, + 250, + 97, + 136, + 60, + 86, + 91, + 135, + 133, + 5, + 135, + 18, + 129, + 132, + 22, + 22, + 21, + 97, + 139, + 16, + 87, + 97, + 139, + 16, + 97, + 136, + 60, + 86, + 91, + 80, + 80, + 80, + 146, + 144, + 147, + 2, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 18, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 96, + 0, + 130, + 97, + 139, + 67, + 87, + 97, + 139, + 67, + 97, + 139, + 30, + 86, + 91, + 96, + 1, + 96, + 255, + 27, + 130, + 20, + 96, + 0, + 25, + 132, + 20, + 22, + 21, + 97, + 139, + 93, + 87, + 97, + 139, + 93, + 97, + 136, + 60, + 86, + 91, + 80, + 5, + 144, + 86, + 91, + 96, + 0, + 130, + 97, + 139, + 113, + 87, + 97, + 139, + 113, + 97, + 139, + 30, + 86, + 91, + 80, + 4, + 144, + 86, + 91, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 1, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 96, + 0, + 96, + 1, + 96, + 255, + 27, + 130, + 1, + 97, + 139, + 161, + 87, + 97, + 139, + 161, + 97, + 136, + 60, + 86, + 91, + 80, + 96, + 0, + 3, + 144, + 86, + 91, + 96, + 0, + 99, + 255, + 255, + 255, + 255, + 128, + 131, + 22, + 129, + 129, + 3, + 97, + 139, + 193, + 87, + 97, + 139, + 193, + 97, + 136, + 60, + 86, + 91, + 96, + 1, + 1, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 96, + 32, + 130, + 132, + 3, + 18, + 21, + 97, + 139, + 221, + 87, + 96, + 0, + 128, + 253, + 91, + 129, + 81, + 96, + 255, + 129, + 22, + 129, + 20, + 97, + 17, + 147, + 87, + 96, + 0, + 128, + 253, + 91, + 96, + 0, + 98, + 255, + 255, + 255, + 128, + 131, + 22, + 129, + 129, + 3, + 97, + 139, + 193, + 87, + 97, + 139, + 193, + 97, + 136, + 60, + 86, + 91, + 96, + 0, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 131, + 129, + 22, + 144, + 131, + 22, + 129, + 129, + 16, + 21, + 97, + 140, + 38, + 87, + 97, + 140, + 38, + 97, + 136, + 60, + 86, + 91, + 3, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 130, + 18, + 128, + 21, + 96, + 1, + 96, + 1, + 96, + 255, + 27, + 3, + 132, + 144, + 3, + 133, + 19, + 22, + 21, + 97, + 140, + 80, + 87, + 97, + 140, + 80, + 97, + 136, + 60, + 86, + 91, + 96, + 1, + 96, + 255, + 27, + 131, + 144, + 3, + 132, + 18, + 129, + 22, + 21, + 97, + 140, + 105, + 87, + 97, + 140, + 105, + 97, + 136, + 60, + 86, + 91, + 80, + 80, + 1, + 144, + 86, + 91, + 96, + 0, + 96, + 1, + 96, + 1, + 96, + 128, + 27, + 3, + 128, + 131, + 22, + 129, + 133, + 22, + 128, + 131, + 3, + 130, + 17, + 21, + 97, + 140, + 145, + 87, + 97, + 140, + 145, + 97, + 136, + 60, + 86, + 91, + 1, + 148, + 147, + 80, + 80, + 80, + 80, + 86, + 254, + 162, + 100, + 105, + 112, + 102, + 115, + 88, + 34, + 18, + 32, + 6, + 40, + 123, + 95, + 202, + 66, + 166, + 114, + 199, + 70, + 37, + 241, + 101, + 39, + 188, + 9, + 174, + 5, + 137, + 237, + 35, + 203, + 7, + 15, + 41, + 242, + 234, + 5, + 25, + 223, + 159, + 17, + 100, + 115, + 111, + 108, + 99, + 67, + 0, + 8, + 13, + 0, + 51, + ]; + ///The deployed bytecode of the contract. + pub static RMM01PORTFOLIO_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __DEPLOYED_BYTECODE, + ); + pub struct RMM01Portfolio(::ethers::contract::Contract); + impl ::core::clone::Clone for RMM01Portfolio { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for RMM01Portfolio { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for RMM01Portfolio { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for RMM01Portfolio { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(stringify!(RMM01Portfolio)).field(&self.address()).finish() + } + } + impl RMM01Portfolio { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + RMM01PORTFOLIO_ABI.clone(), + client, + ), + ) + } + /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. + /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction + /// + /// Notes: + /// - If there are no constructor arguments, you should pass `()` as the argument. + /// - The default poll duration is 7 seconds. + /// - The default number of confirmations is 1 block. + /// + /// + /// # Example + /// + /// Generate contract bindings with `abigen!` and deploy a new contract instance. + /// + /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. + /// + /// ```ignore + /// # async fn deploy(client: ::std::sync::Arc) { + /// abigen!(Greeter, "../greeter.json"); + /// + /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); + /// let msg = greeter_contract.greet().call().await.unwrap(); + /// # } + /// ``` + pub fn deploy( + client: ::std::sync::Arc, + constructor_args: T, + ) -> ::core::result::Result< + ::ethers::contract::builders::ContractDeployer, + ::ethers::contract::ContractError, + > { + let factory = ::ethers::contract::ContractFactory::new( + RMM01PORTFOLIO_ABI.clone(), + RMM01PORTFOLIO_BYTECODE.clone().into(), + client, + ); + let deployer = factory.deploy(constructor_args)?; + let deployer = ::ethers::contract::ContractDeployer::new(deployer); + Ok(deployer) + } + ///Calls the contract's `REGISTRY` (0x06433b1b) function + pub fn registry( + &self, + ) -> ::ethers::contract::builders::ContractCall< + M, + ::ethers::core::types::Address, + > { + self.0 + .method_hash([6, 67, 59, 27], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `VERSION` (0xffa1ad74) function + pub fn version( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([255, 161, 173, 116], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `WETH` (0xad5c4648) function + pub fn weth( + &self, + ) -> ::ethers::contract::builders::ContractCall< + M, + ::ethers::core::types::Address, + > { + self.0 + .method_hash([173, 92, 70, 72], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `__account__` (0xda31ee54) function + pub fn account(&self) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([218, 49, 238, 84], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `changeParameters` (0xaf777855) function + pub fn change_parameters( + &self, + pool_id: u64, + priority_fee: u16, + fee: u16, + jit: u16, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([175, 119, 120, 85], (pool_id, priority_fee, fee, jit)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `checkInvariant` (0x2f337da5) function + pub fn check_invariant( + &self, + pool_id: u64, + invariant: ::ethers::core::types::I256, + reserve_x: ::ethers::core::types::U256, + reserve_y: ::ethers::core::types::U256, + timestamp: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall< + M, + (bool, ::ethers::core::types::I256), + > { + self.0 + .method_hash( + [47, 51, 125, 165], + (pool_id, invariant, reserve_x, reserve_y, timestamp), + ) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `checkPool` (0xa68aaa41) function + pub fn check_pool( + &self, + pool_id: u64, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([166, 138, 170, 65], pool_id) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `checkPosition` (0x2cc6641e) function + pub fn check_position( + &self, + pool_id: u64, + owner: ::ethers::core::types::Address, + delta: ::ethers::core::types::I256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([44, 198, 100, 30], (pool_id, owner, delta)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `computeMaxInput` (0x989bafba) function + pub fn compute_max_input( + &self, + pool_id: u64, + sell_asset: bool, + reserve_in: ::ethers::core::types::U256, + liquidity: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash( + [152, 155, 175, 186], + (pool_id, sell_asset, reserve_in, liquidity), + ) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `computeReservesFromPrice` (0xc48d887a) function + pub fn compute_reserves_from_price( + &self, + pool_id: u64, + price: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall< + M, + (::ethers::core::types::U256, ::ethers::core::types::U256), + > { + self.0 + .method_hash([196, 141, 136, 122], (pool_id, price)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `deposit` (0xd0e30db0) function + pub fn deposit(&self) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([208, 227, 13, 176], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `draw` (0xad24d6a0) function + pub fn draw( + &self, + token: ::ethers::core::types::Address, + amount: ::ethers::core::types::U256, + to: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([173, 36, 214, 160], (token, amount, to)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `fund` (0x7b1837de) function + pub fn fund( + &self, + token: ::ethers::core::types::Address, + amount: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([123, 24, 55, 222], (token, amount)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getAmountOut` (0x7dae4890) function + pub fn get_amount_out( + &self, + pool_id: u64, + sell_asset: bool, + amount_in: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([125, 174, 72, 144], (pool_id, sell_asset, amount_in)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getBalance` (0xd4fac45d) function + pub fn get_balance( + &self, + owner: ::ethers::core::types::Address, + token: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([212, 250, 196, 93], (owner, token)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getLiquidityDeltas` (0x8992f20a) function + pub fn get_liquidity_deltas( + &self, + pool_id: u64, + delta_liquidity: i128, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([137, 146, 242, 10], (pool_id, delta_liquidity)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getMaxLiquidity` (0xd6b7dec5) function + pub fn get_max_liquidity( + &self, + pool_id: u64, + amount_0: ::ethers::core::types::U256, + amount_1: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([214, 183, 222, 197], (pool_id, amount_0, amount_1)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getNetBalance` (0x4dc68a90) function + pub fn get_net_balance( + &self, + token: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([77, 198, 138, 144], token) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getPairId` (0x3f92a339) function + pub fn get_pair_id( + &self, + p0: ::ethers::core::types::Address, + p1: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([63, 146, 163, 57], (p0, p1)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getPairNonce` (0x078888d6) function + pub fn get_pair_nonce( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([7, 136, 136, 214], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getPoolNonce` (0xa5cd8a49) function + pub fn get_pool_nonce( + &self, + p0: u32, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([165, 205, 138, 73], p0) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getPoolReserves` (0x2afb9df8) function + pub fn get_pool_reserves( + &self, + pool_id: u64, + ) -> ::ethers::contract::builders::ContractCall< + M, + (::ethers::core::types::U256, ::ethers::core::types::U256), + > { + self.0 + .method_hash([42, 251, 157, 248], pool_id) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getReserve` (0xc9a396e9) function + pub fn get_reserve( + &self, + token: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([201, 163, 150, 233], token) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getVirtualPrice` (0x61b7ea6a) function + pub fn get_virtual_price( + &self, + pool_id: u64, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([97, 183, 234, 106], pool_id) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getVirtualReservesPerLiquidity` (0x1a4b905b) function + pub fn get_virtual_reserves_per_liquidity( + &self, + pool_id: u64, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([26, 75, 144, 91], pool_id) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `multiprocess` (0xa0fdf413) function + pub fn multiprocess( + &self, + data: ::ethers::core::types::Bytes, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([160, 253, 244, 19], data) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `pairs` (0x5e47663c) function + pub fn pairs( + &self, + p0: u32, + ) -> ::ethers::contract::builders::ContractCall< + M, + (::ethers::core::types::Address, u8, ::ethers::core::types::Address, u8), + > { + self.0 + .method_hash([94, 71, 102, 60], p0) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `pools` (0x89a5f084) function + pub fn pools( + &self, + p0: u64, + ) -> ::ethers::contract::builders::ContractCall< + M, + ( + u128, + u128, + u128, + u32, + ::ethers::core::types::Address, + ::ethers::core::types::U256, + ::ethers::core::types::U256, + ::ethers::core::types::U256, + PortfolioCurve, + PortfolioPair, + ), + > { + self.0 + .method_hash([137, 165, 240, 132], p0) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `positions` (0xb68513ea) function + pub fn positions( + &self, + p0: ::ethers::core::types::Address, + p1: u64, + ) -> ::ethers::contract::builders::ContractCall< + M, + ( + u128, + u32, + ::ethers::core::types::U256, + ::ethers::core::types::U256, + ::ethers::core::types::U256, + u128, + u128, + u128, + ), + > { + self.0 + .method_hash([182, 133, 19, 234], (p0, p1)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `setProtocolFee` (0x787dce3d) function + pub fn set_protocol_fee( + &self, + fee: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([120, 125, 206, 61], fee) + .expect("method not found (this should never happen)") + } + ///Gets the contract's `Allocate` event + pub fn allocate_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + AllocateFilter, + > { + self.0.event() + } + ///Gets the contract's `ChangeParameters` event + pub fn change_parameters_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + ChangeParametersFilter, + > { + self.0.event() + } + ///Gets the contract's `Collect` event + pub fn collect_filter( + &self, + ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, CollectFilter> { + self.0.event() + } + ///Gets the contract's `CreatePair` event + pub fn create_pair_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + CreatePairFilter, + > { + self.0.event() + } + ///Gets the contract's `CreatePool` event + pub fn create_pool_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + CreatePoolFilter, + > { + self.0.event() + } + ///Gets the contract's `Deallocate` event + pub fn deallocate_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + DeallocateFilter, + > { + self.0.event() + } + ///Gets the contract's `DecreaseReserveBalance` event + pub fn decrease_reserve_balance_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + DecreaseReserveBalanceFilter, + > { + self.0.event() + } + ///Gets the contract's `DecreaseUserBalance` event + pub fn decrease_user_balance_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + DecreaseUserBalanceFilter, + > { + self.0.event() + } + ///Gets the contract's `Deposit` event + pub fn deposit_filter( + &self, + ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, DepositFilter> { + self.0.event() + } + ///Gets the contract's `IncreaseReserveBalance` event + pub fn increase_reserve_balance_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + IncreaseReserveBalanceFilter, + > { + self.0.event() + } + ///Gets the contract's `IncreaseUserBalance` event + pub fn increase_user_balance_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + IncreaseUserBalanceFilter, + > { + self.0.event() + } + ///Gets the contract's `Swap` event + pub fn swap_filter( + &self, + ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, SwapFilter> { + self.0.event() + } + ///Gets the contract's `UpdateProtocolFee` event + pub fn update_protocol_fee_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + UpdateProtocolFeeFilter, + > { + self.0.event() + } + /// Returns an `Event` builder for all the events of this contract. + pub fn events( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + RMM01PortfolioEvents, + > { + self.0.event_with_filter(::core::default::Default::default()) + } + } + impl From<::ethers::contract::Contract> + for RMM01Portfolio { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } + ///Custom Error type `DrawBalance` with signature `DrawBalance()` and selector `0xc9f2f26c` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "DrawBalance", abi = "DrawBalance()")] + pub struct DrawBalance; + ///Custom Error type `EtherTransferFail` with signature `EtherTransferFail()` and selector `0x75f42683` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "EtherTransferFail", abi = "EtherTransferFail()")] + pub struct EtherTransferFail; + ///Custom Error type `Infinity` with signature `Infinity()` and selector `0x07a02127` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "Infinity", abi = "Infinity()")] + pub struct Infinity; + ///Custom Error type `InsufficientReserve` with signature `InsufficientReserve(uint256,uint256)` and selector `0x315276c9` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror( + name = "InsufficientReserve", + abi = "InsufficientReserve(uint256,uint256)" + )] + pub struct InsufficientReserve { + pub amount: ::ethers::core::types::U256, + pub delta: ::ethers::core::types::U256, + } + ///Custom Error type `InvalidBalance` with signature `InvalidBalance()` and selector `0xc52e3eff` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "InvalidBalance", abi = "InvalidBalance()")] + pub struct InvalidBalance; + ///Custom Error type `InvalidBytesLength` with signature `InvalidBytesLength(uint256,uint256)` and selector `0xe19dc95e` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "InvalidBytesLength", abi = "InvalidBytesLength(uint256,uint256)")] + pub struct InvalidBytesLength { + pub expected: ::ethers::core::types::U256, + pub length: ::ethers::core::types::U256, + } + ///Custom Error type `InvalidDecimals` with signature `InvalidDecimals(uint8)` and selector `0xca950391` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "InvalidDecimals", abi = "InvalidDecimals(uint8)")] + pub struct InvalidDecimals { + pub decimals: u8, + } + ///Custom Error type `InvalidFee` with signature `InvalidFee(uint16)` and selector `0xf6f4a38f` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "InvalidFee", abi = "InvalidFee(uint16)")] + pub struct InvalidFee { + pub fee: u16, + } + ///Custom Error type `InvalidInstruction` with signature `InvalidInstruction()` and selector `0xd8c48f68` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "InvalidInstruction", abi = "InvalidInstruction()")] + pub struct InvalidInstruction; + ///Custom Error type `InvalidInvariant` with signature `InvalidInvariant(int256,int256)` and selector `0x2125a168` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "InvalidInvariant", abi = "InvalidInvariant(int256,int256)")] + pub struct InvalidInvariant { + pub prev: ::ethers::core::types::I256, + pub next: ::ethers::core::types::I256, + } + ///Custom Error type `InvalidJump` with signature `InvalidJump(uint256)` and selector `0x80f63bd1` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "InvalidJump", abi = "InvalidJump(uint256)")] + pub struct InvalidJump { + pub pointer: ::ethers::core::types::U256, + } + ///Custom Error type `InvalidPair` with signature `InvalidPair()` and selector `0x1e4f7d8c` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "InvalidPair", abi = "InvalidPair()")] + pub struct InvalidPair; + ///Custom Error type `InvalidReentrancy` with signature `InvalidReentrancy()` and selector `0xffc72209` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "InvalidReentrancy", abi = "InvalidReentrancy()")] + pub struct InvalidReentrancy; + ///Custom Error type `InvalidSettlement` with signature `InvalidSettlement()` and selector `0x115931c4` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "InvalidSettlement", abi = "InvalidSettlement()")] + pub struct InvalidSettlement; + ///Custom Error type `InvalidTransfer` with signature `InvalidTransfer()` and selector `0x2f352531` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "InvalidTransfer", abi = "InvalidTransfer()")] + pub struct InvalidTransfer; + ///Custom Error type `JitLiquidity` with signature `JitLiquidity(uint256)` and selector `0x9a231b2c` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "JitLiquidity", abi = "JitLiquidity(uint256)")] + pub struct JitLiquidity { + pub distance: ::ethers::core::types::U256, + } + ///Custom Error type `Min` with signature `Min()` and selector `0x4d2d75b1` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "Min", abi = "Min()")] + pub struct Min; + ///Custom Error type `NegativeBalance` with signature `NegativeBalance(address,int256)` and selector `0xfe239baa` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "NegativeBalance", abi = "NegativeBalance(address,int256)")] + pub struct NegativeBalance { + pub token: ::ethers::core::types::Address, + pub net: ::ethers::core::types::I256, + } + ///Custom Error type `NegativeInfinity` with signature `NegativeInfinity()` and selector `0x8bb56614` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "NegativeInfinity", abi = "NegativeInfinity()")] + pub struct NegativeInfinity; + ///Custom Error type `NonExistentPool` with signature `NonExistentPool(uint64)` and selector `0xd4480d46` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "NonExistentPool", abi = "NonExistentPool(uint64)")] + pub struct NonExistentPool { + pub pool_id: u64, + } + ///Custom Error type `NonExistentPosition` with signature `NonExistentPosition(address,uint64)` and selector `0x5f3605b6` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror( + name = "NonExistentPosition", + abi = "NonExistentPosition(address,uint64)" + )] + pub struct NonExistentPosition { + pub owner: ::ethers::core::types::Address, + pub pool_id: u64, + } + ///Custom Error type `NotController` with signature `NotController()` and selector `0x23019e67` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "NotController", abi = "NotController()")] + pub struct NotController; + ///Custom Error type `OOB` with signature `OOB()` and selector `0xaaf3956f` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "OOB", abi = "OOB()")] + pub struct OOB; + ///Custom Error type `OutOfBounds` with signature `OutOfBounds()` and selector `0xb4120f14` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "OutOfBounds", abi = "OutOfBounds()")] + pub struct OutOfBounds; + ///Custom Error type `OverflowWad` with signature `OverflowWad(int256)` and selector `0xb11558df` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "OverflowWad", abi = "OverflowWad(int256)")] + pub struct OverflowWad { + pub wad: ::ethers::core::types::I256, + } + ///Custom Error type `PairExists` with signature `PairExists(uint24)` and selector `0x3325fa77` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "PairExists", abi = "PairExists(uint24)")] + pub struct PairExists { + pub pair_id: u32, + } + ///Custom Error type `PoolExpired` with signature `PoolExpired()` and selector `0x398b36db` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "PoolExpired", abi = "PoolExpired()")] + pub struct PoolExpired; + ///Custom Error type `SameTokenError` with signature `SameTokenError()` and selector `0xec38b794` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "SameTokenError", abi = "SameTokenError()")] + pub struct SameTokenError; + ///Custom Error type `SwapInputTooSmall` with signature `SwapInputTooSmall()` and selector `0x2000e4e0` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "SwapInputTooSmall", abi = "SwapInputTooSmall()")] + pub struct SwapInputTooSmall; + ///Custom Error type `UndefinedPrice` with signature `UndefinedPrice()` and selector `0x22053363` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "UndefinedPrice", abi = "UndefinedPrice()")] + pub struct UndefinedPrice; + ///Custom Error type `ZeroAmounts` with signature `ZeroAmounts()` and selector `0x213c7cc5` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "ZeroAmounts", abi = "ZeroAmounts()")] + pub struct ZeroAmounts; + ///Custom Error type `ZeroInput` with signature `ZeroInput()` and selector `0xaf458c07` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "ZeroInput", abi = "ZeroInput()")] + pub struct ZeroInput; + ///Custom Error type `ZeroLiquidity` with signature `ZeroLiquidity()` and selector `0x10074548` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "ZeroLiquidity", abi = "ZeroLiquidity()")] + pub struct ZeroLiquidity; + ///Custom Error type `ZeroOutput` with signature `ZeroOutput()` and selector `0xe618637e` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "ZeroOutput", abi = "ZeroOutput()")] + pub struct ZeroOutput; + ///Custom Error type `ZeroPrice` with signature `ZeroPrice()` and selector `0x4dfba023` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "ZeroPrice", abi = "ZeroPrice()")] + pub struct ZeroPrice; + ///Custom Error type `ZeroValue` with signature `ZeroValue()` and selector `0x7c946ed7` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "ZeroValue", abi = "ZeroValue()")] + pub struct ZeroValue; + ///Container type for all of the contract's custom errors + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum RMM01PortfolioErrors { + DrawBalance(DrawBalance), + EtherTransferFail(EtherTransferFail), + Infinity(Infinity), + InsufficientReserve(InsufficientReserve), + InvalidBalance(InvalidBalance), + InvalidBytesLength(InvalidBytesLength), + InvalidDecimals(InvalidDecimals), + InvalidFee(InvalidFee), + InvalidInstruction(InvalidInstruction), + InvalidInvariant(InvalidInvariant), + InvalidJump(InvalidJump), + InvalidPair(InvalidPair), + InvalidReentrancy(InvalidReentrancy), + InvalidSettlement(InvalidSettlement), + InvalidTransfer(InvalidTransfer), + JitLiquidity(JitLiquidity), + Min(Min), + NegativeBalance(NegativeBalance), + NegativeInfinity(NegativeInfinity), + NonExistentPool(NonExistentPool), + NonExistentPosition(NonExistentPosition), + NotController(NotController), + OOB(OOB), + OutOfBounds(OutOfBounds), + OverflowWad(OverflowWad), + PairExists(PairExists), + PoolExpired(PoolExpired), + SameTokenError(SameTokenError), + SwapInputTooSmall(SwapInputTooSmall), + UndefinedPrice(UndefinedPrice), + ZeroAmounts(ZeroAmounts), + ZeroInput(ZeroInput), + ZeroLiquidity(ZeroLiquidity), + ZeroOutput(ZeroOutput), + ZeroPrice(ZeroPrice), + ZeroValue(ZeroValue), + /// The standard solidity revert string, with selector + /// Error(string) -- 0x08c379a0 + RevertString(::std::string::String), + } + impl ::ethers::core::abi::AbiDecode for RMM01PortfolioErrors { + fn decode( + data: impl AsRef<[u8]>, + ) -> ::core::result::Result { + let data = data.as_ref(); + if let Ok(decoded) + = <::std::string::String as ::ethers::core::abi::AbiDecode>::decode( + data, + ) { + return Ok(Self::RevertString(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::DrawBalance(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::EtherTransferFail(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Infinity(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::InsufficientReserve(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::InvalidBalance(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::InvalidBytesLength(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::InvalidDecimals(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::InvalidFee(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::InvalidInstruction(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::InvalidInvariant(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::InvalidJump(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::InvalidPair(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::InvalidReentrancy(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::InvalidSettlement(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::InvalidTransfer(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::JitLiquidity(decoded)); + } + if let Ok(decoded) = ::decode(data) { + return Ok(Self::Min(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::NegativeBalance(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::NegativeInfinity(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::NonExistentPool(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::NonExistentPosition(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::NotController(decoded)); + } + if let Ok(decoded) = ::decode(data) { + return Ok(Self::OOB(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::OutOfBounds(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::OverflowWad(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::PairExists(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::PoolExpired(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::SameTokenError(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::SwapInputTooSmall(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::UndefinedPrice(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::ZeroAmounts(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::ZeroInput(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::ZeroLiquidity(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::ZeroOutput(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::ZeroPrice(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::ZeroValue(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData.into()) + } + } + impl ::ethers::core::abi::AbiEncode for RMM01PortfolioErrors { + fn encode(self) -> ::std::vec::Vec { + match self { + Self::DrawBalance(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::EtherTransferFail(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Infinity(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::InsufficientReserve(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::InvalidBalance(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::InvalidBytesLength(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::InvalidDecimals(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::InvalidFee(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::InvalidInstruction(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::InvalidInvariant(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::InvalidJump(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::InvalidPair(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::InvalidReentrancy(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::InvalidSettlement(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::InvalidTransfer(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::JitLiquidity(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Min(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::NegativeBalance(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::NegativeInfinity(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::NonExistentPool(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::NonExistentPosition(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::NotController(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::OOB(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::OutOfBounds(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::OverflowWad(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::PairExists(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::PoolExpired(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::SameTokenError(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::SwapInputTooSmall(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::UndefinedPrice(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::ZeroAmounts(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::ZeroInput(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::ZeroLiquidity(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::ZeroOutput(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::ZeroPrice(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::ZeroValue(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::RevertString(s) => ::ethers::core::abi::AbiEncode::encode(s), + } + } + } + impl ::ethers::contract::ContractRevert for RMM01PortfolioErrors { + fn valid_selector(selector: [u8; 4]) -> bool { + match selector { + [0x08, 0xc3, 0x79, 0xa0] => true, + _ if selector + == ::selector() => true, + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => true, + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => true, + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => true, + _ if selector + == ::selector() => true, + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => true, + _ if selector == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector == ::selector() => { + true + } + _ if selector + == ::selector() => true, + _ if selector + == ::selector() => true, + _ if selector + == ::selector() => true, + _ if selector + == ::selector() => true, + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => true, + _ if selector + == ::selector() => true, + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => true, + _ if selector + == ::selector() => true, + _ if selector + == ::selector() => true, + _ => false, + } + } + } + impl ::core::fmt::Display for RMM01PortfolioErrors { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::DrawBalance(element) => ::core::fmt::Display::fmt(element, f), + Self::EtherTransferFail(element) => ::core::fmt::Display::fmt(element, f), + Self::Infinity(element) => ::core::fmt::Display::fmt(element, f), + Self::InsufficientReserve(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::InvalidBalance(element) => ::core::fmt::Display::fmt(element, f), + Self::InvalidBytesLength(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::InvalidDecimals(element) => ::core::fmt::Display::fmt(element, f), + Self::InvalidFee(element) => ::core::fmt::Display::fmt(element, f), + Self::InvalidInstruction(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::InvalidInvariant(element) => ::core::fmt::Display::fmt(element, f), + Self::InvalidJump(element) => ::core::fmt::Display::fmt(element, f), + Self::InvalidPair(element) => ::core::fmt::Display::fmt(element, f), + Self::InvalidReentrancy(element) => ::core::fmt::Display::fmt(element, f), + Self::InvalidSettlement(element) => ::core::fmt::Display::fmt(element, f), + Self::InvalidTransfer(element) => ::core::fmt::Display::fmt(element, f), + Self::JitLiquidity(element) => ::core::fmt::Display::fmt(element, f), + Self::Min(element) => ::core::fmt::Display::fmt(element, f), + Self::NegativeBalance(element) => ::core::fmt::Display::fmt(element, f), + Self::NegativeInfinity(element) => ::core::fmt::Display::fmt(element, f), + Self::NonExistentPool(element) => ::core::fmt::Display::fmt(element, f), + Self::NonExistentPosition(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::NotController(element) => ::core::fmt::Display::fmt(element, f), + Self::OOB(element) => ::core::fmt::Display::fmt(element, f), + Self::OutOfBounds(element) => ::core::fmt::Display::fmt(element, f), + Self::OverflowWad(element) => ::core::fmt::Display::fmt(element, f), + Self::PairExists(element) => ::core::fmt::Display::fmt(element, f), + Self::PoolExpired(element) => ::core::fmt::Display::fmt(element, f), + Self::SameTokenError(element) => ::core::fmt::Display::fmt(element, f), + Self::SwapInputTooSmall(element) => ::core::fmt::Display::fmt(element, f), + Self::UndefinedPrice(element) => ::core::fmt::Display::fmt(element, f), + Self::ZeroAmounts(element) => ::core::fmt::Display::fmt(element, f), + Self::ZeroInput(element) => ::core::fmt::Display::fmt(element, f), + Self::ZeroLiquidity(element) => ::core::fmt::Display::fmt(element, f), + Self::ZeroOutput(element) => ::core::fmt::Display::fmt(element, f), + Self::ZeroPrice(element) => ::core::fmt::Display::fmt(element, f), + Self::ZeroValue(element) => ::core::fmt::Display::fmt(element, f), + Self::RevertString(s) => ::core::fmt::Display::fmt(s, f), + } + } + } + impl ::core::convert::From<::std::string::String> for RMM01PortfolioErrors { + fn from(value: String) -> Self { + Self::RevertString(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: DrawBalance) -> Self { + Self::DrawBalance(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: EtherTransferFail) -> Self { + Self::EtherTransferFail(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: Infinity) -> Self { + Self::Infinity(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: InsufficientReserve) -> Self { + Self::InsufficientReserve(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: InvalidBalance) -> Self { + Self::InvalidBalance(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: InvalidBytesLength) -> Self { + Self::InvalidBytesLength(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: InvalidDecimals) -> Self { + Self::InvalidDecimals(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: InvalidFee) -> Self { + Self::InvalidFee(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: InvalidInstruction) -> Self { + Self::InvalidInstruction(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: InvalidInvariant) -> Self { + Self::InvalidInvariant(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: InvalidJump) -> Self { + Self::InvalidJump(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: InvalidPair) -> Self { + Self::InvalidPair(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: InvalidReentrancy) -> Self { + Self::InvalidReentrancy(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: InvalidSettlement) -> Self { + Self::InvalidSettlement(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: InvalidTransfer) -> Self { + Self::InvalidTransfer(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: JitLiquidity) -> Self { + Self::JitLiquidity(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: Min) -> Self { + Self::Min(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: NegativeBalance) -> Self { + Self::NegativeBalance(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: NegativeInfinity) -> Self { + Self::NegativeInfinity(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: NonExistentPool) -> Self { + Self::NonExistentPool(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: NonExistentPosition) -> Self { + Self::NonExistentPosition(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: NotController) -> Self { + Self::NotController(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: OOB) -> Self { + Self::OOB(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: OutOfBounds) -> Self { + Self::OutOfBounds(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: OverflowWad) -> Self { + Self::OverflowWad(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: PairExists) -> Self { + Self::PairExists(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: PoolExpired) -> Self { + Self::PoolExpired(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: SameTokenError) -> Self { + Self::SameTokenError(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: SwapInputTooSmall) -> Self { + Self::SwapInputTooSmall(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: UndefinedPrice) -> Self { + Self::UndefinedPrice(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: ZeroAmounts) -> Self { + Self::ZeroAmounts(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: ZeroInput) -> Self { + Self::ZeroInput(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: ZeroLiquidity) -> Self { + Self::ZeroLiquidity(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: ZeroOutput) -> Self { + Self::ZeroOutput(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: ZeroPrice) -> Self { + Self::ZeroPrice(value) + } + } + impl ::core::convert::From for RMM01PortfolioErrors { + fn from(value: ZeroValue) -> Self { + Self::ZeroValue(value) + } + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "Allocate", + abi = "Allocate(uint64,address,address,uint256,uint256,uint256)" + )] + pub struct AllocateFilter { + #[ethevent(indexed)] + pub pool_id: u64, + #[ethevent(indexed)] + pub asset: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub quote: ::ethers::core::types::Address, + pub delta_asset: ::ethers::core::types::U256, + pub delta_quote: ::ethers::core::types::U256, + pub delta_liquidity: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "ChangeParameters", + abi = "ChangeParameters(uint64,uint16,uint16,uint16)" + )] + pub struct ChangeParametersFilter { + #[ethevent(indexed)] + pub pool_id: u64, + #[ethevent(indexed)] + pub priority_fee: u16, + #[ethevent(indexed)] + pub fee: u16, + pub jit: u16, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "Collect", + abi = "Collect(uint64,address,uint256,address,uint256,address)" + )] + pub struct CollectFilter { + pub pool_id: u64, + #[ethevent(indexed)] + pub account: ::ethers::core::types::Address, + pub fee_asset_dec: ::ethers::core::types::U256, + #[ethevent(indexed)] + pub asset: ::ethers::core::types::Address, + pub fee_quote_dec: ::ethers::core::types::U256, + #[ethevent(indexed)] + pub quote: ::ethers::core::types::Address, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "CreatePair", + abi = "CreatePair(uint24,address,address,uint8,uint8)" + )] + pub struct CreatePairFilter { + #[ethevent(indexed)] + pub pair_id: u32, + #[ethevent(indexed)] + pub asset: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub quote: ::ethers::core::types::Address, + pub decimals_asset: u8, + pub decimals_quote: u8, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "CreatePool", + abi = "CreatePool(uint64,bool,address,address,uint256)" + )] + pub struct CreatePoolFilter { + #[ethevent(indexed)] + pub pool_id: u64, + pub is_mutable: bool, + #[ethevent(indexed)] + pub asset: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub quote: ::ethers::core::types::Address, + pub price: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "Deallocate", + abi = "Deallocate(uint64,address,address,uint256,uint256,uint256)" + )] + pub struct DeallocateFilter { + #[ethevent(indexed)] + pub pool_id: u64, + #[ethevent(indexed)] + pub asset: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub quote: ::ethers::core::types::Address, + pub delta_asset: ::ethers::core::types::U256, + pub delta_quote: ::ethers::core::types::U256, + pub delta_liquidity: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "DecreaseReserveBalance", + abi = "DecreaseReserveBalance(address,uint256)" + )] + pub struct DecreaseReserveBalanceFilter { + #[ethevent(indexed)] + pub token: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "DecreaseUserBalance", + abi = "DecreaseUserBalance(address,address,uint256)" + )] + pub struct DecreaseUserBalanceFilter { + #[ethevent(indexed)] + pub account: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub token: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "Deposit", abi = "Deposit(address,uint256)")] + pub struct DepositFilter { + #[ethevent(indexed)] + pub account: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "IncreaseReserveBalance", + abi = "IncreaseReserveBalance(address,uint256)" + )] + pub struct IncreaseReserveBalanceFilter { + #[ethevent(indexed)] + pub token: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "IncreaseUserBalance", + abi = "IncreaseUserBalance(address,address,uint256)" + )] + pub struct IncreaseUserBalanceFilter { + #[ethevent(indexed)] + pub account: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub token: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "Swap", + abi = "Swap(uint64,uint256,address,uint256,address,uint256,uint256,int256)" + )] + pub struct SwapFilter { + #[ethevent(indexed)] + pub pool_id: u64, + pub price: ::ethers::core::types::U256, + #[ethevent(indexed)] + pub sell_asset: ::ethers::core::types::Address, + pub input: ::ethers::core::types::U256, + #[ethevent(indexed)] + pub token_out: ::ethers::core::types::Address, + pub output: ::ethers::core::types::U256, + pub fee_amount_dec: ::ethers::core::types::U256, + pub invariant_wad: ::ethers::core::types::I256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "UpdateProtocolFee", abi = "UpdateProtocolFee(uint256,uint256)")] + pub struct UpdateProtocolFeeFilter { + pub prev_fee: ::ethers::core::types::U256, + pub next_fee: ::ethers::core::types::U256, + } + ///Container type for all of the contract's events + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum RMM01PortfolioEvents { + AllocateFilter(AllocateFilter), + ChangeParametersFilter(ChangeParametersFilter), + CollectFilter(CollectFilter), + CreatePairFilter(CreatePairFilter), + CreatePoolFilter(CreatePoolFilter), + DeallocateFilter(DeallocateFilter), + DecreaseReserveBalanceFilter(DecreaseReserveBalanceFilter), + DecreaseUserBalanceFilter(DecreaseUserBalanceFilter), + DepositFilter(DepositFilter), + IncreaseReserveBalanceFilter(IncreaseReserveBalanceFilter), + IncreaseUserBalanceFilter(IncreaseUserBalanceFilter), + SwapFilter(SwapFilter), + UpdateProtocolFeeFilter(UpdateProtocolFeeFilter), + } + impl ::ethers::contract::EthLogDecode for RMM01PortfolioEvents { + fn decode_log( + log: &::ethers::core::abi::RawLog, + ) -> ::core::result::Result { + if let Ok(decoded) = AllocateFilter::decode_log(log) { + return Ok(RMM01PortfolioEvents::AllocateFilter(decoded)); + } + if let Ok(decoded) = ChangeParametersFilter::decode_log(log) { + return Ok(RMM01PortfolioEvents::ChangeParametersFilter(decoded)); + } + if let Ok(decoded) = CollectFilter::decode_log(log) { + return Ok(RMM01PortfolioEvents::CollectFilter(decoded)); + } + if let Ok(decoded) = CreatePairFilter::decode_log(log) { + return Ok(RMM01PortfolioEvents::CreatePairFilter(decoded)); + } + if let Ok(decoded) = CreatePoolFilter::decode_log(log) { + return Ok(RMM01PortfolioEvents::CreatePoolFilter(decoded)); + } + if let Ok(decoded) = DeallocateFilter::decode_log(log) { + return Ok(RMM01PortfolioEvents::DeallocateFilter(decoded)); + } + if let Ok(decoded) = DecreaseReserveBalanceFilter::decode_log(log) { + return Ok(RMM01PortfolioEvents::DecreaseReserveBalanceFilter(decoded)); + } + if let Ok(decoded) = DecreaseUserBalanceFilter::decode_log(log) { + return Ok(RMM01PortfolioEvents::DecreaseUserBalanceFilter(decoded)); + } + if let Ok(decoded) = DepositFilter::decode_log(log) { + return Ok(RMM01PortfolioEvents::DepositFilter(decoded)); + } + if let Ok(decoded) = IncreaseReserveBalanceFilter::decode_log(log) { + return Ok(RMM01PortfolioEvents::IncreaseReserveBalanceFilter(decoded)); + } + if let Ok(decoded) = IncreaseUserBalanceFilter::decode_log(log) { + return Ok(RMM01PortfolioEvents::IncreaseUserBalanceFilter(decoded)); + } + if let Ok(decoded) = SwapFilter::decode_log(log) { + return Ok(RMM01PortfolioEvents::SwapFilter(decoded)); + } + if let Ok(decoded) = UpdateProtocolFeeFilter::decode_log(log) { + return Ok(RMM01PortfolioEvents::UpdateProtocolFeeFilter(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData) + } + } + impl ::core::fmt::Display for RMM01PortfolioEvents { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::AllocateFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::ChangeParametersFilter(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::CollectFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::CreatePairFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::CreatePoolFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::DeallocateFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::DecreaseReserveBalanceFilter(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::DecreaseUserBalanceFilter(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::DepositFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::IncreaseReserveBalanceFilter(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::IncreaseUserBalanceFilter(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::SwapFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::UpdateProtocolFeeFilter(element) => { + ::core::fmt::Display::fmt(element, f) + } + } + } + } + impl ::core::convert::From for RMM01PortfolioEvents { + fn from(value: AllocateFilter) -> Self { + Self::AllocateFilter(value) + } + } + impl ::core::convert::From for RMM01PortfolioEvents { + fn from(value: ChangeParametersFilter) -> Self { + Self::ChangeParametersFilter(value) + } + } + impl ::core::convert::From for RMM01PortfolioEvents { + fn from(value: CollectFilter) -> Self { + Self::CollectFilter(value) + } + } + impl ::core::convert::From for RMM01PortfolioEvents { + fn from(value: CreatePairFilter) -> Self { + Self::CreatePairFilter(value) + } + } + impl ::core::convert::From for RMM01PortfolioEvents { + fn from(value: CreatePoolFilter) -> Self { + Self::CreatePoolFilter(value) + } + } + impl ::core::convert::From for RMM01PortfolioEvents { + fn from(value: DeallocateFilter) -> Self { + Self::DeallocateFilter(value) + } + } + impl ::core::convert::From for RMM01PortfolioEvents { + fn from(value: DecreaseReserveBalanceFilter) -> Self { + Self::DecreaseReserveBalanceFilter(value) + } + } + impl ::core::convert::From for RMM01PortfolioEvents { + fn from(value: DecreaseUserBalanceFilter) -> Self { + Self::DecreaseUserBalanceFilter(value) + } + } + impl ::core::convert::From for RMM01PortfolioEvents { + fn from(value: DepositFilter) -> Self { + Self::DepositFilter(value) + } + } + impl ::core::convert::From for RMM01PortfolioEvents { + fn from(value: IncreaseReserveBalanceFilter) -> Self { + Self::IncreaseReserveBalanceFilter(value) + } + } + impl ::core::convert::From for RMM01PortfolioEvents { + fn from(value: IncreaseUserBalanceFilter) -> Self { + Self::IncreaseUserBalanceFilter(value) + } + } + impl ::core::convert::From for RMM01PortfolioEvents { + fn from(value: SwapFilter) -> Self { + Self::SwapFilter(value) + } + } + impl ::core::convert::From for RMM01PortfolioEvents { + fn from(value: UpdateProtocolFeeFilter) -> Self { + Self::UpdateProtocolFeeFilter(value) + } + } + ///Container type for all input parameters for the `REGISTRY` function with signature `REGISTRY()` and selector `0x06433b1b` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "REGISTRY", abi = "REGISTRY()")] + pub struct RegistryCall; + ///Container type for all input parameters for the `VERSION` function with signature `VERSION()` and selector `0xffa1ad74` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "VERSION", abi = "VERSION()")] + pub struct VersionCall; + ///Container type for all input parameters for the `WETH` function with signature `WETH()` and selector `0xad5c4648` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "WETH", abi = "WETH()")] + pub struct WethCall; + ///Container type for all input parameters for the `__account__` function with signature `__account__()` and selector `0xda31ee54` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "__account__", abi = "__account__()")] + pub struct AccountCall; + ///Container type for all input parameters for the `changeParameters` function with signature `changeParameters(uint64,uint16,uint16,uint16)` and selector `0xaf777855` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall( + name = "changeParameters", + abi = "changeParameters(uint64,uint16,uint16,uint16)" + )] + pub struct ChangeParametersCall { + pub pool_id: u64, + pub priority_fee: u16, + pub fee: u16, + pub jit: u16, + } + ///Container type for all input parameters for the `checkInvariant` function with signature `checkInvariant(uint64,int256,uint256,uint256,uint256)` and selector `0x2f337da5` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall( + name = "checkInvariant", + abi = "checkInvariant(uint64,int256,uint256,uint256,uint256)" + )] + pub struct CheckInvariantCall { + pub pool_id: u64, + pub invariant: ::ethers::core::types::I256, + pub reserve_x: ::ethers::core::types::U256, + pub reserve_y: ::ethers::core::types::U256, + pub timestamp: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `checkPool` function with signature `checkPool(uint64)` and selector `0xa68aaa41` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "checkPool", abi = "checkPool(uint64)")] + pub struct CheckPoolCall { + pub pool_id: u64, + } + ///Container type for all input parameters for the `checkPosition` function with signature `checkPosition(uint64,address,int256)` and selector `0x2cc6641e` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "checkPosition", abi = "checkPosition(uint64,address,int256)")] + pub struct CheckPositionCall { + pub pool_id: u64, + pub owner: ::ethers::core::types::Address, + pub delta: ::ethers::core::types::I256, + } + ///Container type for all input parameters for the `computeMaxInput` function with signature `computeMaxInput(uint64,bool,uint256,uint256)` and selector `0x989bafba` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall( + name = "computeMaxInput", + abi = "computeMaxInput(uint64,bool,uint256,uint256)" + )] + pub struct ComputeMaxInputCall { + pub pool_id: u64, + pub sell_asset: bool, + pub reserve_in: ::ethers::core::types::U256, + pub liquidity: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `computeReservesFromPrice` function with signature `computeReservesFromPrice(uint64,uint256)` and selector `0xc48d887a` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall( + name = "computeReservesFromPrice", + abi = "computeReservesFromPrice(uint64,uint256)" + )] + pub struct ComputeReservesFromPriceCall { + pub pool_id: u64, + pub price: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `deposit` function with signature `deposit()` and selector `0xd0e30db0` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "deposit", abi = "deposit()")] + pub struct DepositCall; + ///Container type for all input parameters for the `draw` function with signature `draw(address,uint256,address)` and selector `0xad24d6a0` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "draw", abi = "draw(address,uint256,address)")] + pub struct DrawCall { + pub token: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + pub to: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `fund` function with signature `fund(address,uint256)` and selector `0x7b1837de` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "fund", abi = "fund(address,uint256)")] + pub struct FundCall { + pub token: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `getAmountOut` function with signature `getAmountOut(uint64,bool,uint256)` and selector `0x7dae4890` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getAmountOut", abi = "getAmountOut(uint64,bool,uint256)")] + pub struct GetAmountOutCall { + pub pool_id: u64, + pub sell_asset: bool, + pub amount_in: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `getBalance` function with signature `getBalance(address,address)` and selector `0xd4fac45d` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getBalance", abi = "getBalance(address,address)")] + pub struct GetBalanceCall { + pub owner: ::ethers::core::types::Address, + pub token: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `getLiquidityDeltas` function with signature `getLiquidityDeltas(uint64,int128)` and selector `0x8992f20a` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getLiquidityDeltas", abi = "getLiquidityDeltas(uint64,int128)")] + pub struct GetLiquidityDeltasCall { + pub pool_id: u64, + pub delta_liquidity: i128, + } + ///Container type for all input parameters for the `getMaxLiquidity` function with signature `getMaxLiquidity(uint64,uint256,uint256)` and selector `0xd6b7dec5` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getMaxLiquidity", abi = "getMaxLiquidity(uint64,uint256,uint256)")] + pub struct GetMaxLiquidityCall { + pub pool_id: u64, + pub amount_0: ::ethers::core::types::U256, + pub amount_1: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `getNetBalance` function with signature `getNetBalance(address)` and selector `0x4dc68a90` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getNetBalance", abi = "getNetBalance(address)")] + pub struct GetNetBalanceCall { + pub token: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `getPairId` function with signature `getPairId(address,address)` and selector `0x3f92a339` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getPairId", abi = "getPairId(address,address)")] + pub struct GetPairIdCall( + pub ::ethers::core::types::Address, + pub ::ethers::core::types::Address, + ); + ///Container type for all input parameters for the `getPairNonce` function with signature `getPairNonce()` and selector `0x078888d6` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getPairNonce", abi = "getPairNonce()")] + pub struct GetPairNonceCall; + ///Container type for all input parameters for the `getPoolNonce` function with signature `getPoolNonce(uint24)` and selector `0xa5cd8a49` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getPoolNonce", abi = "getPoolNonce(uint24)")] + pub struct GetPoolNonceCall(pub u32); + ///Container type for all input parameters for the `getPoolReserves` function with signature `getPoolReserves(uint64)` and selector `0x2afb9df8` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getPoolReserves", abi = "getPoolReserves(uint64)")] + pub struct GetPoolReservesCall { + pub pool_id: u64, + } + ///Container type for all input parameters for the `getReserve` function with signature `getReserve(address)` and selector `0xc9a396e9` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getReserve", abi = "getReserve(address)")] + pub struct GetReserveCall { + pub token: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `getVirtualPrice` function with signature `getVirtualPrice(uint64)` and selector `0x61b7ea6a` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "getVirtualPrice", abi = "getVirtualPrice(uint64)")] + pub struct GetVirtualPriceCall { + pub pool_id: u64, + } + ///Container type for all input parameters for the `getVirtualReservesPerLiquidity` function with signature `getVirtualReservesPerLiquidity(uint64)` and selector `0x1a4b905b` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall( + name = "getVirtualReservesPerLiquidity", + abi = "getVirtualReservesPerLiquidity(uint64)" + )] + pub struct GetVirtualReservesPerLiquidityCall { + pub pool_id: u64, + } + ///Container type for all input parameters for the `multiprocess` function with signature `multiprocess(bytes)` and selector `0xa0fdf413` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "multiprocess", abi = "multiprocess(bytes)")] + pub struct MultiprocessCall { + pub data: ::ethers::core::types::Bytes, + } + ///Container type for all input parameters for the `pairs` function with signature `pairs(uint24)` and selector `0x5e47663c` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "pairs", abi = "pairs(uint24)")] + pub struct PairsCall(pub u32); + ///Container type for all input parameters for the `pools` function with signature `pools(uint64)` and selector `0x89a5f084` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "pools", abi = "pools(uint64)")] + pub struct PoolsCall(pub u64); + ///Container type for all input parameters for the `positions` function with signature `positions(address,uint64)` and selector `0xb68513ea` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "positions", abi = "positions(address,uint64)")] + pub struct PositionsCall(pub ::ethers::core::types::Address, pub u64); + ///Container type for all input parameters for the `setProtocolFee` function with signature `setProtocolFee(uint256)` and selector `0x787dce3d` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "setProtocolFee", abi = "setProtocolFee(uint256)")] + pub struct SetProtocolFeeCall { + pub fee: ::ethers::core::types::U256, + } + ///Container type for all of the contract's call + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum RMM01PortfolioCalls { + Registry(RegistryCall), + Version(VersionCall), + Weth(WethCall), + Account(AccountCall), + ChangeParameters(ChangeParametersCall), + CheckInvariant(CheckInvariantCall), + CheckPool(CheckPoolCall), + CheckPosition(CheckPositionCall), + ComputeMaxInput(ComputeMaxInputCall), + ComputeReservesFromPrice(ComputeReservesFromPriceCall), + Deposit(DepositCall), + Draw(DrawCall), + Fund(FundCall), + GetAmountOut(GetAmountOutCall), + GetBalance(GetBalanceCall), + GetLiquidityDeltas(GetLiquidityDeltasCall), + GetMaxLiquidity(GetMaxLiquidityCall), + GetNetBalance(GetNetBalanceCall), + GetPairId(GetPairIdCall), + GetPairNonce(GetPairNonceCall), + GetPoolNonce(GetPoolNonceCall), + GetPoolReserves(GetPoolReservesCall), + GetReserve(GetReserveCall), + GetVirtualPrice(GetVirtualPriceCall), + GetVirtualReservesPerLiquidity(GetVirtualReservesPerLiquidityCall), + Multiprocess(MultiprocessCall), + Pairs(PairsCall), + Pools(PoolsCall), + Positions(PositionsCall), + SetProtocolFee(SetProtocolFeeCall), + } + impl ::ethers::core::abi::AbiDecode for RMM01PortfolioCalls { + fn decode( + data: impl AsRef<[u8]>, + ) -> ::core::result::Result { + let data = data.as_ref(); + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Registry(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Version(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Weth(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Account(decoded)); + } + if let Ok(decoded) + = ::decode( + data, + ) { + return Ok(Self::ChangeParameters(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::CheckInvariant(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::CheckPool(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::CheckPosition(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::ComputeMaxInput(decoded)); + } + if let Ok(decoded) + = ::decode( + data, + ) { + return Ok(Self::ComputeReservesFromPrice(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Deposit(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Draw(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Fund(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetAmountOut(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetBalance(decoded)); + } + if let Ok(decoded) + = ::decode( + data, + ) { + return Ok(Self::GetLiquidityDeltas(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetMaxLiquidity(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetNetBalance(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetPairId(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetPairNonce(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetPoolNonce(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetPoolReserves(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetReserve(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::GetVirtualPrice(decoded)); + } + if let Ok(decoded) + = ::decode( + data, + ) { + return Ok(Self::GetVirtualReservesPerLiquidity(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Multiprocess(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Pairs(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Pools(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Positions(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::SetProtocolFee(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData.into()) + } + } + impl ::ethers::core::abi::AbiEncode for RMM01PortfolioCalls { + fn encode(self) -> Vec { + match self { + Self::Registry(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Version(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Weth(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Account(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::ChangeParameters(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::CheckInvariant(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::CheckPool(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::CheckPosition(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::ComputeMaxInput(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::ComputeReservesFromPrice(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Deposit(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Draw(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Fund(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::GetAmountOut(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetBalance(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetLiquidityDeltas(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetMaxLiquidity(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetNetBalance(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetPairId(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetPairNonce(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetPoolNonce(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetPoolReserves(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetReserve(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetVirtualPrice(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetVirtualReservesPerLiquidity(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Multiprocess(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Pairs(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Pools(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Positions(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::SetProtocolFee(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + } + } + } + impl ::core::fmt::Display for RMM01PortfolioCalls { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::Registry(element) => ::core::fmt::Display::fmt(element, f), + Self::Version(element) => ::core::fmt::Display::fmt(element, f), + Self::Weth(element) => ::core::fmt::Display::fmt(element, f), + Self::Account(element) => ::core::fmt::Display::fmt(element, f), + Self::ChangeParameters(element) => ::core::fmt::Display::fmt(element, f), + Self::CheckInvariant(element) => ::core::fmt::Display::fmt(element, f), + Self::CheckPool(element) => ::core::fmt::Display::fmt(element, f), + Self::CheckPosition(element) => ::core::fmt::Display::fmt(element, f), + Self::ComputeMaxInput(element) => ::core::fmt::Display::fmt(element, f), + Self::ComputeReservesFromPrice(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::Deposit(element) => ::core::fmt::Display::fmt(element, f), + Self::Draw(element) => ::core::fmt::Display::fmt(element, f), + Self::Fund(element) => ::core::fmt::Display::fmt(element, f), + Self::GetAmountOut(element) => ::core::fmt::Display::fmt(element, f), + Self::GetBalance(element) => ::core::fmt::Display::fmt(element, f), + Self::GetLiquidityDeltas(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::GetMaxLiquidity(element) => ::core::fmt::Display::fmt(element, f), + Self::GetNetBalance(element) => ::core::fmt::Display::fmt(element, f), + Self::GetPairId(element) => ::core::fmt::Display::fmt(element, f), + Self::GetPairNonce(element) => ::core::fmt::Display::fmt(element, f), + Self::GetPoolNonce(element) => ::core::fmt::Display::fmt(element, f), + Self::GetPoolReserves(element) => ::core::fmt::Display::fmt(element, f), + Self::GetReserve(element) => ::core::fmt::Display::fmt(element, f), + Self::GetVirtualPrice(element) => ::core::fmt::Display::fmt(element, f), + Self::GetVirtualReservesPerLiquidity(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::Multiprocess(element) => ::core::fmt::Display::fmt(element, f), + Self::Pairs(element) => ::core::fmt::Display::fmt(element, f), + Self::Pools(element) => ::core::fmt::Display::fmt(element, f), + Self::Positions(element) => ::core::fmt::Display::fmt(element, f), + Self::SetProtocolFee(element) => ::core::fmt::Display::fmt(element, f), + } + } + } + impl ::core::convert::From for RMM01PortfolioCalls { + fn from(value: RegistryCall) -> Self { + Self::Registry(value) + } + } + impl ::core::convert::From for RMM01PortfolioCalls { + fn from(value: VersionCall) -> Self { + Self::Version(value) + } + } + impl ::core::convert::From for RMM01PortfolioCalls { + fn from(value: WethCall) -> Self { + Self::Weth(value) + } + } + impl ::core::convert::From for RMM01PortfolioCalls { + fn from(value: AccountCall) -> Self { + Self::Account(value) + } + } + impl ::core::convert::From for RMM01PortfolioCalls { + fn from(value: ChangeParametersCall) -> Self { + Self::ChangeParameters(value) + } + } + impl ::core::convert::From for RMM01PortfolioCalls { + fn from(value: CheckInvariantCall) -> Self { + Self::CheckInvariant(value) + } + } + impl ::core::convert::From for RMM01PortfolioCalls { + fn from(value: CheckPoolCall) -> Self { + Self::CheckPool(value) + } + } + impl ::core::convert::From for RMM01PortfolioCalls { + fn from(value: CheckPositionCall) -> Self { + Self::CheckPosition(value) + } + } + impl ::core::convert::From for RMM01PortfolioCalls { + fn from(value: ComputeMaxInputCall) -> Self { + Self::ComputeMaxInput(value) + } + } + impl ::core::convert::From for RMM01PortfolioCalls { + fn from(value: ComputeReservesFromPriceCall) -> Self { + Self::ComputeReservesFromPrice(value) + } + } + impl ::core::convert::From for RMM01PortfolioCalls { + fn from(value: DepositCall) -> Self { + Self::Deposit(value) + } + } + impl ::core::convert::From for RMM01PortfolioCalls { + fn from(value: DrawCall) -> Self { + Self::Draw(value) + } + } + impl ::core::convert::From for RMM01PortfolioCalls { + fn from(value: FundCall) -> Self { + Self::Fund(value) + } + } + impl ::core::convert::From for RMM01PortfolioCalls { + fn from(value: GetAmountOutCall) -> Self { + Self::GetAmountOut(value) + } + } + impl ::core::convert::From for RMM01PortfolioCalls { + fn from(value: GetBalanceCall) -> Self { + Self::GetBalance(value) + } + } + impl ::core::convert::From for RMM01PortfolioCalls { + fn from(value: GetLiquidityDeltasCall) -> Self { + Self::GetLiquidityDeltas(value) + } + } + impl ::core::convert::From for RMM01PortfolioCalls { + fn from(value: GetMaxLiquidityCall) -> Self { + Self::GetMaxLiquidity(value) + } + } + impl ::core::convert::From for RMM01PortfolioCalls { + fn from(value: GetNetBalanceCall) -> Self { + Self::GetNetBalance(value) + } + } + impl ::core::convert::From for RMM01PortfolioCalls { + fn from(value: GetPairIdCall) -> Self { + Self::GetPairId(value) + } + } + impl ::core::convert::From for RMM01PortfolioCalls { + fn from(value: GetPairNonceCall) -> Self { + Self::GetPairNonce(value) + } + } + impl ::core::convert::From for RMM01PortfolioCalls { + fn from(value: GetPoolNonceCall) -> Self { + Self::GetPoolNonce(value) + } + } + impl ::core::convert::From for RMM01PortfolioCalls { + fn from(value: GetPoolReservesCall) -> Self { + Self::GetPoolReserves(value) + } + } + impl ::core::convert::From for RMM01PortfolioCalls { + fn from(value: GetReserveCall) -> Self { + Self::GetReserve(value) + } + } + impl ::core::convert::From for RMM01PortfolioCalls { + fn from(value: GetVirtualPriceCall) -> Self { + Self::GetVirtualPrice(value) + } + } + impl ::core::convert::From + for RMM01PortfolioCalls { + fn from(value: GetVirtualReservesPerLiquidityCall) -> Self { + Self::GetVirtualReservesPerLiquidity(value) + } + } + impl ::core::convert::From for RMM01PortfolioCalls { + fn from(value: MultiprocessCall) -> Self { + Self::Multiprocess(value) + } + } + impl ::core::convert::From for RMM01PortfolioCalls { + fn from(value: PairsCall) -> Self { + Self::Pairs(value) + } + } + impl ::core::convert::From for RMM01PortfolioCalls { + fn from(value: PoolsCall) -> Self { + Self::Pools(value) + } + } + impl ::core::convert::From for RMM01PortfolioCalls { + fn from(value: PositionsCall) -> Self { + Self::Positions(value) + } + } + impl ::core::convert::From for RMM01PortfolioCalls { + fn from(value: SetProtocolFeeCall) -> Self { + Self::SetProtocolFee(value) + } + } + ///Container type for all return fields from the `REGISTRY` function with signature `REGISTRY()` and selector `0x06433b1b` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct RegistryReturn(pub ::ethers::core::types::Address); + ///Container type for all return fields from the `VERSION` function with signature `VERSION()` and selector `0xffa1ad74` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct VersionReturn(pub ::std::string::String); + ///Container type for all return fields from the `WETH` function with signature `WETH()` and selector `0xad5c4648` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct WethReturn(pub ::ethers::core::types::Address); + ///Container type for all return fields from the `__account__` function with signature `__account__()` and selector `0xda31ee54` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct AccountReturn { + pub settled: bool, + } + ///Container type for all return fields from the `checkInvariant` function with signature `checkInvariant(uint64,int256,uint256,uint256,uint256)` and selector `0x2f337da5` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct CheckInvariantReturn { + pub p0: bool, + pub next_invariant: ::ethers::core::types::I256, + } + ///Container type for all return fields from the `checkPool` function with signature `checkPool(uint64)` and selector `0xa68aaa41` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct CheckPoolReturn(pub bool); + ///Container type for all return fields from the `checkPosition` function with signature `checkPosition(uint64,address,int256)` and selector `0x2cc6641e` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct CheckPositionReturn(pub bool); + ///Container type for all return fields from the `computeMaxInput` function with signature `computeMaxInput(uint64,bool,uint256,uint256)` and selector `0x989bafba` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct ComputeMaxInputReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `computeReservesFromPrice` function with signature `computeReservesFromPrice(uint64,uint256)` and selector `0xc48d887a` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct ComputeReservesFromPriceReturn { + pub reserve_x: ::ethers::core::types::U256, + pub reserve_y: ::ethers::core::types::U256, + } + ///Container type for all return fields from the `getAmountOut` function with signature `getAmountOut(uint64,bool,uint256)` and selector `0x7dae4890` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetAmountOutReturn { + pub output: ::ethers::core::types::U256, + } + ///Container type for all return fields from the `getBalance` function with signature `getBalance(address,address)` and selector `0xd4fac45d` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetBalanceReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `getLiquidityDeltas` function with signature `getLiquidityDeltas(uint64,int128)` and selector `0x8992f20a` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetLiquidityDeltasReturn { + pub delta_asset: u128, + pub delta_quote: u128, + } + ///Container type for all return fields from the `getMaxLiquidity` function with signature `getMaxLiquidity(uint64,uint256,uint256)` and selector `0xd6b7dec5` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetMaxLiquidityReturn { + pub delta_liquidity: u128, + } + ///Container type for all return fields from the `getNetBalance` function with signature `getNetBalance(address)` and selector `0x4dc68a90` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetNetBalanceReturn(pub ::ethers::core::types::I256); + ///Container type for all return fields from the `getPairId` function with signature `getPairId(address,address)` and selector `0x3f92a339` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetPairIdReturn(pub u32); + ///Container type for all return fields from the `getPairNonce` function with signature `getPairNonce()` and selector `0x078888d6` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetPairNonceReturn(pub u32); + ///Container type for all return fields from the `getPoolNonce` function with signature `getPoolNonce(uint24)` and selector `0xa5cd8a49` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetPoolNonceReturn(pub u32); + ///Container type for all return fields from the `getPoolReserves` function with signature `getPoolReserves(uint64)` and selector `0x2afb9df8` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetPoolReservesReturn { + pub delta_asset: ::ethers::core::types::U256, + pub delta_quote: ::ethers::core::types::U256, + } + ///Container type for all return fields from the `getReserve` function with signature `getReserve(address)` and selector `0xc9a396e9` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetReserveReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `getVirtualPrice` function with signature `getVirtualPrice(uint64)` and selector `0x61b7ea6a` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetVirtualPriceReturn { + pub price: ::ethers::core::types::U256, + } + ///Container type for all return fields from the `getVirtualReservesPerLiquidity` function with signature `getVirtualReservesPerLiquidity(uint64)` and selector `0x1a4b905b` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct GetVirtualReservesPerLiquidityReturn { + pub delta_asset: u128, + pub delta_quote: u128, + } + ///Container type for all return fields from the `pairs` function with signature `pairs(uint24)` and selector `0x5e47663c` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct PairsReturn { + pub token_asset: ::ethers::core::types::Address, + pub decimals_asset: u8, + pub token_quote: ::ethers::core::types::Address, + pub decimals_quote: u8, + } + ///Container type for all return fields from the `pools` function with signature `pools(uint64)` and selector `0x89a5f084` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct PoolsReturn { + pub virtual_x: u128, + pub virtual_y: u128, + pub liquidity: u128, + pub last_timestamp: u32, + pub controller: ::ethers::core::types::Address, + pub invariant_growth_global: ::ethers::core::types::U256, + pub fee_growth_global_asset: ::ethers::core::types::U256, + pub fee_growth_global_quote: ::ethers::core::types::U256, + pub params: PortfolioCurve, + pub pair: PortfolioPair, + } + ///Container type for all return fields from the `positions` function with signature `positions(address,uint64)` and selector `0xb68513ea` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct PositionsReturn { + pub free_liquidity: u128, + pub last_timestamp: u32, + pub invariant_growth_last: ::ethers::core::types::U256, + pub fee_growth_asset_last: ::ethers::core::types::U256, + pub fee_growth_quote_last: ::ethers::core::types::U256, + pub tokens_owed_asset: u128, + pub tokens_owed_quote: u128, + pub invariant_owed: u128, + } +} +pub use safe_cast_lib::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod safe_cast_lib { + #[rustfmt::skip] + const __ABI: &str = "[]"; + ///The parsed JSON ABI of the contract. + pub static SAFECASTLIB_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| + ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); + #[rustfmt::skip] + const __BYTECODE: &[u8] = &[ + 96, + 86, + 96, + 55, + 96, + 11, + 130, + 130, + 130, + 57, + 128, + 81, + 96, + 0, + 26, + 96, + 115, + 20, + 96, + 42, + 87, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 0, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 48, + 96, + 0, + 82, + 96, + 115, + 129, + 83, + 130, + 129, + 243, + 254, + 115, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 48, + 20, + 96, + 128, + 96, + 64, + 82, + 96, + 0, + 128, + 253, + 254, + 162, + 100, + 105, + 112, + 102, + 115, + 88, + 34, + 18, + 32, + 144, + 241, + 46, + 211, + 193, + 142, + 242, + 140, + 191, + 246, + 54, + 108, + 169, + 239, + 100, + 3, + 225, + 42, + 159, + 55, + 100, + 129, + 107, + 129, + 229, + 84, + 107, + 126, + 180, + 210, + 176, + 21, + 100, + 115, + 111, + 108, + 99, + 67, + 0, + 8, + 13, + 0, + 51, + ]; + ///The bytecode of the contract. + pub static SAFECASTLIB_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __BYTECODE, + ); + #[rustfmt::skip] + const __DEPLOYED_BYTECODE: &[u8] = &[ + 115, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 48, + 20, + 96, + 128, + 96, + 64, + 82, + 96, + 0, + 128, + 253, + 254, + 162, + 100, + 105, + 112, + 102, + 115, + 88, + 34, + 18, + 32, + 144, + 241, + 46, + 211, + 193, + 142, + 242, + 140, + 191, + 246, + 54, + 108, + 169, + 239, + 100, + 3, + 225, + 42, + 159, + 55, + 100, + 129, + 107, + 129, + 229, + 84, + 107, + 126, + 180, + 210, + 176, + 21, + 100, + 115, + 111, + 108, + 99, + 67, + 0, + 8, + 13, + 0, + 51, + ]; + ///The deployed bytecode of the contract. + pub static SAFECASTLIB_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __DEPLOYED_BYTECODE, + ); + pub struct SafeCastLib(::ethers::contract::Contract); + impl ::core::clone::Clone for SafeCastLib { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for SafeCastLib { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for SafeCastLib { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for SafeCastLib { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(stringify!(SafeCastLib)).field(&self.address()).finish() + } + } + impl SafeCastLib { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + SAFECASTLIB_ABI.clone(), + client, + ), + ) + } + /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. + /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction + /// + /// Notes: + /// - If there are no constructor arguments, you should pass `()` as the argument. + /// - The default poll duration is 7 seconds. + /// - The default number of confirmations is 1 block. + /// + /// + /// # Example + /// + /// Generate contract bindings with `abigen!` and deploy a new contract instance. + /// + /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. + /// + /// ```ignore + /// # async fn deploy(client: ::std::sync::Arc) { + /// abigen!(Greeter, "../greeter.json"); + /// + /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); + /// let msg = greeter_contract.greet().call().await.unwrap(); + /// # } + /// ``` + pub fn deploy( + client: ::std::sync::Arc, + constructor_args: T, + ) -> ::core::result::Result< + ::ethers::contract::builders::ContractDeployer, + ::ethers::contract::ContractError, + > { + let factory = ::ethers::contract::ContractFactory::new( + SAFECASTLIB_ABI.clone(), + SAFECASTLIB_BYTECODE.clone().into(), + client, + ); + let deployer = factory.deploy(constructor_args)?; + let deployer = ::ethers::contract::ContractDeployer::new(deployer); + Ok(deployer) + } + } + impl From<::ethers::contract::Contract> + for SafeCastLib { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } +} +pub use safe_transfer_lib::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod safe_transfer_lib { + #[rustfmt::skip] + const __ABI: &str = "[]"; + ///The parsed JSON ABI of the contract. + pub static SAFETRANSFERLIB_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| + ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); + #[rustfmt::skip] + const __BYTECODE: &[u8] = &[ + 96, + 86, + 96, + 55, + 96, + 11, + 130, + 130, + 130, + 57, + 128, + 81, + 96, + 0, + 26, + 96, + 115, + 20, + 96, + 42, + 87, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 0, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 48, + 96, + 0, + 82, + 96, + 115, + 129, + 83, + 130, + 129, + 243, + 254, + 115, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 48, + 20, + 96, + 128, + 96, + 64, + 82, + 96, + 0, + 128, + 253, + 254, + 162, + 100, + 105, + 112, + 102, + 115, + 88, + 34, + 18, + 32, + 218, + 171, + 27, + 243, + 76, + 51, + 176, + 35, + 130, + 133, + 83, + 89, + 119, + 241, + 222, + 130, + 95, + 14, + 31, + 82, + 35, + 227, + 53, + 188, + 244, + 129, + 119, + 126, + 163, + 0, + 126, + 59, + 100, + 115, + 111, + 108, + 99, + 67, + 0, + 8, + 13, + 0, + 51, + ]; + ///The bytecode of the contract. + pub static SAFETRANSFERLIB_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __BYTECODE, + ); + #[rustfmt::skip] + const __DEPLOYED_BYTECODE: &[u8] = &[ + 115, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 48, + 20, + 96, + 128, + 96, + 64, + 82, + 96, + 0, + 128, + 253, + 254, + 162, + 100, + 105, + 112, + 102, + 115, + 88, + 34, + 18, + 32, + 218, + 171, + 27, + 243, + 76, + 51, + 176, + 35, + 130, + 133, + 83, + 89, + 119, + 241, + 222, + 130, + 95, + 14, + 31, + 82, + 35, + 227, + 53, + 188, + 244, + 129, + 119, + 126, + 163, + 0, + 126, + 59, + 100, + 115, + 111, + 108, + 99, + 67, + 0, + 8, + 13, + 0, + 51, + ]; + ///The deployed bytecode of the contract. + pub static SAFETRANSFERLIB_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __DEPLOYED_BYTECODE, + ); + pub struct SafeTransferLib(::ethers::contract::Contract); + impl ::core::clone::Clone for SafeTransferLib { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for SafeTransferLib { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for SafeTransferLib { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for SafeTransferLib { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(stringify!(SafeTransferLib)).field(&self.address()).finish() + } + } + impl SafeTransferLib { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + SAFETRANSFERLIB_ABI.clone(), + client, + ), + ) + } + /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. + /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction + /// + /// Notes: + /// - If there are no constructor arguments, you should pass `()` as the argument. + /// - The default poll duration is 7 seconds. + /// - The default number of confirmations is 1 block. + /// + /// + /// # Example + /// + /// Generate contract bindings with `abigen!` and deploy a new contract instance. + /// + /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. + /// + /// ```ignore + /// # async fn deploy(client: ::std::sync::Arc) { + /// abigen!(Greeter, "../greeter.json"); + /// + /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); + /// let msg = greeter_contract.greet().call().await.unwrap(); + /// # } + /// ``` + pub fn deploy( + client: ::std::sync::Arc, + constructor_args: T, + ) -> ::core::result::Result< + ::ethers::contract::builders::ContractDeployer, + ::ethers::contract::ContractError, + > { + let factory = ::ethers::contract::ContractFactory::new( + SAFETRANSFERLIB_ABI.clone(), + SAFETRANSFERLIB_BYTECODE.clone().into(), + client, + ); + let deployer = factory.deploy(constructor_args)?; + let deployer = ::ethers::contract::ContractDeployer::new(deployer); + Ok(deployer) + } + } + impl From<::ethers::contract::Contract> + for SafeTransferLib { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } +} +pub use simple_registry::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod simple_registry { + #[rustfmt::skip] + const __ABI: &str = "[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"portfolio\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"claimFee\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"controller\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"portfolio\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"setFee\",\"outputs\":[]}]"; + ///The parsed JSON ABI of the contract. + pub static SIMPLEREGISTRY_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| + ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); + #[rustfmt::skip] + const __BYTECODE: &[u8] = &[ + 96, + 128, + 96, + 64, + 82, + 52, + 128, + 21, + 97, + 0, + 16, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 96, + 0, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 25, + 22, + 51, + 23, + 144, + 85, + 97, + 2, + 166, + 128, + 97, + 0, + 50, + 96, + 0, + 57, + 96, + 0, + 243, + 254, + 96, + 128, + 96, + 64, + 82, + 52, + 128, + 21, + 97, + 0, + 16, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 96, + 4, + 54, + 16, + 97, + 0, + 65, + 87, + 96, + 0, + 53, + 96, + 224, + 28, + 128, + 99, + 44, + 252, + 244, + 35, + 20, + 97, + 0, + 70, + 87, + 128, + 99, + 229, + 81, + 86, + 181, + 20, + 97, + 0, + 91, + 87, + 128, + 99, + 247, + 124, + 71, + 145, + 20, + 97, + 0, + 110, + 87, + 91, + 96, + 0, + 128, + 253, + 91, + 97, + 0, + 89, + 97, + 0, + 84, + 54, + 96, + 4, + 97, + 1, + 249, + 86, + 91, + 97, + 0, + 157, + 86, + 91, + 0, + 91, + 97, + 0, + 89, + 97, + 0, + 105, + 54, + 96, + 4, + 97, + 2, + 70, + 86, + 91, + 97, + 1, + 70, + 86, + 91, + 96, + 0, + 84, + 97, + 0, + 129, + 144, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 86, + 91, + 96, + 64, + 81, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 144, + 145, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 243, + 91, + 96, + 0, + 128, + 84, + 48, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 25, + 130, + 22, + 23, + 144, + 145, + 85, + 96, + 64, + 81, + 99, + 5, + 105, + 38, + 181, + 96, + 229, + 27, + 129, + 82, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 133, + 129, + 22, + 96, + 4, + 131, + 1, + 82, + 96, + 36, + 130, + 1, + 133, + 144, + 82, + 131, + 129, + 22, + 96, + 68, + 131, + 1, + 82, + 145, + 130, + 22, + 145, + 134, + 22, + 144, + 99, + 173, + 36, + 214, + 160, + 144, + 96, + 100, + 1, + 96, + 0, + 96, + 64, + 81, + 128, + 131, + 3, + 129, + 96, + 0, + 135, + 128, + 59, + 21, + 128, + 21, + 97, + 1, + 7, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 90, + 241, + 21, + 128, + 21, + 97, + 1, + 27, + 87, + 61, + 96, + 0, + 128, + 62, + 61, + 96, + 0, + 253, + 91, + 80, + 80, + 96, + 0, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 25, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 148, + 144, + 148, + 22, + 147, + 144, + 147, + 23, + 144, + 146, + 85, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 84, + 48, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 25, + 130, + 22, + 23, + 144, + 145, + 85, + 96, + 64, + 81, + 99, + 120, + 125, + 206, + 61, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 129, + 1, + 131, + 144, + 82, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 145, + 130, + 22, + 145, + 132, + 22, + 144, + 99, + 120, + 125, + 206, + 61, + 144, + 96, + 36, + 1, + 96, + 0, + 96, + 64, + 81, + 128, + 131, + 3, + 129, + 96, + 0, + 135, + 128, + 59, + 21, + 128, + 21, + 97, + 1, + 160, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 90, + 241, + 21, + 128, + 21, + 97, + 1, + 180, + 87, + 61, + 96, + 0, + 128, + 62, + 61, + 96, + 0, + 253, + 91, + 80, + 80, + 96, + 0, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 25, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 148, + 144, + 148, + 22, + 147, + 144, + 147, + 23, + 144, + 146, + 85, + 80, + 80, + 80, + 80, + 86, + 91, + 128, + 53, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 129, + 22, + 129, + 20, + 97, + 1, + 244, + 87, + 96, + 0, + 128, + 253, + 91, + 145, + 144, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 128, + 96, + 128, + 133, + 135, + 3, + 18, + 21, + 97, + 2, + 15, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 2, + 24, + 133, + 97, + 1, + 221, + 86, + 91, + 147, + 80, + 97, + 2, + 38, + 96, + 32, + 134, + 1, + 97, + 1, + 221, + 86, + 91, + 146, + 80, + 96, + 64, + 133, + 1, + 53, + 145, + 80, + 97, + 2, + 59, + 96, + 96, + 134, + 1, + 97, + 1, + 221, + 86, + 91, + 144, + 80, + 146, + 149, + 145, + 148, + 80, + 146, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 64, + 131, + 133, + 3, + 18, + 21, + 97, + 2, + 89, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 2, + 98, + 131, + 97, + 1, + 221, + 86, + 91, + 148, + 96, + 32, + 147, + 144, + 147, + 1, + 53, + 147, + 80, + 80, + 80, + 86, + 254, + 162, + 100, + 105, + 112, + 102, + 115, + 88, + 34, + 18, + 32, + 21, + 217, + 237, + 218, + 27, + 174, + 172, + 172, + 165, + 161, + 199, + 237, + 35, + 147, + 16, + 93, + 94, + 69, + 86, + 16, + 255, + 152, + 130, + 13, + 101, + 197, + 27, + 148, + 90, + 35, + 181, + 179, + 100, + 115, + 111, + 108, + 99, + 67, + 0, + 8, + 13, + 0, + 51, + ]; + ///The bytecode of the contract. + pub static SIMPLEREGISTRY_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __BYTECODE, + ); + #[rustfmt::skip] + const __DEPLOYED_BYTECODE: &[u8] = &[ + 96, + 128, + 96, + 64, + 82, + 52, + 128, + 21, + 97, + 0, + 16, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 96, + 4, + 54, + 16, + 97, + 0, + 65, + 87, + 96, + 0, + 53, + 96, + 224, + 28, + 128, + 99, + 44, + 252, + 244, + 35, + 20, + 97, + 0, + 70, + 87, + 128, + 99, + 229, + 81, + 86, + 181, + 20, + 97, + 0, + 91, + 87, + 128, + 99, + 247, + 124, + 71, + 145, + 20, + 97, + 0, + 110, + 87, + 91, + 96, + 0, + 128, + 253, + 91, + 97, + 0, + 89, + 97, + 0, + 84, + 54, + 96, + 4, + 97, + 1, + 249, + 86, + 91, + 97, + 0, + 157, + 86, + 91, + 0, + 91, + 97, + 0, + 89, + 97, + 0, + 105, + 54, + 96, + 4, + 97, + 2, + 70, + 86, + 91, + 97, + 1, + 70, + 86, + 91, + 96, + 0, + 84, + 97, + 0, + 129, + 144, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 22, + 129, + 86, + 91, + 96, + 64, + 81, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 144, + 145, + 22, + 129, + 82, + 96, + 32, + 1, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 243, + 91, + 96, + 0, + 128, + 84, + 48, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 25, + 130, + 22, + 23, + 144, + 145, + 85, + 96, + 64, + 81, + 99, + 5, + 105, + 38, + 181, + 96, + 229, + 27, + 129, + 82, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 133, + 129, + 22, + 96, + 4, + 131, + 1, + 82, + 96, + 36, + 130, + 1, + 133, + 144, + 82, + 131, + 129, + 22, + 96, + 68, + 131, + 1, + 82, + 145, + 130, + 22, + 145, + 134, + 22, + 144, + 99, + 173, + 36, + 214, + 160, + 144, + 96, + 100, + 1, + 96, + 0, + 96, + 64, + 81, + 128, + 131, + 3, + 129, + 96, + 0, + 135, + 128, + 59, + 21, + 128, + 21, + 97, + 1, + 7, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 90, + 241, + 21, + 128, + 21, + 97, + 1, + 27, + 87, + 61, + 96, + 0, + 128, + 62, + 61, + 96, + 0, + 253, + 91, + 80, + 80, + 96, + 0, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 25, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 148, + 144, + 148, + 22, + 147, + 144, + 147, + 23, + 144, + 146, + 85, + 80, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 128, + 84, + 48, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 25, + 130, + 22, + 23, + 144, + 145, + 85, + 96, + 64, + 81, + 99, + 120, + 125, + 206, + 61, + 96, + 224, + 27, + 129, + 82, + 96, + 4, + 129, + 1, + 131, + 144, + 82, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 145, + 130, + 22, + 145, + 132, + 22, + 144, + 99, + 120, + 125, + 206, + 61, + 144, + 96, + 36, + 1, + 96, + 0, + 96, + 64, + 81, + 128, + 131, + 3, + 129, + 96, + 0, + 135, + 128, + 59, + 21, + 128, + 21, + 97, + 1, + 160, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 90, + 241, + 21, + 128, + 21, + 97, + 1, + 180, + 87, + 61, + 96, + 0, + 128, + 62, + 61, + 96, + 0, + 253, + 91, + 80, + 80, + 96, + 0, + 128, + 84, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 25, + 22, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 148, + 144, + 148, + 22, + 147, + 144, + 147, + 23, + 144, + 146, + 85, + 80, + 80, + 80, + 80, + 86, + 91, + 128, + 53, + 96, + 1, + 96, + 1, + 96, + 160, + 27, + 3, + 129, + 22, + 129, + 20, + 97, + 1, + 244, + 87, + 96, + 0, + 128, + 253, + 91, + 145, + 144, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 0, + 128, + 96, + 128, + 133, + 135, + 3, + 18, + 21, + 97, + 2, + 15, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 2, + 24, + 133, + 97, + 1, + 221, + 86, + 91, + 147, + 80, + 97, + 2, + 38, + 96, + 32, + 134, + 1, + 97, + 1, + 221, + 86, + 91, + 146, + 80, + 96, + 64, + 133, + 1, + 53, + 145, + 80, + 97, + 2, + 59, + 96, + 96, + 134, + 1, + 97, + 1, + 221, + 86, + 91, + 144, + 80, + 146, + 149, + 145, + 148, + 80, + 146, + 80, + 86, + 91, + 96, + 0, + 128, + 96, + 64, + 131, + 133, + 3, + 18, + 21, + 97, + 2, + 89, + 87, + 96, + 0, + 128, + 253, + 91, + 97, + 2, + 98, + 131, + 97, + 1, + 221, + 86, + 91, + 148, + 96, + 32, + 147, + 144, + 147, + 1, + 53, + 147, + 80, + 80, + 80, + 86, + 254, + 162, + 100, + 105, + 112, + 102, + 115, + 88, + 34, + 18, + 32, + 21, + 217, + 237, + 218, + 27, + 174, + 172, + 172, + 165, + 161, + 199, + 237, + 35, + 147, + 16, + 93, + 94, + 69, + 86, + 16, + 255, + 152, + 130, + 13, + 101, + 197, + 27, + 148, + 90, + 35, + 181, + 179, + 100, + 115, + 111, + 108, + 99, + 67, + 0, + 8, + 13, + 0, + 51, + ]; + ///The deployed bytecode of the contract. + pub static SIMPLEREGISTRY_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __DEPLOYED_BYTECODE, + ); + pub struct SimpleRegistry(::ethers::contract::Contract); + impl ::core::clone::Clone for SimpleRegistry { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for SimpleRegistry { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for SimpleRegistry { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for SimpleRegistry { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(stringify!(SimpleRegistry)).field(&self.address()).finish() + } + } + impl SimpleRegistry { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + SIMPLEREGISTRY_ABI.clone(), + client, + ), + ) + } + /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. + /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction + /// + /// Notes: + /// - If there are no constructor arguments, you should pass `()` as the argument. + /// - The default poll duration is 7 seconds. + /// - The default number of confirmations is 1 block. + /// + /// + /// # Example + /// + /// Generate contract bindings with `abigen!` and deploy a new contract instance. + /// + /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. + /// + /// ```ignore + /// # async fn deploy(client: ::std::sync::Arc) { + /// abigen!(Greeter, "../greeter.json"); + /// + /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); + /// let msg = greeter_contract.greet().call().await.unwrap(); + /// # } + /// ``` + pub fn deploy( + client: ::std::sync::Arc, + constructor_args: T, + ) -> ::core::result::Result< + ::ethers::contract::builders::ContractDeployer, + ::ethers::contract::ContractError, + > { + let factory = ::ethers::contract::ContractFactory::new( + SIMPLEREGISTRY_ABI.clone(), + SIMPLEREGISTRY_BYTECODE.clone().into(), + client, + ); + let deployer = factory.deploy(constructor_args)?; + let deployer = ::ethers::contract::ContractDeployer::new(deployer); + Ok(deployer) + } + ///Calls the contract's `claimFee` (0x2cfcf423) function + pub fn claim_fee( + &self, + portfolio: ::ethers::core::types::Address, + token: ::ethers::core::types::Address, + amount: ::ethers::core::types::U256, + to: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([44, 252, 244, 35], (portfolio, token, amount, to)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `controller` (0xf77c4791) function + pub fn controller( + &self, + ) -> ::ethers::contract::builders::ContractCall< + M, + ::ethers::core::types::Address, + > { + self.0 + .method_hash([247, 124, 71, 145], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `setFee` (0xe55156b5) function + pub fn set_fee( + &self, + portfolio: ::ethers::core::types::Address, + fee: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([229, 81, 86, 181], (portfolio, fee)) + .expect("method not found (this should never happen)") + } + } + impl From<::ethers::contract::Contract> + for SimpleRegistry { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } + ///Container type for all input parameters for the `claimFee` function with signature `claimFee(address,address,uint256,address)` and selector `0x2cfcf423` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "claimFee", abi = "claimFee(address,address,uint256,address)")] + pub struct ClaimFeeCall { + pub portfolio: ::ethers::core::types::Address, + pub token: ::ethers::core::types::Address, + pub amount: ::ethers::core::types::U256, + pub to: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `controller` function with signature `controller()` and selector `0xf77c4791` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "controller", abi = "controller()")] + pub struct ControllerCall; + ///Container type for all input parameters for the `setFee` function with signature `setFee(address,uint256)` and selector `0xe55156b5` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "setFee", abi = "setFee(address,uint256)")] + pub struct SetFeeCall { + pub portfolio: ::ethers::core::types::Address, + pub fee: ::ethers::core::types::U256, + } + ///Container type for all of the contract's call + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum SimpleRegistryCalls { + ClaimFee(ClaimFeeCall), + Controller(ControllerCall), + SetFee(SetFeeCall), + } + impl ::ethers::core::abi::AbiDecode for SimpleRegistryCalls { + fn decode( + data: impl AsRef<[u8]>, + ) -> ::core::result::Result { + let data = data.as_ref(); + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::ClaimFee(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Controller(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::SetFee(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData.into()) + } + } + impl ::ethers::core::abi::AbiEncode for SimpleRegistryCalls { + fn encode(self) -> Vec { + match self { + Self::ClaimFee(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Controller(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::SetFee(element) => ::ethers::core::abi::AbiEncode::encode(element), + } + } + } + impl ::core::fmt::Display for SimpleRegistryCalls { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::ClaimFee(element) => ::core::fmt::Display::fmt(element, f), + Self::Controller(element) => ::core::fmt::Display::fmt(element, f), + Self::SetFee(element) => ::core::fmt::Display::fmt(element, f), + } + } + } + impl ::core::convert::From for SimpleRegistryCalls { + fn from(value: ClaimFeeCall) -> Self { + Self::ClaimFee(value) + } + } + impl ::core::convert::From for SimpleRegistryCalls { + fn from(value: ControllerCall) -> Self { + Self::Controller(value) + } + } + impl ::core::convert::From for SimpleRegistryCalls { + fn from(value: SetFeeCall) -> Self { + Self::SetFee(value) + } + } + ///Container type for all return fields from the `controller` function with signature `controller()` and selector `0xf77c4791` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct ControllerReturn(pub ::ethers::core::types::Address); +} +pub use units::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod units { + #[rustfmt::skip] + const __ABI: &str = "[]"; + ///The parsed JSON ABI of the contract. + pub static UNITS_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| + ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); + pub struct Units(::ethers::contract::Contract); + impl ::core::clone::Clone for Units { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for Units { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for Units { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for Units { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(stringify!(Units)).field(&self.address()).finish() + } + } + impl Units { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + UNITS_ABI.clone(), + client, + ), + ) + } + } + impl From<::ethers::contract::Contract> + for Units { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } +} +pub use weth9::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod weth9 { + #[rustfmt::skip] + const __ABI: &str = "[{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"name\",\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[{\"name\":\"guy\",\"type\":\"address\",\"components\":[]},{\"name\":\"wad\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"approve\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"totalSupply\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"name\":\"src\",\"type\":\"address\",\"components\":[]},{\"name\":\"dst\",\"type\":\"address\",\"components\":[]},{\"name\":\"wad\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transferFrom\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"name\":\"wad\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"withdraw\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"decimals\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"components\":[]}]},{\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"symbol\",\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[{\"name\":\"dst\",\"type\":\"address\",\"components\":[]},{\"name\":\"wad\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transfer\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"deposit\",\"outputs\":[]},{\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"components\":[]},{\"name\":\"\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"allowance\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"payable\",\"type\":\"fallback\",\"outputs\":[]},{\"inputs\":[{\"name\":\"src\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"name\":\"guy\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"name\":\"wad\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Approval\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"name\":\"src\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"name\":\"dst\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"name\":\"wad\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Transfer\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"name\":\"dst\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"name\":\"wad\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Deposit\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"name\":\"src\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"name\":\"wad\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Withdrawal\",\"outputs\":[],\"anonymous\":false}]"; + ///The parsed JSON ABI of the contract. + pub static WETH9_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| + ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); + #[rustfmt::skip] + const __BYTECODE: &[u8] = &[ + 96, + 192, + 96, + 64, + 82, + 96, + 13, + 96, + 128, + 129, + 144, + 82, + 127, + 87, + 114, + 97, + 112, + 112, + 101, + 100, + 32, + 69, + 116, + 104, + 101, + 114, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 96, + 160, + 144, + 129, + 82, + 97, + 0, + 62, + 145, + 96, + 0, + 145, + 144, + 97, + 0, + 163, + 86, + 91, + 80, + 96, + 64, + 128, + 81, + 128, + 130, + 1, + 144, + 145, + 82, + 96, + 4, + 128, + 130, + 82, + 127, + 87, + 69, + 84, + 72, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 96, + 32, + 144, + 146, + 1, + 145, + 130, + 82, + 97, + 0, + 131, + 145, + 96, + 1, + 145, + 97, + 0, + 163, + 86, + 91, + 80, + 96, + 2, + 128, + 84, + 96, + 255, + 25, + 22, + 96, + 18, + 23, + 144, + 85, + 52, + 128, + 21, + 97, + 0, + 157, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 1, + 62, + 86, + 91, + 130, + 128, + 84, + 96, + 1, + 129, + 96, + 1, + 22, + 21, + 97, + 1, + 0, + 2, + 3, + 22, + 96, + 2, + 144, + 4, + 144, + 96, + 0, + 82, + 96, + 32, + 96, + 0, + 32, + 144, + 96, + 31, + 1, + 96, + 32, + 144, + 4, + 129, + 1, + 146, + 130, + 96, + 31, + 16, + 97, + 0, + 228, + 87, + 128, + 81, + 96, + 255, + 25, + 22, + 131, + 128, + 1, + 23, + 133, + 85, + 97, + 1, + 17, + 86, + 91, + 130, + 128, + 1, + 96, + 1, + 1, + 133, + 85, + 130, + 21, + 97, + 1, + 17, + 87, + 145, + 130, + 1, + 91, + 130, + 129, + 17, + 21, + 97, + 1, + 17, + 87, + 130, + 81, + 130, + 85, + 145, + 96, + 32, + 1, + 145, + 144, + 96, + 1, + 1, + 144, + 97, + 0, + 246, + 86, + 91, + 80, + 97, + 1, + 29, + 146, + 145, + 80, + 97, + 1, + 33, + 86, + 91, + 80, + 144, + 86, + 91, + 97, + 1, + 59, + 145, + 144, + 91, + 128, + 130, + 17, + 21, + 97, + 1, + 29, + 87, + 96, + 0, + 129, + 85, + 96, + 1, + 1, + 97, + 1, + 39, + 86, + 91, + 144, + 86, + 91, + 97, + 6, + 86, + 128, + 97, + 1, + 77, + 96, + 0, + 57, + 96, + 0, + 243, + 0, + 96, + 128, + 96, + 64, + 82, + 96, + 4, + 54, + 16, + 97, + 0, + 146, + 87, + 96, + 0, + 53, + 96, + 224, + 28, + 99, + 255, + 255, + 255, + 255, + 22, + 128, + 99, + 6, + 253, + 222, + 3, + 20, + 97, + 0, + 156, + 87, + 128, + 99, + 9, + 94, + 167, + 179, + 20, + 97, + 1, + 38, + 87, + 128, + 99, + 24, + 22, + 13, + 221, + 20, + 97, + 1, + 94, + 87, + 128, + 99, + 35, + 184, + 114, + 221, + 20, + 97, + 1, + 133, + 87, + 128, + 99, + 46, + 26, + 125, + 77, + 20, + 97, + 1, + 175, + 87, + 128, + 99, + 49, + 60, + 229, + 103, + 20, + 97, + 1, + 199, + 87, + 128, + 99, + 112, + 160, + 130, + 49, + 20, + 97, + 1, + 242, + 87, + 128, + 99, + 149, + 216, + 155, + 65, + 20, + 97, + 2, + 19, + 87, + 128, + 99, + 169, + 5, + 156, + 187, + 20, + 97, + 2, + 40, + 87, + 128, + 99, + 208, + 227, + 13, + 176, + 20, + 97, + 0, + 146, + 87, + 128, + 99, + 221, + 98, + 237, + 62, + 20, + 97, + 2, + 76, + 87, + 91, + 97, + 0, + 154, + 97, + 2, + 115, + 86, + 91, + 0, + 91, + 52, + 128, + 21, + 97, + 0, + 168, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 0, + 177, + 97, + 2, + 194, + 86, + 91, + 96, + 64, + 128, + 81, + 96, + 32, + 128, + 130, + 82, + 131, + 81, + 129, + 131, + 1, + 82, + 131, + 81, + 145, + 146, + 131, + 146, + 144, + 131, + 1, + 145, + 133, + 1, + 144, + 128, + 131, + 131, + 96, + 0, + 91, + 131, + 129, + 16, + 21, + 97, + 0, + 235, + 87, + 129, + 129, + 1, + 81, + 131, + 130, + 1, + 82, + 96, + 32, + 1, + 97, + 0, + 211, + 86, + 91, + 80, + 80, + 80, + 80, + 144, + 80, + 144, + 129, + 1, + 144, + 96, + 31, + 22, + 128, + 21, + 97, + 1, + 24, + 87, + 128, + 130, + 3, + 128, + 81, + 96, + 1, + 131, + 96, + 32, + 3, + 97, + 1, + 0, + 10, + 3, + 25, + 22, + 129, + 82, + 96, + 32, + 1, + 145, + 80, + 91, + 80, + 146, + 80, + 80, + 80, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 243, + 91, + 52, + 128, + 21, + 97, + 1, + 50, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 1, + 74, + 96, + 1, + 96, + 160, + 96, + 2, + 10, + 3, + 96, + 4, + 53, + 22, + 96, + 36, + 53, + 97, + 3, + 80, + 86, + 91, + 96, + 64, + 128, + 81, + 145, + 21, + 21, + 130, + 82, + 81, + 144, + 129, + 144, + 3, + 96, + 32, + 1, + 144, + 243, + 91, + 52, + 128, + 21, + 97, + 1, + 106, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 1, + 115, + 97, + 3, + 182, + 86, + 91, + 96, + 64, + 128, + 81, + 145, + 130, + 82, + 81, + 144, + 129, + 144, + 3, + 96, + 32, + 1, + 144, + 243, + 91, + 52, + 128, + 21, + 97, + 1, + 145, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 1, + 74, + 96, + 1, + 96, + 160, + 96, + 2, + 10, + 3, + 96, + 4, + 53, + 129, + 22, + 144, + 96, + 36, + 53, + 22, + 96, + 68, + 53, + 97, + 3, + 187, + 86, + 91, + 52, + 128, + 21, + 97, + 1, + 187, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 0, + 154, + 96, + 4, + 53, + 97, + 4, + 239, + 86, + 91, + 52, + 128, + 21, + 97, + 1, + 211, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 1, + 220, + 97, + 5, + 132, + 86, + 91, + 96, + 64, + 128, + 81, + 96, + 255, + 144, + 146, + 22, + 130, + 82, + 81, + 144, + 129, + 144, + 3, + 96, + 32, + 1, + 144, + 243, + 91, + 52, + 128, + 21, + 97, + 1, + 254, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 1, + 115, + 96, + 1, + 96, + 160, + 96, + 2, + 10, + 3, + 96, + 4, + 53, + 22, + 97, + 5, + 141, + 86, + 91, + 52, + 128, + 21, + 97, + 2, + 31, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 0, + 177, + 97, + 5, + 159, + 86, + 91, + 52, + 128, + 21, + 97, + 2, + 52, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 1, + 74, + 96, + 1, + 96, + 160, + 96, + 2, + 10, + 3, + 96, + 4, + 53, + 22, + 96, + 36, + 53, + 97, + 5, + 249, + 86, + 91, + 52, + 128, + 21, + 97, + 2, + 88, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 1, + 115, + 96, + 1, + 96, + 160, + 96, + 2, + 10, + 3, + 96, + 4, + 53, + 129, + 22, + 144, + 96, + 36, + 53, + 22, + 97, + 6, + 13, + 86, + 91, + 51, + 96, + 0, + 129, + 129, + 82, + 96, + 3, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 145, + 130, + 144, + 32, + 128, + 84, + 52, + 144, + 129, + 1, + 144, + 145, + 85, + 130, + 81, + 144, + 129, + 82, + 145, + 81, + 127, + 225, + 255, + 252, + 196, + 146, + 61, + 4, + 181, + 89, + 244, + 210, + 154, + 139, + 252, + 108, + 218, + 4, + 235, + 91, + 13, + 60, + 70, + 7, + 81, + 194, + 64, + 44, + 92, + 92, + 201, + 16, + 156, + 146, + 129, + 144, + 3, + 144, + 145, + 1, + 144, + 162, + 86, + 91, + 96, + 0, + 128, + 84, + 96, + 64, + 128, + 81, + 96, + 32, + 96, + 2, + 96, + 1, + 133, + 22, + 21, + 97, + 1, + 0, + 2, + 96, + 0, + 25, + 1, + 144, + 148, + 22, + 147, + 144, + 147, + 4, + 96, + 31, + 129, + 1, + 132, + 144, + 4, + 132, + 2, + 130, + 1, + 132, + 1, + 144, + 146, + 82, + 129, + 129, + 82, + 146, + 145, + 131, + 1, + 130, + 130, + 128, + 21, + 97, + 3, + 72, + 87, + 128, + 96, + 31, + 16, + 97, + 3, + 29, + 87, + 97, + 1, + 0, + 128, + 131, + 84, + 4, + 2, + 131, + 82, + 145, + 96, + 32, + 1, + 145, + 97, + 3, + 72, + 86, + 91, + 130, + 1, + 145, + 144, + 96, + 0, + 82, + 96, + 32, + 96, + 0, + 32, + 144, + 91, + 129, + 84, + 129, + 82, + 144, + 96, + 1, + 1, + 144, + 96, + 32, + 1, + 128, + 131, + 17, + 97, + 3, + 43, + 87, + 130, + 144, + 3, + 96, + 31, + 22, + 130, + 1, + 145, + 91, + 80, + 80, + 80, + 80, + 80, + 129, + 86, + 91, + 51, + 96, + 0, + 129, + 129, + 82, + 96, + 4, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 96, + 1, + 96, + 160, + 96, + 2, + 10, + 3, + 135, + 22, + 128, + 133, + 82, + 144, + 131, + 82, + 129, + 132, + 32, + 134, + 144, + 85, + 129, + 81, + 134, + 129, + 82, + 145, + 81, + 147, + 148, + 144, + 147, + 144, + 146, + 127, + 140, + 91, + 225, + 229, + 235, + 236, + 125, + 91, + 209, + 79, + 113, + 66, + 125, + 30, + 132, + 243, + 221, + 3, + 20, + 192, + 247, + 178, + 41, + 30, + 91, + 32, + 10, + 200, + 199, + 195, + 185, + 37, + 146, + 130, + 144, + 3, + 1, + 144, + 163, + 80, + 96, + 1, + 146, + 145, + 80, + 80, + 86, + 91, + 48, + 49, + 144, + 86, + 91, + 96, + 1, + 96, + 160, + 96, + 2, + 10, + 3, + 131, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 3, + 96, + 32, + 82, + 96, + 64, + 129, + 32, + 84, + 130, + 17, + 21, + 97, + 3, + 224, + 87, + 96, + 0, + 128, + 253, + 91, + 96, + 1, + 96, + 160, + 96, + 2, + 10, + 3, + 132, + 22, + 51, + 20, + 128, + 21, + 144, + 97, + 4, + 30, + 87, + 80, + 96, + 1, + 96, + 160, + 96, + 2, + 10, + 3, + 132, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 4, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 51, + 132, + 82, + 144, + 145, + 82, + 144, + 32, + 84, + 96, + 0, + 25, + 20, + 21, + 91, + 21, + 97, + 4, + 126, + 87, + 96, + 1, + 96, + 160, + 96, + 2, + 10, + 3, + 132, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 4, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 51, + 132, + 82, + 144, + 145, + 82, + 144, + 32, + 84, + 130, + 17, + 21, + 97, + 4, + 83, + 87, + 96, + 0, + 128, + 253, + 91, + 96, + 1, + 96, + 160, + 96, + 2, + 10, + 3, + 132, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 4, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 51, + 132, + 82, + 144, + 145, + 82, + 144, + 32, + 128, + 84, + 131, + 144, + 3, + 144, + 85, + 91, + 96, + 1, + 96, + 160, + 96, + 2, + 10, + 3, + 128, + 133, + 22, + 96, + 0, + 129, + 129, + 82, + 96, + 3, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 128, + 84, + 136, + 144, + 3, + 144, + 85, + 147, + 135, + 22, + 128, + 131, + 82, + 145, + 132, + 144, + 32, + 128, + 84, + 135, + 1, + 144, + 85, + 131, + 81, + 134, + 129, + 82, + 147, + 81, + 145, + 147, + 127, + 221, + 242, + 82, + 173, + 27, + 226, + 200, + 155, + 105, + 194, + 176, + 104, + 252, + 55, + 141, + 170, + 149, + 43, + 167, + 241, + 99, + 196, + 161, + 22, + 40, + 245, + 90, + 77, + 245, + 35, + 179, + 239, + 146, + 144, + 129, + 144, + 3, + 144, + 145, + 1, + 144, + 163, + 80, + 96, + 1, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 51, + 96, + 0, + 144, + 129, + 82, + 96, + 3, + 96, + 32, + 82, + 96, + 64, + 144, + 32, + 84, + 129, + 17, + 21, + 97, + 5, + 11, + 87, + 96, + 0, + 128, + 253, + 91, + 51, + 96, + 0, + 129, + 129, + 82, + 96, + 3, + 96, + 32, + 82, + 96, + 64, + 128, + 130, + 32, + 128, + 84, + 133, + 144, + 3, + 144, + 85, + 81, + 131, + 21, + 97, + 8, + 252, + 2, + 145, + 132, + 145, + 144, + 129, + 129, + 129, + 133, + 136, + 136, + 241, + 147, + 80, + 80, + 80, + 80, + 21, + 128, + 21, + 97, + 5, + 74, + 87, + 61, + 96, + 0, + 128, + 62, + 61, + 96, + 0, + 253, + 91, + 80, + 96, + 64, + 128, + 81, + 130, + 129, + 82, + 144, + 81, + 51, + 145, + 127, + 127, + 207, + 83, + 44, + 21, + 240, + 166, + 219, + 11, + 214, + 208, + 224, + 56, + 190, + 167, + 29, + 48, + 216, + 8, + 199, + 217, + 140, + 179, + 191, + 114, + 104, + 169, + 91, + 245, + 8, + 27, + 101, + 145, + 144, + 129, + 144, + 3, + 96, + 32, + 1, + 144, + 162, + 80, + 86, + 91, + 96, + 2, + 84, + 96, + 255, + 22, + 129, + 86, + 91, + 96, + 3, + 96, + 32, + 82, + 96, + 0, + 144, + 129, + 82, + 96, + 64, + 144, + 32, + 84, + 129, + 86, + 91, + 96, + 1, + 128, + 84, + 96, + 64, + 128, + 81, + 96, + 32, + 96, + 2, + 132, + 134, + 22, + 21, + 97, + 1, + 0, + 2, + 96, + 0, + 25, + 1, + 144, + 148, + 22, + 147, + 144, + 147, + 4, + 96, + 31, + 129, + 1, + 132, + 144, + 4, + 132, + 2, + 130, + 1, + 132, + 1, + 144, + 146, + 82, + 129, + 129, + 82, + 146, + 145, + 131, + 1, + 130, + 130, + 128, + 21, + 97, + 3, + 72, + 87, + 128, + 96, + 31, + 16, + 97, + 3, + 29, + 87, + 97, + 1, + 0, + 128, + 131, + 84, + 4, + 2, + 131, + 82, + 145, + 96, + 32, + 1, + 145, + 97, + 3, + 72, + 86, + 91, + 96, + 0, + 97, + 6, + 6, + 51, + 132, + 132, + 97, + 3, + 187, + 86, + 91, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 4, + 96, + 32, + 144, + 129, + 82, + 96, + 0, + 146, + 131, + 82, + 96, + 64, + 128, + 132, + 32, + 144, + 145, + 82, + 144, + 130, + 82, + 144, + 32, + 84, + 129, + 86, + 0, + 161, + 101, + 98, + 122, + 122, + 114, + 48, + 88, + 32, + 60, + 46, + 146, + 190, + 116, + 6, + 160, + 156, + 52, + 115, + 108, + 122, + 120, + 184, + 200, + 161, + 216, + 167, + 247, + 240, + 156, + 223, + 222, + 21, + 139, + 255, + 106, + 149, + 47, + 17, + 226, + 119, + 0, + 41, + ]; + ///The bytecode of the contract. + pub static WETH9_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __BYTECODE, + ); + #[rustfmt::skip] + const __DEPLOYED_BYTECODE: &[u8] = &[ + 96, + 128, + 96, + 64, + 82, + 96, + 4, + 54, + 16, + 97, + 0, + 146, + 87, + 96, + 0, + 53, + 96, + 224, + 28, + 99, + 255, + 255, + 255, + 255, + 22, + 128, + 99, + 6, + 253, + 222, + 3, + 20, + 97, + 0, + 156, + 87, + 128, + 99, + 9, + 94, + 167, + 179, + 20, + 97, + 1, + 38, + 87, + 128, + 99, + 24, + 22, + 13, + 221, + 20, + 97, + 1, + 94, + 87, + 128, + 99, + 35, + 184, + 114, + 221, + 20, + 97, + 1, + 133, + 87, + 128, + 99, + 46, + 26, + 125, + 77, + 20, + 97, + 1, + 175, + 87, + 128, + 99, + 49, + 60, + 229, + 103, + 20, + 97, + 1, + 199, + 87, + 128, + 99, + 112, + 160, + 130, + 49, + 20, + 97, + 1, + 242, + 87, + 128, + 99, + 149, + 216, + 155, + 65, + 20, + 97, + 2, + 19, + 87, + 128, + 99, + 169, + 5, + 156, + 187, + 20, + 97, + 2, + 40, + 87, + 128, + 99, + 208, + 227, + 13, + 176, + 20, + 97, + 0, + 146, + 87, + 128, + 99, + 221, + 98, + 237, + 62, + 20, + 97, + 2, + 76, + 87, + 91, + 97, + 0, + 154, + 97, + 2, + 115, + 86, + 91, + 0, + 91, + 52, + 128, + 21, + 97, + 0, + 168, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 0, + 177, + 97, + 2, + 194, + 86, + 91, + 96, + 64, + 128, + 81, + 96, + 32, + 128, + 130, + 82, + 131, + 81, + 129, + 131, + 1, + 82, + 131, + 81, + 145, + 146, + 131, + 146, + 144, + 131, + 1, + 145, + 133, + 1, + 144, + 128, + 131, + 131, + 96, + 0, + 91, + 131, + 129, + 16, + 21, + 97, + 0, + 235, + 87, + 129, + 129, + 1, + 81, + 131, + 130, + 1, + 82, + 96, + 32, + 1, + 97, + 0, + 211, + 86, + 91, + 80, + 80, + 80, + 80, + 144, + 80, + 144, + 129, + 1, + 144, + 96, + 31, + 22, + 128, + 21, + 97, + 1, + 24, + 87, + 128, + 130, + 3, + 128, + 81, + 96, + 1, + 131, + 96, + 32, + 3, + 97, + 1, + 0, + 10, + 3, + 25, + 22, + 129, + 82, + 96, + 32, + 1, + 145, + 80, + 91, + 80, + 146, + 80, + 80, + 80, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 243, + 91, + 52, + 128, + 21, + 97, + 1, + 50, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 1, + 74, + 96, + 1, + 96, + 160, + 96, + 2, + 10, + 3, + 96, + 4, + 53, + 22, + 96, + 36, + 53, + 97, + 3, + 80, + 86, + 91, + 96, + 64, + 128, + 81, + 145, + 21, + 21, + 130, + 82, + 81, + 144, + 129, + 144, + 3, + 96, + 32, + 1, + 144, + 243, + 91, + 52, + 128, + 21, + 97, + 1, + 106, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 1, + 115, + 97, + 3, + 182, + 86, + 91, + 96, + 64, + 128, + 81, + 145, + 130, + 82, + 81, + 144, + 129, + 144, + 3, + 96, + 32, + 1, + 144, + 243, + 91, + 52, + 128, + 21, + 97, + 1, + 145, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 1, + 74, + 96, + 1, + 96, + 160, + 96, + 2, + 10, + 3, + 96, + 4, + 53, + 129, + 22, + 144, + 96, + 36, + 53, + 22, + 96, + 68, + 53, + 97, + 3, + 187, + 86, + 91, + 52, + 128, + 21, + 97, + 1, + 187, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 0, + 154, + 96, + 4, + 53, + 97, + 4, + 239, + 86, + 91, + 52, + 128, + 21, + 97, + 1, + 211, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 1, + 220, + 97, + 5, + 132, + 86, + 91, + 96, + 64, + 128, + 81, + 96, + 255, + 144, + 146, + 22, + 130, + 82, + 81, + 144, + 129, + 144, + 3, + 96, + 32, + 1, + 144, + 243, + 91, + 52, + 128, + 21, + 97, + 1, + 254, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 1, + 115, + 96, + 1, + 96, + 160, + 96, + 2, + 10, + 3, + 96, + 4, + 53, + 22, + 97, + 5, + 141, + 86, + 91, + 52, + 128, + 21, + 97, + 2, + 31, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 0, + 177, + 97, + 5, + 159, + 86, + 91, + 52, + 128, + 21, + 97, + 2, + 52, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 1, + 74, + 96, + 1, + 96, + 160, + 96, + 2, + 10, + 3, + 96, + 4, + 53, + 22, + 96, + 36, + 53, + 97, + 5, + 249, + 86, + 91, + 52, + 128, + 21, + 97, + 2, + 88, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 1, + 115, + 96, + 1, + 96, + 160, + 96, + 2, + 10, + 3, + 96, + 4, + 53, + 129, + 22, + 144, + 96, + 36, + 53, + 22, + 97, + 6, + 13, + 86, + 91, + 51, + 96, + 0, + 129, + 129, + 82, + 96, + 3, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 145, + 130, + 144, + 32, + 128, + 84, + 52, + 144, + 129, + 1, + 144, + 145, + 85, + 130, + 81, + 144, + 129, + 82, + 145, + 81, + 127, + 225, + 255, + 252, + 196, + 146, + 61, + 4, + 181, + 89, + 244, + 210, + 154, + 139, + 252, + 108, + 218, + 4, + 235, + 91, + 13, + 60, + 70, + 7, + 81, + 194, + 64, + 44, + 92, + 92, + 201, + 16, + 156, + 146, + 129, + 144, + 3, + 144, + 145, + 1, + 144, + 162, + 86, + 91, + 96, + 0, + 128, + 84, + 96, + 64, + 128, + 81, + 96, + 32, + 96, + 2, + 96, + 1, + 133, + 22, + 21, + 97, + 1, + 0, + 2, + 96, + 0, + 25, + 1, + 144, + 148, + 22, + 147, + 144, + 147, + 4, + 96, + 31, + 129, + 1, + 132, + 144, + 4, + 132, + 2, + 130, + 1, + 132, + 1, + 144, + 146, + 82, + 129, + 129, + 82, + 146, + 145, + 131, + 1, + 130, + 130, + 128, + 21, + 97, + 3, + 72, + 87, + 128, + 96, + 31, + 16, + 97, + 3, + 29, + 87, + 97, + 1, + 0, + 128, + 131, + 84, + 4, + 2, + 131, + 82, + 145, + 96, + 32, + 1, + 145, + 97, + 3, + 72, + 86, + 91, + 130, + 1, + 145, + 144, + 96, + 0, + 82, + 96, + 32, + 96, + 0, + 32, + 144, + 91, + 129, + 84, + 129, + 82, + 144, + 96, + 1, + 1, + 144, + 96, + 32, + 1, + 128, + 131, + 17, + 97, + 3, + 43, + 87, + 130, + 144, + 3, + 96, + 31, + 22, + 130, + 1, + 145, + 91, + 80, + 80, + 80, + 80, + 80, + 129, + 86, + 91, + 51, + 96, + 0, + 129, + 129, + 82, + 96, + 4, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 96, + 1, + 96, + 160, + 96, + 2, + 10, + 3, + 135, + 22, + 128, + 133, + 82, + 144, + 131, + 82, + 129, + 132, + 32, + 134, + 144, + 85, + 129, + 81, + 134, + 129, + 82, + 145, + 81, + 147, + 148, + 144, + 147, + 144, + 146, + 127, + 140, + 91, + 225, + 229, + 235, + 236, + 125, + 91, + 209, + 79, + 113, + 66, + 125, + 30, + 132, + 243, + 221, + 3, + 20, + 192, + 247, + 178, + 41, + 30, + 91, + 32, + 10, + 200, + 199, + 195, + 185, + 37, + 146, + 130, + 144, + 3, + 1, + 144, + 163, + 80, + 96, + 1, + 146, + 145, + 80, + 80, + 86, + 91, + 48, + 49, + 144, + 86, + 91, + 96, + 1, + 96, + 160, + 96, + 2, + 10, + 3, + 131, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 3, + 96, + 32, + 82, + 96, + 64, + 129, + 32, + 84, + 130, + 17, + 21, + 97, + 3, + 224, + 87, + 96, + 0, + 128, + 253, + 91, + 96, + 1, + 96, + 160, + 96, + 2, + 10, + 3, + 132, + 22, + 51, + 20, + 128, + 21, + 144, + 97, + 4, + 30, + 87, + 80, + 96, + 1, + 96, + 160, + 96, + 2, + 10, + 3, + 132, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 4, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 51, + 132, + 82, + 144, + 145, + 82, + 144, + 32, + 84, + 96, + 0, + 25, + 20, + 21, + 91, + 21, + 97, + 4, + 126, + 87, + 96, + 1, + 96, + 160, + 96, + 2, + 10, + 3, + 132, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 4, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 51, + 132, + 82, + 144, + 145, + 82, + 144, + 32, + 84, + 130, + 17, + 21, + 97, + 4, + 83, + 87, + 96, + 0, + 128, + 253, + 91, + 96, + 1, + 96, + 160, + 96, + 2, + 10, + 3, + 132, + 22, + 96, + 0, + 144, + 129, + 82, + 96, + 4, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 51, + 132, + 82, + 144, + 145, + 82, + 144, + 32, + 128, + 84, + 131, + 144, + 3, + 144, + 85, + 91, + 96, + 1, + 96, + 160, + 96, + 2, + 10, + 3, + 128, + 133, + 22, + 96, + 0, + 129, + 129, + 82, + 96, + 3, + 96, + 32, + 144, + 129, + 82, + 96, + 64, + 128, + 131, + 32, + 128, + 84, + 136, + 144, + 3, + 144, + 85, + 147, + 135, + 22, + 128, + 131, + 82, + 145, + 132, + 144, + 32, + 128, + 84, + 135, + 1, + 144, + 85, + 131, + 81, + 134, + 129, + 82, + 147, + 81, + 145, + 147, + 127, + 221, + 242, + 82, + 173, + 27, + 226, + 200, + 155, + 105, + 194, + 176, + 104, + 252, + 55, + 141, + 170, + 149, + 43, + 167, + 241, + 99, + 196, + 161, + 22, + 40, + 245, + 90, + 77, + 245, + 35, + 179, + 239, + 146, + 144, + 129, + 144, + 3, + 144, + 145, + 1, + 144, + 163, + 80, + 96, + 1, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 51, + 96, + 0, + 144, + 129, + 82, + 96, + 3, + 96, + 32, + 82, + 96, + 64, + 144, + 32, + 84, + 129, + 17, + 21, + 97, + 5, + 11, + 87, + 96, + 0, + 128, + 253, + 91, + 51, + 96, + 0, + 129, + 129, + 82, + 96, + 3, + 96, + 32, + 82, + 96, + 64, + 128, + 130, + 32, + 128, + 84, + 133, + 144, + 3, + 144, + 85, + 81, + 131, + 21, + 97, + 8, + 252, + 2, + 145, + 132, + 145, + 144, + 129, + 129, + 129, + 133, + 136, + 136, + 241, + 147, + 80, + 80, + 80, + 80, + 21, + 128, + 21, + 97, + 5, + 74, + 87, + 61, + 96, + 0, + 128, + 62, + 61, + 96, + 0, + 253, + 91, + 80, + 96, + 64, + 128, + 81, + 130, + 129, + 82, + 144, + 81, + 51, + 145, + 127, + 127, + 207, + 83, + 44, + 21, + 240, + 166, + 219, + 11, + 214, + 208, + 224, + 56, + 190, + 167, + 29, + 48, + 216, + 8, + 199, + 217, + 140, + 179, + 191, + 114, + 104, + 169, + 91, + 245, + 8, + 27, + 101, + 145, + 144, + 129, + 144, + 3, + 96, + 32, + 1, + 144, + 162, + 80, + 86, + 91, + 96, + 2, + 84, + 96, + 255, + 22, + 129, + 86, + 91, + 96, + 3, + 96, + 32, + 82, + 96, + 0, + 144, + 129, + 82, + 96, + 64, + 144, + 32, + 84, + 129, + 86, + 91, + 96, + 1, + 128, + 84, + 96, + 64, + 128, + 81, + 96, + 32, + 96, + 2, + 132, + 134, + 22, + 21, + 97, + 1, + 0, + 2, + 96, + 0, + 25, + 1, + 144, + 148, + 22, + 147, + 144, + 147, + 4, + 96, + 31, + 129, + 1, + 132, + 144, + 4, + 132, + 2, + 130, + 1, + 132, + 1, + 144, + 146, + 82, + 129, + 129, + 82, + 146, + 145, + 131, + 1, + 130, + 130, + 128, + 21, + 97, + 3, + 72, + 87, + 128, + 96, + 31, + 16, + 97, + 3, + 29, + 87, + 97, + 1, + 0, + 128, + 131, + 84, + 4, + 2, + 131, + 82, + 145, + 96, + 32, + 1, + 145, + 97, + 3, + 72, + 86, + 91, + 96, + 0, + 97, + 6, + 6, + 51, + 132, + 132, + 97, + 3, + 187, + 86, + 91, + 147, + 146, + 80, + 80, + 80, + 86, + 91, + 96, + 4, + 96, + 32, + 144, + 129, + 82, + 96, + 0, + 146, + 131, + 82, + 96, + 64, + 128, + 132, + 32, + 144, + 145, + 82, + 144, + 130, + 82, + 144, + 32, + 84, + 129, + 86, + 0, + 161, + 101, + 98, + 122, + 122, + 114, + 48, + 88, + 32, + 60, + 46, + 146, + 190, + 116, + 6, + 160, + 156, + 52, + 115, + 108, + 122, + 120, + 184, + 200, + 161, + 216, + 167, + 247, + 240, + 156, + 223, + 222, + 21, + 139, + 255, + 106, + 149, + 47, + 17, + 226, + 119, + 0, + 41, + ]; + ///The deployed bytecode of the contract. + pub static WETH9_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __DEPLOYED_BYTECODE, + ); + pub struct WETH9(::ethers::contract::Contract); + impl ::core::clone::Clone for WETH9 { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for WETH9 { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for WETH9 { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for WETH9 { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(stringify!(WETH9)).field(&self.address()).finish() + } + } + impl WETH9 { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + WETH9_ABI.clone(), + client, + ), + ) + } + /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. + /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction + /// + /// Notes: + /// - If there are no constructor arguments, you should pass `()` as the argument. + /// - The default poll duration is 7 seconds. + /// - The default number of confirmations is 1 block. + /// + /// + /// # Example + /// + /// Generate contract bindings with `abigen!` and deploy a new contract instance. + /// + /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. + /// + /// ```ignore + /// # async fn deploy(client: ::std::sync::Arc) { + /// abigen!(Greeter, "../greeter.json"); + /// + /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); + /// let msg = greeter_contract.greet().call().await.unwrap(); + /// # } + /// ``` + pub fn deploy( + client: ::std::sync::Arc, + constructor_args: T, + ) -> ::core::result::Result< + ::ethers::contract::builders::ContractDeployer, + ::ethers::contract::ContractError, + > { + let factory = ::ethers::contract::ContractFactory::new( + WETH9_ABI.clone(), + WETH9_BYTECODE.clone().into(), + client, + ); + let deployer = factory.deploy(constructor_args)?; + let deployer = ::ethers::contract::ContractDeployer::new(deployer); + Ok(deployer) + } + ///Calls the contract's `allowance` (0xdd62ed3e) function + pub fn allowance( + &self, + p0: ::ethers::core::types::Address, + p1: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([221, 98, 237, 62], (p0, p1)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `approve` (0x095ea7b3) function + pub fn approve( + &self, + guy: ::ethers::core::types::Address, + wad: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([9, 94, 167, 179], (guy, wad)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `balanceOf` (0x70a08231) function + pub fn balance_of( + &self, + p0: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([112, 160, 130, 49], p0) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `decimals` (0x313ce567) function + pub fn decimals(&self) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([49, 60, 229, 103], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `deposit` (0xd0e30db0) function + pub fn deposit(&self) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([208, 227, 13, 176], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `name` (0x06fdde03) function + pub fn name( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([6, 253, 222, 3], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `symbol` (0x95d89b41) function + pub fn symbol( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([149, 216, 155, 65], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `totalSupply` (0x18160ddd) function + pub fn total_supply( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([24, 22, 13, 221], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `transfer` (0xa9059cbb) function + pub fn transfer( + &self, + dst: ::ethers::core::types::Address, + wad: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([169, 5, 156, 187], (dst, wad)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `transferFrom` (0x23b872dd) function + pub fn transfer_from( + &self, + src: ::ethers::core::types::Address, + dst: ::ethers::core::types::Address, + wad: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([35, 184, 114, 221], (src, dst, wad)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `withdraw` (0x2e1a7d4d) function + pub fn withdraw( + &self, + wad: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([46, 26, 125, 77], wad) + .expect("method not found (this should never happen)") + } + ///Gets the contract's `Approval` event + pub fn approval_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + ApprovalFilter, + > { + self.0.event() + } + ///Gets the contract's `Deposit` event + pub fn deposit_filter( + &self, + ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, DepositFilter> { + self.0.event() + } + ///Gets the contract's `Transfer` event + pub fn transfer_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + TransferFilter, + > { + self.0.event() + } + ///Gets the contract's `Withdrawal` event + pub fn withdrawal_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + WithdrawalFilter, + > { + self.0.event() + } + /// Returns an `Event` builder for all the events of this contract. + pub fn events( + &self, + ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, WETH9Events> { + self.0.event_with_filter(::core::default::Default::default()) + } + } + impl From<::ethers::contract::Contract> + for WETH9 { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "Approval", abi = "Approval(address,address,uint256)")] + pub struct ApprovalFilter { + #[ethevent(indexed)] + pub src: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub guy: ::ethers::core::types::Address, + pub wad: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "Deposit", abi = "Deposit(address,uint256)")] + pub struct DepositFilter { + #[ethevent(indexed)] + pub dst: ::ethers::core::types::Address, + pub wad: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "Transfer", abi = "Transfer(address,address,uint256)")] + pub struct TransferFilter { + #[ethevent(indexed)] + pub src: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub dst: ::ethers::core::types::Address, + pub wad: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "Withdrawal", abi = "Withdrawal(address,uint256)")] + pub struct WithdrawalFilter { + #[ethevent(indexed)] + pub src: ::ethers::core::types::Address, + pub wad: ::ethers::core::types::U256, + } + ///Container type for all of the contract's events + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum WETH9Events { + ApprovalFilter(ApprovalFilter), + DepositFilter(DepositFilter), + TransferFilter(TransferFilter), + WithdrawalFilter(WithdrawalFilter), + } + impl ::ethers::contract::EthLogDecode for WETH9Events { + fn decode_log( + log: &::ethers::core::abi::RawLog, + ) -> ::core::result::Result { + if let Ok(decoded) = ApprovalFilter::decode_log(log) { + return Ok(WETH9Events::ApprovalFilter(decoded)); + } + if let Ok(decoded) = DepositFilter::decode_log(log) { + return Ok(WETH9Events::DepositFilter(decoded)); + } + if let Ok(decoded) = TransferFilter::decode_log(log) { + return Ok(WETH9Events::TransferFilter(decoded)); + } + if let Ok(decoded) = WithdrawalFilter::decode_log(log) { + return Ok(WETH9Events::WithdrawalFilter(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData) + } + } + impl ::core::fmt::Display for WETH9Events { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::ApprovalFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::DepositFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::TransferFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::WithdrawalFilter(element) => ::core::fmt::Display::fmt(element, f), + } + } + } + impl ::core::convert::From for WETH9Events { + fn from(value: ApprovalFilter) -> Self { + Self::ApprovalFilter(value) + } + } + impl ::core::convert::From for WETH9Events { + fn from(value: DepositFilter) -> Self { + Self::DepositFilter(value) + } + } + impl ::core::convert::From for WETH9Events { + fn from(value: TransferFilter) -> Self { + Self::TransferFilter(value) + } + } + impl ::core::convert::From for WETH9Events { + fn from(value: WithdrawalFilter) -> Self { + Self::WithdrawalFilter(value) + } + } + ///Container type for all input parameters for the `allowance` function with signature `allowance(address,address)` and selector `0xdd62ed3e` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "allowance", abi = "allowance(address,address)")] + pub struct AllowanceCall( + pub ::ethers::core::types::Address, + pub ::ethers::core::types::Address, + ); + ///Container type for all input parameters for the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "approve", abi = "approve(address,uint256)")] + pub struct ApproveCall { + pub guy: ::ethers::core::types::Address, + pub wad: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "balanceOf", abi = "balanceOf(address)")] + pub struct BalanceOfCall(pub ::ethers::core::types::Address); + ///Container type for all input parameters for the `decimals` function with signature `decimals()` and selector `0x313ce567` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "decimals", abi = "decimals()")] + pub struct DecimalsCall; + ///Container type for all input parameters for the `deposit` function with signature `deposit()` and selector `0xd0e30db0` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "deposit", abi = "deposit()")] + pub struct DepositCall; + ///Container type for all input parameters for the `name` function with signature `name()` and selector `0x06fdde03` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "name", abi = "name()")] + pub struct NameCall; + ///Container type for all input parameters for the `symbol` function with signature `symbol()` and selector `0x95d89b41` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "symbol", abi = "symbol()")] + pub struct SymbolCall; + ///Container type for all input parameters for the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "totalSupply", abi = "totalSupply()")] + pub struct TotalSupplyCall; + ///Container type for all input parameters for the `transfer` function with signature `transfer(address,uint256)` and selector `0xa9059cbb` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "transfer", abi = "transfer(address,uint256)")] + pub struct TransferCall { + pub dst: ::ethers::core::types::Address, + pub wad: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "transferFrom", abi = "transferFrom(address,address,uint256)")] + pub struct TransferFromCall { + pub src: ::ethers::core::types::Address, + pub dst: ::ethers::core::types::Address, + pub wad: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `withdraw` function with signature `withdraw(uint256)` and selector `0x2e1a7d4d` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "withdraw", abi = "withdraw(uint256)")] + pub struct WithdrawCall { + pub wad: ::ethers::core::types::U256, + } + ///Container type for all of the contract's call + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum WETH9Calls { + Allowance(AllowanceCall), + Approve(ApproveCall), + BalanceOf(BalanceOfCall), + Decimals(DecimalsCall), + Deposit(DepositCall), + Name(NameCall), + Symbol(SymbolCall), + TotalSupply(TotalSupplyCall), + Transfer(TransferCall), + TransferFrom(TransferFromCall), + Withdraw(WithdrawCall), + } + impl ::ethers::core::abi::AbiDecode for WETH9Calls { + fn decode( + data: impl AsRef<[u8]>, + ) -> ::core::result::Result { + let data = data.as_ref(); + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Allowance(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Approve(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::BalanceOf(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Decimals(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Deposit(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Name(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Symbol(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::TotalSupply(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Transfer(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::TransferFrom(decoded)); + } + if let Ok(decoded) + = ::decode(data) { + return Ok(Self::Withdraw(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData.into()) + } + } + impl ::ethers::core::abi::AbiEncode for WETH9Calls { + fn encode(self) -> Vec { + match self { + Self::Allowance(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Approve(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::BalanceOf(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Decimals(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Deposit(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Name(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Symbol(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::TotalSupply(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Transfer(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::TransferFrom(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::Withdraw(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + } + } + } + impl ::core::fmt::Display for WETH9Calls { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::Allowance(element) => ::core::fmt::Display::fmt(element, f), + Self::Approve(element) => ::core::fmt::Display::fmt(element, f), + Self::BalanceOf(element) => ::core::fmt::Display::fmt(element, f), + Self::Decimals(element) => ::core::fmt::Display::fmt(element, f), + Self::Deposit(element) => ::core::fmt::Display::fmt(element, f), + Self::Name(element) => ::core::fmt::Display::fmt(element, f), + Self::Symbol(element) => ::core::fmt::Display::fmt(element, f), + Self::TotalSupply(element) => ::core::fmt::Display::fmt(element, f), + Self::Transfer(element) => ::core::fmt::Display::fmt(element, f), + Self::TransferFrom(element) => ::core::fmt::Display::fmt(element, f), + Self::Withdraw(element) => ::core::fmt::Display::fmt(element, f), + } + } + } + impl ::core::convert::From for WETH9Calls { + fn from(value: AllowanceCall) -> Self { + Self::Allowance(value) + } + } + impl ::core::convert::From for WETH9Calls { + fn from(value: ApproveCall) -> Self { + Self::Approve(value) + } + } + impl ::core::convert::From for WETH9Calls { + fn from(value: BalanceOfCall) -> Self { + Self::BalanceOf(value) + } + } + impl ::core::convert::From for WETH9Calls { + fn from(value: DecimalsCall) -> Self { + Self::Decimals(value) + } + } + impl ::core::convert::From for WETH9Calls { + fn from(value: DepositCall) -> Self { + Self::Deposit(value) + } + } + impl ::core::convert::From for WETH9Calls { + fn from(value: NameCall) -> Self { + Self::Name(value) + } + } + impl ::core::convert::From for WETH9Calls { + fn from(value: SymbolCall) -> Self { + Self::Symbol(value) + } + } + impl ::core::convert::From for WETH9Calls { + fn from(value: TotalSupplyCall) -> Self { + Self::TotalSupply(value) + } + } + impl ::core::convert::From for WETH9Calls { + fn from(value: TransferCall) -> Self { + Self::Transfer(value) + } + } + impl ::core::convert::From for WETH9Calls { + fn from(value: TransferFromCall) -> Self { + Self::TransferFrom(value) + } + } + impl ::core::convert::From for WETH9Calls { + fn from(value: WithdrawCall) -> Self { + Self::Withdraw(value) + } + } + ///Container type for all return fields from the `allowance` function with signature `allowance(address,address)` and selector `0xdd62ed3e` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct AllowanceReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct ApproveReturn(pub bool); + ///Container type for all return fields from the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct BalanceOfReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `decimals` function with signature `decimals()` and selector `0x313ce567` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct DecimalsReturn(pub u8); + ///Container type for all return fields from the `name` function with signature `name()` and selector `0x06fdde03` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct NameReturn(pub ::std::string::String); + ///Container type for all return fields from the `symbol` function with signature `symbol()` and selector `0x95d89b41` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct SymbolReturn(pub ::std::string::String); + ///Container type for all return fields from the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct TotalSupplyReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `transfer` function with signature `transfer(address,uint256)` and selector `0xa9059cbb` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct TransferReturn(pub bool); + ///Container type for all return fields from the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct TransferFromReturn(pub bool); +} +pub use writer::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod writer { + #[rustfmt::skip] + const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"test_string\",\"type\":\"string\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"WasWritten\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"test_string\",\"type\":\"string\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"echoString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]}]"; + ///The parsed JSON ABI of the contract. + pub static WRITER_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| + ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); + #[rustfmt::skip] + const __BYTECODE: &[u8] = &[ + 96, + 128, + 96, + 64, + 82, + 52, + 128, + 21, + 97, + 0, + 16, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 97, + 3, + 197, + 128, + 97, + 0, + 32, + 96, + 0, + 57, + 96, + 0, + 243, + 254, + 96, + 128, + 96, + 64, + 82, + 52, + 128, + 21, + 97, + 0, + 16, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 96, + 4, + 54, + 16, + 97, + 0, + 43, + 87, + 96, + 0, + 53, + 96, + 224, + 28, + 128, + 99, + 13, + 126, + 47, + 206, + 20, + 97, + 0, + 48, + 87, + 91, + 96, + 0, + 128, + 253, + 91, + 97, + 0, + 67, + 97, + 0, + 62, + 54, + 96, + 4, + 97, + 1, + 71, + 86, + 91, + 97, + 0, + 89, + 86, + 91, + 96, + 64, + 81, + 97, + 0, + 80, + 145, + 144, + 97, + 1, + 248, + 86, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 243, + 91, + 96, + 96, + 96, + 0, + 97, + 0, + 103, + 131, + 130, + 97, + 2, + 207, + 86, + 91, + 80, + 127, + 150, + 111, + 235, + 127, + 22, + 48, + 252, + 188, + 148, + 154, + 121, + 101, + 185, + 139, + 203, + 203, + 152, + 35, + 112, + 159, + 116, + 217, + 236, + 10, + 84, + 130, + 176, + 195, + 48, + 148, + 139, + 148, + 130, + 96, + 64, + 81, + 97, + 0, + 151, + 145, + 144, + 97, + 1, + 248, + 86, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 161, + 96, + 0, + 128, + 84, + 97, + 0, + 172, + 144, + 97, + 2, + 70, + 86, + 91, + 128, + 96, + 31, + 1, + 96, + 32, + 128, + 145, + 4, + 2, + 96, + 32, + 1, + 96, + 64, + 81, + 144, + 129, + 1, + 96, + 64, + 82, + 128, + 146, + 145, + 144, + 129, + 129, + 82, + 96, + 32, + 1, + 130, + 128, + 84, + 97, + 0, + 216, + 144, + 97, + 2, + 70, + 86, + 91, + 128, + 21, + 97, + 1, + 37, + 87, + 128, + 96, + 31, + 16, + 97, + 0, + 250, + 87, + 97, + 1, + 0, + 128, + 131, + 84, + 4, + 2, + 131, + 82, + 145, + 96, + 32, + 1, + 145, + 97, + 1, + 37, + 86, + 91, + 130, + 1, + 145, + 144, + 96, + 0, + 82, + 96, + 32, + 96, + 0, + 32, + 144, + 91, + 129, + 84, + 129, + 82, + 144, + 96, + 1, + 1, + 144, + 96, + 32, + 1, + 128, + 131, + 17, + 97, + 1, + 8, + 87, + 130, + 144, + 3, + 96, + 31, + 22, + 130, + 1, + 145, + 91, + 80, + 80, + 80, + 80, + 80, + 144, + 80, + 145, + 144, + 80, + 86, + 91, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 65, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 96, + 0, + 96, + 32, + 130, + 132, + 3, + 18, + 21, + 97, + 1, + 89, + 87, + 96, + 0, + 128, + 253, + 91, + 129, + 53, + 103, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 128, + 130, + 17, + 21, + 97, + 1, + 113, + 87, + 96, + 0, + 128, + 253, + 91, + 129, + 132, + 1, + 145, + 80, + 132, + 96, + 31, + 131, + 1, + 18, + 97, + 1, + 133, + 87, + 96, + 0, + 128, + 253, + 91, + 129, + 53, + 129, + 129, + 17, + 21, + 97, + 1, + 151, + 87, + 97, + 1, + 151, + 97, + 1, + 49, + 86, + 91, + 96, + 64, + 81, + 96, + 31, + 130, + 1, + 96, + 31, + 25, + 144, + 129, + 22, + 96, + 63, + 1, + 22, + 129, + 1, + 144, + 131, + 130, + 17, + 129, + 131, + 16, + 23, + 21, + 97, + 1, + 191, + 87, + 97, + 1, + 191, + 97, + 1, + 49, + 86, + 91, + 129, + 96, + 64, + 82, + 130, + 129, + 82, + 135, + 96, + 32, + 132, + 135, + 1, + 1, + 17, + 21, + 97, + 1, + 216, + 87, + 96, + 0, + 128, + 253, + 91, + 130, + 96, + 32, + 134, + 1, + 96, + 32, + 131, + 1, + 55, + 96, + 0, + 146, + 129, + 1, + 96, + 32, + 1, + 146, + 144, + 146, + 82, + 80, + 149, + 148, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 96, + 32, + 128, + 131, + 82, + 131, + 81, + 128, + 130, + 133, + 1, + 82, + 96, + 0, + 91, + 129, + 129, + 16, + 21, + 97, + 2, + 37, + 87, + 133, + 129, + 1, + 131, + 1, + 81, + 133, + 130, + 1, + 96, + 64, + 1, + 82, + 130, + 1, + 97, + 2, + 9, + 86, + 91, + 80, + 96, + 0, + 96, + 64, + 130, + 134, + 1, + 1, + 82, + 96, + 64, + 96, + 31, + 25, + 96, + 31, + 131, + 1, + 22, + 133, + 1, + 1, + 146, + 80, + 80, + 80, + 146, + 145, + 80, + 80, + 86, + 91, + 96, + 1, + 129, + 129, + 28, + 144, + 130, + 22, + 128, + 97, + 2, + 90, + 87, + 96, + 127, + 130, + 22, + 145, + 80, + 91, + 96, + 32, + 130, + 16, + 129, + 3, + 97, + 2, + 122, + 87, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 34, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 80, + 145, + 144, + 80, + 86, + 91, + 96, + 31, + 130, + 17, + 21, + 97, + 2, + 202, + 87, + 96, + 0, + 129, + 129, + 82, + 96, + 32, + 129, + 32, + 96, + 31, + 133, + 1, + 96, + 5, + 28, + 129, + 1, + 96, + 32, + 134, + 16, + 21, + 97, + 2, + 167, + 87, + 80, + 128, + 91, + 96, + 31, + 133, + 1, + 96, + 5, + 28, + 130, + 1, + 145, + 80, + 91, + 129, + 129, + 16, + 21, + 97, + 2, + 198, + 87, + 130, + 129, + 85, + 96, + 1, + 1, + 97, + 2, + 179, + 86, + 91, + 80, + 80, + 80, + 91, + 80, + 80, + 80, + 86, + 91, + 129, + 81, + 103, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 129, + 17, + 21, + 97, + 2, + 233, + 87, + 97, + 2, + 233, + 97, + 1, + 49, + 86, + 91, + 97, + 2, + 253, + 129, + 97, + 2, + 247, + 132, + 84, + 97, + 2, + 70, + 86, + 91, + 132, + 97, + 2, + 128, + 86, + 91, + 96, + 32, + 128, + 96, + 31, + 131, + 17, + 96, + 1, + 129, + 20, + 97, + 3, + 50, + 87, + 96, + 0, + 132, + 21, + 97, + 3, + 26, + 87, + 80, + 133, + 131, + 1, + 81, + 91, + 96, + 0, + 25, + 96, + 3, + 134, + 144, + 27, + 28, + 25, + 22, + 96, + 1, + 133, + 144, + 27, + 23, + 133, + 85, + 97, + 2, + 198, + 86, + 91, + 96, + 0, + 133, + 129, + 82, + 96, + 32, + 129, + 32, + 96, + 31, + 25, + 134, + 22, + 145, + 91, + 130, + 129, + 16, + 21, + 97, + 3, + 97, + 87, + 136, + 134, + 1, + 81, + 130, + 85, + 148, + 132, + 1, + 148, + 96, + 1, + 144, + 145, + 1, + 144, + 132, + 1, + 97, + 3, + 66, + 86, + 91, + 80, + 133, + 130, + 16, + 21, + 97, + 3, + 127, + 87, + 135, + 133, + 1, + 81, + 96, + 0, + 25, + 96, + 3, + 136, + 144, + 27, + 96, + 248, + 22, + 28, + 25, + 22, + 129, + 85, + 91, + 80, + 80, + 80, + 80, + 80, + 96, + 1, + 144, + 129, + 27, + 1, + 144, + 85, + 80, + 86, + 254, + 162, + 100, + 105, + 112, + 102, + 115, + 88, + 34, + 18, + 32, + 135, + 202, + 33, + 89, + 219, + 68, + 250, + 4, + 86, + 98, + 55, + 188, + 62, + 64, + 208, + 74, + 53, + 108, + 137, + 147, + 3, + 67, + 235, + 235, + 220, + 21, + 238, + 255, + 122, + 231, + 29, + 1, + 100, + 115, + 111, + 108, + 99, + 67, + 0, + 8, + 19, + 0, + 51, + ]; + ///The bytecode of the contract. + pub static WRITER_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __BYTECODE, + ); + #[rustfmt::skip] + const __DEPLOYED_BYTECODE: &[u8] = &[ + 96, + 128, + 96, + 64, + 82, + 52, + 128, + 21, + 97, + 0, + 16, + 87, + 96, + 0, + 128, + 253, + 91, + 80, + 96, + 4, + 54, + 16, + 97, + 0, + 43, + 87, + 96, + 0, + 53, + 96, + 224, + 28, + 128, + 99, + 13, + 126, + 47, + 206, + 20, + 97, + 0, + 48, + 87, + 91, + 96, + 0, + 128, + 253, + 91, + 97, + 0, + 67, + 97, + 0, + 62, + 54, + 96, + 4, + 97, + 1, + 71, + 86, + 91, + 97, + 0, + 89, + 86, + 91, + 96, + 64, + 81, + 97, + 0, + 80, + 145, + 144, + 97, + 1, + 248, + 86, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 243, + 91, + 96, + 96, + 96, + 0, + 97, + 0, + 103, + 131, + 130, + 97, + 2, + 207, + 86, + 91, + 80, + 127, + 150, + 111, + 235, + 127, + 22, + 48, + 252, + 188, + 148, + 154, + 121, + 101, + 185, + 139, + 203, + 203, + 152, + 35, + 112, + 159, + 116, + 217, + 236, + 10, + 84, + 130, + 176, + 195, + 48, + 148, + 139, + 148, + 130, + 96, + 64, + 81, + 97, + 0, + 151, + 145, + 144, + 97, + 1, + 248, + 86, + 91, + 96, + 64, + 81, + 128, + 145, + 3, + 144, + 161, + 96, + 0, + 128, + 84, + 97, + 0, + 172, + 144, + 97, + 2, + 70, + 86, + 91, + 128, + 96, + 31, + 1, + 96, + 32, + 128, + 145, + 4, + 2, + 96, + 32, + 1, + 96, + 64, + 81, + 144, + 129, + 1, + 96, + 64, + 82, + 128, + 146, + 145, + 144, + 129, + 129, + 82, + 96, + 32, + 1, + 130, + 128, + 84, + 97, + 0, + 216, + 144, + 97, + 2, + 70, + 86, + 91, + 128, + 21, + 97, + 1, + 37, + 87, + 128, + 96, + 31, + 16, + 97, + 0, + 250, + 87, + 97, + 1, + 0, + 128, + 131, + 84, + 4, + 2, + 131, + 82, + 145, + 96, + 32, + 1, + 145, + 97, + 1, + 37, + 86, + 91, + 130, + 1, + 145, + 144, + 96, + 0, + 82, + 96, + 32, + 96, + 0, + 32, + 144, + 91, + 129, + 84, + 129, + 82, + 144, + 96, + 1, + 1, + 144, + 96, + 32, + 1, + 128, + 131, + 17, + 97, + 1, + 8, + 87, + 130, + 144, + 3, + 96, + 31, + 22, + 130, + 1, + 145, + 91, + 80, + 80, + 80, + 80, + 80, + 144, + 80, + 145, + 144, + 80, + 86, + 91, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 65, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 96, + 0, + 96, + 32, + 130, + 132, + 3, + 18, + 21, + 97, + 1, + 89, + 87, + 96, + 0, + 128, + 253, + 91, + 129, + 53, + 103, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 128, + 130, + 17, + 21, + 97, + 1, + 113, + 87, + 96, + 0, + 128, + 253, + 91, + 129, + 132, + 1, + 145, + 80, + 132, + 96, + 31, + 131, + 1, + 18, + 97, + 1, + 133, + 87, + 96, + 0, + 128, + 253, + 91, + 129, + 53, + 129, + 129, + 17, + 21, + 97, + 1, + 151, + 87, + 97, + 1, + 151, + 97, + 1, + 49, + 86, + 91, + 96, + 64, + 81, + 96, + 31, + 130, + 1, + 96, + 31, + 25, + 144, + 129, + 22, + 96, + 63, + 1, + 22, + 129, + 1, + 144, + 131, + 130, + 17, + 129, + 131, + 16, + 23, + 21, + 97, + 1, + 191, + 87, + 97, + 1, + 191, + 97, + 1, + 49, + 86, + 91, + 129, + 96, + 64, + 82, + 130, + 129, + 82, + 135, + 96, + 32, + 132, + 135, + 1, + 1, + 17, + 21, + 97, + 1, + 216, + 87, + 96, + 0, + 128, + 253, + 91, + 130, + 96, + 32, + 134, + 1, + 96, + 32, + 131, + 1, + 55, + 96, + 0, + 146, + 129, + 1, + 96, + 32, + 1, + 146, + 144, + 146, + 82, + 80, + 149, + 148, + 80, + 80, + 80, + 80, + 80, + 86, + 91, + 96, + 0, + 96, + 32, + 128, + 131, + 82, + 131, + 81, + 128, + 130, + 133, + 1, + 82, + 96, + 0, + 91, + 129, + 129, + 16, + 21, + 97, + 2, + 37, + 87, + 133, + 129, + 1, + 131, + 1, + 81, + 133, + 130, + 1, + 96, + 64, + 1, + 82, + 130, + 1, + 97, + 2, + 9, + 86, + 91, + 80, + 96, + 0, + 96, + 64, + 130, + 134, + 1, + 1, + 82, + 96, + 64, + 96, + 31, + 25, + 96, + 31, + 131, + 1, + 22, + 133, + 1, + 1, + 146, + 80, + 80, + 80, + 146, + 145, + 80, + 80, + 86, + 91, + 96, + 1, + 129, + 129, + 28, + 144, + 130, + 22, + 128, + 97, + 2, + 90, + 87, + 96, + 127, + 130, + 22, + 145, + 80, + 91, + 96, + 32, + 130, + 16, + 129, + 3, + 97, + 2, + 122, + 87, + 99, + 78, + 72, + 123, + 113, + 96, + 224, + 27, + 96, + 0, + 82, + 96, + 34, + 96, + 4, + 82, + 96, + 36, + 96, + 0, + 253, + 91, + 80, + 145, + 144, + 80, + 86, + 91, + 96, + 31, + 130, + 17, + 21, + 97, + 2, + 202, + 87, + 96, + 0, + 129, + 129, + 82, + 96, + 32, + 129, + 32, + 96, + 31, + 133, + 1, + 96, + 5, + 28, + 129, + 1, + 96, + 32, + 134, + 16, + 21, + 97, + 2, + 167, + 87, + 80, + 128, + 91, + 96, + 31, + 133, + 1, + 96, + 5, + 28, + 130, + 1, + 145, + 80, + 91, + 129, + 129, + 16, + 21, + 97, + 2, + 198, + 87, + 130, + 129, + 85, + 96, + 1, + 1, + 97, + 2, + 179, + 86, + 91, + 80, + 80, + 80, + 91, + 80, + 80, + 80, + 86, + 91, + 129, + 81, + 103, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 129, + 17, + 21, + 97, + 2, + 233, + 87, + 97, + 2, + 233, + 97, + 1, + 49, + 86, + 91, + 97, + 2, + 253, + 129, + 97, + 2, + 247, + 132, + 84, + 97, + 2, + 70, + 86, + 91, + 132, + 97, + 2, + 128, + 86, + 91, + 96, + 32, + 128, + 96, + 31, + 131, + 17, + 96, + 1, + 129, + 20, + 97, + 3, + 50, + 87, + 96, + 0, + 132, + 21, + 97, + 3, + 26, + 87, + 80, + 133, + 131, + 1, + 81, + 91, + 96, + 0, + 25, + 96, + 3, + 134, + 144, + 27, + 28, + 25, + 22, + 96, + 1, + 133, + 144, + 27, + 23, + 133, + 85, + 97, + 2, + 198, + 86, + 91, + 96, + 0, + 133, + 129, + 82, + 96, + 32, + 129, + 32, + 96, + 31, + 25, + 134, + 22, + 145, + 91, + 130, + 129, + 16, + 21, + 97, + 3, + 97, + 87, + 136, + 134, + 1, + 81, + 130, + 85, + 148, + 132, + 1, + 148, + 96, + 1, + 144, + 145, + 1, + 144, + 132, + 1, + 97, + 3, + 66, + 86, + 91, + 80, + 133, + 130, + 16, + 21, + 97, + 3, + 127, + 87, + 135, + 133, + 1, + 81, + 96, + 0, + 25, + 96, + 3, + 136, + 144, + 27, + 96, + 248, + 22, + 28, + 25, + 22, + 129, + 85, + 91, + 80, + 80, + 80, + 80, + 80, + 96, + 1, + 144, + 129, + 27, + 1, + 144, + 85, + 80, + 86, + 254, + 162, + 100, + 105, + 112, + 102, + 115, + 88, + 34, + 18, + 32, + 135, + 202, + 33, + 89, + 219, + 68, + 250, + 4, + 86, + 98, + 55, + 188, + 62, + 64, + 208, + 74, + 53, + 108, + 137, + 147, + 3, + 67, + 235, + 235, + 220, + 21, + 238, + 255, + 122, + 231, + 29, + 1, + 100, + 115, + 111, + 108, + 99, + 67, + 0, + 8, + 19, + 0, + 51, + ]; + ///The deployed bytecode of the contract. + pub static WRITER_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __DEPLOYED_BYTECODE, + ); + pub struct Writer(::ethers::contract::Contract); + impl ::core::clone::Clone for Writer { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for Writer { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for Writer { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for Writer { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(stringify!(Writer)).field(&self.address()).finish() + } + } + impl Writer { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + WRITER_ABI.clone(), + client, + ), + ) + } + /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. + /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction + /// + /// Notes: + /// - If there are no constructor arguments, you should pass `()` as the argument. + /// - The default poll duration is 7 seconds. + /// - The default number of confirmations is 1 block. + /// + /// + /// # Example + /// + /// Generate contract bindings with `abigen!` and deploy a new contract instance. + /// + /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. + /// + /// ```ignore + /// # async fn deploy(client: ::std::sync::Arc) { + /// abigen!(Greeter, "../greeter.json"); + /// + /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); + /// let msg = greeter_contract.greet().call().await.unwrap(); + /// # } + /// ``` + pub fn deploy( + client: ::std::sync::Arc, + constructor_args: T, + ) -> ::core::result::Result< + ::ethers::contract::builders::ContractDeployer, + ::ethers::contract::ContractError, + > { + let factory = ::ethers::contract::ContractFactory::new( + WRITER_ABI.clone(), + WRITER_BYTECODE.clone().into(), + client, + ); + let deployer = factory.deploy(constructor_args)?; + let deployer = ::ethers::contract::ContractDeployer::new(deployer); + Ok(deployer) + } + ///Calls the contract's `echoString` (0x0d7e2fce) function + pub fn echo_string( + &self, + test_string: ::std::string::String, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([13, 126, 47, 206], test_string) + .expect("method not found (this should never happen)") + } + ///Gets the contract's `WasWritten` event + pub fn was_written_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + WasWrittenFilter, + > { + self.0.event() + } + /// Returns an `Event` builder for all the events of this contract. + pub fn events( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + WasWrittenFilter, + > { + self.0.event_with_filter(::core::default::Default::default()) + } + } + impl From<::ethers::contract::Contract> + for Writer { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent(name = "WasWritten", abi = "WasWritten(string)")] + pub struct WasWrittenFilter { + pub test_string: ::std::string::String, + } + ///Container type for all input parameters for the `echoString` function with signature `echoString(string)` and selector `0x0d7e2fce` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "echoString", abi = "echoString(string)")] + pub struct EchoStringCall { + pub test_string: ::std::string::String, + } + ///Container type for all return fields from the `echoString` function with signature `echoString(string)` and selector `0x0d7e2fce` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct EchoStringReturn(pub ::std::string::String); +} diff --git a/crates/bindings/src/mock_erc20.rs b/crates/bindings/src/mock_erc20.rs deleted file mode 100644 index 7807c0b2..00000000 --- a/crates/bindings/src/mock_erc20.rs +++ /dev/null @@ -1,8009 +0,0 @@ -pub use mock_erc20::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types, -)] -pub mod mock_erc20 { - #[rustfmt::skip] - const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\",\"components\":[]},{\"internalType\":\"string\",\"name\":\"_symbol\",\"type\":\"string\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"_decimals\",\"type\":\"uint8\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Approval\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Transfer\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"burn\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"mint\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\",\"components\":[]},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\",\"components\":[]},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"permit\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]}]"; - ///The parsed JSON ABI of the contract. - pub static MOCKERC20_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| - ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); - #[rustfmt::skip] - const __BYTECODE: &[u8] = &[ - 96, - 224, - 96, - 64, - 82, - 52, - 128, - 21, - 98, - 0, - 0, - 17, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 96, - 64, - 81, - 98, - 0, - 15, - 248, - 56, - 3, - 128, - 98, - 0, - 15, - 248, - 131, - 57, - 129, - 1, - 96, - 64, - 129, - 144, - 82, - 98, - 0, - 0, - 52, - 145, - 98, - 0, - 2, - 154, - 86, - 91, - 130, - 130, - 130, - 130, - 96, - 0, - 144, - 128, - 81, - 144, - 96, - 32, - 1, - 144, - 98, - 0, - 0, - 79, - 146, - 145, - 144, - 98, - 0, - 1, - 39, - 86, - 91, - 80, - 129, - 81, - 98, - 0, - 0, - 101, - 144, - 96, - 1, - 144, - 96, - 32, - 133, - 1, - 144, - 98, - 0, - 1, - 39, - 86, - 91, - 80, - 96, - 255, - 129, - 22, - 96, - 128, - 82, - 70, - 96, - 160, - 82, - 98, - 0, - 0, - 123, - 98, - 0, - 0, - 139, - 86, - 91, - 96, - 192, - 82, - 80, - 98, - 0, - 3, - 254, - 148, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 127, - 139, - 115, - 195, - 198, - 155, - 184, - 254, - 61, - 81, - 46, - 204, - 76, - 247, - 89, - 204, - 121, - 35, - 159, - 123, - 23, - 155, - 15, - 250, - 202, - 169, - 167, - 93, - 82, - 43, - 57, - 64, - 15, - 96, - 0, - 96, - 64, - 81, - 98, - 0, - 0, - 191, - 145, - 144, - 98, - 0, - 3, - 91, - 86, - 91, - 96, - 64, - 128, - 81, - 145, - 130, - 144, - 3, - 130, - 32, - 96, - 32, - 131, - 1, - 147, - 144, - 147, - 82, - 129, - 1, - 145, - 144, - 145, - 82, - 127, - 200, - 158, - 253, - 170, - 84, - 192, - 242, - 12, - 122, - 223, - 97, - 40, - 130, - 223, - 9, - 80, - 245, - 169, - 81, - 99, - 126, - 3, - 7, - 205, - 203, - 76, - 103, - 47, - 41, - 139, - 139, - 198, - 96, - 96, - 130, - 1, - 82, - 70, - 96, - 128, - 130, - 1, - 82, - 48, - 96, - 160, - 130, - 1, - 82, - 96, - 192, - 1, - 96, - 64, - 81, - 96, - 32, - 129, - 131, - 3, - 3, - 129, - 82, - 144, - 96, - 64, - 82, - 128, - 81, - 144, - 96, - 32, - 1, - 32, - 144, - 80, - 144, - 86, - 91, - 130, - 128, - 84, - 98, - 0, - 1, - 53, - 144, - 98, - 0, - 3, - 31, - 86, - 91, - 144, - 96, - 0, - 82, - 96, - 32, - 96, - 0, - 32, - 144, - 96, - 31, - 1, - 96, - 32, - 144, - 4, - 129, - 1, - 146, - 130, - 98, - 0, - 1, - 89, - 87, - 96, - 0, - 133, - 85, - 98, - 0, - 1, - 164, - 86, - 91, - 130, - 96, - 31, - 16, - 98, - 0, - 1, - 116, - 87, - 128, - 81, - 96, - 255, - 25, - 22, - 131, - 128, - 1, - 23, - 133, - 85, - 98, - 0, - 1, - 164, - 86, - 91, - 130, - 128, - 1, - 96, - 1, - 1, - 133, - 85, - 130, - 21, - 98, - 0, - 1, - 164, - 87, - 145, - 130, - 1, - 91, - 130, - 129, - 17, - 21, - 98, - 0, - 1, - 164, - 87, - 130, - 81, - 130, - 85, - 145, - 96, - 32, - 1, - 145, - 144, - 96, - 1, - 1, - 144, - 98, - 0, - 1, - 135, - 86, - 91, - 80, - 98, - 0, - 1, - 178, - 146, - 145, - 80, - 98, - 0, - 1, - 182, - 86, - 91, - 80, - 144, - 86, - 91, - 91, - 128, - 130, - 17, - 21, - 98, - 0, - 1, - 178, - 87, - 96, - 0, - 129, - 85, - 96, - 1, - 1, - 98, - 0, - 1, - 183, - 86, - 91, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 65, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 96, - 0, - 130, - 96, - 31, - 131, - 1, - 18, - 98, - 0, - 1, - 245, - 87, - 96, - 0, - 128, - 253, - 91, - 129, - 81, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 128, - 130, - 17, - 21, - 98, - 0, - 2, - 18, - 87, - 98, - 0, - 2, - 18, - 98, - 0, - 1, - 205, - 86, - 91, - 96, - 64, - 81, - 96, - 31, - 131, - 1, - 96, - 31, - 25, - 144, - 129, - 22, - 96, - 63, - 1, - 22, - 129, - 1, - 144, - 130, - 130, - 17, - 129, - 131, - 16, - 23, - 21, - 98, - 0, - 2, - 61, - 87, - 98, - 0, - 2, - 61, - 98, - 0, - 1, - 205, - 86, - 91, - 129, - 96, - 64, - 82, - 131, - 129, - 82, - 96, - 32, - 146, - 80, - 134, - 131, - 133, - 136, - 1, - 1, - 17, - 21, - 98, - 0, - 2, - 90, - 87, - 96, - 0, - 128, - 253, - 91, - 96, - 0, - 145, - 80, - 91, - 131, - 130, - 16, - 21, - 98, - 0, - 2, - 126, - 87, - 133, - 130, - 1, - 131, - 1, - 81, - 129, - 131, - 1, - 132, - 1, - 82, - 144, - 130, - 1, - 144, - 98, - 0, - 2, - 95, - 86, - 91, - 131, - 130, - 17, - 21, - 98, - 0, - 2, - 144, - 87, - 96, - 0, - 131, - 133, - 131, - 1, - 1, - 82, - 91, - 150, - 149, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 96, - 96, - 132, - 134, - 3, - 18, - 21, - 98, - 0, - 2, - 176, - 87, - 96, - 0, - 128, - 253, - 91, - 131, - 81, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 128, - 130, - 17, - 21, - 98, - 0, - 2, - 200, - 87, - 96, - 0, - 128, - 253, - 91, - 98, - 0, - 2, - 214, - 135, - 131, - 136, - 1, - 98, - 0, - 1, - 227, - 86, - 91, - 148, - 80, - 96, - 32, - 134, - 1, - 81, - 145, - 80, - 128, - 130, - 17, - 21, - 98, - 0, - 2, - 237, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 98, - 0, - 2, - 252, - 134, - 130, - 135, - 1, - 98, - 0, - 1, - 227, - 86, - 91, - 146, - 80, - 80, - 96, - 64, - 132, - 1, - 81, - 96, - 255, - 129, - 22, - 129, - 20, - 98, - 0, - 3, - 20, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 145, - 80, - 80, - 146, - 80, - 146, - 80, - 146, - 86, - 91, - 96, - 1, - 129, - 129, - 28, - 144, - 130, - 22, - 128, - 98, - 0, - 3, - 52, - 87, - 96, - 127, - 130, - 22, - 145, - 80, - 91, - 96, - 32, - 130, - 16, - 129, - 3, - 98, - 0, - 3, - 85, - 87, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 34, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 80, - 145, - 144, - 80, - 86, - 91, - 96, - 0, - 128, - 131, - 84, - 129, - 96, - 1, - 130, - 129, - 28, - 145, - 80, - 128, - 131, - 22, - 128, - 98, - 0, - 3, - 120, - 87, - 96, - 127, - 131, - 22, - 146, - 80, - 91, - 96, - 32, - 128, - 132, - 16, - 130, - 3, - 98, - 0, - 3, - 152, - 87, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 134, - 82, - 96, - 34, - 96, - 4, - 82, - 96, - 36, - 134, - 253, - 91, - 129, - 128, - 21, - 98, - 0, - 3, - 175, - 87, - 96, - 1, - 129, - 20, - 98, - 0, - 3, - 193, - 87, - 98, - 0, - 3, - 240, - 86, - 91, - 96, - 255, - 25, - 134, - 22, - 137, - 82, - 132, - 137, - 1, - 150, - 80, - 98, - 0, - 3, - 240, - 86, - 91, - 96, - 0, - 138, - 129, - 82, - 96, - 32, - 144, - 32, - 96, - 0, - 91, - 134, - 129, - 16, - 21, - 98, - 0, - 3, - 232, - 87, - 129, - 84, - 139, - 130, - 1, - 82, - 144, - 133, - 1, - 144, - 131, - 1, - 98, - 0, - 3, - 205, - 86, - 91, - 80, - 80, - 132, - 137, - 1, - 150, - 80, - 91, - 80, - 148, - 152, - 151, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 128, - 81, - 96, - 160, - 81, - 96, - 192, - 81, - 97, - 11, - 202, - 98, - 0, - 4, - 46, - 96, - 0, - 57, - 96, - 0, - 97, - 4, - 111, - 1, - 82, - 96, - 0, - 97, - 4, - 58, - 1, - 82, - 96, - 0, - 97, - 1, - 95, - 1, - 82, - 97, - 11, - 202, - 96, - 0, - 243, - 254, - 96, - 128, - 96, - 64, - 82, - 52, - 128, - 21, - 97, - 0, - 16, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 96, - 4, - 54, - 16, - 97, - 0, - 234, - 87, - 96, - 0, - 53, - 96, - 224, - 28, - 128, - 99, - 112, - 160, - 130, - 49, - 17, - 97, - 0, - 140, - 87, - 128, - 99, - 157, - 194, - 159, - 172, - 17, - 97, - 0, - 102, - 87, - 128, - 99, - 157, - 194, - 159, - 172, - 20, - 97, - 1, - 248, - 87, - 128, - 99, - 169, - 5, - 156, - 187, - 20, - 97, - 2, - 11, - 87, - 128, - 99, - 213, - 5, - 172, - 207, - 20, - 97, - 2, - 30, - 87, - 128, - 99, - 221, - 98, - 237, - 62, - 20, - 97, - 2, - 49, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 99, - 112, - 160, - 130, - 49, - 20, - 97, - 1, - 176, - 87, - 128, - 99, - 126, - 206, - 190, - 0, - 20, - 97, - 1, - 208, - 87, - 128, - 99, - 149, - 216, - 155, - 65, - 20, - 97, - 1, - 240, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 99, - 35, - 184, - 114, - 221, - 17, - 97, - 0, - 200, - 87, - 128, - 99, - 35, - 184, - 114, - 221, - 20, - 97, - 1, - 71, - 87, - 128, - 99, - 49, - 60, - 229, - 103, - 20, - 97, - 1, - 90, - 87, - 128, - 99, - 54, - 68, - 229, - 21, - 20, - 97, - 1, - 147, - 87, - 128, - 99, - 64, - 193, - 15, - 25, - 20, - 97, - 1, - 155, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 99, - 6, - 253, - 222, - 3, - 20, - 97, - 0, - 239, - 87, - 128, - 99, - 9, - 94, - 167, - 179, - 20, - 97, - 1, - 13, - 87, - 128, - 99, - 24, - 22, - 13, - 221, - 20, - 97, - 1, - 48, - 87, - 91, - 96, - 0, - 128, - 253, - 91, - 97, - 0, - 247, - 97, - 2, - 92, - 86, - 91, - 96, - 64, - 81, - 97, - 1, - 4, - 145, - 144, - 97, - 8, - 187, - 86, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 243, - 91, - 97, - 1, - 32, - 97, - 1, - 27, - 54, - 96, - 4, - 97, - 9, - 44, - 86, - 91, - 97, - 2, - 234, - 86, - 91, - 96, - 64, - 81, - 144, - 21, - 21, - 129, - 82, - 96, - 32, - 1, - 97, - 1, - 4, - 86, - 91, - 97, - 1, - 57, - 96, - 2, - 84, - 129, - 86, - 91, - 96, - 64, - 81, - 144, - 129, - 82, - 96, - 32, - 1, - 97, - 1, - 4, - 86, - 91, - 97, - 1, - 32, - 97, - 1, - 85, - 54, - 96, - 4, - 97, - 9, - 86, - 86, - 91, - 97, - 3, - 86, - 86, - 91, - 97, - 1, - 129, - 127, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 129, - 86, - 91, - 96, - 64, - 81, - 96, - 255, - 144, - 145, - 22, - 129, - 82, - 96, - 32, - 1, - 97, - 1, - 4, - 86, - 91, - 97, - 1, - 57, - 97, - 4, - 54, - 86, - 91, - 97, - 1, - 174, - 97, - 1, - 169, - 54, - 96, - 4, - 97, - 9, - 44, - 86, - 91, - 97, - 4, - 145, - 86, - 91, - 0, - 91, - 97, - 1, - 57, - 97, - 1, - 190, - 54, - 96, - 4, - 97, - 9, - 146, - 86, - 91, - 96, - 3, - 96, - 32, - 82, - 96, - 0, - 144, - 129, - 82, - 96, - 64, - 144, - 32, - 84, - 129, - 86, - 91, - 97, - 1, - 57, - 97, - 1, - 222, - 54, - 96, - 4, - 97, - 9, - 146, - 86, - 91, - 96, - 5, - 96, - 32, - 82, - 96, - 0, - 144, - 129, - 82, - 96, - 64, - 144, - 32, - 84, - 129, - 86, - 91, - 97, - 0, - 247, - 97, - 4, - 159, - 86, - 91, - 97, - 1, - 174, - 97, - 2, - 6, - 54, - 96, - 4, - 97, - 9, - 44, - 86, - 91, - 97, - 4, - 172, - 86, - 91, - 97, - 1, - 32, - 97, - 2, - 25, - 54, - 96, - 4, - 97, - 9, - 44, - 86, - 91, - 97, - 4, - 182, - 86, - 91, - 97, - 1, - 174, - 97, - 2, - 44, - 54, - 96, - 4, - 97, - 9, - 180, - 86, - 91, - 97, - 5, - 28, - 86, - 91, - 97, - 1, - 57, - 97, - 2, - 63, - 54, - 96, - 4, - 97, - 10, - 39, - 86, - 91, - 96, - 4, - 96, - 32, - 144, - 129, - 82, - 96, - 0, - 146, - 131, - 82, - 96, - 64, - 128, - 132, - 32, - 144, - 145, - 82, - 144, - 130, - 82, - 144, - 32, - 84, - 129, - 86, - 91, - 96, - 0, - 128, - 84, - 97, - 2, - 105, - 144, - 97, - 10, - 90, - 86, - 91, - 128, - 96, - 31, - 1, - 96, - 32, - 128, - 145, - 4, - 2, - 96, - 32, - 1, - 96, - 64, - 81, - 144, - 129, - 1, - 96, - 64, - 82, - 128, - 146, - 145, - 144, - 129, - 129, - 82, - 96, - 32, - 1, - 130, - 128, - 84, - 97, - 2, - 149, - 144, - 97, - 10, - 90, - 86, - 91, - 128, - 21, - 97, - 2, - 226, - 87, - 128, - 96, - 31, - 16, - 97, - 2, - 183, - 87, - 97, - 1, - 0, - 128, - 131, - 84, - 4, - 2, - 131, - 82, - 145, - 96, - 32, - 1, - 145, - 97, - 2, - 226, - 86, - 91, - 130, - 1, - 145, - 144, - 96, - 0, - 82, - 96, - 32, - 96, - 0, - 32, - 144, - 91, - 129, - 84, - 129, - 82, - 144, - 96, - 1, - 1, - 144, - 96, - 32, - 1, - 128, - 131, - 17, - 97, - 2, - 197, - 87, - 130, - 144, - 3, - 96, - 31, - 22, - 130, - 1, - 145, - 91, - 80, - 80, - 80, - 80, - 80, - 129, - 86, - 91, - 51, - 96, - 0, - 129, - 129, - 82, - 96, - 4, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 135, - 22, - 128, - 133, - 82, - 146, - 82, - 128, - 131, - 32, - 133, - 144, - 85, - 81, - 145, - 146, - 144, - 145, - 127, - 140, - 91, - 225, - 229, - 235, - 236, - 125, - 91, - 209, - 79, - 113, - 66, - 125, - 30, - 132, - 243, - 221, - 3, - 20, - 192, - 247, - 178, - 41, - 30, - 91, - 32, - 10, - 200, - 199, - 195, - 185, - 37, - 144, - 97, - 3, - 69, - 144, - 134, - 129, - 82, - 96, - 32, - 1, - 144, - 86, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 163, - 80, - 96, - 1, - 146, - 145, - 80, - 80, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 131, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 4, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 51, - 132, - 82, - 144, - 145, - 82, - 129, - 32, - 84, - 96, - 0, - 25, - 129, - 20, - 97, - 3, - 178, - 87, - 97, - 3, - 141, - 131, - 130, - 97, - 10, - 170, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 134, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 4, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 51, - 132, - 82, - 144, - 145, - 82, - 144, - 32, - 85, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 133, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 3, - 96, - 32, - 82, - 96, - 64, - 129, - 32, - 128, - 84, - 133, - 146, - 144, - 97, - 3, - 218, - 144, - 132, - 144, - 97, - 10, - 170, - 86, - 91, - 144, - 145, - 85, - 80, - 80, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 128, - 133, - 22, - 96, - 0, - 129, - 129, - 82, - 96, - 3, - 96, - 32, - 82, - 96, - 64, - 144, - 129, - 144, - 32, - 128, - 84, - 135, - 1, - 144, - 85, - 81, - 144, - 145, - 135, - 22, - 144, - 96, - 0, - 128, - 81, - 96, - 32, - 97, - 11, - 117, - 131, - 57, - 129, - 81, - 145, - 82, - 144, - 97, - 4, - 35, - 144, - 135, - 129, - 82, - 96, - 32, - 1, - 144, - 86, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 163, - 80, - 96, - 1, - 148, - 147, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 127, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 70, - 20, - 97, - 4, - 108, - 87, - 97, - 4, - 103, - 97, - 7, - 101, - 86, - 91, - 144, - 80, - 144, - 86, - 91, - 80, - 127, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 144, - 86, - 91, - 97, - 4, - 155, - 130, - 130, - 97, - 7, - 255, - 86, - 91, - 80, - 80, - 86, - 91, - 96, - 1, - 128, - 84, - 97, - 2, - 105, - 144, - 97, - 10, - 90, - 86, - 91, - 97, - 4, - 155, - 130, - 130, - 97, - 8, - 89, - 86, - 91, - 51, - 96, - 0, - 144, - 129, - 82, - 96, - 3, - 96, - 32, - 82, - 96, - 64, - 129, - 32, - 128, - 84, - 131, - 145, - 144, - 131, - 144, - 97, - 4, - 215, - 144, - 132, - 144, - 97, - 10, - 170, - 86, - 91, - 144, - 145, - 85, - 80, - 80, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 131, - 22, - 96, - 0, - 129, - 129, - 82, - 96, - 3, - 96, - 32, - 82, - 96, - 64, - 144, - 129, - 144, - 32, - 128, - 84, - 133, - 1, - 144, - 85, - 81, - 51, - 144, - 96, - 0, - 128, - 81, - 96, - 32, - 97, - 11, - 117, - 131, - 57, - 129, - 81, - 145, - 82, - 144, - 97, - 3, - 69, - 144, - 134, - 129, - 82, - 96, - 32, - 1, - 144, - 86, - 91, - 66, - 132, - 16, - 21, - 97, - 5, - 113, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 23, - 96, - 36, - 130, - 1, - 82, - 127, - 80, - 69, - 82, - 77, - 73, - 84, - 95, - 68, - 69, - 65, - 68, - 76, - 73, - 78, - 69, - 95, - 69, - 88, - 80, - 73, - 82, - 69, - 68, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 96, - 68, - 130, - 1, - 82, - 96, - 100, - 1, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 0, - 96, - 1, - 97, - 5, - 125, - 97, - 4, - 54, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 138, - 129, - 22, - 96, - 0, - 129, - 129, - 82, - 96, - 5, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 145, - 130, - 144, - 32, - 128, - 84, - 96, - 1, - 129, - 1, - 144, - 145, - 85, - 130, - 81, - 127, - 110, - 113, - 237, - 174, - 18, - 177, - 185, - 127, - 77, - 31, - 96, - 55, - 15, - 239, - 16, - 16, - 95, - 162, - 250, - 174, - 1, - 38, - 17, - 74, - 22, - 156, - 100, - 132, - 93, - 97, - 38, - 201, - 129, - 132, - 1, - 82, - 128, - 132, - 1, - 148, - 144, - 148, - 82, - 147, - 141, - 22, - 96, - 96, - 132, - 1, - 82, - 96, - 128, - 131, - 1, - 140, - 144, - 82, - 96, - 160, - 131, - 1, - 147, - 144, - 147, - 82, - 96, - 192, - 128, - 131, - 1, - 139, - 144, - 82, - 129, - 81, - 128, - 132, - 3, - 144, - 145, - 1, - 129, - 82, - 96, - 224, - 131, - 1, - 144, - 145, - 82, - 128, - 81, - 146, - 1, - 145, - 144, - 145, - 32, - 97, - 25, - 1, - 96, - 240, - 27, - 97, - 1, - 0, - 131, - 1, - 82, - 97, - 1, - 2, - 130, - 1, - 146, - 144, - 146, - 82, - 97, - 1, - 34, - 129, - 1, - 145, - 144, - 145, - 82, - 97, - 1, - 66, - 1, - 96, - 64, - 128, - 81, - 96, - 31, - 25, - 129, - 132, - 3, - 1, - 129, - 82, - 130, - 130, - 82, - 128, - 81, - 96, - 32, - 145, - 130, - 1, - 32, - 96, - 0, - 132, - 82, - 144, - 131, - 1, - 128, - 131, - 82, - 82, - 96, - 255, - 135, - 22, - 144, - 130, - 1, - 82, - 96, - 96, - 129, - 1, - 133, - 144, - 82, - 96, - 128, - 129, - 1, - 132, - 144, - 82, - 96, - 160, - 1, - 96, - 32, - 96, - 64, - 81, - 96, - 32, - 129, - 3, - 144, - 128, - 132, - 3, - 144, - 133, - 90, - 250, - 21, - 128, - 21, - 97, - 6, - 137, - 87, - 61, - 96, - 0, - 128, - 62, - 61, - 96, - 0, - 253, - 91, - 80, - 80, - 96, - 64, - 81, - 96, - 31, - 25, - 1, - 81, - 145, - 80, - 80, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 129, - 22, - 21, - 128, - 21, - 144, - 97, - 6, - 191, - 87, - 80, - 135, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 20, - 91, - 97, - 6, - 252, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 14, - 96, - 36, - 130, - 1, - 82, - 109, - 36, - 167, - 43, - 32, - 166, - 36, - 162, - 47, - 169, - 164, - 163, - 167, - 34, - 169, - 96, - 145, - 27, - 96, - 68, - 130, - 1, - 82, - 96, - 100, - 1, - 97, - 5, - 104, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 144, - 129, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 4, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 138, - 133, - 22, - 128, - 133, - 82, - 144, - 131, - 82, - 146, - 129, - 144, - 32, - 137, - 144, - 85, - 81, - 136, - 129, - 82, - 145, - 146, - 138, - 22, - 145, - 127, - 140, - 91, - 225, - 229, - 235, - 236, - 125, - 91, - 209, - 79, - 113, - 66, - 125, - 30, - 132, - 243, - 221, - 3, - 20, - 192, - 247, - 178, - 41, - 30, - 91, - 32, - 10, - 200, - 199, - 195, - 185, - 37, - 145, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 163, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 127, - 139, - 115, - 195, - 198, - 155, - 184, - 254, - 61, - 81, - 46, - 204, - 76, - 247, - 89, - 204, - 121, - 35, - 159, - 123, - 23, - 155, - 15, - 250, - 202, - 169, - 167, - 93, - 82, - 43, - 57, - 64, - 15, - 96, - 0, - 96, - 64, - 81, - 97, - 7, - 151, - 145, - 144, - 97, - 10, - 193, - 86, - 91, - 96, - 64, - 128, - 81, - 145, - 130, - 144, - 3, - 130, - 32, - 96, - 32, - 131, - 1, - 147, - 144, - 147, - 82, - 129, - 1, - 145, - 144, - 145, - 82, - 127, - 200, - 158, - 253, - 170, - 84, - 192, - 242, - 12, - 122, - 223, - 97, - 40, - 130, - 223, - 9, - 80, - 245, - 169, - 81, - 99, - 126, - 3, - 7, - 205, - 203, - 76, - 103, - 47, - 41, - 139, - 139, - 198, - 96, - 96, - 130, - 1, - 82, - 70, - 96, - 128, - 130, - 1, - 82, - 48, - 96, - 160, - 130, - 1, - 82, - 96, - 192, - 1, - 96, - 64, - 81, - 96, - 32, - 129, - 131, - 3, - 3, - 129, - 82, - 144, - 96, - 64, - 82, - 128, - 81, - 144, - 96, - 32, - 1, - 32, - 144, - 80, - 144, - 86, - 91, - 128, - 96, - 2, - 96, - 0, - 130, - 130, - 84, - 97, - 8, - 17, - 145, - 144, - 97, - 11, - 92, - 86, - 91, - 144, - 145, - 85, - 80, - 80, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 130, - 22, - 96, - 0, - 129, - 129, - 82, - 96, - 3, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 128, - 84, - 134, - 1, - 144, - 85, - 81, - 132, - 129, - 82, - 96, - 0, - 128, - 81, - 96, - 32, - 97, - 11, - 117, - 131, - 57, - 129, - 81, - 145, - 82, - 145, - 1, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 163, - 80, - 80, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 130, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 3, - 96, - 32, - 82, - 96, - 64, - 129, - 32, - 128, - 84, - 131, - 146, - 144, - 97, - 8, - 129, - 144, - 132, - 144, - 97, - 10, - 170, - 86, - 91, - 144, - 145, - 85, - 80, - 80, - 96, - 2, - 128, - 84, - 130, - 144, - 3, - 144, - 85, - 96, - 64, - 81, - 129, - 129, - 82, - 96, - 0, - 144, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 132, - 22, - 144, - 96, - 0, - 128, - 81, - 96, - 32, - 97, - 11, - 117, - 131, - 57, - 129, - 81, - 145, - 82, - 144, - 96, - 32, - 1, - 97, - 8, - 77, - 86, - 91, - 96, - 0, - 96, - 32, - 128, - 131, - 82, - 131, - 81, - 128, - 130, - 133, - 1, - 82, - 96, - 0, - 91, - 129, - 129, - 16, - 21, - 97, - 8, - 232, - 87, - 133, - 129, - 1, - 131, - 1, - 81, - 133, - 130, - 1, - 96, - 64, - 1, - 82, - 130, - 1, - 97, - 8, - 204, - 86, - 91, - 129, - 129, - 17, - 21, - 97, - 8, - 250, - 87, - 96, - 0, - 96, - 64, - 131, - 135, - 1, - 1, - 82, - 91, - 80, - 96, - 31, - 1, - 96, - 31, - 25, - 22, - 146, - 144, - 146, - 1, - 96, - 64, - 1, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 128, - 53, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 129, - 22, - 129, - 20, - 97, - 9, - 39, - 87, - 96, - 0, - 128, - 253, - 91, - 145, - 144, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 64, - 131, - 133, - 3, - 18, - 21, - 97, - 9, - 63, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 9, - 72, - 131, - 97, - 9, - 16, - 86, - 91, - 148, - 96, - 32, - 147, - 144, - 147, - 1, - 53, - 147, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 96, - 96, - 132, - 134, - 3, - 18, - 21, - 97, - 9, - 107, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 9, - 116, - 132, - 97, - 9, - 16, - 86, - 91, - 146, - 80, - 97, - 9, - 130, - 96, - 32, - 133, - 1, - 97, - 9, - 16, - 86, - 91, - 145, - 80, - 96, - 64, - 132, - 1, - 53, - 144, - 80, - 146, - 80, - 146, - 80, - 146, - 86, - 91, - 96, - 0, - 96, - 32, - 130, - 132, - 3, - 18, - 21, - 97, - 9, - 164, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 9, - 173, - 130, - 97, - 9, - 16, - 86, - 91, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 128, - 96, - 0, - 128, - 96, - 0, - 96, - 224, - 136, - 138, - 3, - 18, - 21, - 97, - 9, - 207, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 9, - 216, - 136, - 97, - 9, - 16, - 86, - 91, - 150, - 80, - 97, - 9, - 230, - 96, - 32, - 137, - 1, - 97, - 9, - 16, - 86, - 91, - 149, - 80, - 96, - 64, - 136, - 1, - 53, - 148, - 80, - 96, - 96, - 136, - 1, - 53, - 147, - 80, - 96, - 128, - 136, - 1, - 53, - 96, - 255, - 129, - 22, - 129, - 20, - 97, - 10, - 10, - 87, - 96, - 0, - 128, - 253, - 91, - 150, - 153, - 149, - 152, - 80, - 147, - 150, - 146, - 149, - 148, - 96, - 160, - 132, - 1, - 53, - 148, - 80, - 96, - 192, - 144, - 147, - 1, - 53, - 146, - 145, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 64, - 131, - 133, - 3, - 18, - 21, - 97, - 10, - 58, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 10, - 67, - 131, - 97, - 9, - 16, - 86, - 91, - 145, - 80, - 97, - 10, - 81, - 96, - 32, - 132, - 1, - 97, - 9, - 16, - 86, - 91, - 144, - 80, - 146, - 80, - 146, - 144, - 80, - 86, - 91, - 96, - 1, - 129, - 129, - 28, - 144, - 130, - 22, - 128, - 97, - 10, - 110, - 87, - 96, - 127, - 130, - 22, - 145, - 80, - 91, - 96, - 32, - 130, - 16, - 129, - 3, - 97, - 10, - 142, - 87, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 34, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 80, - 145, - 144, - 80, - 86, - 91, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 17, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 96, - 0, - 130, - 130, - 16, - 21, - 97, - 10, - 188, - 87, - 97, - 10, - 188, - 97, - 10, - 148, - 86, - 91, - 80, - 3, - 144, - 86, - 91, - 96, - 0, - 128, - 131, - 84, - 129, - 96, - 1, - 130, - 129, - 28, - 145, - 80, - 128, - 131, - 22, - 128, - 97, - 10, - 221, - 87, - 96, - 127, - 131, - 22, - 146, - 80, - 91, - 96, - 32, - 128, - 132, - 16, - 130, - 3, - 97, - 10, - 252, - 87, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 134, - 82, - 96, - 34, - 96, - 4, - 82, - 96, - 36, - 134, - 253, - 91, - 129, - 128, - 21, - 97, - 11, - 16, - 87, - 96, - 1, - 129, - 20, - 97, - 11, - 33, - 87, - 97, - 11, - 78, - 86, - 91, - 96, - 255, - 25, - 134, - 22, - 137, - 82, - 132, - 137, - 1, - 150, - 80, - 97, - 11, - 78, - 86, - 91, - 96, - 0, - 138, - 129, - 82, - 96, - 32, - 144, - 32, - 96, - 0, - 91, - 134, - 129, - 16, - 21, - 97, - 11, - 70, - 87, - 129, - 84, - 139, - 130, - 1, - 82, - 144, - 133, - 1, - 144, - 131, - 1, - 97, - 11, - 45, - 86, - 91, - 80, - 80, - 132, - 137, - 1, - 150, - 80, - 91, - 80, - 148, - 152, - 151, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 130, - 25, - 130, - 17, - 21, - 97, - 11, - 111, - 87, - 97, - 11, - 111, - 97, - 10, - 148, - 86, - 91, - 80, - 1, - 144, - 86, - 254, - 221, - 242, - 82, - 173, - 27, - 226, - 200, - 155, - 105, - 194, - 176, - 104, - 252, - 55, - 141, - 170, - 149, - 43, - 167, - 241, - 99, - 196, - 161, - 22, - 40, - 245, - 90, - 77, - 245, - 35, - 179, - 239, - 162, - 100, - 105, - 112, - 102, - 115, - 88, - 34, - 18, - 32, - 167, - 204, - 69, - 157, - 95, - 42, - 45, - 14, - 55, - 178, - 98, - 77, - 194, - 152, - 205, - 97, - 76, - 17, - 180, - 234, - 89, - 175, - 84, - 65, - 126, - 136, - 222, - 142, - 67, - 135, - 229, - 127, - 100, - 115, - 111, - 108, - 99, - 67, - 0, - 8, - 13, - 0, - 51, - ]; - ///The bytecode of the contract. - pub static MOCKERC20_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( - __BYTECODE, - ); - #[rustfmt::skip] - const __DEPLOYED_BYTECODE: &[u8] = &[ - 96, - 128, - 96, - 64, - 82, - 52, - 128, - 21, - 97, - 0, - 16, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 96, - 4, - 54, - 16, - 97, - 0, - 234, - 87, - 96, - 0, - 53, - 96, - 224, - 28, - 128, - 99, - 112, - 160, - 130, - 49, - 17, - 97, - 0, - 140, - 87, - 128, - 99, - 157, - 194, - 159, - 172, - 17, - 97, - 0, - 102, - 87, - 128, - 99, - 157, - 194, - 159, - 172, - 20, - 97, - 1, - 248, - 87, - 128, - 99, - 169, - 5, - 156, - 187, - 20, - 97, - 2, - 11, - 87, - 128, - 99, - 213, - 5, - 172, - 207, - 20, - 97, - 2, - 30, - 87, - 128, - 99, - 221, - 98, - 237, - 62, - 20, - 97, - 2, - 49, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 99, - 112, - 160, - 130, - 49, - 20, - 97, - 1, - 176, - 87, - 128, - 99, - 126, - 206, - 190, - 0, - 20, - 97, - 1, - 208, - 87, - 128, - 99, - 149, - 216, - 155, - 65, - 20, - 97, - 1, - 240, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 99, - 35, - 184, - 114, - 221, - 17, - 97, - 0, - 200, - 87, - 128, - 99, - 35, - 184, - 114, - 221, - 20, - 97, - 1, - 71, - 87, - 128, - 99, - 49, - 60, - 229, - 103, - 20, - 97, - 1, - 90, - 87, - 128, - 99, - 54, - 68, - 229, - 21, - 20, - 97, - 1, - 147, - 87, - 128, - 99, - 64, - 193, - 15, - 25, - 20, - 97, - 1, - 155, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 99, - 6, - 253, - 222, - 3, - 20, - 97, - 0, - 239, - 87, - 128, - 99, - 9, - 94, - 167, - 179, - 20, - 97, - 1, - 13, - 87, - 128, - 99, - 24, - 22, - 13, - 221, - 20, - 97, - 1, - 48, - 87, - 91, - 96, - 0, - 128, - 253, - 91, - 97, - 0, - 247, - 97, - 2, - 92, - 86, - 91, - 96, - 64, - 81, - 97, - 1, - 4, - 145, - 144, - 97, - 8, - 187, - 86, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 243, - 91, - 97, - 1, - 32, - 97, - 1, - 27, - 54, - 96, - 4, - 97, - 9, - 44, - 86, - 91, - 97, - 2, - 234, - 86, - 91, - 96, - 64, - 81, - 144, - 21, - 21, - 129, - 82, - 96, - 32, - 1, - 97, - 1, - 4, - 86, - 91, - 97, - 1, - 57, - 96, - 2, - 84, - 129, - 86, - 91, - 96, - 64, - 81, - 144, - 129, - 82, - 96, - 32, - 1, - 97, - 1, - 4, - 86, - 91, - 97, - 1, - 32, - 97, - 1, - 85, - 54, - 96, - 4, - 97, - 9, - 86, - 86, - 91, - 97, - 3, - 86, - 86, - 91, - 97, - 1, - 129, - 127, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 129, - 86, - 91, - 96, - 64, - 81, - 96, - 255, - 144, - 145, - 22, - 129, - 82, - 96, - 32, - 1, - 97, - 1, - 4, - 86, - 91, - 97, - 1, - 57, - 97, - 4, - 54, - 86, - 91, - 97, - 1, - 174, - 97, - 1, - 169, - 54, - 96, - 4, - 97, - 9, - 44, - 86, - 91, - 97, - 4, - 145, - 86, - 91, - 0, - 91, - 97, - 1, - 57, - 97, - 1, - 190, - 54, - 96, - 4, - 97, - 9, - 146, - 86, - 91, - 96, - 3, - 96, - 32, - 82, - 96, - 0, - 144, - 129, - 82, - 96, - 64, - 144, - 32, - 84, - 129, - 86, - 91, - 97, - 1, - 57, - 97, - 1, - 222, - 54, - 96, - 4, - 97, - 9, - 146, - 86, - 91, - 96, - 5, - 96, - 32, - 82, - 96, - 0, - 144, - 129, - 82, - 96, - 64, - 144, - 32, - 84, - 129, - 86, - 91, - 97, - 0, - 247, - 97, - 4, - 159, - 86, - 91, - 97, - 1, - 174, - 97, - 2, - 6, - 54, - 96, - 4, - 97, - 9, - 44, - 86, - 91, - 97, - 4, - 172, - 86, - 91, - 97, - 1, - 32, - 97, - 2, - 25, - 54, - 96, - 4, - 97, - 9, - 44, - 86, - 91, - 97, - 4, - 182, - 86, - 91, - 97, - 1, - 174, - 97, - 2, - 44, - 54, - 96, - 4, - 97, - 9, - 180, - 86, - 91, - 97, - 5, - 28, - 86, - 91, - 97, - 1, - 57, - 97, - 2, - 63, - 54, - 96, - 4, - 97, - 10, - 39, - 86, - 91, - 96, - 4, - 96, - 32, - 144, - 129, - 82, - 96, - 0, - 146, - 131, - 82, - 96, - 64, - 128, - 132, - 32, - 144, - 145, - 82, - 144, - 130, - 82, - 144, - 32, - 84, - 129, - 86, - 91, - 96, - 0, - 128, - 84, - 97, - 2, - 105, - 144, - 97, - 10, - 90, - 86, - 91, - 128, - 96, - 31, - 1, - 96, - 32, - 128, - 145, - 4, - 2, - 96, - 32, - 1, - 96, - 64, - 81, - 144, - 129, - 1, - 96, - 64, - 82, - 128, - 146, - 145, - 144, - 129, - 129, - 82, - 96, - 32, - 1, - 130, - 128, - 84, - 97, - 2, - 149, - 144, - 97, - 10, - 90, - 86, - 91, - 128, - 21, - 97, - 2, - 226, - 87, - 128, - 96, - 31, - 16, - 97, - 2, - 183, - 87, - 97, - 1, - 0, - 128, - 131, - 84, - 4, - 2, - 131, - 82, - 145, - 96, - 32, - 1, - 145, - 97, - 2, - 226, - 86, - 91, - 130, - 1, - 145, - 144, - 96, - 0, - 82, - 96, - 32, - 96, - 0, - 32, - 144, - 91, - 129, - 84, - 129, - 82, - 144, - 96, - 1, - 1, - 144, - 96, - 32, - 1, - 128, - 131, - 17, - 97, - 2, - 197, - 87, - 130, - 144, - 3, - 96, - 31, - 22, - 130, - 1, - 145, - 91, - 80, - 80, - 80, - 80, - 80, - 129, - 86, - 91, - 51, - 96, - 0, - 129, - 129, - 82, - 96, - 4, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 135, - 22, - 128, - 133, - 82, - 146, - 82, - 128, - 131, - 32, - 133, - 144, - 85, - 81, - 145, - 146, - 144, - 145, - 127, - 140, - 91, - 225, - 229, - 235, - 236, - 125, - 91, - 209, - 79, - 113, - 66, - 125, - 30, - 132, - 243, - 221, - 3, - 20, - 192, - 247, - 178, - 41, - 30, - 91, - 32, - 10, - 200, - 199, - 195, - 185, - 37, - 144, - 97, - 3, - 69, - 144, - 134, - 129, - 82, - 96, - 32, - 1, - 144, - 86, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 163, - 80, - 96, - 1, - 146, - 145, - 80, - 80, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 131, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 4, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 51, - 132, - 82, - 144, - 145, - 82, - 129, - 32, - 84, - 96, - 0, - 25, - 129, - 20, - 97, - 3, - 178, - 87, - 97, - 3, - 141, - 131, - 130, - 97, - 10, - 170, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 134, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 4, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 51, - 132, - 82, - 144, - 145, - 82, - 144, - 32, - 85, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 133, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 3, - 96, - 32, - 82, - 96, - 64, - 129, - 32, - 128, - 84, - 133, - 146, - 144, - 97, - 3, - 218, - 144, - 132, - 144, - 97, - 10, - 170, - 86, - 91, - 144, - 145, - 85, - 80, - 80, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 128, - 133, - 22, - 96, - 0, - 129, - 129, - 82, - 96, - 3, - 96, - 32, - 82, - 96, - 64, - 144, - 129, - 144, - 32, - 128, - 84, - 135, - 1, - 144, - 85, - 81, - 144, - 145, - 135, - 22, - 144, - 96, - 0, - 128, - 81, - 96, - 32, - 97, - 11, - 117, - 131, - 57, - 129, - 81, - 145, - 82, - 144, - 97, - 4, - 35, - 144, - 135, - 129, - 82, - 96, - 32, - 1, - 144, - 86, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 163, - 80, - 96, - 1, - 148, - 147, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 127, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 70, - 20, - 97, - 4, - 108, - 87, - 97, - 4, - 103, - 97, - 7, - 101, - 86, - 91, - 144, - 80, - 144, - 86, - 91, - 80, - 127, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 144, - 86, - 91, - 97, - 4, - 155, - 130, - 130, - 97, - 7, - 255, - 86, - 91, - 80, - 80, - 86, - 91, - 96, - 1, - 128, - 84, - 97, - 2, - 105, - 144, - 97, - 10, - 90, - 86, - 91, - 97, - 4, - 155, - 130, - 130, - 97, - 8, - 89, - 86, - 91, - 51, - 96, - 0, - 144, - 129, - 82, - 96, - 3, - 96, - 32, - 82, - 96, - 64, - 129, - 32, - 128, - 84, - 131, - 145, - 144, - 131, - 144, - 97, - 4, - 215, - 144, - 132, - 144, - 97, - 10, - 170, - 86, - 91, - 144, - 145, - 85, - 80, - 80, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 131, - 22, - 96, - 0, - 129, - 129, - 82, - 96, - 3, - 96, - 32, - 82, - 96, - 64, - 144, - 129, - 144, - 32, - 128, - 84, - 133, - 1, - 144, - 85, - 81, - 51, - 144, - 96, - 0, - 128, - 81, - 96, - 32, - 97, - 11, - 117, - 131, - 57, - 129, - 81, - 145, - 82, - 144, - 97, - 3, - 69, - 144, - 134, - 129, - 82, - 96, - 32, - 1, - 144, - 86, - 91, - 66, - 132, - 16, - 21, - 97, - 5, - 113, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 23, - 96, - 36, - 130, - 1, - 82, - 127, - 80, - 69, - 82, - 77, - 73, - 84, - 95, - 68, - 69, - 65, - 68, - 76, - 73, - 78, - 69, - 95, - 69, - 88, - 80, - 73, - 82, - 69, - 68, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 96, - 68, - 130, - 1, - 82, - 96, - 100, - 1, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 0, - 96, - 1, - 97, - 5, - 125, - 97, - 4, - 54, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 138, - 129, - 22, - 96, - 0, - 129, - 129, - 82, - 96, - 5, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 145, - 130, - 144, - 32, - 128, - 84, - 96, - 1, - 129, - 1, - 144, - 145, - 85, - 130, - 81, - 127, - 110, - 113, - 237, - 174, - 18, - 177, - 185, - 127, - 77, - 31, - 96, - 55, - 15, - 239, - 16, - 16, - 95, - 162, - 250, - 174, - 1, - 38, - 17, - 74, - 22, - 156, - 100, - 132, - 93, - 97, - 38, - 201, - 129, - 132, - 1, - 82, - 128, - 132, - 1, - 148, - 144, - 148, - 82, - 147, - 141, - 22, - 96, - 96, - 132, - 1, - 82, - 96, - 128, - 131, - 1, - 140, - 144, - 82, - 96, - 160, - 131, - 1, - 147, - 144, - 147, - 82, - 96, - 192, - 128, - 131, - 1, - 139, - 144, - 82, - 129, - 81, - 128, - 132, - 3, - 144, - 145, - 1, - 129, - 82, - 96, - 224, - 131, - 1, - 144, - 145, - 82, - 128, - 81, - 146, - 1, - 145, - 144, - 145, - 32, - 97, - 25, - 1, - 96, - 240, - 27, - 97, - 1, - 0, - 131, - 1, - 82, - 97, - 1, - 2, - 130, - 1, - 146, - 144, - 146, - 82, - 97, - 1, - 34, - 129, - 1, - 145, - 144, - 145, - 82, - 97, - 1, - 66, - 1, - 96, - 64, - 128, - 81, - 96, - 31, - 25, - 129, - 132, - 3, - 1, - 129, - 82, - 130, - 130, - 82, - 128, - 81, - 96, - 32, - 145, - 130, - 1, - 32, - 96, - 0, - 132, - 82, - 144, - 131, - 1, - 128, - 131, - 82, - 82, - 96, - 255, - 135, - 22, - 144, - 130, - 1, - 82, - 96, - 96, - 129, - 1, - 133, - 144, - 82, - 96, - 128, - 129, - 1, - 132, - 144, - 82, - 96, - 160, - 1, - 96, - 32, - 96, - 64, - 81, - 96, - 32, - 129, - 3, - 144, - 128, - 132, - 3, - 144, - 133, - 90, - 250, - 21, - 128, - 21, - 97, - 6, - 137, - 87, - 61, - 96, - 0, - 128, - 62, - 61, - 96, - 0, - 253, - 91, - 80, - 80, - 96, - 64, - 81, - 96, - 31, - 25, - 1, - 81, - 145, - 80, - 80, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 129, - 22, - 21, - 128, - 21, - 144, - 97, - 6, - 191, - 87, - 80, - 135, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 20, - 91, - 97, - 6, - 252, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 14, - 96, - 36, - 130, - 1, - 82, - 109, - 36, - 167, - 43, - 32, - 166, - 36, - 162, - 47, - 169, - 164, - 163, - 167, - 34, - 169, - 96, - 145, - 27, - 96, - 68, - 130, - 1, - 82, - 96, - 100, - 1, - 97, - 5, - 104, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 144, - 129, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 4, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 138, - 133, - 22, - 128, - 133, - 82, - 144, - 131, - 82, - 146, - 129, - 144, - 32, - 137, - 144, - 85, - 81, - 136, - 129, - 82, - 145, - 146, - 138, - 22, - 145, - 127, - 140, - 91, - 225, - 229, - 235, - 236, - 125, - 91, - 209, - 79, - 113, - 66, - 125, - 30, - 132, - 243, - 221, - 3, - 20, - 192, - 247, - 178, - 41, - 30, - 91, - 32, - 10, - 200, - 199, - 195, - 185, - 37, - 145, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 163, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 127, - 139, - 115, - 195, - 198, - 155, - 184, - 254, - 61, - 81, - 46, - 204, - 76, - 247, - 89, - 204, - 121, - 35, - 159, - 123, - 23, - 155, - 15, - 250, - 202, - 169, - 167, - 93, - 82, - 43, - 57, - 64, - 15, - 96, - 0, - 96, - 64, - 81, - 97, - 7, - 151, - 145, - 144, - 97, - 10, - 193, - 86, - 91, - 96, - 64, - 128, - 81, - 145, - 130, - 144, - 3, - 130, - 32, - 96, - 32, - 131, - 1, - 147, - 144, - 147, - 82, - 129, - 1, - 145, - 144, - 145, - 82, - 127, - 200, - 158, - 253, - 170, - 84, - 192, - 242, - 12, - 122, - 223, - 97, - 40, - 130, - 223, - 9, - 80, - 245, - 169, - 81, - 99, - 126, - 3, - 7, - 205, - 203, - 76, - 103, - 47, - 41, - 139, - 139, - 198, - 96, - 96, - 130, - 1, - 82, - 70, - 96, - 128, - 130, - 1, - 82, - 48, - 96, - 160, - 130, - 1, - 82, - 96, - 192, - 1, - 96, - 64, - 81, - 96, - 32, - 129, - 131, - 3, - 3, - 129, - 82, - 144, - 96, - 64, - 82, - 128, - 81, - 144, - 96, - 32, - 1, - 32, - 144, - 80, - 144, - 86, - 91, - 128, - 96, - 2, - 96, - 0, - 130, - 130, - 84, - 97, - 8, - 17, - 145, - 144, - 97, - 11, - 92, - 86, - 91, - 144, - 145, - 85, - 80, - 80, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 130, - 22, - 96, - 0, - 129, - 129, - 82, - 96, - 3, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 128, - 84, - 134, - 1, - 144, - 85, - 81, - 132, - 129, - 82, - 96, - 0, - 128, - 81, - 96, - 32, - 97, - 11, - 117, - 131, - 57, - 129, - 81, - 145, - 82, - 145, - 1, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 163, - 80, - 80, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 130, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 3, - 96, - 32, - 82, - 96, - 64, - 129, - 32, - 128, - 84, - 131, - 146, - 144, - 97, - 8, - 129, - 144, - 132, - 144, - 97, - 10, - 170, - 86, - 91, - 144, - 145, - 85, - 80, - 80, - 96, - 2, - 128, - 84, - 130, - 144, - 3, - 144, - 85, - 96, - 64, - 81, - 129, - 129, - 82, - 96, - 0, - 144, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 132, - 22, - 144, - 96, - 0, - 128, - 81, - 96, - 32, - 97, - 11, - 117, - 131, - 57, - 129, - 81, - 145, - 82, - 144, - 96, - 32, - 1, - 97, - 8, - 77, - 86, - 91, - 96, - 0, - 96, - 32, - 128, - 131, - 82, - 131, - 81, - 128, - 130, - 133, - 1, - 82, - 96, - 0, - 91, - 129, - 129, - 16, - 21, - 97, - 8, - 232, - 87, - 133, - 129, - 1, - 131, - 1, - 81, - 133, - 130, - 1, - 96, - 64, - 1, - 82, - 130, - 1, - 97, - 8, - 204, - 86, - 91, - 129, - 129, - 17, - 21, - 97, - 8, - 250, - 87, - 96, - 0, - 96, - 64, - 131, - 135, - 1, - 1, - 82, - 91, - 80, - 96, - 31, - 1, - 96, - 31, - 25, - 22, - 146, - 144, - 146, - 1, - 96, - 64, - 1, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 128, - 53, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 129, - 22, - 129, - 20, - 97, - 9, - 39, - 87, - 96, - 0, - 128, - 253, - 91, - 145, - 144, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 64, - 131, - 133, - 3, - 18, - 21, - 97, - 9, - 63, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 9, - 72, - 131, - 97, - 9, - 16, - 86, - 91, - 148, - 96, - 32, - 147, - 144, - 147, - 1, - 53, - 147, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 96, - 96, - 132, - 134, - 3, - 18, - 21, - 97, - 9, - 107, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 9, - 116, - 132, - 97, - 9, - 16, - 86, - 91, - 146, - 80, - 97, - 9, - 130, - 96, - 32, - 133, - 1, - 97, - 9, - 16, - 86, - 91, - 145, - 80, - 96, - 64, - 132, - 1, - 53, - 144, - 80, - 146, - 80, - 146, - 80, - 146, - 86, - 91, - 96, - 0, - 96, - 32, - 130, - 132, - 3, - 18, - 21, - 97, - 9, - 164, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 9, - 173, - 130, - 97, - 9, - 16, - 86, - 91, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 128, - 96, - 0, - 128, - 96, - 0, - 96, - 224, - 136, - 138, - 3, - 18, - 21, - 97, - 9, - 207, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 9, - 216, - 136, - 97, - 9, - 16, - 86, - 91, - 150, - 80, - 97, - 9, - 230, - 96, - 32, - 137, - 1, - 97, - 9, - 16, - 86, - 91, - 149, - 80, - 96, - 64, - 136, - 1, - 53, - 148, - 80, - 96, - 96, - 136, - 1, - 53, - 147, - 80, - 96, - 128, - 136, - 1, - 53, - 96, - 255, - 129, - 22, - 129, - 20, - 97, - 10, - 10, - 87, - 96, - 0, - 128, - 253, - 91, - 150, - 153, - 149, - 152, - 80, - 147, - 150, - 146, - 149, - 148, - 96, - 160, - 132, - 1, - 53, - 148, - 80, - 96, - 192, - 144, - 147, - 1, - 53, - 146, - 145, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 64, - 131, - 133, - 3, - 18, - 21, - 97, - 10, - 58, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 10, - 67, - 131, - 97, - 9, - 16, - 86, - 91, - 145, - 80, - 97, - 10, - 81, - 96, - 32, - 132, - 1, - 97, - 9, - 16, - 86, - 91, - 144, - 80, - 146, - 80, - 146, - 144, - 80, - 86, - 91, - 96, - 1, - 129, - 129, - 28, - 144, - 130, - 22, - 128, - 97, - 10, - 110, - 87, - 96, - 127, - 130, - 22, - 145, - 80, - 91, - 96, - 32, - 130, - 16, - 129, - 3, - 97, - 10, - 142, - 87, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 34, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 80, - 145, - 144, - 80, - 86, - 91, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 17, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 96, - 0, - 130, - 130, - 16, - 21, - 97, - 10, - 188, - 87, - 97, - 10, - 188, - 97, - 10, - 148, - 86, - 91, - 80, - 3, - 144, - 86, - 91, - 96, - 0, - 128, - 131, - 84, - 129, - 96, - 1, - 130, - 129, - 28, - 145, - 80, - 128, - 131, - 22, - 128, - 97, - 10, - 221, - 87, - 96, - 127, - 131, - 22, - 146, - 80, - 91, - 96, - 32, - 128, - 132, - 16, - 130, - 3, - 97, - 10, - 252, - 87, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 134, - 82, - 96, - 34, - 96, - 4, - 82, - 96, - 36, - 134, - 253, - 91, - 129, - 128, - 21, - 97, - 11, - 16, - 87, - 96, - 1, - 129, - 20, - 97, - 11, - 33, - 87, - 97, - 11, - 78, - 86, - 91, - 96, - 255, - 25, - 134, - 22, - 137, - 82, - 132, - 137, - 1, - 150, - 80, - 97, - 11, - 78, - 86, - 91, - 96, - 0, - 138, - 129, - 82, - 96, - 32, - 144, - 32, - 96, - 0, - 91, - 134, - 129, - 16, - 21, - 97, - 11, - 70, - 87, - 129, - 84, - 139, - 130, - 1, - 82, - 144, - 133, - 1, - 144, - 131, - 1, - 97, - 11, - 45, - 86, - 91, - 80, - 80, - 132, - 137, - 1, - 150, - 80, - 91, - 80, - 148, - 152, - 151, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 130, - 25, - 130, - 17, - 21, - 97, - 11, - 111, - 87, - 97, - 11, - 111, - 97, - 10, - 148, - 86, - 91, - 80, - 1, - 144, - 86, - 254, - 221, - 242, - 82, - 173, - 27, - 226, - 200, - 155, - 105, - 194, - 176, - 104, - 252, - 55, - 141, - 170, - 149, - 43, - 167, - 241, - 99, - 196, - 161, - 22, - 40, - 245, - 90, - 77, - 245, - 35, - 179, - 239, - 162, - 100, - 105, - 112, - 102, - 115, - 88, - 34, - 18, - 32, - 167, - 204, - 69, - 157, - 95, - 42, - 45, - 14, - 55, - 178, - 98, - 77, - 194, - 152, - 205, - 97, - 76, - 17, - 180, - 234, - 89, - 175, - 84, - 65, - 126, - 136, - 222, - 142, - 67, - 135, - 229, - 127, - 100, - 115, - 111, - 108, - 99, - 67, - 0, - 8, - 13, - 0, - 51, - ]; - ///The deployed bytecode of the contract. - pub static MOCKERC20_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( - __DEPLOYED_BYTECODE, - ); - pub struct MockERC20(::ethers::contract::Contract); - impl ::core::clone::Clone for MockERC20 { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for MockERC20 { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for MockERC20 { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for MockERC20 { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(stringify!(MockERC20)).field(&self.address()).finish() - } - } - impl MockERC20 { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self( - ::ethers::contract::Contract::new( - address.into(), - MOCKERC20_ABI.clone(), - client, - ), - ) - } - /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. - /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction - /// - /// Notes: - /// - If there are no constructor arguments, you should pass `()` as the argument. - /// - The default poll duration is 7 seconds. - /// - The default number of confirmations is 1 block. - /// - /// - /// # Example - /// - /// Generate contract bindings with `abigen!` and deploy a new contract instance. - /// - /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. - /// - /// ```ignore - /// # async fn deploy(client: ::std::sync::Arc) { - /// abigen!(Greeter, "../greeter.json"); - /// - /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); - /// let msg = greeter_contract.greet().call().await.unwrap(); - /// # } - /// ``` - pub fn deploy( - client: ::std::sync::Arc, - constructor_args: T, - ) -> ::core::result::Result< - ::ethers::contract::builders::ContractDeployer, - ::ethers::contract::ContractError, - > { - let factory = ::ethers::contract::ContractFactory::new( - MOCKERC20_ABI.clone(), - MOCKERC20_BYTECODE.clone().into(), - client, - ); - let deployer = factory.deploy(constructor_args)?; - let deployer = ::ethers::contract::ContractDeployer::new(deployer); - Ok(deployer) - } - ///Calls the contract's `DOMAIN_SEPARATOR` (0x3644e515) function - pub fn domain_separator( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([54, 68, 229, 21], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `allowance` (0xdd62ed3e) function - pub fn allowance( - &self, - p0: ::ethers::core::types::Address, - p1: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([221, 98, 237, 62], (p0, p1)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `approve` (0x095ea7b3) function - pub fn approve( - &self, - spender: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([9, 94, 167, 179], (spender, amount)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `balanceOf` (0x70a08231) function - pub fn balance_of( - &self, - p0: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([112, 160, 130, 49], p0) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `burn` (0x9dc29fac) function - pub fn burn( - &self, - from: ::ethers::core::types::Address, - value: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([157, 194, 159, 172], (from, value)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `decimals` (0x313ce567) function - pub fn decimals(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([49, 60, 229, 103], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `mint` (0x40c10f19) function - pub fn mint( - &self, - to: ::ethers::core::types::Address, - value: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([64, 193, 15, 25], (to, value)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `name` (0x06fdde03) function - pub fn name( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([6, 253, 222, 3], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `nonces` (0x7ecebe00) function - pub fn nonces( - &self, - p0: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([126, 206, 190, 0], p0) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `permit` (0xd505accf) function - pub fn permit( - &self, - owner: ::ethers::core::types::Address, - spender: ::ethers::core::types::Address, - value: ::ethers::core::types::U256, - deadline: ::ethers::core::types::U256, - v: u8, - r: [u8; 32], - s: [u8; 32], - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash( - [213, 5, 172, 207], - (owner, spender, value, deadline, v, r, s), - ) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `symbol` (0x95d89b41) function - pub fn symbol( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([149, 216, 155, 65], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `totalSupply` (0x18160ddd) function - pub fn total_supply( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([24, 22, 13, 221], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `transfer` (0xa9059cbb) function - pub fn transfer( - &self, - to: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([169, 5, 156, 187], (to, amount)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `transferFrom` (0x23b872dd) function - pub fn transfer_from( - &self, - from: ::ethers::core::types::Address, - to: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([35, 184, 114, 221], (from, to, amount)) - .expect("method not found (this should never happen)") - } - ///Gets the contract's `Approval` event - pub fn approval_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - ApprovalFilter, - > { - self.0.event() - } - ///Gets the contract's `Transfer` event - pub fn transfer_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - TransferFilter, - > { - self.0.event() - } - /// Returns an `Event` builder for all the events of this contract. - pub fn events( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - MockERC20Events, - > { - self.0.event_with_filter(::core::default::Default::default()) - } - } - impl From<::ethers::contract::Contract> - for MockERC20 { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "Approval", abi = "Approval(address,address,uint256)")] - pub struct ApprovalFilter { - #[ethevent(indexed)] - pub owner: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub spender: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "Transfer", abi = "Transfer(address,address,uint256)")] - pub struct TransferFilter { - #[ethevent(indexed)] - pub from: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub to: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - ///Container type for all of the contract's events - #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] - pub enum MockERC20Events { - ApprovalFilter(ApprovalFilter), - TransferFilter(TransferFilter), - } - impl ::ethers::contract::EthLogDecode for MockERC20Events { - fn decode_log( - log: &::ethers::core::abi::RawLog, - ) -> ::core::result::Result { - if let Ok(decoded) = ApprovalFilter::decode_log(log) { - return Ok(MockERC20Events::ApprovalFilter(decoded)); - } - if let Ok(decoded) = TransferFilter::decode_log(log) { - return Ok(MockERC20Events::TransferFilter(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData) - } - } - impl ::core::fmt::Display for MockERC20Events { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::ApprovalFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::TransferFilter(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for MockERC20Events { - fn from(value: ApprovalFilter) -> Self { - Self::ApprovalFilter(value) - } - } - impl ::core::convert::From for MockERC20Events { - fn from(value: TransferFilter) -> Self { - Self::TransferFilter(value) - } - } - ///Container type for all input parameters for the `DOMAIN_SEPARATOR` function with signature `DOMAIN_SEPARATOR()` and selector `0x3644e515` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "DOMAIN_SEPARATOR", abi = "DOMAIN_SEPARATOR()")] - pub struct DomainSeparatorCall; - ///Container type for all input parameters for the `allowance` function with signature `allowance(address,address)` and selector `0xdd62ed3e` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "allowance", abi = "allowance(address,address)")] - pub struct AllowanceCall( - pub ::ethers::core::types::Address, - pub ::ethers::core::types::Address, - ); - ///Container type for all input parameters for the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "approve", abi = "approve(address,uint256)")] - pub struct ApproveCall { - pub spender: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "balanceOf", abi = "balanceOf(address)")] - pub struct BalanceOfCall(pub ::ethers::core::types::Address); - ///Container type for all input parameters for the `burn` function with signature `burn(address,uint256)` and selector `0x9dc29fac` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "burn", abi = "burn(address,uint256)")] - pub struct BurnCall { - pub from: ::ethers::core::types::Address, - pub value: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `decimals` function with signature `decimals()` and selector `0x313ce567` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "decimals", abi = "decimals()")] - pub struct DecimalsCall; - ///Container type for all input parameters for the `mint` function with signature `mint(address,uint256)` and selector `0x40c10f19` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "mint", abi = "mint(address,uint256)")] - pub struct MintCall { - pub to: ::ethers::core::types::Address, - pub value: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `name` function with signature `name()` and selector `0x06fdde03` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "name", abi = "name()")] - pub struct NameCall; - ///Container type for all input parameters for the `nonces` function with signature `nonces(address)` and selector `0x7ecebe00` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "nonces", abi = "nonces(address)")] - pub struct NoncesCall(pub ::ethers::core::types::Address); - ///Container type for all input parameters for the `permit` function with signature `permit(address,address,uint256,uint256,uint8,bytes32,bytes32)` and selector `0xd505accf` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall( - name = "permit", - abi = "permit(address,address,uint256,uint256,uint8,bytes32,bytes32)" - )] - pub struct PermitCall { - pub owner: ::ethers::core::types::Address, - pub spender: ::ethers::core::types::Address, - pub value: ::ethers::core::types::U256, - pub deadline: ::ethers::core::types::U256, - pub v: u8, - pub r: [u8; 32], - pub s: [u8; 32], - } - ///Container type for all input parameters for the `symbol` function with signature `symbol()` and selector `0x95d89b41` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "symbol", abi = "symbol()")] - pub struct SymbolCall; - ///Container type for all input parameters for the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "totalSupply", abi = "totalSupply()")] - pub struct TotalSupplyCall; - ///Container type for all input parameters for the `transfer` function with signature `transfer(address,uint256)` and selector `0xa9059cbb` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "transfer", abi = "transfer(address,uint256)")] - pub struct TransferCall { - pub to: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "transferFrom", abi = "transferFrom(address,address,uint256)")] - pub struct TransferFromCall { - pub from: ::ethers::core::types::Address, - pub to: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - ///Container type for all of the contract's call - #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] - pub enum MockERC20Calls { - DomainSeparator(DomainSeparatorCall), - Allowance(AllowanceCall), - Approve(ApproveCall), - BalanceOf(BalanceOfCall), - Burn(BurnCall), - Decimals(DecimalsCall), - Mint(MintCall), - Name(NameCall), - Nonces(NoncesCall), - Permit(PermitCall), - Symbol(SymbolCall), - TotalSupply(TotalSupplyCall), - Transfer(TransferCall), - TransferFrom(TransferFromCall), - } - impl ::ethers::core::abi::AbiDecode for MockERC20Calls { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::DomainSeparator(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Allowance(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Approve(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::BalanceOf(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Burn(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Decimals(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Mint(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Name(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Nonces(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Permit(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Symbol(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::TotalSupply(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Transfer(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::TransferFrom(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for MockERC20Calls { - fn encode(self) -> Vec { - match self { - Self::DomainSeparator(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Allowance(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Approve(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::BalanceOf(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Burn(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Decimals(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Mint(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Name(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Nonces(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Permit(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Symbol(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::TotalSupply(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Transfer(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::TransferFrom(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - } - } - } - impl ::core::fmt::Display for MockERC20Calls { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::DomainSeparator(element) => ::core::fmt::Display::fmt(element, f), - Self::Allowance(element) => ::core::fmt::Display::fmt(element, f), - Self::Approve(element) => ::core::fmt::Display::fmt(element, f), - Self::BalanceOf(element) => ::core::fmt::Display::fmt(element, f), - Self::Burn(element) => ::core::fmt::Display::fmt(element, f), - Self::Decimals(element) => ::core::fmt::Display::fmt(element, f), - Self::Mint(element) => ::core::fmt::Display::fmt(element, f), - Self::Name(element) => ::core::fmt::Display::fmt(element, f), - Self::Nonces(element) => ::core::fmt::Display::fmt(element, f), - Self::Permit(element) => ::core::fmt::Display::fmt(element, f), - Self::Symbol(element) => ::core::fmt::Display::fmt(element, f), - Self::TotalSupply(element) => ::core::fmt::Display::fmt(element, f), - Self::Transfer(element) => ::core::fmt::Display::fmt(element, f), - Self::TransferFrom(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for MockERC20Calls { - fn from(value: DomainSeparatorCall) -> Self { - Self::DomainSeparator(value) - } - } - impl ::core::convert::From for MockERC20Calls { - fn from(value: AllowanceCall) -> Self { - Self::Allowance(value) - } - } - impl ::core::convert::From for MockERC20Calls { - fn from(value: ApproveCall) -> Self { - Self::Approve(value) - } - } - impl ::core::convert::From for MockERC20Calls { - fn from(value: BalanceOfCall) -> Self { - Self::BalanceOf(value) - } - } - impl ::core::convert::From for MockERC20Calls { - fn from(value: BurnCall) -> Self { - Self::Burn(value) - } - } - impl ::core::convert::From for MockERC20Calls { - fn from(value: DecimalsCall) -> Self { - Self::Decimals(value) - } - } - impl ::core::convert::From for MockERC20Calls { - fn from(value: MintCall) -> Self { - Self::Mint(value) - } - } - impl ::core::convert::From for MockERC20Calls { - fn from(value: NameCall) -> Self { - Self::Name(value) - } - } - impl ::core::convert::From for MockERC20Calls { - fn from(value: NoncesCall) -> Self { - Self::Nonces(value) - } - } - impl ::core::convert::From for MockERC20Calls { - fn from(value: PermitCall) -> Self { - Self::Permit(value) - } - } - impl ::core::convert::From for MockERC20Calls { - fn from(value: SymbolCall) -> Self { - Self::Symbol(value) - } - } - impl ::core::convert::From for MockERC20Calls { - fn from(value: TotalSupplyCall) -> Self { - Self::TotalSupply(value) - } - } - impl ::core::convert::From for MockERC20Calls { - fn from(value: TransferCall) -> Self { - Self::Transfer(value) - } - } - impl ::core::convert::From for MockERC20Calls { - fn from(value: TransferFromCall) -> Self { - Self::TransferFrom(value) - } - } - ///Container type for all return fields from the `DOMAIN_SEPARATOR` function with signature `DOMAIN_SEPARATOR()` and selector `0x3644e515` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct DomainSeparatorReturn(pub [u8; 32]); - ///Container type for all return fields from the `allowance` function with signature `allowance(address,address)` and selector `0xdd62ed3e` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct AllowanceReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct ApproveReturn(pub bool); - ///Container type for all return fields from the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct BalanceOfReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `decimals` function with signature `decimals()` and selector `0x313ce567` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct DecimalsReturn(pub u8); - ///Container type for all return fields from the `name` function with signature `name()` and selector `0x06fdde03` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct NameReturn(pub ::std::string::String); - ///Container type for all return fields from the `nonces` function with signature `nonces(address)` and selector `0x7ecebe00` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct NoncesReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `symbol` function with signature `symbol()` and selector `0x95d89b41` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct SymbolReturn(pub ::std::string::String); - ///Container type for all return fields from the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct TotalSupplyReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `transfer` function with signature `transfer(address,uint256)` and selector `0xa9059cbb` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct TransferReturn(pub bool); - ///Container type for all return fields from the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct TransferFromReturn(pub bool); -} diff --git a/crates/bindings/src/objective.rs b/crates/bindings/src/objective.rs deleted file mode 100644 index 4f8720bf..00000000 --- a/crates/bindings/src/objective.rs +++ /dev/null @@ -1,2180 +0,0 @@ -pub use objective::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types, -)] -pub mod objective { - pub use super::super::shared_types::*; - #[rustfmt::skip] - const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaLiquidity\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Allocate\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint16\",\"name\":\"priorityFee\",\"type\":\"uint16\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint16\",\"name\":\"fee\",\"type\":\"uint16\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint16\",\"name\":\"jit\",\"type\":\"uint16\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"ChangeParameters\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"feeAssetDec\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"feeQuoteDec\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true}],\"type\":\"event\",\"name\":\"Collect\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"pairId\",\"type\":\"uint24\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint8\",\"name\":\"decimalsAsset\",\"type\":\"uint8\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint8\",\"name\":\"decimalsQuote\",\"type\":\"uint8\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"CreatePair\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"bool\",\"name\":\"isMutable\",\"type\":\"bool\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"CreatePool\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaLiquidity\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Deallocate\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"DecreaseReserveBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"DecreaseUserBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Deposit\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"IncreaseReserveBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"IncreaseUserBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"sellAsset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"input\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"tokenOut\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"output\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"feeAmountDec\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"int256\",\"name\":\"invariantWad\",\"type\":\"int256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Swap\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"prevFee\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"nextFee\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"UpdateProtocolFee\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\",\"name\":\"VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"WETH\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"priorityFee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"fee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"jit\",\"type\":\"uint16\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"changeParameters\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"int256\",\"name\":\"invariant\",\"type\":\"int256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"reserveX\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"reserveY\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"checkInvariant\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\",\"components\":[]},{\"internalType\":\"int256\",\"name\":\"nextInvariant\",\"type\":\"int256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"checkPool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"int256\",\"name\":\"delta\",\"type\":\"int256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"checkPosition\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"bool\",\"name\":\"sellAsset\",\"type\":\"bool\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"reserveIn\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"computeMaxInput\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"computeReservesFromPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"reserveX\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"reserveY\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"deposit\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"draw\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"fund\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"bool\",\"name\":\"sellAsset\",\"type\":\"bool\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getAmountOut\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"output\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"int128\",\"name\":\"deltaLiquidity\",\"type\":\"int128\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getLiquidityDeltas\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"deltaAsset\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"deltaQuote\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getMaxLiquidity\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"deltaLiquidity\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getNetBalance\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPairId\",\"outputs\":[{\"internalType\":\"uint24\",\"name\":\"pairId\",\"type\":\"uint24\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPairNonce\",\"outputs\":[{\"internalType\":\"uint24\",\"name\":\"\",\"type\":\"uint24\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"pairNonce\",\"type\":\"uint24\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPoolNonce\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPoolReserves\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getReserve\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getVirtualPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getVirtualReservesPerLiquidity\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"deltaAsset\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"deltaQuote\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\",\"components\":[]}],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"multiprocess\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"pairId\",\"type\":\"uint24\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"pairs\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"tokenAsset\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsAsset\",\"type\":\"uint8\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"tokenQuote\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsQuote\",\"type\":\"uint8\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"pools\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"virtualX\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"virtualY\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"liquidity\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint32\",\"name\":\"lastTimestamp\",\"type\":\"uint32\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"controller\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"invariantGrowthGlobal\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthGlobalAsset\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthGlobalQuote\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"struct PortfolioCurve\",\"name\":\"\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"uint128\",\"name\":\"maxPrice\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"jit\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"fee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"duration\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"volatility\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"priorityFee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint32\",\"name\":\"createdAt\",\"type\":\"uint32\",\"components\":[]},{\"internalType\":\"bool\",\"name\":\"perpetual\",\"type\":\"bool\",\"components\":[]}]},{\"internalType\":\"struct PortfolioPair\",\"name\":\"\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"address\",\"name\":\"tokenAsset\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsAsset\",\"type\":\"uint8\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"tokenQuote\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsQuote\",\"type\":\"uint8\",\"components\":[]}]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"positions\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"freeLiquidity\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint32\",\"name\":\"lastTimestamp\",\"type\":\"uint32\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"invariantGrowthLast\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthAssetLast\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthQuoteLast\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"tokensOwedAsset\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"tokensOwedQuote\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"invariantOwed\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"setProtocolFee\",\"outputs\":[]}]"; - ///The parsed JSON ABI of the contract. - pub static OBJECTIVE_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| - ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); - pub struct Objective(::ethers::contract::Contract); - impl ::core::clone::Clone for Objective { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for Objective { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for Objective { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for Objective { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(stringify!(Objective)).field(&self.address()).finish() - } - } - impl Objective { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self( - ::ethers::contract::Contract::new( - address.into(), - OBJECTIVE_ABI.clone(), - client, - ), - ) - } - ///Calls the contract's `REGISTRY` (0x06433b1b) function - pub fn registry( - &self, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::ethers::core::types::Address, - > { - self.0 - .method_hash([6, 67, 59, 27], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `VERSION` (0xffa1ad74) function - pub fn version( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([255, 161, 173, 116], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `WETH` (0xad5c4648) function - pub fn weth( - &self, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::ethers::core::types::Address, - > { - self.0 - .method_hash([173, 92, 70, 72], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `changeParameters` (0xaf777855) function - pub fn change_parameters( - &self, - pool_id: u64, - priority_fee: u16, - fee: u16, - jit: u16, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([175, 119, 120, 85], (pool_id, priority_fee, fee, jit)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `checkInvariant` (0x2f337da5) function - pub fn check_invariant( - &self, - pool_id: u64, - invariant: ::ethers::core::types::I256, - reserve_x: ::ethers::core::types::U256, - reserve_y: ::ethers::core::types::U256, - timestamp: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall< - M, - (bool, ::ethers::core::types::I256), - > { - self.0 - .method_hash( - [47, 51, 125, 165], - (pool_id, invariant, reserve_x, reserve_y, timestamp), - ) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `checkPool` (0xa68aaa41) function - pub fn check_pool( - &self, - pool_id: u64, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([166, 138, 170, 65], pool_id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `checkPosition` (0x2cc6641e) function - pub fn check_position( - &self, - pool_id: u64, - owner: ::ethers::core::types::Address, - delta: ::ethers::core::types::I256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([44, 198, 100, 30], (pool_id, owner, delta)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `computeMaxInput` (0x989bafba) function - pub fn compute_max_input( - &self, - pool_id: u64, - sell_asset: bool, - reserve_in: ::ethers::core::types::U256, - liquidity: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash( - [152, 155, 175, 186], - (pool_id, sell_asset, reserve_in, liquidity), - ) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `computeReservesFromPrice` (0xc48d887a) function - pub fn compute_reserves_from_price( - &self, - pool_id: u64, - price: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall< - M, - (::ethers::core::types::U256, ::ethers::core::types::U256), - > { - self.0 - .method_hash([196, 141, 136, 122], (pool_id, price)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `deposit` (0xd0e30db0) function - pub fn deposit(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([208, 227, 13, 176], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `draw` (0xad24d6a0) function - pub fn draw( - &self, - token: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - to: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([173, 36, 214, 160], (token, amount, to)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `fund` (0x7b1837de) function - pub fn fund( - &self, - token: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([123, 24, 55, 222], (token, amount)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getAmountOut` (0x7dae4890) function - pub fn get_amount_out( - &self, - pool_id: u64, - sell_asset: bool, - amount_in: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([125, 174, 72, 144], (pool_id, sell_asset, amount_in)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getBalance` (0xd4fac45d) function - pub fn get_balance( - &self, - owner: ::ethers::core::types::Address, - token: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([212, 250, 196, 93], (owner, token)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getLiquidityDeltas` (0x8992f20a) function - pub fn get_liquidity_deltas( - &self, - pool_id: u64, - delta_liquidity: i128, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([137, 146, 242, 10], (pool_id, delta_liquidity)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getMaxLiquidity` (0xd6b7dec5) function - pub fn get_max_liquidity( - &self, - pool_id: u64, - delta_asset: ::ethers::core::types::U256, - delta_quote: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([214, 183, 222, 197], (pool_id, delta_asset, delta_quote)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getNetBalance` (0x4dc68a90) function - pub fn get_net_balance( - &self, - token: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([77, 198, 138, 144], token) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getPairId` (0x3f92a339) function - pub fn get_pair_id( - &self, - asset: ::ethers::core::types::Address, - quote: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([63, 146, 163, 57], (asset, quote)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getPairNonce` (0x078888d6) function - pub fn get_pair_nonce( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([7, 136, 136, 214], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getPoolNonce` (0xa5cd8a49) function - pub fn get_pool_nonce( - &self, - pair_nonce: u32, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([165, 205, 138, 73], pair_nonce) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getPoolReserves` (0x2afb9df8) function - pub fn get_pool_reserves( - &self, - pool_id: u64, - ) -> ::ethers::contract::builders::ContractCall< - M, - (::ethers::core::types::U256, ::ethers::core::types::U256), - > { - self.0 - .method_hash([42, 251, 157, 248], pool_id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getReserve` (0xc9a396e9) function - pub fn get_reserve( - &self, - token: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([201, 163, 150, 233], token) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getVirtualPrice` (0x61b7ea6a) function - pub fn get_virtual_price( - &self, - pool_id: u64, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([97, 183, 234, 106], pool_id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getVirtualReservesPerLiquidity` (0x1a4b905b) function - pub fn get_virtual_reserves_per_liquidity( - &self, - pool_id: u64, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([26, 75, 144, 91], pool_id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `multiprocess` (0xa0fdf413) function - pub fn multiprocess( - &self, - data: ::ethers::core::types::Bytes, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([160, 253, 244, 19], data) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `pairs` (0x5e47663c) function - pub fn pairs( - &self, - pair_id: u32, - ) -> ::ethers::contract::builders::ContractCall< - M, - (::ethers::core::types::Address, u8, ::ethers::core::types::Address, u8), - > { - self.0 - .method_hash([94, 71, 102, 60], pair_id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `pools` (0x89a5f084) function - pub fn pools( - &self, - pool_id: u64, - ) -> ::ethers::contract::builders::ContractCall< - M, - ( - u128, - u128, - u128, - u32, - ::ethers::core::types::Address, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - PortfolioCurve, - PortfolioPair, - ), - > { - self.0 - .method_hash([137, 165, 240, 132], pool_id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `positions` (0xb68513ea) function - pub fn positions( - &self, - owner: ::ethers::core::types::Address, - pool_id: u64, - ) -> ::ethers::contract::builders::ContractCall< - M, - ( - u128, - u32, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - u128, - u128, - u128, - ), - > { - self.0 - .method_hash([182, 133, 19, 234], (owner, pool_id)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `setProtocolFee` (0x787dce3d) function - pub fn set_protocol_fee( - &self, - fee: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([120, 125, 206, 61], fee) - .expect("method not found (this should never happen)") - } - ///Gets the contract's `Allocate` event - pub fn allocate_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - AllocateFilter, - > { - self.0.event() - } - ///Gets the contract's `ChangeParameters` event - pub fn change_parameters_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - ChangeParametersFilter, - > { - self.0.event() - } - ///Gets the contract's `Collect` event - pub fn collect_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, CollectFilter> { - self.0.event() - } - ///Gets the contract's `CreatePair` event - pub fn create_pair_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - CreatePairFilter, - > { - self.0.event() - } - ///Gets the contract's `CreatePool` event - pub fn create_pool_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - CreatePoolFilter, - > { - self.0.event() - } - ///Gets the contract's `Deallocate` event - pub fn deallocate_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - DeallocateFilter, - > { - self.0.event() - } - ///Gets the contract's `DecreaseReserveBalance` event - pub fn decrease_reserve_balance_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - DecreaseReserveBalanceFilter, - > { - self.0.event() - } - ///Gets the contract's `DecreaseUserBalance` event - pub fn decrease_user_balance_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - DecreaseUserBalanceFilter, - > { - self.0.event() - } - ///Gets the contract's `Deposit` event - pub fn deposit_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, DepositFilter> { - self.0.event() - } - ///Gets the contract's `IncreaseReserveBalance` event - pub fn increase_reserve_balance_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - IncreaseReserveBalanceFilter, - > { - self.0.event() - } - ///Gets the contract's `IncreaseUserBalance` event - pub fn increase_user_balance_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - IncreaseUserBalanceFilter, - > { - self.0.event() - } - ///Gets the contract's `Swap` event - pub fn swap_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, SwapFilter> { - self.0.event() - } - ///Gets the contract's `UpdateProtocolFee` event - pub fn update_protocol_fee_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - UpdateProtocolFeeFilter, - > { - self.0.event() - } - /// Returns an `Event` builder for all the events of this contract. - pub fn events( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - ObjectiveEvents, - > { - self.0.event_with_filter(::core::default::Default::default()) - } - } - impl From<::ethers::contract::Contract> - for Objective { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent( - name = "Allocate", - abi = "Allocate(uint64,address,address,uint256,uint256,uint256)" - )] - pub struct AllocateFilter { - #[ethevent(indexed)] - pub pool_id: u64, - #[ethevent(indexed)] - pub asset: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub quote: ::ethers::core::types::Address, - pub delta_asset: ::ethers::core::types::U256, - pub delta_quote: ::ethers::core::types::U256, - pub delta_liquidity: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent( - name = "ChangeParameters", - abi = "ChangeParameters(uint64,uint16,uint16,uint16)" - )] - pub struct ChangeParametersFilter { - #[ethevent(indexed)] - pub pool_id: u64, - #[ethevent(indexed)] - pub priority_fee: u16, - #[ethevent(indexed)] - pub fee: u16, - pub jit: u16, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent( - name = "Collect", - abi = "Collect(uint64,address,uint256,address,uint256,address)" - )] - pub struct CollectFilter { - pub pool_id: u64, - #[ethevent(indexed)] - pub account: ::ethers::core::types::Address, - pub fee_asset_dec: ::ethers::core::types::U256, - #[ethevent(indexed)] - pub asset: ::ethers::core::types::Address, - pub fee_quote_dec: ::ethers::core::types::U256, - #[ethevent(indexed)] - pub quote: ::ethers::core::types::Address, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent( - name = "CreatePair", - abi = "CreatePair(uint24,address,address,uint8,uint8)" - )] - pub struct CreatePairFilter { - #[ethevent(indexed)] - pub pair_id: u32, - #[ethevent(indexed)] - pub asset: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub quote: ::ethers::core::types::Address, - pub decimals_asset: u8, - pub decimals_quote: u8, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent( - name = "CreatePool", - abi = "CreatePool(uint64,bool,address,address,uint256)" - )] - pub struct CreatePoolFilter { - #[ethevent(indexed)] - pub pool_id: u64, - pub is_mutable: bool, - #[ethevent(indexed)] - pub asset: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub quote: ::ethers::core::types::Address, - pub price: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent( - name = "Deallocate", - abi = "Deallocate(uint64,address,address,uint256,uint256,uint256)" - )] - pub struct DeallocateFilter { - #[ethevent(indexed)] - pub pool_id: u64, - #[ethevent(indexed)] - pub asset: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub quote: ::ethers::core::types::Address, - pub delta_asset: ::ethers::core::types::U256, - pub delta_quote: ::ethers::core::types::U256, - pub delta_liquidity: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent( - name = "DecreaseReserveBalance", - abi = "DecreaseReserveBalance(address,uint256)" - )] - pub struct DecreaseReserveBalanceFilter { - #[ethevent(indexed)] - pub token: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent( - name = "DecreaseUserBalance", - abi = "DecreaseUserBalance(address,address,uint256)" - )] - pub struct DecreaseUserBalanceFilter { - #[ethevent(indexed)] - pub account: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub token: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "Deposit", abi = "Deposit(address,uint256)")] - pub struct DepositFilter { - #[ethevent(indexed)] - pub account: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent( - name = "IncreaseReserveBalance", - abi = "IncreaseReserveBalance(address,uint256)" - )] - pub struct IncreaseReserveBalanceFilter { - #[ethevent(indexed)] - pub token: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent( - name = "IncreaseUserBalance", - abi = "IncreaseUserBalance(address,address,uint256)" - )] - pub struct IncreaseUserBalanceFilter { - #[ethevent(indexed)] - pub account: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub token: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent( - name = "Swap", - abi = "Swap(uint64,uint256,address,uint256,address,uint256,uint256,int256)" - )] - pub struct SwapFilter { - #[ethevent(indexed)] - pub pool_id: u64, - pub price: ::ethers::core::types::U256, - #[ethevent(indexed)] - pub sell_asset: ::ethers::core::types::Address, - pub input: ::ethers::core::types::U256, - #[ethevent(indexed)] - pub token_out: ::ethers::core::types::Address, - pub output: ::ethers::core::types::U256, - pub fee_amount_dec: ::ethers::core::types::U256, - pub invariant_wad: ::ethers::core::types::I256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "UpdateProtocolFee", abi = "UpdateProtocolFee(uint256,uint256)")] - pub struct UpdateProtocolFeeFilter { - pub prev_fee: ::ethers::core::types::U256, - pub next_fee: ::ethers::core::types::U256, - } - ///Container type for all of the contract's events - #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] - pub enum ObjectiveEvents { - AllocateFilter(AllocateFilter), - ChangeParametersFilter(ChangeParametersFilter), - CollectFilter(CollectFilter), - CreatePairFilter(CreatePairFilter), - CreatePoolFilter(CreatePoolFilter), - DeallocateFilter(DeallocateFilter), - DecreaseReserveBalanceFilter(DecreaseReserveBalanceFilter), - DecreaseUserBalanceFilter(DecreaseUserBalanceFilter), - DepositFilter(DepositFilter), - IncreaseReserveBalanceFilter(IncreaseReserveBalanceFilter), - IncreaseUserBalanceFilter(IncreaseUserBalanceFilter), - SwapFilter(SwapFilter), - UpdateProtocolFeeFilter(UpdateProtocolFeeFilter), - } - impl ::ethers::contract::EthLogDecode for ObjectiveEvents { - fn decode_log( - log: &::ethers::core::abi::RawLog, - ) -> ::core::result::Result { - if let Ok(decoded) = AllocateFilter::decode_log(log) { - return Ok(ObjectiveEvents::AllocateFilter(decoded)); - } - if let Ok(decoded) = ChangeParametersFilter::decode_log(log) { - return Ok(ObjectiveEvents::ChangeParametersFilter(decoded)); - } - if let Ok(decoded) = CollectFilter::decode_log(log) { - return Ok(ObjectiveEvents::CollectFilter(decoded)); - } - if let Ok(decoded) = CreatePairFilter::decode_log(log) { - return Ok(ObjectiveEvents::CreatePairFilter(decoded)); - } - if let Ok(decoded) = CreatePoolFilter::decode_log(log) { - return Ok(ObjectiveEvents::CreatePoolFilter(decoded)); - } - if let Ok(decoded) = DeallocateFilter::decode_log(log) { - return Ok(ObjectiveEvents::DeallocateFilter(decoded)); - } - if let Ok(decoded) = DecreaseReserveBalanceFilter::decode_log(log) { - return Ok(ObjectiveEvents::DecreaseReserveBalanceFilter(decoded)); - } - if let Ok(decoded) = DecreaseUserBalanceFilter::decode_log(log) { - return Ok(ObjectiveEvents::DecreaseUserBalanceFilter(decoded)); - } - if let Ok(decoded) = DepositFilter::decode_log(log) { - return Ok(ObjectiveEvents::DepositFilter(decoded)); - } - if let Ok(decoded) = IncreaseReserveBalanceFilter::decode_log(log) { - return Ok(ObjectiveEvents::IncreaseReserveBalanceFilter(decoded)); - } - if let Ok(decoded) = IncreaseUserBalanceFilter::decode_log(log) { - return Ok(ObjectiveEvents::IncreaseUserBalanceFilter(decoded)); - } - if let Ok(decoded) = SwapFilter::decode_log(log) { - return Ok(ObjectiveEvents::SwapFilter(decoded)); - } - if let Ok(decoded) = UpdateProtocolFeeFilter::decode_log(log) { - return Ok(ObjectiveEvents::UpdateProtocolFeeFilter(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData) - } - } - impl ::core::fmt::Display for ObjectiveEvents { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::AllocateFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::ChangeParametersFilter(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::CollectFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::CreatePairFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::CreatePoolFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::DeallocateFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::DecreaseReserveBalanceFilter(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::DecreaseUserBalanceFilter(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::DepositFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::IncreaseReserveBalanceFilter(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::IncreaseUserBalanceFilter(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::SwapFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::UpdateProtocolFeeFilter(element) => { - ::core::fmt::Display::fmt(element, f) - } - } - } - } - impl ::core::convert::From for ObjectiveEvents { - fn from(value: AllocateFilter) -> Self { - Self::AllocateFilter(value) - } - } - impl ::core::convert::From for ObjectiveEvents { - fn from(value: ChangeParametersFilter) -> Self { - Self::ChangeParametersFilter(value) - } - } - impl ::core::convert::From for ObjectiveEvents { - fn from(value: CollectFilter) -> Self { - Self::CollectFilter(value) - } - } - impl ::core::convert::From for ObjectiveEvents { - fn from(value: CreatePairFilter) -> Self { - Self::CreatePairFilter(value) - } - } - impl ::core::convert::From for ObjectiveEvents { - fn from(value: CreatePoolFilter) -> Self { - Self::CreatePoolFilter(value) - } - } - impl ::core::convert::From for ObjectiveEvents { - fn from(value: DeallocateFilter) -> Self { - Self::DeallocateFilter(value) - } - } - impl ::core::convert::From for ObjectiveEvents { - fn from(value: DecreaseReserveBalanceFilter) -> Self { - Self::DecreaseReserveBalanceFilter(value) - } - } - impl ::core::convert::From for ObjectiveEvents { - fn from(value: DecreaseUserBalanceFilter) -> Self { - Self::DecreaseUserBalanceFilter(value) - } - } - impl ::core::convert::From for ObjectiveEvents { - fn from(value: DepositFilter) -> Self { - Self::DepositFilter(value) - } - } - impl ::core::convert::From for ObjectiveEvents { - fn from(value: IncreaseReserveBalanceFilter) -> Self { - Self::IncreaseReserveBalanceFilter(value) - } - } - impl ::core::convert::From for ObjectiveEvents { - fn from(value: IncreaseUserBalanceFilter) -> Self { - Self::IncreaseUserBalanceFilter(value) - } - } - impl ::core::convert::From for ObjectiveEvents { - fn from(value: SwapFilter) -> Self { - Self::SwapFilter(value) - } - } - impl ::core::convert::From for ObjectiveEvents { - fn from(value: UpdateProtocolFeeFilter) -> Self { - Self::UpdateProtocolFeeFilter(value) - } - } - ///Container type for all input parameters for the `REGISTRY` function with signature `REGISTRY()` and selector `0x06433b1b` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "REGISTRY", abi = "REGISTRY()")] - pub struct RegistryCall; - ///Container type for all input parameters for the `VERSION` function with signature `VERSION()` and selector `0xffa1ad74` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "VERSION", abi = "VERSION()")] - pub struct VersionCall; - ///Container type for all input parameters for the `WETH` function with signature `WETH()` and selector `0xad5c4648` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "WETH", abi = "WETH()")] - pub struct WethCall; - ///Container type for all input parameters for the `changeParameters` function with signature `changeParameters(uint64,uint16,uint16,uint16)` and selector `0xaf777855` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall( - name = "changeParameters", - abi = "changeParameters(uint64,uint16,uint16,uint16)" - )] - pub struct ChangeParametersCall { - pub pool_id: u64, - pub priority_fee: u16, - pub fee: u16, - pub jit: u16, - } - ///Container type for all input parameters for the `checkInvariant` function with signature `checkInvariant(uint64,int256,uint256,uint256,uint256)` and selector `0x2f337da5` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall( - name = "checkInvariant", - abi = "checkInvariant(uint64,int256,uint256,uint256,uint256)" - )] - pub struct CheckInvariantCall { - pub pool_id: u64, - pub invariant: ::ethers::core::types::I256, - pub reserve_x: ::ethers::core::types::U256, - pub reserve_y: ::ethers::core::types::U256, - pub timestamp: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `checkPool` function with signature `checkPool(uint64)` and selector `0xa68aaa41` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "checkPool", abi = "checkPool(uint64)")] - pub struct CheckPoolCall { - pub pool_id: u64, - } - ///Container type for all input parameters for the `checkPosition` function with signature `checkPosition(uint64,address,int256)` and selector `0x2cc6641e` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "checkPosition", abi = "checkPosition(uint64,address,int256)")] - pub struct CheckPositionCall { - pub pool_id: u64, - pub owner: ::ethers::core::types::Address, - pub delta: ::ethers::core::types::I256, - } - ///Container type for all input parameters for the `computeMaxInput` function with signature `computeMaxInput(uint64,bool,uint256,uint256)` and selector `0x989bafba` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall( - name = "computeMaxInput", - abi = "computeMaxInput(uint64,bool,uint256,uint256)" - )] - pub struct ComputeMaxInputCall { - pub pool_id: u64, - pub sell_asset: bool, - pub reserve_in: ::ethers::core::types::U256, - pub liquidity: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `computeReservesFromPrice` function with signature `computeReservesFromPrice(uint64,uint256)` and selector `0xc48d887a` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall( - name = "computeReservesFromPrice", - abi = "computeReservesFromPrice(uint64,uint256)" - )] - pub struct ComputeReservesFromPriceCall { - pub pool_id: u64, - pub price: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `deposit` function with signature `deposit()` and selector `0xd0e30db0` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "deposit", abi = "deposit()")] - pub struct DepositCall; - ///Container type for all input parameters for the `draw` function with signature `draw(address,uint256,address)` and selector `0xad24d6a0` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "draw", abi = "draw(address,uint256,address)")] - pub struct DrawCall { - pub token: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - pub to: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `fund` function with signature `fund(address,uint256)` and selector `0x7b1837de` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "fund", abi = "fund(address,uint256)")] - pub struct FundCall { - pub token: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `getAmountOut` function with signature `getAmountOut(uint64,bool,uint256)` and selector `0x7dae4890` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "getAmountOut", abi = "getAmountOut(uint64,bool,uint256)")] - pub struct GetAmountOutCall { - pub pool_id: u64, - pub sell_asset: bool, - pub amount_in: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `getBalance` function with signature `getBalance(address,address)` and selector `0xd4fac45d` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "getBalance", abi = "getBalance(address,address)")] - pub struct GetBalanceCall { - pub owner: ::ethers::core::types::Address, - pub token: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `getLiquidityDeltas` function with signature `getLiquidityDeltas(uint64,int128)` and selector `0x8992f20a` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "getLiquidityDeltas", abi = "getLiquidityDeltas(uint64,int128)")] - pub struct GetLiquidityDeltasCall { - pub pool_id: u64, - pub delta_liquidity: i128, - } - ///Container type for all input parameters for the `getMaxLiquidity` function with signature `getMaxLiquidity(uint64,uint256,uint256)` and selector `0xd6b7dec5` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "getMaxLiquidity", abi = "getMaxLiquidity(uint64,uint256,uint256)")] - pub struct GetMaxLiquidityCall { - pub pool_id: u64, - pub delta_asset: ::ethers::core::types::U256, - pub delta_quote: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `getNetBalance` function with signature `getNetBalance(address)` and selector `0x4dc68a90` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "getNetBalance", abi = "getNetBalance(address)")] - pub struct GetNetBalanceCall { - pub token: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `getPairId` function with signature `getPairId(address,address)` and selector `0x3f92a339` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "getPairId", abi = "getPairId(address,address)")] - pub struct GetPairIdCall { - pub asset: ::ethers::core::types::Address, - pub quote: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `getPairNonce` function with signature `getPairNonce()` and selector `0x078888d6` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "getPairNonce", abi = "getPairNonce()")] - pub struct GetPairNonceCall; - ///Container type for all input parameters for the `getPoolNonce` function with signature `getPoolNonce(uint24)` and selector `0xa5cd8a49` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "getPoolNonce", abi = "getPoolNonce(uint24)")] - pub struct GetPoolNonceCall { - pub pair_nonce: u32, - } - ///Container type for all input parameters for the `getPoolReserves` function with signature `getPoolReserves(uint64)` and selector `0x2afb9df8` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "getPoolReserves", abi = "getPoolReserves(uint64)")] - pub struct GetPoolReservesCall { - pub pool_id: u64, - } - ///Container type for all input parameters for the `getReserve` function with signature `getReserve(address)` and selector `0xc9a396e9` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "getReserve", abi = "getReserve(address)")] - pub struct GetReserveCall { - pub token: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `getVirtualPrice` function with signature `getVirtualPrice(uint64)` and selector `0x61b7ea6a` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "getVirtualPrice", abi = "getVirtualPrice(uint64)")] - pub struct GetVirtualPriceCall { - pub pool_id: u64, - } - ///Container type for all input parameters for the `getVirtualReservesPerLiquidity` function with signature `getVirtualReservesPerLiquidity(uint64)` and selector `0x1a4b905b` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall( - name = "getVirtualReservesPerLiquidity", - abi = "getVirtualReservesPerLiquidity(uint64)" - )] - pub struct GetVirtualReservesPerLiquidityCall { - pub pool_id: u64, - } - ///Container type for all input parameters for the `multiprocess` function with signature `multiprocess(bytes)` and selector `0xa0fdf413` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "multiprocess", abi = "multiprocess(bytes)")] - pub struct MultiprocessCall { - pub data: ::ethers::core::types::Bytes, - } - ///Container type for all input parameters for the `pairs` function with signature `pairs(uint24)` and selector `0x5e47663c` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "pairs", abi = "pairs(uint24)")] - pub struct PairsCall { - pub pair_id: u32, - } - ///Container type for all input parameters for the `pools` function with signature `pools(uint64)` and selector `0x89a5f084` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "pools", abi = "pools(uint64)")] - pub struct PoolsCall { - pub pool_id: u64, - } - ///Container type for all input parameters for the `positions` function with signature `positions(address,uint64)` and selector `0xb68513ea` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "positions", abi = "positions(address,uint64)")] - pub struct PositionsCall { - pub owner: ::ethers::core::types::Address, - pub pool_id: u64, - } - ///Container type for all input parameters for the `setProtocolFee` function with signature `setProtocolFee(uint256)` and selector `0x787dce3d` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "setProtocolFee", abi = "setProtocolFee(uint256)")] - pub struct SetProtocolFeeCall { - pub fee: ::ethers::core::types::U256, - } - ///Container type for all of the contract's call - #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] - pub enum ObjectiveCalls { - Registry(RegistryCall), - Version(VersionCall), - Weth(WethCall), - ChangeParameters(ChangeParametersCall), - CheckInvariant(CheckInvariantCall), - CheckPool(CheckPoolCall), - CheckPosition(CheckPositionCall), - ComputeMaxInput(ComputeMaxInputCall), - ComputeReservesFromPrice(ComputeReservesFromPriceCall), - Deposit(DepositCall), - Draw(DrawCall), - Fund(FundCall), - GetAmountOut(GetAmountOutCall), - GetBalance(GetBalanceCall), - GetLiquidityDeltas(GetLiquidityDeltasCall), - GetMaxLiquidity(GetMaxLiquidityCall), - GetNetBalance(GetNetBalanceCall), - GetPairId(GetPairIdCall), - GetPairNonce(GetPairNonceCall), - GetPoolNonce(GetPoolNonceCall), - GetPoolReserves(GetPoolReservesCall), - GetReserve(GetReserveCall), - GetVirtualPrice(GetVirtualPriceCall), - GetVirtualReservesPerLiquidity(GetVirtualReservesPerLiquidityCall), - Multiprocess(MultiprocessCall), - Pairs(PairsCall), - Pools(PoolsCall), - Positions(PositionsCall), - SetProtocolFee(SetProtocolFeeCall), - } - impl ::ethers::core::abi::AbiDecode for ObjectiveCalls { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Registry(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Version(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Weth(decoded)); - } - if let Ok(decoded) - = ::decode( - data, - ) { - return Ok(Self::ChangeParameters(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::CheckInvariant(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::CheckPool(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::CheckPosition(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::ComputeMaxInput(decoded)); - } - if let Ok(decoded) - = ::decode( - data, - ) { - return Ok(Self::ComputeReservesFromPrice(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Deposit(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Draw(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Fund(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::GetAmountOut(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::GetBalance(decoded)); - } - if let Ok(decoded) - = ::decode( - data, - ) { - return Ok(Self::GetLiquidityDeltas(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::GetMaxLiquidity(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::GetNetBalance(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::GetPairId(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::GetPairNonce(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::GetPoolNonce(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::GetPoolReserves(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::GetReserve(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::GetVirtualPrice(decoded)); - } - if let Ok(decoded) - = ::decode( - data, - ) { - return Ok(Self::GetVirtualReservesPerLiquidity(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Multiprocess(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Pairs(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Pools(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Positions(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::SetProtocolFee(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for ObjectiveCalls { - fn encode(self) -> Vec { - match self { - Self::Registry(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Version(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Weth(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::ChangeParameters(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::CheckInvariant(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::CheckPool(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::CheckPosition(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::ComputeMaxInput(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::ComputeReservesFromPrice(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Deposit(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Draw(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Fund(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetAmountOut(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::GetBalance(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::GetLiquidityDeltas(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::GetMaxLiquidity(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::GetNetBalance(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::GetPairId(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::GetPairNonce(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::GetPoolNonce(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::GetPoolReserves(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::GetReserve(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::GetVirtualPrice(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::GetVirtualReservesPerLiquidity(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Multiprocess(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Pairs(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Pools(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Positions(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::SetProtocolFee(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - } - } - } - impl ::core::fmt::Display for ObjectiveCalls { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::Registry(element) => ::core::fmt::Display::fmt(element, f), - Self::Version(element) => ::core::fmt::Display::fmt(element, f), - Self::Weth(element) => ::core::fmt::Display::fmt(element, f), - Self::ChangeParameters(element) => ::core::fmt::Display::fmt(element, f), - Self::CheckInvariant(element) => ::core::fmt::Display::fmt(element, f), - Self::CheckPool(element) => ::core::fmt::Display::fmt(element, f), - Self::CheckPosition(element) => ::core::fmt::Display::fmt(element, f), - Self::ComputeMaxInput(element) => ::core::fmt::Display::fmt(element, f), - Self::ComputeReservesFromPrice(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::Deposit(element) => ::core::fmt::Display::fmt(element, f), - Self::Draw(element) => ::core::fmt::Display::fmt(element, f), - Self::Fund(element) => ::core::fmt::Display::fmt(element, f), - Self::GetAmountOut(element) => ::core::fmt::Display::fmt(element, f), - Self::GetBalance(element) => ::core::fmt::Display::fmt(element, f), - Self::GetLiquidityDeltas(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::GetMaxLiquidity(element) => ::core::fmt::Display::fmt(element, f), - Self::GetNetBalance(element) => ::core::fmt::Display::fmt(element, f), - Self::GetPairId(element) => ::core::fmt::Display::fmt(element, f), - Self::GetPairNonce(element) => ::core::fmt::Display::fmt(element, f), - Self::GetPoolNonce(element) => ::core::fmt::Display::fmt(element, f), - Self::GetPoolReserves(element) => ::core::fmt::Display::fmt(element, f), - Self::GetReserve(element) => ::core::fmt::Display::fmt(element, f), - Self::GetVirtualPrice(element) => ::core::fmt::Display::fmt(element, f), - Self::GetVirtualReservesPerLiquidity(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::Multiprocess(element) => ::core::fmt::Display::fmt(element, f), - Self::Pairs(element) => ::core::fmt::Display::fmt(element, f), - Self::Pools(element) => ::core::fmt::Display::fmt(element, f), - Self::Positions(element) => ::core::fmt::Display::fmt(element, f), - Self::SetProtocolFee(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for ObjectiveCalls { - fn from(value: RegistryCall) -> Self { - Self::Registry(value) - } - } - impl ::core::convert::From for ObjectiveCalls { - fn from(value: VersionCall) -> Self { - Self::Version(value) - } - } - impl ::core::convert::From for ObjectiveCalls { - fn from(value: WethCall) -> Self { - Self::Weth(value) - } - } - impl ::core::convert::From for ObjectiveCalls { - fn from(value: ChangeParametersCall) -> Self { - Self::ChangeParameters(value) - } - } - impl ::core::convert::From for ObjectiveCalls { - fn from(value: CheckInvariantCall) -> Self { - Self::CheckInvariant(value) - } - } - impl ::core::convert::From for ObjectiveCalls { - fn from(value: CheckPoolCall) -> Self { - Self::CheckPool(value) - } - } - impl ::core::convert::From for ObjectiveCalls { - fn from(value: CheckPositionCall) -> Self { - Self::CheckPosition(value) - } - } - impl ::core::convert::From for ObjectiveCalls { - fn from(value: ComputeMaxInputCall) -> Self { - Self::ComputeMaxInput(value) - } - } - impl ::core::convert::From for ObjectiveCalls { - fn from(value: ComputeReservesFromPriceCall) -> Self { - Self::ComputeReservesFromPrice(value) - } - } - impl ::core::convert::From for ObjectiveCalls { - fn from(value: DepositCall) -> Self { - Self::Deposit(value) - } - } - impl ::core::convert::From for ObjectiveCalls { - fn from(value: DrawCall) -> Self { - Self::Draw(value) - } - } - impl ::core::convert::From for ObjectiveCalls { - fn from(value: FundCall) -> Self { - Self::Fund(value) - } - } - impl ::core::convert::From for ObjectiveCalls { - fn from(value: GetAmountOutCall) -> Self { - Self::GetAmountOut(value) - } - } - impl ::core::convert::From for ObjectiveCalls { - fn from(value: GetBalanceCall) -> Self { - Self::GetBalance(value) - } - } - impl ::core::convert::From for ObjectiveCalls { - fn from(value: GetLiquidityDeltasCall) -> Self { - Self::GetLiquidityDeltas(value) - } - } - impl ::core::convert::From for ObjectiveCalls { - fn from(value: GetMaxLiquidityCall) -> Self { - Self::GetMaxLiquidity(value) - } - } - impl ::core::convert::From for ObjectiveCalls { - fn from(value: GetNetBalanceCall) -> Self { - Self::GetNetBalance(value) - } - } - impl ::core::convert::From for ObjectiveCalls { - fn from(value: GetPairIdCall) -> Self { - Self::GetPairId(value) - } - } - impl ::core::convert::From for ObjectiveCalls { - fn from(value: GetPairNonceCall) -> Self { - Self::GetPairNonce(value) - } - } - impl ::core::convert::From for ObjectiveCalls { - fn from(value: GetPoolNonceCall) -> Self { - Self::GetPoolNonce(value) - } - } - impl ::core::convert::From for ObjectiveCalls { - fn from(value: GetPoolReservesCall) -> Self { - Self::GetPoolReserves(value) - } - } - impl ::core::convert::From for ObjectiveCalls { - fn from(value: GetReserveCall) -> Self { - Self::GetReserve(value) - } - } - impl ::core::convert::From for ObjectiveCalls { - fn from(value: GetVirtualPriceCall) -> Self { - Self::GetVirtualPrice(value) - } - } - impl ::core::convert::From for ObjectiveCalls { - fn from(value: GetVirtualReservesPerLiquidityCall) -> Self { - Self::GetVirtualReservesPerLiquidity(value) - } - } - impl ::core::convert::From for ObjectiveCalls { - fn from(value: MultiprocessCall) -> Self { - Self::Multiprocess(value) - } - } - impl ::core::convert::From for ObjectiveCalls { - fn from(value: PairsCall) -> Self { - Self::Pairs(value) - } - } - impl ::core::convert::From for ObjectiveCalls { - fn from(value: PoolsCall) -> Self { - Self::Pools(value) - } - } - impl ::core::convert::From for ObjectiveCalls { - fn from(value: PositionsCall) -> Self { - Self::Positions(value) - } - } - impl ::core::convert::From for ObjectiveCalls { - fn from(value: SetProtocolFeeCall) -> Self { - Self::SetProtocolFee(value) - } - } - ///Container type for all return fields from the `REGISTRY` function with signature `REGISTRY()` and selector `0x06433b1b` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct RegistryReturn(pub ::ethers::core::types::Address); - ///Container type for all return fields from the `VERSION` function with signature `VERSION()` and selector `0xffa1ad74` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct VersionReturn(pub ::std::string::String); - ///Container type for all return fields from the `WETH` function with signature `WETH()` and selector `0xad5c4648` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct WethReturn(pub ::ethers::core::types::Address); - ///Container type for all return fields from the `checkInvariant` function with signature `checkInvariant(uint64,int256,uint256,uint256,uint256)` and selector `0x2f337da5` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct CheckInvariantReturn { - pub success: bool, - pub next_invariant: ::ethers::core::types::I256, - } - ///Container type for all return fields from the `checkPool` function with signature `checkPool(uint64)` and selector `0xa68aaa41` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct CheckPoolReturn(pub bool); - ///Container type for all return fields from the `checkPosition` function with signature `checkPosition(uint64,address,int256)` and selector `0x2cc6641e` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct CheckPositionReturn(pub bool); - ///Container type for all return fields from the `computeMaxInput` function with signature `computeMaxInput(uint64,bool,uint256,uint256)` and selector `0x989bafba` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct ComputeMaxInputReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `computeReservesFromPrice` function with signature `computeReservesFromPrice(uint64,uint256)` and selector `0xc48d887a` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct ComputeReservesFromPriceReturn { - pub reserve_x: ::ethers::core::types::U256, - pub reserve_y: ::ethers::core::types::U256, - } - ///Container type for all return fields from the `getAmountOut` function with signature `getAmountOut(uint64,bool,uint256)` and selector `0x7dae4890` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct GetAmountOutReturn { - pub output: ::ethers::core::types::U256, - } - ///Container type for all return fields from the `getBalance` function with signature `getBalance(address,address)` and selector `0xd4fac45d` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct GetBalanceReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `getLiquidityDeltas` function with signature `getLiquidityDeltas(uint64,int128)` and selector `0x8992f20a` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct GetLiquidityDeltasReturn { - pub delta_asset: u128, - pub delta_quote: u128, - } - ///Container type for all return fields from the `getMaxLiquidity` function with signature `getMaxLiquidity(uint64,uint256,uint256)` and selector `0xd6b7dec5` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct GetMaxLiquidityReturn { - pub delta_liquidity: u128, - } - ///Container type for all return fields from the `getNetBalance` function with signature `getNetBalance(address)` and selector `0x4dc68a90` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct GetNetBalanceReturn(pub ::ethers::core::types::I256); - ///Container type for all return fields from the `getPairId` function with signature `getPairId(address,address)` and selector `0x3f92a339` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct GetPairIdReturn { - pub pair_id: u32, - } - ///Container type for all return fields from the `getPairNonce` function with signature `getPairNonce()` and selector `0x078888d6` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct GetPairNonceReturn(pub u32); - ///Container type for all return fields from the `getPoolNonce` function with signature `getPoolNonce(uint24)` and selector `0xa5cd8a49` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct GetPoolNonceReturn(pub u32); - ///Container type for all return fields from the `getPoolReserves` function with signature `getPoolReserves(uint64)` and selector `0x2afb9df8` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct GetPoolReservesReturn { - pub delta_asset: ::ethers::core::types::U256, - pub delta_quote: ::ethers::core::types::U256, - } - ///Container type for all return fields from the `getReserve` function with signature `getReserve(address)` and selector `0xc9a396e9` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct GetReserveReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `getVirtualPrice` function with signature `getVirtualPrice(uint64)` and selector `0x61b7ea6a` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct GetVirtualPriceReturn { - pub price: ::ethers::core::types::U256, - } - ///Container type for all return fields from the `getVirtualReservesPerLiquidity` function with signature `getVirtualReservesPerLiquidity(uint64)` and selector `0x1a4b905b` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct GetVirtualReservesPerLiquidityReturn { - pub delta_asset: u128, - pub delta_quote: u128, - } - ///Container type for all return fields from the `pairs` function with signature `pairs(uint24)` and selector `0x5e47663c` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct PairsReturn { - pub token_asset: ::ethers::core::types::Address, - pub decimals_asset: u8, - pub token_quote: ::ethers::core::types::Address, - pub decimals_quote: u8, - } - ///Container type for all return fields from the `pools` function with signature `pools(uint64)` and selector `0x89a5f084` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct PoolsReturn { - pub virtual_x: u128, - pub virtual_y: u128, - pub liquidity: u128, - pub last_timestamp: u32, - pub controller: ::ethers::core::types::Address, - pub invariant_growth_global: ::ethers::core::types::U256, - pub fee_growth_global_asset: ::ethers::core::types::U256, - pub fee_growth_global_quote: ::ethers::core::types::U256, - pub p8: PortfolioCurve, - pub p9: PortfolioPair, - } - ///Container type for all return fields from the `positions` function with signature `positions(address,uint64)` and selector `0xb68513ea` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct PositionsReturn { - pub free_liquidity: u128, - pub last_timestamp: u32, - pub invariant_growth_last: ::ethers::core::types::U256, - pub fee_growth_asset_last: ::ethers::core::types::U256, - pub fee_growth_quote_last: ::ethers::core::types::U256, - pub tokens_owed_asset: u128, - pub tokens_owed_quote: u128, - pub invariant_owed: u128, - } -} diff --git a/crates/bindings/src/portfolio_lib.rs b/crates/bindings/src/portfolio_lib.rs deleted file mode 100644 index 127518ec..00000000 --- a/crates/bindings/src/portfolio_lib.rs +++ /dev/null @@ -1,62 +0,0 @@ -pub use portfolio_lib::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types, -)] -pub mod portfolio_lib { - #[rustfmt::skip] - const __ABI: &str = "[]"; - ///The parsed JSON ABI of the contract. - pub static PORTFOLIOLIB_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| - ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); - pub struct PortfolioLib(::ethers::contract::Contract); - impl ::core::clone::Clone for PortfolioLib { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for PortfolioLib { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for PortfolioLib { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for PortfolioLib { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(stringify!(PortfolioLib)).field(&self.address()).finish() - } - } - impl PortfolioLib { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self( - ::ethers::contract::Contract::new( - address.into(), - PORTFOLIOLIB_ABI.clone(), - client, - ), - ) - } - } - impl From<::ethers::contract::Contract> - for PortfolioLib { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } -} diff --git a/crates/bindings/src/portfolio_like.rs b/crates/bindings/src/portfolio_like.rs deleted file mode 100644 index 2b92bfb2..00000000 --- a/crates/bindings/src/portfolio_like.rs +++ /dev/null @@ -1,162 +0,0 @@ -pub use portfolio_like::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types, -)] -pub mod portfolio_like { - #[rustfmt::skip] - const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"draw\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"setProtocolFee\",\"outputs\":[]}]"; - ///The parsed JSON ABI of the contract. - pub static PORTFOLIOLIKE_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| - ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); - pub struct PortfolioLike(::ethers::contract::Contract); - impl ::core::clone::Clone for PortfolioLike { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for PortfolioLike { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for PortfolioLike { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for PortfolioLike { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(stringify!(PortfolioLike)).field(&self.address()).finish() - } - } - impl PortfolioLike { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self( - ::ethers::contract::Contract::new( - address.into(), - PORTFOLIOLIKE_ABI.clone(), - client, - ), - ) - } - ///Calls the contract's `draw` (0xad24d6a0) function - pub fn draw( - &self, - p0: ::ethers::core::types::Address, - p1: ::ethers::core::types::U256, - p2: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([173, 36, 214, 160], (p0, p1, p2)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `setProtocolFee` (0x787dce3d) function - pub fn set_protocol_fee( - &self, - p0: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([120, 125, 206, 61], p0) - .expect("method not found (this should never happen)") - } - } - impl From<::ethers::contract::Contract> - for PortfolioLike { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - ///Container type for all input parameters for the `draw` function with signature `draw(address,uint256,address)` and selector `0xad24d6a0` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "draw", abi = "draw(address,uint256,address)")] - pub struct DrawCall( - pub ::ethers::core::types::Address, - pub ::ethers::core::types::U256, - pub ::ethers::core::types::Address, - ); - ///Container type for all input parameters for the `setProtocolFee` function with signature `setProtocolFee(uint256)` and selector `0x787dce3d` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "setProtocolFee", abi = "setProtocolFee(uint256)")] - pub struct SetProtocolFeeCall(pub ::ethers::core::types::U256); - ///Container type for all of the contract's call - #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] - pub enum PortfolioLikeCalls { - Draw(DrawCall), - SetProtocolFee(SetProtocolFeeCall), - } - impl ::ethers::core::abi::AbiDecode for PortfolioLikeCalls { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Draw(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::SetProtocolFee(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for PortfolioLikeCalls { - fn encode(self) -> Vec { - match self { - Self::Draw(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::SetProtocolFee(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - } - } - } - impl ::core::fmt::Display for PortfolioLikeCalls { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::Draw(element) => ::core::fmt::Display::fmt(element, f), - Self::SetProtocolFee(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for PortfolioLikeCalls { - fn from(value: DrawCall) -> Self { - Self::Draw(value) - } - } - impl ::core::convert::From for PortfolioLikeCalls { - fn from(value: SetProtocolFeeCall) -> Self { - Self::SetProtocolFee(value) - } - } -} diff --git a/crates/bindings/src/portfolio_virtual.rs b/crates/bindings/src/portfolio_virtual.rs deleted file mode 100644 index 1cfd01ee..00000000 --- a/crates/bindings/src/portfolio_virtual.rs +++ /dev/null @@ -1,3152 +0,0 @@ -pub use portfolio_virtual::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types, -)] -pub mod portfolio_virtual { - pub use super::super::shared_types::*; - #[rustfmt::skip] - const __ABI: &str = "[{\"inputs\":[],\"type\":\"error\",\"name\":\"DrawBalance\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"EtherTransferFail\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"delta\",\"type\":\"uint256\",\"components\":[]}],\"type\":\"error\",\"name\":\"InsufficientReserve\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"InvalidBalance\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\",\"components\":[]}],\"type\":\"error\",\"name\":\"InvalidBytesLength\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\",\"components\":[]}],\"type\":\"error\",\"name\":\"InvalidDecimals\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"fee\",\"type\":\"uint16\",\"components\":[]}],\"type\":\"error\",\"name\":\"InvalidFee\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"InvalidInstruction\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"prev\",\"type\":\"int256\",\"components\":[]},{\"internalType\":\"int256\",\"name\":\"next\",\"type\":\"int256\",\"components\":[]}],\"type\":\"error\",\"name\":\"InvalidInvariant\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"pointer\",\"type\":\"uint256\",\"components\":[]}],\"type\":\"error\",\"name\":\"InvalidJump\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"InvalidPair\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"InvalidReentrancy\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"InvalidSettlement\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"InvalidTransfer\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"distance\",\"type\":\"uint256\",\"components\":[]}],\"type\":\"error\",\"name\":\"JitLiquidity\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"int256\",\"name\":\"net\",\"type\":\"int256\",\"components\":[]}],\"type\":\"error\",\"name\":\"NegativeBalance\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"type\":\"error\",\"name\":\"NonExistentPool\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"type\":\"error\",\"name\":\"NonExistentPosition\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"NotController\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"pairId\",\"type\":\"uint24\",\"components\":[]}],\"type\":\"error\",\"name\":\"PairExists\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"PoolExpired\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"SameTokenError\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"ZeroAmounts\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"ZeroInput\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"ZeroLiquidity\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"ZeroOutput\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"ZeroPrice\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"ZeroValue\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaLiquidity\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Allocate\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint16\",\"name\":\"priorityFee\",\"type\":\"uint16\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint16\",\"name\":\"fee\",\"type\":\"uint16\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint16\",\"name\":\"jit\",\"type\":\"uint16\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"ChangeParameters\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"feeAssetDec\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"feeQuoteDec\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true}],\"type\":\"event\",\"name\":\"Collect\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"pairId\",\"type\":\"uint24\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint8\",\"name\":\"decimalsAsset\",\"type\":\"uint8\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint8\",\"name\":\"decimalsQuote\",\"type\":\"uint8\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"CreatePair\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"bool\",\"name\":\"isMutable\",\"type\":\"bool\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"CreatePool\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaLiquidity\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Deallocate\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"DecreaseReserveBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"DecreaseUserBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Deposit\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"IncreaseReserveBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"IncreaseUserBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"sellAsset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"input\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"tokenOut\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"output\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"feeAmountDec\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"int256\",\"name\":\"invariantWad\",\"type\":\"int256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Swap\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"prevFee\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"nextFee\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"UpdateProtocolFee\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\",\"name\":\"VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"WETH\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"__account__\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"settled\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"priorityFee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"fee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"jit\",\"type\":\"uint16\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"changeParameters\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"int256\",\"name\":\"invariant\",\"type\":\"int256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"reserveX\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"reserveY\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"checkInvariant\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\",\"components\":[]},{\"internalType\":\"int256\",\"name\":\"nextInvariant\",\"type\":\"int256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"checkPool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"int256\",\"name\":\"delta\",\"type\":\"int256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"checkPosition\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"bool\",\"name\":\"sellAsset\",\"type\":\"bool\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"reserveIn\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"computeMaxInput\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"computeReservesFromPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"reserveX\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"reserveY\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"deposit\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"draw\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"fund\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"bool\",\"name\":\"sellAsset\",\"type\":\"bool\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getAmountOut\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"output\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"int128\",\"name\":\"deltaLiquidity\",\"type\":\"int128\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getLiquidityDeltas\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"deltaAsset\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"deltaQuote\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getMaxLiquidity\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"deltaLiquidity\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getNetBalance\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPairId\",\"outputs\":[{\"internalType\":\"uint24\",\"name\":\"\",\"type\":\"uint24\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPairNonce\",\"outputs\":[{\"internalType\":\"uint24\",\"name\":\"\",\"type\":\"uint24\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"\",\"type\":\"uint24\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPoolNonce\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPoolReserves\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getReserve\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getVirtualPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getVirtualReservesPerLiquidity\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"deltaAsset\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"deltaQuote\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\",\"components\":[]}],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"multiprocess\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"\",\"type\":\"uint24\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"pairs\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"tokenAsset\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsAsset\",\"type\":\"uint8\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"tokenQuote\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsQuote\",\"type\":\"uint8\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"pools\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"virtualX\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"virtualY\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"liquidity\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint32\",\"name\":\"lastTimestamp\",\"type\":\"uint32\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"controller\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"invariantGrowthGlobal\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthGlobalAsset\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthGlobalQuote\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"struct PortfolioCurve\",\"name\":\"params\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"uint128\",\"name\":\"maxPrice\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"jit\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"fee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"duration\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"volatility\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"priorityFee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint32\",\"name\":\"createdAt\",\"type\":\"uint32\",\"components\":[]},{\"internalType\":\"bool\",\"name\":\"perpetual\",\"type\":\"bool\",\"components\":[]}]},{\"internalType\":\"struct PortfolioPair\",\"name\":\"pair\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"address\",\"name\":\"tokenAsset\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsAsset\",\"type\":\"uint8\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"tokenQuote\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsQuote\",\"type\":\"uint8\",\"components\":[]}]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"positions\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"freeLiquidity\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint32\",\"name\":\"lastTimestamp\",\"type\":\"uint32\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"invariantGrowthLast\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthAssetLast\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthQuoteLast\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"tokensOwedAsset\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"tokensOwedQuote\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"invariantOwed\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"setProtocolFee\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"payable\",\"type\":\"receive\",\"outputs\":[]}]"; - ///The parsed JSON ABI of the contract. - pub static PORTFOLIOVIRTUAL_ABI: ::ethers::contract::Lazy< - ::ethers::core::abi::Abi, - > = ::ethers::contract::Lazy::new(|| { - ::ethers::core::utils::__serde_json::from_str(__ABI) - .expect("ABI is always valid") - }); - pub struct PortfolioVirtual(::ethers::contract::Contract); - impl ::core::clone::Clone for PortfolioVirtual { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for PortfolioVirtual { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for PortfolioVirtual { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for PortfolioVirtual { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(stringify!(PortfolioVirtual)).field(&self.address()).finish() - } - } - impl PortfolioVirtual { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self( - ::ethers::contract::Contract::new( - address.into(), - PORTFOLIOVIRTUAL_ABI.clone(), - client, - ), - ) - } - ///Calls the contract's `REGISTRY` (0x06433b1b) function - pub fn registry( - &self, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::ethers::core::types::Address, - > { - self.0 - .method_hash([6, 67, 59, 27], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `VERSION` (0xffa1ad74) function - pub fn version( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([255, 161, 173, 116], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `WETH` (0xad5c4648) function - pub fn weth( - &self, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::ethers::core::types::Address, - > { - self.0 - .method_hash([173, 92, 70, 72], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `__account__` (0xda31ee54) function - pub fn account(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([218, 49, 238, 84], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `changeParameters` (0xaf777855) function - pub fn change_parameters( - &self, - pool_id: u64, - priority_fee: u16, - fee: u16, - jit: u16, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([175, 119, 120, 85], (pool_id, priority_fee, fee, jit)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `checkInvariant` (0x2f337da5) function - pub fn check_invariant( - &self, - pool_id: u64, - invariant: ::ethers::core::types::I256, - reserve_x: ::ethers::core::types::U256, - reserve_y: ::ethers::core::types::U256, - timestamp: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall< - M, - (bool, ::ethers::core::types::I256), - > { - self.0 - .method_hash( - [47, 51, 125, 165], - (pool_id, invariant, reserve_x, reserve_y, timestamp), - ) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `checkPool` (0xa68aaa41) function - pub fn check_pool( - &self, - pool_id: u64, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([166, 138, 170, 65], pool_id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `checkPosition` (0x2cc6641e) function - pub fn check_position( - &self, - pool_id: u64, - owner: ::ethers::core::types::Address, - delta: ::ethers::core::types::I256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([44, 198, 100, 30], (pool_id, owner, delta)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `computeMaxInput` (0x989bafba) function - pub fn compute_max_input( - &self, - pool_id: u64, - sell_asset: bool, - reserve_in: ::ethers::core::types::U256, - liquidity: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash( - [152, 155, 175, 186], - (pool_id, sell_asset, reserve_in, liquidity), - ) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `computeReservesFromPrice` (0xc48d887a) function - pub fn compute_reserves_from_price( - &self, - pool_id: u64, - price: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall< - M, - (::ethers::core::types::U256, ::ethers::core::types::U256), - > { - self.0 - .method_hash([196, 141, 136, 122], (pool_id, price)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `deposit` (0xd0e30db0) function - pub fn deposit(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([208, 227, 13, 176], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `draw` (0xad24d6a0) function - pub fn draw( - &self, - token: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - to: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([173, 36, 214, 160], (token, amount, to)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `fund` (0x7b1837de) function - pub fn fund( - &self, - token: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([123, 24, 55, 222], (token, amount)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getAmountOut` (0x7dae4890) function - pub fn get_amount_out( - &self, - pool_id: u64, - sell_asset: bool, - amount_in: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([125, 174, 72, 144], (pool_id, sell_asset, amount_in)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getBalance` (0xd4fac45d) function - pub fn get_balance( - &self, - owner: ::ethers::core::types::Address, - token: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([212, 250, 196, 93], (owner, token)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getLiquidityDeltas` (0x8992f20a) function - pub fn get_liquidity_deltas( - &self, - pool_id: u64, - delta_liquidity: i128, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([137, 146, 242, 10], (pool_id, delta_liquidity)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getMaxLiquidity` (0xd6b7dec5) function - pub fn get_max_liquidity( - &self, - pool_id: u64, - amount_0: ::ethers::core::types::U256, - amount_1: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([214, 183, 222, 197], (pool_id, amount_0, amount_1)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getNetBalance` (0x4dc68a90) function - pub fn get_net_balance( - &self, - token: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([77, 198, 138, 144], token) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getPairId` (0x3f92a339) function - pub fn get_pair_id( - &self, - p0: ::ethers::core::types::Address, - p1: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([63, 146, 163, 57], (p0, p1)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getPairNonce` (0x078888d6) function - pub fn get_pair_nonce( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([7, 136, 136, 214], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getPoolNonce` (0xa5cd8a49) function - pub fn get_pool_nonce( - &self, - p0: u32, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([165, 205, 138, 73], p0) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getPoolReserves` (0x2afb9df8) function - pub fn get_pool_reserves( - &self, - pool_id: u64, - ) -> ::ethers::contract::builders::ContractCall< - M, - (::ethers::core::types::U256, ::ethers::core::types::U256), - > { - self.0 - .method_hash([42, 251, 157, 248], pool_id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getReserve` (0xc9a396e9) function - pub fn get_reserve( - &self, - token: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([201, 163, 150, 233], token) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getVirtualPrice` (0x61b7ea6a) function - pub fn get_virtual_price( - &self, - pool_id: u64, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([97, 183, 234, 106], pool_id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getVirtualReservesPerLiquidity` (0x1a4b905b) function - pub fn get_virtual_reserves_per_liquidity( - &self, - pool_id: u64, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([26, 75, 144, 91], pool_id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `multiprocess` (0xa0fdf413) function - pub fn multiprocess( - &self, - data: ::ethers::core::types::Bytes, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([160, 253, 244, 19], data) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `pairs` (0x5e47663c) function - pub fn pairs( - &self, - p0: u32, - ) -> ::ethers::contract::builders::ContractCall< - M, - (::ethers::core::types::Address, u8, ::ethers::core::types::Address, u8), - > { - self.0 - .method_hash([94, 71, 102, 60], p0) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `pools` (0x89a5f084) function - pub fn pools( - &self, - p0: u64, - ) -> ::ethers::contract::builders::ContractCall< - M, - ( - u128, - u128, - u128, - u32, - ::ethers::core::types::Address, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - PortfolioCurve, - PortfolioPair, - ), - > { - self.0 - .method_hash([137, 165, 240, 132], p0) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `positions` (0xb68513ea) function - pub fn positions( - &self, - p0: ::ethers::core::types::Address, - p1: u64, - ) -> ::ethers::contract::builders::ContractCall< - M, - ( - u128, - u32, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - u128, - u128, - u128, - ), - > { - self.0 - .method_hash([182, 133, 19, 234], (p0, p1)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `setProtocolFee` (0x787dce3d) function - pub fn set_protocol_fee( - &self, - fee: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([120, 125, 206, 61], fee) - .expect("method not found (this should never happen)") - } - ///Gets the contract's `Allocate` event - pub fn allocate_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - AllocateFilter, - > { - self.0.event() - } - ///Gets the contract's `ChangeParameters` event - pub fn change_parameters_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - ChangeParametersFilter, - > { - self.0.event() - } - ///Gets the contract's `Collect` event - pub fn collect_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, CollectFilter> { - self.0.event() - } - ///Gets the contract's `CreatePair` event - pub fn create_pair_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - CreatePairFilter, - > { - self.0.event() - } - ///Gets the contract's `CreatePool` event - pub fn create_pool_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - CreatePoolFilter, - > { - self.0.event() - } - ///Gets the contract's `Deallocate` event - pub fn deallocate_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - DeallocateFilter, - > { - self.0.event() - } - ///Gets the contract's `DecreaseReserveBalance` event - pub fn decrease_reserve_balance_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - DecreaseReserveBalanceFilter, - > { - self.0.event() - } - ///Gets the contract's `DecreaseUserBalance` event - pub fn decrease_user_balance_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - DecreaseUserBalanceFilter, - > { - self.0.event() - } - ///Gets the contract's `Deposit` event - pub fn deposit_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, DepositFilter> { - self.0.event() - } - ///Gets the contract's `IncreaseReserveBalance` event - pub fn increase_reserve_balance_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - IncreaseReserveBalanceFilter, - > { - self.0.event() - } - ///Gets the contract's `IncreaseUserBalance` event - pub fn increase_user_balance_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - IncreaseUserBalanceFilter, - > { - self.0.event() - } - ///Gets the contract's `Swap` event - pub fn swap_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, SwapFilter> { - self.0.event() - } - ///Gets the contract's `UpdateProtocolFee` event - pub fn update_protocol_fee_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - UpdateProtocolFeeFilter, - > { - self.0.event() - } - /// Returns an `Event` builder for all the events of this contract. - pub fn events( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - PortfolioVirtualEvents, - > { - self.0.event_with_filter(::core::default::Default::default()) - } - } - impl From<::ethers::contract::Contract> - for PortfolioVirtual { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - ///Custom Error type `DrawBalance` with signature `DrawBalance()` and selector `0xc9f2f26c` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "DrawBalance", abi = "DrawBalance()")] - pub struct DrawBalance; - ///Custom Error type `EtherTransferFail` with signature `EtherTransferFail()` and selector `0x75f42683` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "EtherTransferFail", abi = "EtherTransferFail()")] - pub struct EtherTransferFail; - ///Custom Error type `InsufficientReserve` with signature `InsufficientReserve(uint256,uint256)` and selector `0x315276c9` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror( - name = "InsufficientReserve", - abi = "InsufficientReserve(uint256,uint256)" - )] - pub struct InsufficientReserve { - pub amount: ::ethers::core::types::U256, - pub delta: ::ethers::core::types::U256, - } - ///Custom Error type `InvalidBalance` with signature `InvalidBalance()` and selector `0xc52e3eff` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "InvalidBalance", abi = "InvalidBalance()")] - pub struct InvalidBalance; - ///Custom Error type `InvalidBytesLength` with signature `InvalidBytesLength(uint256,uint256)` and selector `0xe19dc95e` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "InvalidBytesLength", abi = "InvalidBytesLength(uint256,uint256)")] - pub struct InvalidBytesLength { - pub expected: ::ethers::core::types::U256, - pub length: ::ethers::core::types::U256, - } - ///Custom Error type `InvalidDecimals` with signature `InvalidDecimals(uint8)` and selector `0xca950391` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "InvalidDecimals", abi = "InvalidDecimals(uint8)")] - pub struct InvalidDecimals { - pub decimals: u8, - } - ///Custom Error type `InvalidFee` with signature `InvalidFee(uint16)` and selector `0xf6f4a38f` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "InvalidFee", abi = "InvalidFee(uint16)")] - pub struct InvalidFee { - pub fee: u16, - } - ///Custom Error type `InvalidInstruction` with signature `InvalidInstruction()` and selector `0xd8c48f68` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "InvalidInstruction", abi = "InvalidInstruction()")] - pub struct InvalidInstruction; - ///Custom Error type `InvalidInvariant` with signature `InvalidInvariant(int256,int256)` and selector `0x2125a168` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "InvalidInvariant", abi = "InvalidInvariant(int256,int256)")] - pub struct InvalidInvariant { - pub prev: ::ethers::core::types::I256, - pub next: ::ethers::core::types::I256, - } - ///Custom Error type `InvalidJump` with signature `InvalidJump(uint256)` and selector `0x80f63bd1` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "InvalidJump", abi = "InvalidJump(uint256)")] - pub struct InvalidJump { - pub pointer: ::ethers::core::types::U256, - } - ///Custom Error type `InvalidPair` with signature `InvalidPair()` and selector `0x1e4f7d8c` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "InvalidPair", abi = "InvalidPair()")] - pub struct InvalidPair; - ///Custom Error type `InvalidReentrancy` with signature `InvalidReentrancy()` and selector `0xffc72209` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "InvalidReentrancy", abi = "InvalidReentrancy()")] - pub struct InvalidReentrancy; - ///Custom Error type `InvalidSettlement` with signature `InvalidSettlement()` and selector `0x115931c4` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "InvalidSettlement", abi = "InvalidSettlement()")] - pub struct InvalidSettlement; - ///Custom Error type `InvalidTransfer` with signature `InvalidTransfer()` and selector `0x2f352531` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "InvalidTransfer", abi = "InvalidTransfer()")] - pub struct InvalidTransfer; - ///Custom Error type `JitLiquidity` with signature `JitLiquidity(uint256)` and selector `0x9a231b2c` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "JitLiquidity", abi = "JitLiquidity(uint256)")] - pub struct JitLiquidity { - pub distance: ::ethers::core::types::U256, - } - ///Custom Error type `NegativeBalance` with signature `NegativeBalance(address,int256)` and selector `0xfe239baa` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "NegativeBalance", abi = "NegativeBalance(address,int256)")] - pub struct NegativeBalance { - pub token: ::ethers::core::types::Address, - pub net: ::ethers::core::types::I256, - } - ///Custom Error type `NonExistentPool` with signature `NonExistentPool(uint64)` and selector `0xd4480d46` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "NonExistentPool", abi = "NonExistentPool(uint64)")] - pub struct NonExistentPool { - pub pool_id: u64, - } - ///Custom Error type `NonExistentPosition` with signature `NonExistentPosition(address,uint64)` and selector `0x5f3605b6` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror( - name = "NonExistentPosition", - abi = "NonExistentPosition(address,uint64)" - )] - pub struct NonExistentPosition { - pub owner: ::ethers::core::types::Address, - pub pool_id: u64, - } - ///Custom Error type `NotController` with signature `NotController()` and selector `0x23019e67` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "NotController", abi = "NotController()")] - pub struct NotController; - ///Custom Error type `PairExists` with signature `PairExists(uint24)` and selector `0x3325fa77` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "PairExists", abi = "PairExists(uint24)")] - pub struct PairExists { - pub pair_id: u32, - } - ///Custom Error type `PoolExpired` with signature `PoolExpired()` and selector `0x398b36db` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "PoolExpired", abi = "PoolExpired()")] - pub struct PoolExpired; - ///Custom Error type `SameTokenError` with signature `SameTokenError()` and selector `0xec38b794` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "SameTokenError", abi = "SameTokenError()")] - pub struct SameTokenError; - ///Custom Error type `ZeroAmounts` with signature `ZeroAmounts()` and selector `0x213c7cc5` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "ZeroAmounts", abi = "ZeroAmounts()")] - pub struct ZeroAmounts; - ///Custom Error type `ZeroInput` with signature `ZeroInput()` and selector `0xaf458c07` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "ZeroInput", abi = "ZeroInput()")] - pub struct ZeroInput; - ///Custom Error type `ZeroLiquidity` with signature `ZeroLiquidity()` and selector `0x10074548` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "ZeroLiquidity", abi = "ZeroLiquidity()")] - pub struct ZeroLiquidity; - ///Custom Error type `ZeroOutput` with signature `ZeroOutput()` and selector `0xe618637e` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "ZeroOutput", abi = "ZeroOutput()")] - pub struct ZeroOutput; - ///Custom Error type `ZeroPrice` with signature `ZeroPrice()` and selector `0x4dfba023` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "ZeroPrice", abi = "ZeroPrice()")] - pub struct ZeroPrice; - ///Custom Error type `ZeroValue` with signature `ZeroValue()` and selector `0x7c946ed7` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "ZeroValue", abi = "ZeroValue()")] - pub struct ZeroValue; - ///Container type for all of the contract's custom errors - #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] - pub enum PortfolioVirtualErrors { - DrawBalance(DrawBalance), - EtherTransferFail(EtherTransferFail), - InsufficientReserve(InsufficientReserve), - InvalidBalance(InvalidBalance), - InvalidBytesLength(InvalidBytesLength), - InvalidDecimals(InvalidDecimals), - InvalidFee(InvalidFee), - InvalidInstruction(InvalidInstruction), - InvalidInvariant(InvalidInvariant), - InvalidJump(InvalidJump), - InvalidPair(InvalidPair), - InvalidReentrancy(InvalidReentrancy), - InvalidSettlement(InvalidSettlement), - InvalidTransfer(InvalidTransfer), - JitLiquidity(JitLiquidity), - NegativeBalance(NegativeBalance), - NonExistentPool(NonExistentPool), - NonExistentPosition(NonExistentPosition), - NotController(NotController), - PairExists(PairExists), - PoolExpired(PoolExpired), - SameTokenError(SameTokenError), - ZeroAmounts(ZeroAmounts), - ZeroInput(ZeroInput), - ZeroLiquidity(ZeroLiquidity), - ZeroOutput(ZeroOutput), - ZeroPrice(ZeroPrice), - ZeroValue(ZeroValue), - /// The standard solidity revert string, with selector - /// Error(string) -- 0x08c379a0 - RevertString(::std::string::String), - } - impl ::ethers::core::abi::AbiDecode for PortfolioVirtualErrors { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) - = <::std::string::String as ::ethers::core::abi::AbiDecode>::decode( - data, - ) { - return Ok(Self::RevertString(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::DrawBalance(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::EtherTransferFail(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::InsufficientReserve(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::InvalidBalance(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::InvalidBytesLength(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::InvalidDecimals(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::InvalidFee(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::InvalidInstruction(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::InvalidInvariant(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::InvalidJump(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::InvalidPair(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::InvalidReentrancy(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::InvalidSettlement(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::InvalidTransfer(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::JitLiquidity(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::NegativeBalance(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::NonExistentPool(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::NonExistentPosition(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::NotController(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::PairExists(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::PoolExpired(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::SameTokenError(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::ZeroAmounts(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::ZeroInput(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::ZeroLiquidity(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::ZeroOutput(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::ZeroPrice(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::ZeroValue(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for PortfolioVirtualErrors { - fn encode(self) -> ::std::vec::Vec { - match self { - Self::DrawBalance(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::EtherTransferFail(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::InsufficientReserve(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::InvalidBalance(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::InvalidBytesLength(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::InvalidDecimals(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::InvalidFee(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::InvalidInstruction(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::InvalidInvariant(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::InvalidJump(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::InvalidPair(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::InvalidReentrancy(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::InvalidSettlement(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::InvalidTransfer(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::JitLiquidity(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::NegativeBalance(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::NonExistentPool(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::NonExistentPosition(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::NotController(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::PairExists(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::PoolExpired(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::SameTokenError(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::ZeroAmounts(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::ZeroInput(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::ZeroLiquidity(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::ZeroOutput(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::ZeroPrice(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::ZeroValue(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::RevertString(s) => ::ethers::core::abi::AbiEncode::encode(s), - } - } - } - impl ::ethers::contract::ContractRevert for PortfolioVirtualErrors { - fn valid_selector(selector: [u8; 4]) -> bool { - match selector { - [0x08, 0xc3, 0x79, 0xa0] => true, - _ if selector - == ::selector() => true, - _ if selector - == ::selector() => { - true - } - _ if selector - == ::selector() => { - true - } - _ if selector - == ::selector() => { - true - } - _ if selector - == ::selector() => { - true - } - _ if selector - == ::selector() => { - true - } - _ if selector - == ::selector() => true, - _ if selector - == ::selector() => { - true - } - _ if selector - == ::selector() => { - true - } - _ if selector - == ::selector() => true, - _ if selector - == ::selector() => true, - _ if selector - == ::selector() => { - true - } - _ if selector - == ::selector() => { - true - } - _ if selector - == ::selector() => { - true - } - _ if selector - == ::selector() => true, - _ if selector - == ::selector() => { - true - } - _ if selector - == ::selector() => { - true - } - _ if selector - == ::selector() => { - true - } - _ if selector - == ::selector() => { - true - } - _ if selector - == ::selector() => true, - _ if selector - == ::selector() => true, - _ if selector - == ::selector() => { - true - } - _ if selector - == ::selector() => true, - _ if selector - == ::selector() => true, - _ if selector - == ::selector() => { - true - } - _ if selector - == ::selector() => true, - _ if selector - == ::selector() => true, - _ if selector - == ::selector() => true, - _ => false, - } - } - } - impl ::core::fmt::Display for PortfolioVirtualErrors { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::DrawBalance(element) => ::core::fmt::Display::fmt(element, f), - Self::EtherTransferFail(element) => ::core::fmt::Display::fmt(element, f), - Self::InsufficientReserve(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::InvalidBalance(element) => ::core::fmt::Display::fmt(element, f), - Self::InvalidBytesLength(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::InvalidDecimals(element) => ::core::fmt::Display::fmt(element, f), - Self::InvalidFee(element) => ::core::fmt::Display::fmt(element, f), - Self::InvalidInstruction(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::InvalidInvariant(element) => ::core::fmt::Display::fmt(element, f), - Self::InvalidJump(element) => ::core::fmt::Display::fmt(element, f), - Self::InvalidPair(element) => ::core::fmt::Display::fmt(element, f), - Self::InvalidReentrancy(element) => ::core::fmt::Display::fmt(element, f), - Self::InvalidSettlement(element) => ::core::fmt::Display::fmt(element, f), - Self::InvalidTransfer(element) => ::core::fmt::Display::fmt(element, f), - Self::JitLiquidity(element) => ::core::fmt::Display::fmt(element, f), - Self::NegativeBalance(element) => ::core::fmt::Display::fmt(element, f), - Self::NonExistentPool(element) => ::core::fmt::Display::fmt(element, f), - Self::NonExistentPosition(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::NotController(element) => ::core::fmt::Display::fmt(element, f), - Self::PairExists(element) => ::core::fmt::Display::fmt(element, f), - Self::PoolExpired(element) => ::core::fmt::Display::fmt(element, f), - Self::SameTokenError(element) => ::core::fmt::Display::fmt(element, f), - Self::ZeroAmounts(element) => ::core::fmt::Display::fmt(element, f), - Self::ZeroInput(element) => ::core::fmt::Display::fmt(element, f), - Self::ZeroLiquidity(element) => ::core::fmt::Display::fmt(element, f), - Self::ZeroOutput(element) => ::core::fmt::Display::fmt(element, f), - Self::ZeroPrice(element) => ::core::fmt::Display::fmt(element, f), - Self::ZeroValue(element) => ::core::fmt::Display::fmt(element, f), - Self::RevertString(s) => ::core::fmt::Display::fmt(s, f), - } - } - } - impl ::core::convert::From<::std::string::String> for PortfolioVirtualErrors { - fn from(value: String) -> Self { - Self::RevertString(value) - } - } - impl ::core::convert::From for PortfolioVirtualErrors { - fn from(value: DrawBalance) -> Self { - Self::DrawBalance(value) - } - } - impl ::core::convert::From for PortfolioVirtualErrors { - fn from(value: EtherTransferFail) -> Self { - Self::EtherTransferFail(value) - } - } - impl ::core::convert::From for PortfolioVirtualErrors { - fn from(value: InsufficientReserve) -> Self { - Self::InsufficientReserve(value) - } - } - impl ::core::convert::From for PortfolioVirtualErrors { - fn from(value: InvalidBalance) -> Self { - Self::InvalidBalance(value) - } - } - impl ::core::convert::From for PortfolioVirtualErrors { - fn from(value: InvalidBytesLength) -> Self { - Self::InvalidBytesLength(value) - } - } - impl ::core::convert::From for PortfolioVirtualErrors { - fn from(value: InvalidDecimals) -> Self { - Self::InvalidDecimals(value) - } - } - impl ::core::convert::From for PortfolioVirtualErrors { - fn from(value: InvalidFee) -> Self { - Self::InvalidFee(value) - } - } - impl ::core::convert::From for PortfolioVirtualErrors { - fn from(value: InvalidInstruction) -> Self { - Self::InvalidInstruction(value) - } - } - impl ::core::convert::From for PortfolioVirtualErrors { - fn from(value: InvalidInvariant) -> Self { - Self::InvalidInvariant(value) - } - } - impl ::core::convert::From for PortfolioVirtualErrors { - fn from(value: InvalidJump) -> Self { - Self::InvalidJump(value) - } - } - impl ::core::convert::From for PortfolioVirtualErrors { - fn from(value: InvalidPair) -> Self { - Self::InvalidPair(value) - } - } - impl ::core::convert::From for PortfolioVirtualErrors { - fn from(value: InvalidReentrancy) -> Self { - Self::InvalidReentrancy(value) - } - } - impl ::core::convert::From for PortfolioVirtualErrors { - fn from(value: InvalidSettlement) -> Self { - Self::InvalidSettlement(value) - } - } - impl ::core::convert::From for PortfolioVirtualErrors { - fn from(value: InvalidTransfer) -> Self { - Self::InvalidTransfer(value) - } - } - impl ::core::convert::From for PortfolioVirtualErrors { - fn from(value: JitLiquidity) -> Self { - Self::JitLiquidity(value) - } - } - impl ::core::convert::From for PortfolioVirtualErrors { - fn from(value: NegativeBalance) -> Self { - Self::NegativeBalance(value) - } - } - impl ::core::convert::From for PortfolioVirtualErrors { - fn from(value: NonExistentPool) -> Self { - Self::NonExistentPool(value) - } - } - impl ::core::convert::From for PortfolioVirtualErrors { - fn from(value: NonExistentPosition) -> Self { - Self::NonExistentPosition(value) - } - } - impl ::core::convert::From for PortfolioVirtualErrors { - fn from(value: NotController) -> Self { - Self::NotController(value) - } - } - impl ::core::convert::From for PortfolioVirtualErrors { - fn from(value: PairExists) -> Self { - Self::PairExists(value) - } - } - impl ::core::convert::From for PortfolioVirtualErrors { - fn from(value: PoolExpired) -> Self { - Self::PoolExpired(value) - } - } - impl ::core::convert::From for PortfolioVirtualErrors { - fn from(value: SameTokenError) -> Self { - Self::SameTokenError(value) - } - } - impl ::core::convert::From for PortfolioVirtualErrors { - fn from(value: ZeroAmounts) -> Self { - Self::ZeroAmounts(value) - } - } - impl ::core::convert::From for PortfolioVirtualErrors { - fn from(value: ZeroInput) -> Self { - Self::ZeroInput(value) - } - } - impl ::core::convert::From for PortfolioVirtualErrors { - fn from(value: ZeroLiquidity) -> Self { - Self::ZeroLiquidity(value) - } - } - impl ::core::convert::From for PortfolioVirtualErrors { - fn from(value: ZeroOutput) -> Self { - Self::ZeroOutput(value) - } - } - impl ::core::convert::From for PortfolioVirtualErrors { - fn from(value: ZeroPrice) -> Self { - Self::ZeroPrice(value) - } - } - impl ::core::convert::From for PortfolioVirtualErrors { - fn from(value: ZeroValue) -> Self { - Self::ZeroValue(value) - } - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent( - name = "Allocate", - abi = "Allocate(uint64,address,address,uint256,uint256,uint256)" - )] - pub struct AllocateFilter { - #[ethevent(indexed)] - pub pool_id: u64, - #[ethevent(indexed)] - pub asset: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub quote: ::ethers::core::types::Address, - pub delta_asset: ::ethers::core::types::U256, - pub delta_quote: ::ethers::core::types::U256, - pub delta_liquidity: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent( - name = "ChangeParameters", - abi = "ChangeParameters(uint64,uint16,uint16,uint16)" - )] - pub struct ChangeParametersFilter { - #[ethevent(indexed)] - pub pool_id: u64, - #[ethevent(indexed)] - pub priority_fee: u16, - #[ethevent(indexed)] - pub fee: u16, - pub jit: u16, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent( - name = "Collect", - abi = "Collect(uint64,address,uint256,address,uint256,address)" - )] - pub struct CollectFilter { - pub pool_id: u64, - #[ethevent(indexed)] - pub account: ::ethers::core::types::Address, - pub fee_asset_dec: ::ethers::core::types::U256, - #[ethevent(indexed)] - pub asset: ::ethers::core::types::Address, - pub fee_quote_dec: ::ethers::core::types::U256, - #[ethevent(indexed)] - pub quote: ::ethers::core::types::Address, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent( - name = "CreatePair", - abi = "CreatePair(uint24,address,address,uint8,uint8)" - )] - pub struct CreatePairFilter { - #[ethevent(indexed)] - pub pair_id: u32, - #[ethevent(indexed)] - pub asset: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub quote: ::ethers::core::types::Address, - pub decimals_asset: u8, - pub decimals_quote: u8, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent( - name = "CreatePool", - abi = "CreatePool(uint64,bool,address,address,uint256)" - )] - pub struct CreatePoolFilter { - #[ethevent(indexed)] - pub pool_id: u64, - pub is_mutable: bool, - #[ethevent(indexed)] - pub asset: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub quote: ::ethers::core::types::Address, - pub price: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent( - name = "Deallocate", - abi = "Deallocate(uint64,address,address,uint256,uint256,uint256)" - )] - pub struct DeallocateFilter { - #[ethevent(indexed)] - pub pool_id: u64, - #[ethevent(indexed)] - pub asset: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub quote: ::ethers::core::types::Address, - pub delta_asset: ::ethers::core::types::U256, - pub delta_quote: ::ethers::core::types::U256, - pub delta_liquidity: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent( - name = "DecreaseReserveBalance", - abi = "DecreaseReserveBalance(address,uint256)" - )] - pub struct DecreaseReserveBalanceFilter { - #[ethevent(indexed)] - pub token: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent( - name = "DecreaseUserBalance", - abi = "DecreaseUserBalance(address,address,uint256)" - )] - pub struct DecreaseUserBalanceFilter { - #[ethevent(indexed)] - pub account: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub token: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "Deposit", abi = "Deposit(address,uint256)")] - pub struct DepositFilter { - #[ethevent(indexed)] - pub account: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent( - name = "IncreaseReserveBalance", - abi = "IncreaseReserveBalance(address,uint256)" - )] - pub struct IncreaseReserveBalanceFilter { - #[ethevent(indexed)] - pub token: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent( - name = "IncreaseUserBalance", - abi = "IncreaseUserBalance(address,address,uint256)" - )] - pub struct IncreaseUserBalanceFilter { - #[ethevent(indexed)] - pub account: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub token: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent( - name = "Swap", - abi = "Swap(uint64,uint256,address,uint256,address,uint256,uint256,int256)" - )] - pub struct SwapFilter { - #[ethevent(indexed)] - pub pool_id: u64, - pub price: ::ethers::core::types::U256, - #[ethevent(indexed)] - pub sell_asset: ::ethers::core::types::Address, - pub input: ::ethers::core::types::U256, - #[ethevent(indexed)] - pub token_out: ::ethers::core::types::Address, - pub output: ::ethers::core::types::U256, - pub fee_amount_dec: ::ethers::core::types::U256, - pub invariant_wad: ::ethers::core::types::I256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "UpdateProtocolFee", abi = "UpdateProtocolFee(uint256,uint256)")] - pub struct UpdateProtocolFeeFilter { - pub prev_fee: ::ethers::core::types::U256, - pub next_fee: ::ethers::core::types::U256, - } - ///Container type for all of the contract's events - #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] - pub enum PortfolioVirtualEvents { - AllocateFilter(AllocateFilter), - ChangeParametersFilter(ChangeParametersFilter), - CollectFilter(CollectFilter), - CreatePairFilter(CreatePairFilter), - CreatePoolFilter(CreatePoolFilter), - DeallocateFilter(DeallocateFilter), - DecreaseReserveBalanceFilter(DecreaseReserveBalanceFilter), - DecreaseUserBalanceFilter(DecreaseUserBalanceFilter), - DepositFilter(DepositFilter), - IncreaseReserveBalanceFilter(IncreaseReserveBalanceFilter), - IncreaseUserBalanceFilter(IncreaseUserBalanceFilter), - SwapFilter(SwapFilter), - UpdateProtocolFeeFilter(UpdateProtocolFeeFilter), - } - impl ::ethers::contract::EthLogDecode for PortfolioVirtualEvents { - fn decode_log( - log: &::ethers::core::abi::RawLog, - ) -> ::core::result::Result { - if let Ok(decoded) = AllocateFilter::decode_log(log) { - return Ok(PortfolioVirtualEvents::AllocateFilter(decoded)); - } - if let Ok(decoded) = ChangeParametersFilter::decode_log(log) { - return Ok(PortfolioVirtualEvents::ChangeParametersFilter(decoded)); - } - if let Ok(decoded) = CollectFilter::decode_log(log) { - return Ok(PortfolioVirtualEvents::CollectFilter(decoded)); - } - if let Ok(decoded) = CreatePairFilter::decode_log(log) { - return Ok(PortfolioVirtualEvents::CreatePairFilter(decoded)); - } - if let Ok(decoded) = CreatePoolFilter::decode_log(log) { - return Ok(PortfolioVirtualEvents::CreatePoolFilter(decoded)); - } - if let Ok(decoded) = DeallocateFilter::decode_log(log) { - return Ok(PortfolioVirtualEvents::DeallocateFilter(decoded)); - } - if let Ok(decoded) = DecreaseReserveBalanceFilter::decode_log(log) { - return Ok(PortfolioVirtualEvents::DecreaseReserveBalanceFilter(decoded)); - } - if let Ok(decoded) = DecreaseUserBalanceFilter::decode_log(log) { - return Ok(PortfolioVirtualEvents::DecreaseUserBalanceFilter(decoded)); - } - if let Ok(decoded) = DepositFilter::decode_log(log) { - return Ok(PortfolioVirtualEvents::DepositFilter(decoded)); - } - if let Ok(decoded) = IncreaseReserveBalanceFilter::decode_log(log) { - return Ok(PortfolioVirtualEvents::IncreaseReserveBalanceFilter(decoded)); - } - if let Ok(decoded) = IncreaseUserBalanceFilter::decode_log(log) { - return Ok(PortfolioVirtualEvents::IncreaseUserBalanceFilter(decoded)); - } - if let Ok(decoded) = SwapFilter::decode_log(log) { - return Ok(PortfolioVirtualEvents::SwapFilter(decoded)); - } - if let Ok(decoded) = UpdateProtocolFeeFilter::decode_log(log) { - return Ok(PortfolioVirtualEvents::UpdateProtocolFeeFilter(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData) - } - } - impl ::core::fmt::Display for PortfolioVirtualEvents { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::AllocateFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::ChangeParametersFilter(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::CollectFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::CreatePairFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::CreatePoolFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::DeallocateFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::DecreaseReserveBalanceFilter(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::DecreaseUserBalanceFilter(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::DepositFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::IncreaseReserveBalanceFilter(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::IncreaseUserBalanceFilter(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::SwapFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::UpdateProtocolFeeFilter(element) => { - ::core::fmt::Display::fmt(element, f) - } - } - } - } - impl ::core::convert::From for PortfolioVirtualEvents { - fn from(value: AllocateFilter) -> Self { - Self::AllocateFilter(value) - } - } - impl ::core::convert::From for PortfolioVirtualEvents { - fn from(value: ChangeParametersFilter) -> Self { - Self::ChangeParametersFilter(value) - } - } - impl ::core::convert::From for PortfolioVirtualEvents { - fn from(value: CollectFilter) -> Self { - Self::CollectFilter(value) - } - } - impl ::core::convert::From for PortfolioVirtualEvents { - fn from(value: CreatePairFilter) -> Self { - Self::CreatePairFilter(value) - } - } - impl ::core::convert::From for PortfolioVirtualEvents { - fn from(value: CreatePoolFilter) -> Self { - Self::CreatePoolFilter(value) - } - } - impl ::core::convert::From for PortfolioVirtualEvents { - fn from(value: DeallocateFilter) -> Self { - Self::DeallocateFilter(value) - } - } - impl ::core::convert::From for PortfolioVirtualEvents { - fn from(value: DecreaseReserveBalanceFilter) -> Self { - Self::DecreaseReserveBalanceFilter(value) - } - } - impl ::core::convert::From for PortfolioVirtualEvents { - fn from(value: DecreaseUserBalanceFilter) -> Self { - Self::DecreaseUserBalanceFilter(value) - } - } - impl ::core::convert::From for PortfolioVirtualEvents { - fn from(value: DepositFilter) -> Self { - Self::DepositFilter(value) - } - } - impl ::core::convert::From for PortfolioVirtualEvents { - fn from(value: IncreaseReserveBalanceFilter) -> Self { - Self::IncreaseReserveBalanceFilter(value) - } - } - impl ::core::convert::From for PortfolioVirtualEvents { - fn from(value: IncreaseUserBalanceFilter) -> Self { - Self::IncreaseUserBalanceFilter(value) - } - } - impl ::core::convert::From for PortfolioVirtualEvents { - fn from(value: SwapFilter) -> Self { - Self::SwapFilter(value) - } - } - impl ::core::convert::From for PortfolioVirtualEvents { - fn from(value: UpdateProtocolFeeFilter) -> Self { - Self::UpdateProtocolFeeFilter(value) - } - } - ///Container type for all input parameters for the `REGISTRY` function with signature `REGISTRY()` and selector `0x06433b1b` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "REGISTRY", abi = "REGISTRY()")] - pub struct RegistryCall; - ///Container type for all input parameters for the `VERSION` function with signature `VERSION()` and selector `0xffa1ad74` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "VERSION", abi = "VERSION()")] - pub struct VersionCall; - ///Container type for all input parameters for the `WETH` function with signature `WETH()` and selector `0xad5c4648` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "WETH", abi = "WETH()")] - pub struct WethCall; - ///Container type for all input parameters for the `__account__` function with signature `__account__()` and selector `0xda31ee54` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "__account__", abi = "__account__()")] - pub struct AccountCall; - ///Container type for all input parameters for the `changeParameters` function with signature `changeParameters(uint64,uint16,uint16,uint16)` and selector `0xaf777855` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall( - name = "changeParameters", - abi = "changeParameters(uint64,uint16,uint16,uint16)" - )] - pub struct ChangeParametersCall { - pub pool_id: u64, - pub priority_fee: u16, - pub fee: u16, - pub jit: u16, - } - ///Container type for all input parameters for the `checkInvariant` function with signature `checkInvariant(uint64,int256,uint256,uint256,uint256)` and selector `0x2f337da5` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall( - name = "checkInvariant", - abi = "checkInvariant(uint64,int256,uint256,uint256,uint256)" - )] - pub struct CheckInvariantCall { - pub pool_id: u64, - pub invariant: ::ethers::core::types::I256, - pub reserve_x: ::ethers::core::types::U256, - pub reserve_y: ::ethers::core::types::U256, - pub timestamp: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `checkPool` function with signature `checkPool(uint64)` and selector `0xa68aaa41` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "checkPool", abi = "checkPool(uint64)")] - pub struct CheckPoolCall { - pub pool_id: u64, - } - ///Container type for all input parameters for the `checkPosition` function with signature `checkPosition(uint64,address,int256)` and selector `0x2cc6641e` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "checkPosition", abi = "checkPosition(uint64,address,int256)")] - pub struct CheckPositionCall { - pub pool_id: u64, - pub owner: ::ethers::core::types::Address, - pub delta: ::ethers::core::types::I256, - } - ///Container type for all input parameters for the `computeMaxInput` function with signature `computeMaxInput(uint64,bool,uint256,uint256)` and selector `0x989bafba` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall( - name = "computeMaxInput", - abi = "computeMaxInput(uint64,bool,uint256,uint256)" - )] - pub struct ComputeMaxInputCall { - pub pool_id: u64, - pub sell_asset: bool, - pub reserve_in: ::ethers::core::types::U256, - pub liquidity: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `computeReservesFromPrice` function with signature `computeReservesFromPrice(uint64,uint256)` and selector `0xc48d887a` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall( - name = "computeReservesFromPrice", - abi = "computeReservesFromPrice(uint64,uint256)" - )] - pub struct ComputeReservesFromPriceCall { - pub pool_id: u64, - pub price: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `deposit` function with signature `deposit()` and selector `0xd0e30db0` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "deposit", abi = "deposit()")] - pub struct DepositCall; - ///Container type for all input parameters for the `draw` function with signature `draw(address,uint256,address)` and selector `0xad24d6a0` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "draw", abi = "draw(address,uint256,address)")] - pub struct DrawCall { - pub token: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - pub to: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `fund` function with signature `fund(address,uint256)` and selector `0x7b1837de` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "fund", abi = "fund(address,uint256)")] - pub struct FundCall { - pub token: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `getAmountOut` function with signature `getAmountOut(uint64,bool,uint256)` and selector `0x7dae4890` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "getAmountOut", abi = "getAmountOut(uint64,bool,uint256)")] - pub struct GetAmountOutCall { - pub pool_id: u64, - pub sell_asset: bool, - pub amount_in: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `getBalance` function with signature `getBalance(address,address)` and selector `0xd4fac45d` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "getBalance", abi = "getBalance(address,address)")] - pub struct GetBalanceCall { - pub owner: ::ethers::core::types::Address, - pub token: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `getLiquidityDeltas` function with signature `getLiquidityDeltas(uint64,int128)` and selector `0x8992f20a` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "getLiquidityDeltas", abi = "getLiquidityDeltas(uint64,int128)")] - pub struct GetLiquidityDeltasCall { - pub pool_id: u64, - pub delta_liquidity: i128, - } - ///Container type for all input parameters for the `getMaxLiquidity` function with signature `getMaxLiquidity(uint64,uint256,uint256)` and selector `0xd6b7dec5` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "getMaxLiquidity", abi = "getMaxLiquidity(uint64,uint256,uint256)")] - pub struct GetMaxLiquidityCall { - pub pool_id: u64, - pub amount_0: ::ethers::core::types::U256, - pub amount_1: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `getNetBalance` function with signature `getNetBalance(address)` and selector `0x4dc68a90` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "getNetBalance", abi = "getNetBalance(address)")] - pub struct GetNetBalanceCall { - pub token: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `getPairId` function with signature `getPairId(address,address)` and selector `0x3f92a339` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "getPairId", abi = "getPairId(address,address)")] - pub struct GetPairIdCall( - pub ::ethers::core::types::Address, - pub ::ethers::core::types::Address, - ); - ///Container type for all input parameters for the `getPairNonce` function with signature `getPairNonce()` and selector `0x078888d6` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "getPairNonce", abi = "getPairNonce()")] - pub struct GetPairNonceCall; - ///Container type for all input parameters for the `getPoolNonce` function with signature `getPoolNonce(uint24)` and selector `0xa5cd8a49` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "getPoolNonce", abi = "getPoolNonce(uint24)")] - pub struct GetPoolNonceCall(pub u32); - ///Container type for all input parameters for the `getPoolReserves` function with signature `getPoolReserves(uint64)` and selector `0x2afb9df8` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "getPoolReserves", abi = "getPoolReserves(uint64)")] - pub struct GetPoolReservesCall { - pub pool_id: u64, - } - ///Container type for all input parameters for the `getReserve` function with signature `getReserve(address)` and selector `0xc9a396e9` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "getReserve", abi = "getReserve(address)")] - pub struct GetReserveCall { - pub token: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `getVirtualPrice` function with signature `getVirtualPrice(uint64)` and selector `0x61b7ea6a` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "getVirtualPrice", abi = "getVirtualPrice(uint64)")] - pub struct GetVirtualPriceCall { - pub pool_id: u64, - } - ///Container type for all input parameters for the `getVirtualReservesPerLiquidity` function with signature `getVirtualReservesPerLiquidity(uint64)` and selector `0x1a4b905b` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall( - name = "getVirtualReservesPerLiquidity", - abi = "getVirtualReservesPerLiquidity(uint64)" - )] - pub struct GetVirtualReservesPerLiquidityCall { - pub pool_id: u64, - } - ///Container type for all input parameters for the `multiprocess` function with signature `multiprocess(bytes)` and selector `0xa0fdf413` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "multiprocess", abi = "multiprocess(bytes)")] - pub struct MultiprocessCall { - pub data: ::ethers::core::types::Bytes, - } - ///Container type for all input parameters for the `pairs` function with signature `pairs(uint24)` and selector `0x5e47663c` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "pairs", abi = "pairs(uint24)")] - pub struct PairsCall(pub u32); - ///Container type for all input parameters for the `pools` function with signature `pools(uint64)` and selector `0x89a5f084` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "pools", abi = "pools(uint64)")] - pub struct PoolsCall(pub u64); - ///Container type for all input parameters for the `positions` function with signature `positions(address,uint64)` and selector `0xb68513ea` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "positions", abi = "positions(address,uint64)")] - pub struct PositionsCall(pub ::ethers::core::types::Address, pub u64); - ///Container type for all input parameters for the `setProtocolFee` function with signature `setProtocolFee(uint256)` and selector `0x787dce3d` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "setProtocolFee", abi = "setProtocolFee(uint256)")] - pub struct SetProtocolFeeCall { - pub fee: ::ethers::core::types::U256, - } - ///Container type for all of the contract's call - #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] - pub enum PortfolioVirtualCalls { - Registry(RegistryCall), - Version(VersionCall), - Weth(WethCall), - Account(AccountCall), - ChangeParameters(ChangeParametersCall), - CheckInvariant(CheckInvariantCall), - CheckPool(CheckPoolCall), - CheckPosition(CheckPositionCall), - ComputeMaxInput(ComputeMaxInputCall), - ComputeReservesFromPrice(ComputeReservesFromPriceCall), - Deposit(DepositCall), - Draw(DrawCall), - Fund(FundCall), - GetAmountOut(GetAmountOutCall), - GetBalance(GetBalanceCall), - GetLiquidityDeltas(GetLiquidityDeltasCall), - GetMaxLiquidity(GetMaxLiquidityCall), - GetNetBalance(GetNetBalanceCall), - GetPairId(GetPairIdCall), - GetPairNonce(GetPairNonceCall), - GetPoolNonce(GetPoolNonceCall), - GetPoolReserves(GetPoolReservesCall), - GetReserve(GetReserveCall), - GetVirtualPrice(GetVirtualPriceCall), - GetVirtualReservesPerLiquidity(GetVirtualReservesPerLiquidityCall), - Multiprocess(MultiprocessCall), - Pairs(PairsCall), - Pools(PoolsCall), - Positions(PositionsCall), - SetProtocolFee(SetProtocolFeeCall), - } - impl ::ethers::core::abi::AbiDecode for PortfolioVirtualCalls { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Registry(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Version(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Weth(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Account(decoded)); - } - if let Ok(decoded) - = ::decode( - data, - ) { - return Ok(Self::ChangeParameters(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::CheckInvariant(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::CheckPool(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::CheckPosition(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::ComputeMaxInput(decoded)); - } - if let Ok(decoded) - = ::decode( - data, - ) { - return Ok(Self::ComputeReservesFromPrice(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Deposit(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Draw(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Fund(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::GetAmountOut(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::GetBalance(decoded)); - } - if let Ok(decoded) - = ::decode( - data, - ) { - return Ok(Self::GetLiquidityDeltas(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::GetMaxLiquidity(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::GetNetBalance(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::GetPairId(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::GetPairNonce(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::GetPoolNonce(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::GetPoolReserves(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::GetReserve(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::GetVirtualPrice(decoded)); - } - if let Ok(decoded) - = ::decode( - data, - ) { - return Ok(Self::GetVirtualReservesPerLiquidity(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Multiprocess(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Pairs(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Pools(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Positions(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::SetProtocolFee(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for PortfolioVirtualCalls { - fn encode(self) -> Vec { - match self { - Self::Registry(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Version(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Weth(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Account(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::ChangeParameters(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::CheckInvariant(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::CheckPool(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::CheckPosition(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::ComputeMaxInput(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::ComputeReservesFromPrice(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Deposit(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Draw(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Fund(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetAmountOut(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::GetBalance(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::GetLiquidityDeltas(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::GetMaxLiquidity(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::GetNetBalance(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::GetPairId(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::GetPairNonce(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::GetPoolNonce(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::GetPoolReserves(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::GetReserve(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::GetVirtualPrice(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::GetVirtualReservesPerLiquidity(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Multiprocess(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Pairs(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Pools(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Positions(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::SetProtocolFee(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - } - } - } - impl ::core::fmt::Display for PortfolioVirtualCalls { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::Registry(element) => ::core::fmt::Display::fmt(element, f), - Self::Version(element) => ::core::fmt::Display::fmt(element, f), - Self::Weth(element) => ::core::fmt::Display::fmt(element, f), - Self::Account(element) => ::core::fmt::Display::fmt(element, f), - Self::ChangeParameters(element) => ::core::fmt::Display::fmt(element, f), - Self::CheckInvariant(element) => ::core::fmt::Display::fmt(element, f), - Self::CheckPool(element) => ::core::fmt::Display::fmt(element, f), - Self::CheckPosition(element) => ::core::fmt::Display::fmt(element, f), - Self::ComputeMaxInput(element) => ::core::fmt::Display::fmt(element, f), - Self::ComputeReservesFromPrice(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::Deposit(element) => ::core::fmt::Display::fmt(element, f), - Self::Draw(element) => ::core::fmt::Display::fmt(element, f), - Self::Fund(element) => ::core::fmt::Display::fmt(element, f), - Self::GetAmountOut(element) => ::core::fmt::Display::fmt(element, f), - Self::GetBalance(element) => ::core::fmt::Display::fmt(element, f), - Self::GetLiquidityDeltas(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::GetMaxLiquidity(element) => ::core::fmt::Display::fmt(element, f), - Self::GetNetBalance(element) => ::core::fmt::Display::fmt(element, f), - Self::GetPairId(element) => ::core::fmt::Display::fmt(element, f), - Self::GetPairNonce(element) => ::core::fmt::Display::fmt(element, f), - Self::GetPoolNonce(element) => ::core::fmt::Display::fmt(element, f), - Self::GetPoolReserves(element) => ::core::fmt::Display::fmt(element, f), - Self::GetReserve(element) => ::core::fmt::Display::fmt(element, f), - Self::GetVirtualPrice(element) => ::core::fmt::Display::fmt(element, f), - Self::GetVirtualReservesPerLiquidity(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::Multiprocess(element) => ::core::fmt::Display::fmt(element, f), - Self::Pairs(element) => ::core::fmt::Display::fmt(element, f), - Self::Pools(element) => ::core::fmt::Display::fmt(element, f), - Self::Positions(element) => ::core::fmt::Display::fmt(element, f), - Self::SetProtocolFee(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for PortfolioVirtualCalls { - fn from(value: RegistryCall) -> Self { - Self::Registry(value) - } - } - impl ::core::convert::From for PortfolioVirtualCalls { - fn from(value: VersionCall) -> Self { - Self::Version(value) - } - } - impl ::core::convert::From for PortfolioVirtualCalls { - fn from(value: WethCall) -> Self { - Self::Weth(value) - } - } - impl ::core::convert::From for PortfolioVirtualCalls { - fn from(value: AccountCall) -> Self { - Self::Account(value) - } - } - impl ::core::convert::From for PortfolioVirtualCalls { - fn from(value: ChangeParametersCall) -> Self { - Self::ChangeParameters(value) - } - } - impl ::core::convert::From for PortfolioVirtualCalls { - fn from(value: CheckInvariantCall) -> Self { - Self::CheckInvariant(value) - } - } - impl ::core::convert::From for PortfolioVirtualCalls { - fn from(value: CheckPoolCall) -> Self { - Self::CheckPool(value) - } - } - impl ::core::convert::From for PortfolioVirtualCalls { - fn from(value: CheckPositionCall) -> Self { - Self::CheckPosition(value) - } - } - impl ::core::convert::From for PortfolioVirtualCalls { - fn from(value: ComputeMaxInputCall) -> Self { - Self::ComputeMaxInput(value) - } - } - impl ::core::convert::From for PortfolioVirtualCalls { - fn from(value: ComputeReservesFromPriceCall) -> Self { - Self::ComputeReservesFromPrice(value) - } - } - impl ::core::convert::From for PortfolioVirtualCalls { - fn from(value: DepositCall) -> Self { - Self::Deposit(value) - } - } - impl ::core::convert::From for PortfolioVirtualCalls { - fn from(value: DrawCall) -> Self { - Self::Draw(value) - } - } - impl ::core::convert::From for PortfolioVirtualCalls { - fn from(value: FundCall) -> Self { - Self::Fund(value) - } - } - impl ::core::convert::From for PortfolioVirtualCalls { - fn from(value: GetAmountOutCall) -> Self { - Self::GetAmountOut(value) - } - } - impl ::core::convert::From for PortfolioVirtualCalls { - fn from(value: GetBalanceCall) -> Self { - Self::GetBalance(value) - } - } - impl ::core::convert::From for PortfolioVirtualCalls { - fn from(value: GetLiquidityDeltasCall) -> Self { - Self::GetLiquidityDeltas(value) - } - } - impl ::core::convert::From for PortfolioVirtualCalls { - fn from(value: GetMaxLiquidityCall) -> Self { - Self::GetMaxLiquidity(value) - } - } - impl ::core::convert::From for PortfolioVirtualCalls { - fn from(value: GetNetBalanceCall) -> Self { - Self::GetNetBalance(value) - } - } - impl ::core::convert::From for PortfolioVirtualCalls { - fn from(value: GetPairIdCall) -> Self { - Self::GetPairId(value) - } - } - impl ::core::convert::From for PortfolioVirtualCalls { - fn from(value: GetPairNonceCall) -> Self { - Self::GetPairNonce(value) - } - } - impl ::core::convert::From for PortfolioVirtualCalls { - fn from(value: GetPoolNonceCall) -> Self { - Self::GetPoolNonce(value) - } - } - impl ::core::convert::From for PortfolioVirtualCalls { - fn from(value: GetPoolReservesCall) -> Self { - Self::GetPoolReserves(value) - } - } - impl ::core::convert::From for PortfolioVirtualCalls { - fn from(value: GetReserveCall) -> Self { - Self::GetReserve(value) - } - } - impl ::core::convert::From for PortfolioVirtualCalls { - fn from(value: GetVirtualPriceCall) -> Self { - Self::GetVirtualPrice(value) - } - } - impl ::core::convert::From - for PortfolioVirtualCalls { - fn from(value: GetVirtualReservesPerLiquidityCall) -> Self { - Self::GetVirtualReservesPerLiquidity(value) - } - } - impl ::core::convert::From for PortfolioVirtualCalls { - fn from(value: MultiprocessCall) -> Self { - Self::Multiprocess(value) - } - } - impl ::core::convert::From for PortfolioVirtualCalls { - fn from(value: PairsCall) -> Self { - Self::Pairs(value) - } - } - impl ::core::convert::From for PortfolioVirtualCalls { - fn from(value: PoolsCall) -> Self { - Self::Pools(value) - } - } - impl ::core::convert::From for PortfolioVirtualCalls { - fn from(value: PositionsCall) -> Self { - Self::Positions(value) - } - } - impl ::core::convert::From for PortfolioVirtualCalls { - fn from(value: SetProtocolFeeCall) -> Self { - Self::SetProtocolFee(value) - } - } - ///Container type for all return fields from the `REGISTRY` function with signature `REGISTRY()` and selector `0x06433b1b` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct RegistryReturn(pub ::ethers::core::types::Address); - ///Container type for all return fields from the `VERSION` function with signature `VERSION()` and selector `0xffa1ad74` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct VersionReturn(pub ::std::string::String); - ///Container type for all return fields from the `WETH` function with signature `WETH()` and selector `0xad5c4648` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct WethReturn(pub ::ethers::core::types::Address); - ///Container type for all return fields from the `__account__` function with signature `__account__()` and selector `0xda31ee54` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct AccountReturn { - pub settled: bool, - } - ///Container type for all return fields from the `checkInvariant` function with signature `checkInvariant(uint64,int256,uint256,uint256,uint256)` and selector `0x2f337da5` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct CheckInvariantReturn { - pub success: bool, - pub next_invariant: ::ethers::core::types::I256, - } - ///Container type for all return fields from the `checkPool` function with signature `checkPool(uint64)` and selector `0xa68aaa41` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct CheckPoolReturn(pub bool); - ///Container type for all return fields from the `checkPosition` function with signature `checkPosition(uint64,address,int256)` and selector `0x2cc6641e` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct CheckPositionReturn(pub bool); - ///Container type for all return fields from the `computeMaxInput` function with signature `computeMaxInput(uint64,bool,uint256,uint256)` and selector `0x989bafba` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct ComputeMaxInputReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `computeReservesFromPrice` function with signature `computeReservesFromPrice(uint64,uint256)` and selector `0xc48d887a` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct ComputeReservesFromPriceReturn { - pub reserve_x: ::ethers::core::types::U256, - pub reserve_y: ::ethers::core::types::U256, - } - ///Container type for all return fields from the `getAmountOut` function with signature `getAmountOut(uint64,bool,uint256)` and selector `0x7dae4890` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct GetAmountOutReturn { - pub output: ::ethers::core::types::U256, - } - ///Container type for all return fields from the `getBalance` function with signature `getBalance(address,address)` and selector `0xd4fac45d` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct GetBalanceReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `getLiquidityDeltas` function with signature `getLiquidityDeltas(uint64,int128)` and selector `0x8992f20a` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct GetLiquidityDeltasReturn { - pub delta_asset: u128, - pub delta_quote: u128, - } - ///Container type for all return fields from the `getMaxLiquidity` function with signature `getMaxLiquidity(uint64,uint256,uint256)` and selector `0xd6b7dec5` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct GetMaxLiquidityReturn { - pub delta_liquidity: u128, - } - ///Container type for all return fields from the `getNetBalance` function with signature `getNetBalance(address)` and selector `0x4dc68a90` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct GetNetBalanceReturn(pub ::ethers::core::types::I256); - ///Container type for all return fields from the `getPairId` function with signature `getPairId(address,address)` and selector `0x3f92a339` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct GetPairIdReturn(pub u32); - ///Container type for all return fields from the `getPairNonce` function with signature `getPairNonce()` and selector `0x078888d6` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct GetPairNonceReturn(pub u32); - ///Container type for all return fields from the `getPoolNonce` function with signature `getPoolNonce(uint24)` and selector `0xa5cd8a49` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct GetPoolNonceReturn(pub u32); - ///Container type for all return fields from the `getPoolReserves` function with signature `getPoolReserves(uint64)` and selector `0x2afb9df8` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct GetPoolReservesReturn { - pub delta_asset: ::ethers::core::types::U256, - pub delta_quote: ::ethers::core::types::U256, - } - ///Container type for all return fields from the `getReserve` function with signature `getReserve(address)` and selector `0xc9a396e9` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct GetReserveReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `getVirtualPrice` function with signature `getVirtualPrice(uint64)` and selector `0x61b7ea6a` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct GetVirtualPriceReturn { - pub price: ::ethers::core::types::U256, - } - ///Container type for all return fields from the `getVirtualReservesPerLiquidity` function with signature `getVirtualReservesPerLiquidity(uint64)` and selector `0x1a4b905b` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct GetVirtualReservesPerLiquidityReturn { - pub delta_asset: u128, - pub delta_quote: u128, - } - ///Container type for all return fields from the `pairs` function with signature `pairs(uint24)` and selector `0x5e47663c` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct PairsReturn { - pub token_asset: ::ethers::core::types::Address, - pub decimals_asset: u8, - pub token_quote: ::ethers::core::types::Address, - pub decimals_quote: u8, - } - ///Container type for all return fields from the `pools` function with signature `pools(uint64)` and selector `0x89a5f084` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct PoolsReturn { - pub virtual_x: u128, - pub virtual_y: u128, - pub liquidity: u128, - pub last_timestamp: u32, - pub controller: ::ethers::core::types::Address, - pub invariant_growth_global: ::ethers::core::types::U256, - pub fee_growth_global_asset: ::ethers::core::types::U256, - pub fee_growth_global_quote: ::ethers::core::types::U256, - pub params: PortfolioCurve, - pub pair: PortfolioPair, - } - ///Container type for all return fields from the `positions` function with signature `positions(address,uint64)` and selector `0xb68513ea` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct PositionsReturn { - pub free_liquidity: u128, - pub last_timestamp: u32, - pub invariant_growth_last: ::ethers::core::types::U256, - pub fee_growth_asset_last: ::ethers::core::types::U256, - pub fee_growth_quote_last: ::ethers::core::types::U256, - pub tokens_owed_asset: u128, - pub tokens_owed_quote: u128, - pub invariant_owed: u128, - } -} diff --git a/crates/bindings/src/rmm01_extended_lib.rs b/crates/bindings/src/rmm01_extended_lib.rs deleted file mode 100644 index 55db910a..00000000 --- a/crates/bindings/src/rmm01_extended_lib.rs +++ /dev/null @@ -1,346 +0,0 @@ -pub use rmm01_extended_lib::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types, -)] -pub mod rmm01_extended_lib { - #[rustfmt::skip] - const __ABI: &str = "[]"; - ///The parsed JSON ABI of the contract. - pub static RMM01EXTENDEDLIB_ABI: ::ethers::contract::Lazy< - ::ethers::core::abi::Abi, - > = ::ethers::contract::Lazy::new(|| { - ::ethers::core::utils::__serde_json::from_str(__ABI) - .expect("ABI is always valid") - }); - #[rustfmt::skip] - const __BYTECODE: &[u8] = &[ - 96, - 86, - 96, - 55, - 96, - 11, - 130, - 130, - 130, - 57, - 128, - 81, - 96, - 0, - 26, - 96, - 115, - 20, - 96, - 42, - 87, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 0, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 48, - 96, - 0, - 82, - 96, - 115, - 129, - 83, - 130, - 129, - 243, - 254, - 115, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 48, - 20, - 96, - 128, - 96, - 64, - 82, - 96, - 0, - 128, - 253, - 254, - 162, - 100, - 105, - 112, - 102, - 115, - 88, - 34, - 18, - 32, - 3, - 58, - 70, - 213, - 162, - 55, - 206, - 12, - 107, - 43, - 161, - 254, - 242, - 37, - 151, - 0, - 125, - 156, - 202, - 149, - 9, - 193, - 2, - 177, - 246, - 156, - 97, - 161, - 89, - 115, - 29, - 85, - 100, - 115, - 111, - 108, - 99, - 67, - 0, - 8, - 13, - 0, - 51, - ]; - ///The bytecode of the contract. - pub static RMM01EXTENDEDLIB_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( - __BYTECODE, - ); - #[rustfmt::skip] - const __DEPLOYED_BYTECODE: &[u8] = &[ - 115, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 48, - 20, - 96, - 128, - 96, - 64, - 82, - 96, - 0, - 128, - 253, - 254, - 162, - 100, - 105, - 112, - 102, - 115, - 88, - 34, - 18, - 32, - 3, - 58, - 70, - 213, - 162, - 55, - 206, - 12, - 107, - 43, - 161, - 254, - 242, - 37, - 151, - 0, - 125, - 156, - 202, - 149, - 9, - 193, - 2, - 177, - 246, - 156, - 97, - 161, - 89, - 115, - 29, - 85, - 100, - 115, - 111, - 108, - 99, - 67, - 0, - 8, - 13, - 0, - 51, - ]; - ///The deployed bytecode of the contract. - pub static RMM01EXTENDEDLIB_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( - __DEPLOYED_BYTECODE, - ); - pub struct RMM01ExtendedLib(::ethers::contract::Contract); - impl ::core::clone::Clone for RMM01ExtendedLib { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for RMM01ExtendedLib { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for RMM01ExtendedLib { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for RMM01ExtendedLib { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(stringify!(RMM01ExtendedLib)).field(&self.address()).finish() - } - } - impl RMM01ExtendedLib { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self( - ::ethers::contract::Contract::new( - address.into(), - RMM01EXTENDEDLIB_ABI.clone(), - client, - ), - ) - } - /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. - /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction - /// - /// Notes: - /// - If there are no constructor arguments, you should pass `()` as the argument. - /// - The default poll duration is 7 seconds. - /// - The default number of confirmations is 1 block. - /// - /// - /// # Example - /// - /// Generate contract bindings with `abigen!` and deploy a new contract instance. - /// - /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. - /// - /// ```ignore - /// # async fn deploy(client: ::std::sync::Arc) { - /// abigen!(Greeter, "../greeter.json"); - /// - /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); - /// let msg = greeter_contract.greet().call().await.unwrap(); - /// # } - /// ``` - pub fn deploy( - client: ::std::sync::Arc, - constructor_args: T, - ) -> ::core::result::Result< - ::ethers::contract::builders::ContractDeployer, - ::ethers::contract::ContractError, - > { - let factory = ::ethers::contract::ContractFactory::new( - RMM01EXTENDEDLIB_ABI.clone(), - RMM01EXTENDEDLIB_BYTECODE.clone().into(), - client, - ); - let deployer = factory.deploy(constructor_args)?; - let deployer = ::ethers::contract::ContractDeployer::new(deployer); - Ok(deployer) - } - } - impl From<::ethers::contract::Contract> - for RMM01ExtendedLib { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } -} diff --git a/crates/bindings/src/rmm01_lib.rs b/crates/bindings/src/rmm01_lib.rs deleted file mode 100644 index cfac585a..00000000 --- a/crates/bindings/src/rmm01_lib.rs +++ /dev/null @@ -1,452 +0,0 @@ -pub use rmm01_lib::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types, -)] -pub mod rmm01_lib { - #[rustfmt::skip] - const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"wad\",\"type\":\"int256\",\"components\":[]}],\"type\":\"error\",\"name\":\"OverflowWad\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"UndefinedPrice\",\"outputs\":[]}]"; - ///The parsed JSON ABI of the contract. - pub static RMM01LIB_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| - ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); - #[rustfmt::skip] - const __BYTECODE: &[u8] = &[ - 96, - 86, - 96, - 55, - 96, - 11, - 130, - 130, - 130, - 57, - 128, - 81, - 96, - 0, - 26, - 96, - 115, - 20, - 96, - 42, - 87, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 0, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 48, - 96, - 0, - 82, - 96, - 115, - 129, - 83, - 130, - 129, - 243, - 254, - 115, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 48, - 20, - 96, - 128, - 96, - 64, - 82, - 96, - 0, - 128, - 253, - 254, - 162, - 100, - 105, - 112, - 102, - 115, - 88, - 34, - 18, - 32, - 42, - 65, - 89, - 100, - 183, - 82, - 12, - 142, - 4, - 248, - 149, - 181, - 92, - 206, - 43, - 249, - 158, - 33, - 30, - 88, - 53, - 229, - 254, - 227, - 29, - 52, - 61, - 245, - 47, - 178, - 207, - 81, - 100, - 115, - 111, - 108, - 99, - 67, - 0, - 8, - 13, - 0, - 51, - ]; - ///The bytecode of the contract. - pub static RMM01LIB_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( - __BYTECODE, - ); - #[rustfmt::skip] - const __DEPLOYED_BYTECODE: &[u8] = &[ - 115, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 48, - 20, - 96, - 128, - 96, - 64, - 82, - 96, - 0, - 128, - 253, - 254, - 162, - 100, - 105, - 112, - 102, - 115, - 88, - 34, - 18, - 32, - 42, - 65, - 89, - 100, - 183, - 82, - 12, - 142, - 4, - 248, - 149, - 181, - 92, - 206, - 43, - 249, - 158, - 33, - 30, - 88, - 53, - 229, - 254, - 227, - 29, - 52, - 61, - 245, - 47, - 178, - 207, - 81, - 100, - 115, - 111, - 108, - 99, - 67, - 0, - 8, - 13, - 0, - 51, - ]; - ///The deployed bytecode of the contract. - pub static RMM01LIB_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( - __DEPLOYED_BYTECODE, - ); - pub struct RMM01Lib(::ethers::contract::Contract); - impl ::core::clone::Clone for RMM01Lib { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for RMM01Lib { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for RMM01Lib { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for RMM01Lib { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(stringify!(RMM01Lib)).field(&self.address()).finish() - } - } - impl RMM01Lib { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self( - ::ethers::contract::Contract::new( - address.into(), - RMM01LIB_ABI.clone(), - client, - ), - ) - } - /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. - /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction - /// - /// Notes: - /// - If there are no constructor arguments, you should pass `()` as the argument. - /// - The default poll duration is 7 seconds. - /// - The default number of confirmations is 1 block. - /// - /// - /// # Example - /// - /// Generate contract bindings with `abigen!` and deploy a new contract instance. - /// - /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. - /// - /// ```ignore - /// # async fn deploy(client: ::std::sync::Arc) { - /// abigen!(Greeter, "../greeter.json"); - /// - /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); - /// let msg = greeter_contract.greet().call().await.unwrap(); - /// # } - /// ``` - pub fn deploy( - client: ::std::sync::Arc, - constructor_args: T, - ) -> ::core::result::Result< - ::ethers::contract::builders::ContractDeployer, - ::ethers::contract::ContractError, - > { - let factory = ::ethers::contract::ContractFactory::new( - RMM01LIB_ABI.clone(), - RMM01LIB_BYTECODE.clone().into(), - client, - ); - let deployer = factory.deploy(constructor_args)?; - let deployer = ::ethers::contract::ContractDeployer::new(deployer); - Ok(deployer) - } - } - impl From<::ethers::contract::Contract> - for RMM01Lib { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - ///Custom Error type `OverflowWad` with signature `OverflowWad(int256)` and selector `0xb11558df` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "OverflowWad", abi = "OverflowWad(int256)")] - pub struct OverflowWad { - pub wad: ::ethers::core::types::I256, - } - ///Custom Error type `UndefinedPrice` with signature `UndefinedPrice()` and selector `0x22053363` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "UndefinedPrice", abi = "UndefinedPrice()")] - pub struct UndefinedPrice; - ///Container type for all of the contract's custom errors - #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] - pub enum RMM01LibErrors { - OverflowWad(OverflowWad), - UndefinedPrice(UndefinedPrice), - /// The standard solidity revert string, with selector - /// Error(string) -- 0x08c379a0 - RevertString(::std::string::String), - } - impl ::ethers::core::abi::AbiDecode for RMM01LibErrors { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) - = <::std::string::String as ::ethers::core::abi::AbiDecode>::decode( - data, - ) { - return Ok(Self::RevertString(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::OverflowWad(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::UndefinedPrice(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for RMM01LibErrors { - fn encode(self) -> ::std::vec::Vec { - match self { - Self::OverflowWad(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::UndefinedPrice(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::RevertString(s) => ::ethers::core::abi::AbiEncode::encode(s), - } - } - } - impl ::ethers::contract::ContractRevert for RMM01LibErrors { - fn valid_selector(selector: [u8; 4]) -> bool { - match selector { - [0x08, 0xc3, 0x79, 0xa0] => true, - _ if selector - == ::selector() => true, - _ if selector - == ::selector() => { - true - } - _ => false, - } - } - } - impl ::core::fmt::Display for RMM01LibErrors { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::OverflowWad(element) => ::core::fmt::Display::fmt(element, f), - Self::UndefinedPrice(element) => ::core::fmt::Display::fmt(element, f), - Self::RevertString(s) => ::core::fmt::Display::fmt(s, f), - } - } - } - impl ::core::convert::From<::std::string::String> for RMM01LibErrors { - fn from(value: String) -> Self { - Self::RevertString(value) - } - } - impl ::core::convert::From for RMM01LibErrors { - fn from(value: OverflowWad) -> Self { - Self::OverflowWad(value) - } - } - impl ::core::convert::From for RMM01LibErrors { - fn from(value: UndefinedPrice) -> Self { - Self::UndefinedPrice(value) - } - } -} diff --git a/crates/bindings/src/rmm01_portfolio.rs b/crates/bindings/src/rmm01_portfolio.rs deleted file mode 100644 index e901cf52..00000000 --- a/crates/bindings/src/rmm01_portfolio.rs +++ /dev/null @@ -1,75797 +0,0 @@ -pub use rmm01_portfolio::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types, -)] -pub mod rmm01_portfolio { - pub use super::super::shared_types::*; - #[rustfmt::skip] - const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"weth\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"registry\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"DrawBalance\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"EtherTransferFail\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"Infinity\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"delta\",\"type\":\"uint256\",\"components\":[]}],\"type\":\"error\",\"name\":\"InsufficientReserve\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"InvalidBalance\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\",\"components\":[]}],\"type\":\"error\",\"name\":\"InvalidBytesLength\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\",\"components\":[]}],\"type\":\"error\",\"name\":\"InvalidDecimals\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"fee\",\"type\":\"uint16\",\"components\":[]}],\"type\":\"error\",\"name\":\"InvalidFee\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"InvalidInstruction\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"prev\",\"type\":\"int256\",\"components\":[]},{\"internalType\":\"int256\",\"name\":\"next\",\"type\":\"int256\",\"components\":[]}],\"type\":\"error\",\"name\":\"InvalidInvariant\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"pointer\",\"type\":\"uint256\",\"components\":[]}],\"type\":\"error\",\"name\":\"InvalidJump\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"InvalidPair\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"InvalidReentrancy\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"InvalidSettlement\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"InvalidTransfer\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"distance\",\"type\":\"uint256\",\"components\":[]}],\"type\":\"error\",\"name\":\"JitLiquidity\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"Min\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"int256\",\"name\":\"net\",\"type\":\"int256\",\"components\":[]}],\"type\":\"error\",\"name\":\"NegativeBalance\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"NegativeInfinity\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"type\":\"error\",\"name\":\"NonExistentPool\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"type\":\"error\",\"name\":\"NonExistentPosition\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"NotController\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"OOB\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"OutOfBounds\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"wad\",\"type\":\"int256\",\"components\":[]}],\"type\":\"error\",\"name\":\"OverflowWad\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"pairId\",\"type\":\"uint24\",\"components\":[]}],\"type\":\"error\",\"name\":\"PairExists\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"PoolExpired\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"SameTokenError\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"SwapInputTooSmall\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"UndefinedPrice\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"ZeroAmounts\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"ZeroInput\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"ZeroLiquidity\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"ZeroOutput\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"ZeroPrice\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"ZeroValue\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaLiquidity\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Allocate\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint16\",\"name\":\"priorityFee\",\"type\":\"uint16\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint16\",\"name\":\"fee\",\"type\":\"uint16\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint16\",\"name\":\"jit\",\"type\":\"uint16\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"ChangeParameters\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"feeAssetDec\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"feeQuoteDec\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true}],\"type\":\"event\",\"name\":\"Collect\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"pairId\",\"type\":\"uint24\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint8\",\"name\":\"decimalsAsset\",\"type\":\"uint8\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint8\",\"name\":\"decimalsQuote\",\"type\":\"uint8\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"CreatePair\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"bool\",\"name\":\"isMutable\",\"type\":\"bool\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"CreatePool\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"quote\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"deltaLiquidity\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Deallocate\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"DecreaseReserveBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"DecreaseUserBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Deposit\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"IncreaseReserveBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"IncreaseUserBalance\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"sellAsset\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"input\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"tokenOut\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"output\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"feeAmountDec\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"int256\",\"name\":\"invariantWad\",\"type\":\"int256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Swap\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"prevFee\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"nextFee\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"UpdateProtocolFee\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\",\"name\":\"VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"WETH\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"__account__\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"settled\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"priorityFee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"fee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"jit\",\"type\":\"uint16\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"changeParameters\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"int256\",\"name\":\"invariant\",\"type\":\"int256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"reserveX\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"reserveY\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"checkInvariant\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]},{\"internalType\":\"int256\",\"name\":\"nextInvariant\",\"type\":\"int256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"checkPool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"int256\",\"name\":\"delta\",\"type\":\"int256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"checkPosition\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"bool\",\"name\":\"sellAsset\",\"type\":\"bool\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"reserveIn\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"computeMaxInput\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"computeReservesFromPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"reserveX\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"reserveY\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"deposit\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"draw\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"fund\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"bool\",\"name\":\"sellAsset\",\"type\":\"bool\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getAmountOut\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"output\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"int128\",\"name\":\"deltaLiquidity\",\"type\":\"int128\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getLiquidityDeltas\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"deltaAsset\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"deltaQuote\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getMaxLiquidity\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"deltaLiquidity\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getNetBalance\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPairId\",\"outputs\":[{\"internalType\":\"uint24\",\"name\":\"\",\"type\":\"uint24\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPairNonce\",\"outputs\":[{\"internalType\":\"uint24\",\"name\":\"\",\"type\":\"uint24\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"\",\"type\":\"uint24\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPoolNonce\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPoolReserves\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"deltaAsset\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"deltaQuote\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getReserve\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getVirtualPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"poolId\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getVirtualReservesPerLiquidity\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"deltaAsset\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"deltaQuote\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\",\"components\":[]}],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"multiprocess\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"\",\"type\":\"uint24\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"pairs\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"tokenAsset\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsAsset\",\"type\":\"uint8\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"tokenQuote\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsQuote\",\"type\":\"uint8\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"pools\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"virtualX\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"virtualY\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"liquidity\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint32\",\"name\":\"lastTimestamp\",\"type\":\"uint32\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"controller\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"invariantGrowthGlobal\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthGlobalAsset\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthGlobalQuote\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"struct PortfolioCurve\",\"name\":\"params\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"uint128\",\"name\":\"maxPrice\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"jit\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"fee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"duration\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"volatility\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint16\",\"name\":\"priorityFee\",\"type\":\"uint16\",\"components\":[]},{\"internalType\":\"uint32\",\"name\":\"createdAt\",\"type\":\"uint32\",\"components\":[]},{\"internalType\":\"bool\",\"name\":\"perpetual\",\"type\":\"bool\",\"components\":[]}]},{\"internalType\":\"struct PortfolioPair\",\"name\":\"pair\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"address\",\"name\":\"tokenAsset\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsAsset\",\"type\":\"uint8\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"tokenQuote\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"decimalsQuote\",\"type\":\"uint8\",\"components\":[]}]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"positions\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"freeLiquidity\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint32\",\"name\":\"lastTimestamp\",\"type\":\"uint32\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"invariantGrowthLast\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthAssetLast\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"feeGrowthQuoteLast\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"tokensOwedAsset\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"tokensOwedQuote\",\"type\":\"uint128\",\"components\":[]},{\"internalType\":\"uint128\",\"name\":\"invariantOwed\",\"type\":\"uint128\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"setProtocolFee\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"payable\",\"type\":\"receive\",\"outputs\":[]}]"; - ///The parsed JSON ABI of the contract. - pub static RMM01PORTFOLIO_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| - ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); - #[rustfmt::skip] - const __BYTECODE: &[u8] = &[ - 96, - 192, - 96, - 64, - 82, - 96, - 1, - 96, - 11, - 85, - 96, - 4, - 96, - 12, - 85, - 52, - 128, - 21, - 98, - 0, - 0, - 27, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 96, - 64, - 81, - 98, - 0, - 141, - 216, - 56, - 3, - 128, - 98, - 0, - 141, - 216, - 131, - 57, - 129, - 1, - 96, - 64, - 129, - 144, - 82, - 98, - 0, - 0, - 62, - 145, - 98, - 0, - 0, - 128, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 145, - 130, - 22, - 96, - 128, - 82, - 22, - 96, - 160, - 82, - 96, - 4, - 128, - 84, - 96, - 255, - 25, - 22, - 96, - 1, - 23, - 144, - 85, - 98, - 0, - 0, - 184, - 86, - 91, - 128, - 81, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 129, - 22, - 129, - 20, - 98, - 0, - 0, - 123, - 87, - 96, - 0, - 128, - 253, - 91, - 145, - 144, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 64, - 131, - 133, - 3, - 18, - 21, - 98, - 0, - 0, - 148, - 87, - 96, - 0, - 128, - 253, - 91, - 98, - 0, - 0, - 159, - 131, - 98, - 0, - 0, - 99, - 86, - 91, - 145, - 80, - 98, - 0, - 0, - 175, - 96, - 32, - 132, - 1, - 98, - 0, - 0, - 99, - 86, - 91, - 144, - 80, - 146, - 80, - 146, - 144, - 80, - 86, - 91, - 96, - 128, - 81, - 96, - 160, - 81, - 97, - 140, - 208, - 98, - 0, - 1, - 8, - 96, - 0, - 57, - 96, - 0, - 129, - 129, - 97, - 2, - 36, - 1, - 82, - 129, - 129, - 97, - 24, - 150, - 1, - 82, - 97, - 88, - 223, - 1, - 82, - 96, - 0, - 129, - 129, - 97, - 1, - 225, - 1, - 82, - 129, - 129, - 97, - 8, - 112, - 1, - 82, - 129, - 129, - 97, - 37, - 97, - 1, - 82, - 129, - 129, - 97, - 37, - 157, - 1, - 82, - 97, - 65, - 87, - 1, - 82, - 97, - 140, - 208, - 96, - 0, - 243, - 254, - 96, - 128, - 96, - 64, - 82, - 96, - 4, - 54, - 16, - 97, - 1, - 209, - 87, - 96, - 0, - 53, - 96, - 224, - 28, - 128, - 99, - 152, - 155, - 175, - 186, - 17, - 97, - 0, - 247, - 87, - 128, - 99, - 182, - 133, - 19, - 234, - 17, - 97, - 0, - 149, - 87, - 128, - 99, - 212, - 250, - 196, - 93, - 17, - 97, - 0, - 100, - 87, - 128, - 99, - 212, - 250, - 196, - 93, - 20, - 97, - 9, - 221, - 87, - 128, - 99, - 214, - 183, - 222, - 197, - 20, - 97, - 9, - 253, - 87, - 128, - 99, - 218, - 49, - 238, - 84, - 20, - 97, - 10, - 53, - 87, - 128, - 99, - 255, - 161, - 173, - 116, - 20, - 97, - 10, - 79, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 99, - 182, - 133, - 19, - 234, - 20, - 97, - 8, - 178, - 87, - 128, - 99, - 196, - 141, - 136, - 122, - 20, - 97, - 9, - 127, - 87, - 128, - 99, - 201, - 163, - 150, - 233, - 20, - 97, - 9, - 159, - 87, - 128, - 99, - 208, - 227, - 13, - 176, - 20, - 97, - 9, - 213, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 99, - 166, - 138, - 170, - 65, - 17, - 97, - 0, - 209, - 87, - 128, - 99, - 166, - 138, - 170, - 65, - 20, - 97, - 8, - 30, - 87, - 128, - 99, - 173, - 36, - 214, - 160, - 20, - 97, - 8, - 62, - 87, - 128, - 99, - 173, - 92, - 70, - 72, - 20, - 97, - 8, - 94, - 87, - 128, - 99, - 175, - 119, - 120, - 85, - 20, - 97, - 8, - 146, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 99, - 152, - 155, - 175, - 186, - 20, - 97, - 7, - 163, - 87, - 128, - 99, - 160, - 253, - 244, - 19, - 20, - 97, - 7, - 195, - 87, - 128, - 99, - 165, - 205, - 138, - 73, - 20, - 97, - 7, - 214, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 99, - 77, - 198, - 138, - 144, - 17, - 97, - 1, - 111, - 87, - 128, - 99, - 123, - 24, - 55, - 222, - 17, - 97, - 1, - 62, - 87, - 128, - 99, - 123, - 24, - 55, - 222, - 20, - 97, - 4, - 165, - 87, - 128, - 99, - 125, - 174, - 72, - 144, - 20, - 97, - 4, - 197, - 87, - 128, - 99, - 137, - 146, - 242, - 10, - 20, - 97, - 4, - 229, - 87, - 128, - 99, - 137, - 165, - 240, - 132, - 20, - 97, - 5, - 5, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 99, - 77, - 198, - 138, - 144, - 20, - 97, - 3, - 172, - 87, - 128, - 99, - 94, - 71, - 102, - 60, - 20, - 97, - 3, - 218, - 87, - 128, - 99, - 97, - 183, - 234, - 106, - 20, - 97, - 4, - 101, - 87, - 128, - 99, - 120, - 125, - 206, - 61, - 20, - 97, - 4, - 133, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 99, - 42, - 251, - 157, - 248, - 17, - 97, - 1, - 171, - 87, - 128, - 99, - 42, - 251, - 157, - 248, - 20, - 97, - 2, - 211, - 87, - 128, - 99, - 44, - 198, - 100, - 30, - 20, - 97, - 3, - 8, - 87, - 128, - 99, - 47, - 51, - 125, - 165, - 20, - 97, - 3, - 56, - 87, - 128, - 99, - 63, - 146, - 163, - 57, - 20, - 97, - 3, - 111, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 99, - 6, - 67, - 59, - 27, - 20, - 97, - 2, - 18, - 87, - 128, - 99, - 7, - 136, - 136, - 214, - 20, - 97, - 2, - 99, - 87, - 128, - 99, - 26, - 75, - 144, - 91, - 20, - 97, - 2, - 147, - 87, - 96, - 0, - 128, - 253, - 91, - 54, - 97, - 2, - 13, - 87, - 51, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 127, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22, - 20, - 97, - 2, - 11, - 87, - 96, - 0, - 128, - 253, - 91, - 0, - 91, - 96, - 0, - 128, - 253, - 91, - 52, - 128, - 21, - 97, - 2, - 30, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 2, - 70, - 127, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 129, - 86, - 91, - 96, - 64, - 81, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 144, - 145, - 22, - 129, - 82, - 96, - 32, - 1, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 243, - 91, - 52, - 128, - 21, - 97, - 2, - 111, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 96, - 5, - 84, - 97, - 2, - 127, - 144, - 98, - 255, - 255, - 255, - 22, - 129, - 86, - 91, - 96, - 64, - 81, - 98, - 255, - 255, - 255, - 144, - 145, - 22, - 129, - 82, - 96, - 32, - 1, - 97, - 2, - 90, - 86, - 91, - 52, - 128, - 21, - 97, - 2, - 159, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 2, - 179, - 97, - 2, - 174, - 54, - 96, - 4, - 97, - 130, - 213, - 86, - 91, - 97, - 10, - 113, - 86, - 91, - 96, - 64, - 128, - 81, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 147, - 132, - 22, - 129, - 82, - 146, - 144, - 145, - 22, - 96, - 32, - 131, - 1, - 82, - 1, - 97, - 2, - 90, - 86, - 91, - 52, - 128, - 21, - 97, - 2, - 223, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 2, - 243, - 97, - 2, - 238, - 54, - 96, - 4, - 97, - 130, - 213, - 86, - 91, - 97, - 13, - 135, - 86, - 91, - 96, - 64, - 128, - 81, - 146, - 131, - 82, - 96, - 32, - 131, - 1, - 145, - 144, - 145, - 82, - 1, - 97, - 2, - 90, - 86, - 91, - 52, - 128, - 21, - 97, - 3, - 20, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 3, - 40, - 97, - 3, - 35, - 54, - 96, - 4, - 97, - 131, - 5, - 86, - 91, - 97, - 16, - 169, - 86, - 91, - 96, - 64, - 81, - 144, - 21, - 21, - 129, - 82, - 96, - 32, - 1, - 97, - 2, - 90, - 86, - 91, - 52, - 128, - 21, - 97, - 3, - 68, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 3, - 88, - 97, - 3, - 83, - 54, - 96, - 4, - 97, - 131, - 68, - 86, - 91, - 97, - 17, - 154, - 86, - 91, - 96, - 64, - 128, - 81, - 146, - 21, - 21, - 131, - 82, - 96, - 32, - 131, - 1, - 145, - 144, - 145, - 82, - 1, - 97, - 2, - 90, - 86, - 91, - 52, - 128, - 21, - 97, - 3, - 123, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 2, - 127, - 97, - 3, - 138, - 54, - 96, - 4, - 97, - 131, - 134, - 86, - 91, - 96, - 9, - 96, - 32, - 144, - 129, - 82, - 96, - 0, - 146, - 131, - 82, - 96, - 64, - 128, - 132, - 32, - 144, - 145, - 82, - 144, - 130, - 82, - 144, - 32, - 84, - 98, - 255, - 255, - 255, - 22, - 129, - 86, - 91, - 52, - 128, - 21, - 97, - 3, - 184, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 3, - 204, - 97, - 3, - 199, - 54, - 96, - 4, - 97, - 131, - 191, - 86, - 91, - 97, - 24, - 63, - 86, - 91, - 96, - 64, - 81, - 144, - 129, - 82, - 96, - 32, - 1, - 97, - 2, - 90, - 86, - 91, - 52, - 128, - 21, - 97, - 3, - 230, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 4, - 49, - 97, - 3, - 245, - 54, - 96, - 4, - 97, - 131, - 220, - 86, - 91, - 96, - 7, - 96, - 32, - 82, - 96, - 0, - 144, - 129, - 82, - 96, - 64, - 144, - 32, - 128, - 84, - 96, - 1, - 144, - 145, - 1, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 128, - 131, - 22, - 146, - 96, - 255, - 96, - 1, - 96, - 160, - 27, - 145, - 130, - 144, - 4, - 129, - 22, - 147, - 146, - 131, - 22, - 146, - 145, - 144, - 145, - 4, - 22, - 132, - 86, - 91, - 96, - 64, - 128, - 81, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 149, - 134, - 22, - 129, - 82, - 96, - 255, - 148, - 133, - 22, - 96, - 32, - 130, - 1, - 82, - 148, - 144, - 146, - 22, - 145, - 132, - 1, - 145, - 144, - 145, - 82, - 22, - 96, - 96, - 130, - 1, - 82, - 96, - 128, - 1, - 97, - 2, - 90, - 86, - 91, - 52, - 128, - 21, - 97, - 4, - 113, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 3, - 204, - 97, - 4, - 128, - 54, - 96, - 4, - 97, - 130, - 213, - 86, - 91, - 97, - 24, - 82, - 86, - 91, - 52, - 128, - 21, - 97, - 4, - 145, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 2, - 11, - 97, - 4, - 160, - 54, - 96, - 4, - 97, - 132, - 1, - 86, - 91, - 97, - 24, - 102, - 86, - 91, - 52, - 128, - 21, - 97, - 4, - 177, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 2, - 11, - 97, - 4, - 192, - 54, - 96, - 4, - 97, - 132, - 26, - 86, - 91, - 97, - 25, - 236, - 86, - 91, - 52, - 128, - 21, - 97, - 4, - 209, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 3, - 204, - 97, - 4, - 224, - 54, - 96, - 4, - 97, - 132, - 86, - 86, - 91, - 97, - 26, - 109, - 86, - 91, - 52, - 128, - 21, - 97, - 4, - 241, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 2, - 179, - 97, - 5, - 0, - 54, - 96, - 4, - 97, - 132, - 146, - 86, - 91, - 97, - 29, - 148, - 86, - 91, - 52, - 128, - 21, - 97, - 5, - 17, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 7, - 141, - 97, - 5, - 32, - 54, - 96, - 4, - 97, - 130, - 213, - 86, - 91, - 96, - 8, - 96, - 32, - 82, - 128, - 96, - 0, - 82, - 96, - 64, - 96, - 0, - 32, - 96, - 0, - 145, - 80, - 144, - 80, - 128, - 96, - 0, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 144, - 128, - 96, - 0, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 144, - 128, - 96, - 1, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 144, - 128, - 96, - 1, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 144, - 128, - 96, - 2, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 144, - 128, - 96, - 3, - 1, - 84, - 144, - 128, - 96, - 4, - 1, - 84, - 144, - 128, - 96, - 5, - 1, - 84, - 144, - 128, - 96, - 6, - 1, - 96, - 64, - 81, - 128, - 97, - 1, - 0, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 18, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 22, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 24, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 26, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 30, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 21, - 21, - 21, - 21, - 129, - 82, - 80, - 80, - 144, - 128, - 96, - 7, - 1, - 96, - 64, - 81, - 128, - 96, - 128, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 80, - 80, - 144, - 80, - 138, - 86, - 91, - 96, - 64, - 81, - 97, - 2, - 90, - 154, - 153, - 152, - 151, - 150, - 149, - 148, - 147, - 146, - 145, - 144, - 97, - 132, - 196, - 86, - 91, - 52, - 128, - 21, - 97, - 7, - 175, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 3, - 204, - 97, - 7, - 190, - 54, - 96, - 4, - 97, - 133, - 225, - 86, - 91, - 97, - 32, - 183, - 86, - 91, - 97, - 2, - 11, - 97, - 7, - 209, - 54, - 96, - 4, - 97, - 134, - 35, - 86, - 91, - 97, - 33, - 39, - 86, - 91, - 52, - 128, - 21, - 97, - 7, - 226, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 8, - 9, - 97, - 7, - 241, - 54, - 96, - 4, - 97, - 131, - 220, - 86, - 91, - 96, - 6, - 96, - 32, - 82, - 96, - 0, - 144, - 129, - 82, - 96, - 64, - 144, - 32, - 84, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 86, - 91, - 96, - 64, - 81, - 99, - 255, - 255, - 255, - 255, - 144, - 145, - 22, - 129, - 82, - 96, - 32, - 1, - 97, - 2, - 90, - 86, - 91, - 52, - 128, - 21, - 97, - 8, - 42, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 3, - 40, - 97, - 8, - 57, - 54, - 96, - 4, - 97, - 130, - 213, - 86, - 91, - 97, - 33, - 165, - 86, - 91, - 52, - 128, - 21, - 97, - 8, - 74, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 2, - 11, - 97, - 8, - 89, - 54, - 96, - 4, - 97, - 134, - 148, - 86, - 91, - 97, - 36, - 187, - 86, - 91, - 52, - 128, - 21, - 97, - 8, - 106, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 2, - 70, - 127, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 129, - 86, - 91, - 52, - 128, - 21, - 97, - 8, - 158, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 2, - 11, - 97, - 8, - 173, - 54, - 96, - 4, - 97, - 134, - 232, - 86, - 91, - 97, - 38, - 9, - 86, - 91, - 52, - 128, - 21, - 97, - 8, - 190, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 9, - 43, - 97, - 8, - 205, - 54, - 96, - 4, - 97, - 135, - 60, - 86, - 91, - 96, - 10, - 96, - 32, - 144, - 129, - 82, - 96, - 0, - 146, - 131, - 82, - 96, - 64, - 128, - 132, - 32, - 144, - 145, - 82, - 144, - 130, - 82, - 144, - 32, - 128, - 84, - 96, - 1, - 130, - 1, - 84, - 96, - 2, - 131, - 1, - 84, - 96, - 3, - 132, - 1, - 84, - 96, - 4, - 133, - 1, - 84, - 96, - 5, - 144, - 149, - 1, - 84, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 128, - 134, - 22, - 150, - 99, - 255, - 255, - 255, - 255, - 96, - 1, - 96, - 128, - 27, - 151, - 136, - 144, - 4, - 22, - 150, - 129, - 131, - 22, - 147, - 145, - 4, - 130, - 22, - 145, - 22, - 136, - 86, - 91, - 96, - 64, - 128, - 81, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 153, - 138, - 22, - 129, - 82, - 99, - 255, - 255, - 255, - 255, - 144, - 152, - 22, - 96, - 32, - 137, - 1, - 82, - 135, - 1, - 149, - 144, - 149, - 82, - 96, - 96, - 134, - 1, - 147, - 144, - 147, - 82, - 96, - 128, - 133, - 1, - 145, - 144, - 145, - 82, - 132, - 22, - 96, - 160, - 132, - 1, - 82, - 131, - 22, - 96, - 192, - 131, - 1, - 82, - 145, - 144, - 145, - 22, - 96, - 224, - 130, - 1, - 82, - 97, - 1, - 0, - 1, - 97, - 2, - 90, - 86, - 91, - 52, - 128, - 21, - 97, - 9, - 139, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 2, - 243, - 97, - 9, - 154, - 54, - 96, - 4, - 97, - 135, - 113, - 86, - 91, - 97, - 40, - 9, - 86, - 91, - 52, - 128, - 21, - 97, - 9, - 171, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 3, - 204, - 97, - 9, - 186, - 54, - 96, - 4, - 97, - 131, - 191, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 1, - 96, - 32, - 82, - 96, - 64, - 144, - 32, - 84, - 144, - 86, - 91, - 97, - 2, - 11, - 97, - 43, - 36, - 86, - 91, - 52, - 128, - 21, - 97, - 9, - 233, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 3, - 204, - 97, - 9, - 248, - 54, - 96, - 4, - 97, - 131, - 134, - 86, - 91, - 97, - 43, - 170, - 86, - 91, - 52, - 128, - 21, - 97, - 10, - 9, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 10, - 29, - 97, - 10, - 24, - 54, - 96, - 4, - 97, - 135, - 141, - 86, - 91, - 97, - 43, - 211, - 86, - 91, - 96, - 64, - 81, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 144, - 145, - 22, - 129, - 82, - 96, - 32, - 1, - 97, - 2, - 90, - 86, - 91, - 52, - 128, - 21, - 97, - 10, - 65, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 96, - 4, - 84, - 97, - 3, - 40, - 144, - 96, - 255, - 22, - 129, - 86, - 91, - 52, - 128, - 21, - 97, - 10, - 91, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 10, - 100, - 97, - 46, - 235, - 86, - 91, - 96, - 64, - 81, - 97, - 2, - 90, - 145, - 144, - 97, - 135, - 236, - 86, - 91, - 96, - 0, - 128, - 97, - 13, - 126, - 96, - 8, - 96, - 0, - 133, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 144, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 32, - 96, - 64, - 81, - 128, - 97, - 1, - 64, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 2, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 3, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 4, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 5, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 6, - 130, - 1, - 96, - 64, - 81, - 128, - 97, - 1, - 0, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 18, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 22, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 24, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 26, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 30, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 21, - 21, - 21, - 21, - 129, - 82, - 80, - 80, - 129, - 82, - 96, - 32, - 1, - 96, - 7, - 130, - 1, - 96, - 64, - 81, - 128, - 96, - 128, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 80, - 80, - 129, - 82, - 80, - 80, - 97, - 47, - 8, - 86, - 91, - 145, - 80, - 145, - 80, - 145, - 80, - 145, - 86, - 91, - 96, - 0, - 128, - 97, - 16, - 148, - 96, - 8, - 96, - 0, - 133, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 144, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 32, - 96, - 64, - 81, - 128, - 97, - 1, - 64, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 2, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 3, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 4, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 5, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 6, - 130, - 1, - 96, - 64, - 81, - 128, - 97, - 1, - 0, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 18, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 22, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 24, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 26, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 30, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 21, - 21, - 21, - 21, - 129, - 82, - 80, - 80, - 129, - 82, - 96, - 32, - 1, - 96, - 7, - 130, - 1, - 96, - 64, - 81, - 128, - 96, - 128, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 80, - 80, - 129, - 82, - 80, - 80, - 97, - 47, - 136, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 145, - 130, - 22, - 149, - 145, - 22, - 147, - 80, - 145, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 130, - 18, - 21, - 97, - 17, - 143, - 87, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 131, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 10, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 136, - 22, - 132, - 82, - 130, - 82, - 128, - 131, - 32, - 129, - 81, - 97, - 1, - 0, - 129, - 1, - 131, - 82, - 129, - 84, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 128, - 130, - 22, - 131, - 82, - 99, - 255, - 255, - 255, - 255, - 96, - 1, - 96, - 128, - 27, - 146, - 131, - 144, - 4, - 129, - 22, - 150, - 132, - 1, - 150, - 144, - 150, - 82, - 96, - 1, - 132, - 1, - 84, - 148, - 131, - 1, - 148, - 144, - 148, - 82, - 96, - 2, - 131, - 1, - 84, - 96, - 96, - 131, - 1, - 82, - 96, - 3, - 131, - 1, - 84, - 96, - 128, - 131, - 1, - 82, - 96, - 4, - 131, - 1, - 84, - 128, - 133, - 22, - 96, - 160, - 132, - 1, - 82, - 4, - 131, - 22, - 96, - 192, - 130, - 1, - 82, - 96, - 5, - 144, - 145, - 1, - 84, - 144, - 145, - 22, - 96, - 224, - 130, - 1, - 82, - 97, - 17, - 93, - 145, - 66, - 144, - 97, - 47, - 163, - 22, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 134, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 8, - 96, - 32, - 82, - 96, - 64, - 144, - 32, - 96, - 6, - 1, - 84, - 96, - 1, - 96, - 128, - 27, - 144, - 4, - 97, - 255, - 255, - 22, - 17, - 21, - 145, - 80, - 97, - 17, - 147, - 144, - 80, - 86, - 91, - 80, - 96, - 1, - 91, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 97, - 20, - 179, - 132, - 96, - 8, - 96, - 0, - 139, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 144, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 32, - 96, - 64, - 81, - 128, - 97, - 1, - 64, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 2, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 3, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 4, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 5, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 6, - 130, - 1, - 96, - 64, - 81, - 128, - 97, - 1, - 0, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 18, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 22, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 24, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 26, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 30, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 21, - 21, - 21, - 21, - 129, - 82, - 80, - 80, - 129, - 82, - 96, - 32, - 1, - 96, - 7, - 130, - 1, - 96, - 64, - 81, - 128, - 96, - 128, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 80, - 80, - 129, - 82, - 80, - 80, - 97, - 47, - 187, - 144, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 144, - 80, - 97, - 23, - 194, - 96, - 8, - 96, - 0, - 138, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 144, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 32, - 96, - 64, - 81, - 128, - 97, - 1, - 64, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 2, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 3, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 4, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 5, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 6, - 130, - 1, - 96, - 64, - 81, - 128, - 97, - 1, - 0, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 18, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 22, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 24, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 26, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 30, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 21, - 21, - 21, - 21, - 129, - 82, - 80, - 80, - 129, - 82, - 96, - 32, - 1, - 96, - 7, - 130, - 1, - 96, - 64, - 81, - 128, - 96, - 128, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 80, - 80, - 129, - 82, - 80, - 80, - 135, - 135, - 132, - 97, - 48, - 1, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 137, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 8, - 96, - 32, - 129, - 144, - 82, - 96, - 64, - 130, - 32, - 1, - 84, - 145, - 147, - 80, - 144, - 97, - 23, - 247, - 144, - 137, - 144, - 96, - 1, - 96, - 160, - 27, - 144, - 4, - 96, - 255, - 22, - 97, - 48, - 70, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 138, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 8, - 96, - 32, - 129, - 144, - 82, - 96, - 64, - 130, - 32, - 1, - 84, - 145, - 146, - 80, - 144, - 97, - 24, - 44, - 144, - 133, - 144, - 96, - 1, - 96, - 160, - 27, - 144, - 4, - 96, - 255, - 22, - 97, - 48, - 70, - 86, - 91, - 145, - 144, - 145, - 18, - 21, - 147, - 80, - 80, - 80, - 149, - 80, - 149, - 147, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 97, - 24, - 76, - 129, - 131, - 48, - 97, - 48, - 92, - 86, - 91, - 146, - 145, - 80, - 80, - 86, - 91, - 96, - 0, - 97, - 24, - 93, - 130, - 97, - 48, - 152, - 86, - 91, - 80, - 144, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 11, - 84, - 96, - 1, - 20, - 97, - 24, - 140, - 87, - 96, - 64, - 81, - 96, - 1, - 98, - 56, - 221, - 247, - 96, - 224, - 27, - 3, - 25, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 2, - 96, - 11, - 129, - 144, - 85, - 80, - 127, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 99, - 247, - 124, - 71, - 145, - 96, - 64, - 81, - 129, - 99, - 255, - 255, - 255, - 255, - 22, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 32, - 96, - 64, - 81, - 128, - 131, - 3, - 129, - 134, - 90, - 250, - 21, - 128, - 21, - 97, - 24, - 242, - 87, - 61, - 96, - 0, - 128, - 62, - 61, - 96, - 0, - 253, - 91, - 80, - 80, - 80, - 80, - 96, - 64, - 81, - 61, - 96, - 31, - 25, - 96, - 31, - 130, - 1, - 22, - 130, - 1, - 128, - 96, - 64, - 82, - 80, - 129, - 1, - 144, - 97, - 25, - 22, - 145, - 144, - 97, - 136, - 31, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 51, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 20, - 97, - 25, - 71, - 87, - 96, - 64, - 81, - 99, - 35, - 1, - 158, - 103, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 20, - 129, - 17, - 128, - 97, - 25, - 86, - 87, - 80, - 96, - 4, - 129, - 16, - 91, - 21, - 97, - 25, - 127, - 87, - 96, - 64, - 81, - 99, - 246, - 244, - 163, - 143, - 96, - 224, - 27, - 129, - 82, - 97, - 255, - 255, - 130, - 22, - 96, - 4, - 130, - 1, - 82, - 96, - 36, - 1, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 13, - 128, - 84, - 144, - 130, - 144, - 85, - 96, - 64, - 128, - 81, - 130, - 129, - 82, - 96, - 32, - 129, - 1, - 132, - 144, - 82, - 127, - 129, - 201, - 57, - 20, - 72, - 0, - 40, - 118, - 3, - 71, - 155, - 151, - 187, - 169, - 193, - 18, - 136, - 206, - 122, - 188, - 90, - 203, - 72, - 144, - 121, - 225, - 89, - 243, - 92, - 249, - 139, - 209, - 145, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 161, - 80, - 96, - 1, - 96, - 11, - 85, - 96, - 4, - 84, - 96, - 255, - 22, - 97, - 25, - 233, - 87, - 96, - 64, - 81, - 99, - 4, - 86, - 76, - 113, - 96, - 226, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 80, - 86, - 91, - 96, - 11, - 84, - 96, - 1, - 20, - 97, - 26, - 18, - 87, - 96, - 64, - 81, - 96, - 1, - 98, - 56, - 221, - 247, - 96, - 224, - 27, - 3, - 25, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 2, - 96, - 11, - 85, - 96, - 1, - 129, - 1, - 97, - 26, - 44, - 87, - 97, - 26, - 41, - 130, - 51, - 97, - 57, - 236, - 86, - 91, - 144, - 80, - 91, - 97, - 26, - 57, - 96, - 0, - 131, - 48, - 132, - 97, - 58, - 204, - 86, - 91, - 97, - 26, - 65, - 97, - 58, - 225, - 86, - 91, - 96, - 1, - 96, - 11, - 85, - 96, - 4, - 84, - 96, - 255, - 22, - 97, - 26, - 105, - 87, - 96, - 64, - 81, - 99, - 4, - 86, - 76, - 113, - 96, - 226, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 8, - 96, - 0, - 134, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 144, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 32, - 96, - 64, - 81, - 128, - 97, - 1, - 64, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 2, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 3, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 4, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 5, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 6, - 130, - 1, - 96, - 64, - 81, - 128, - 97, - 1, - 0, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 18, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 22, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 24, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 26, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 30, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 21, - 21, - 21, - 21, - 129, - 82, - 80, - 80, - 129, - 82, - 96, - 32, - 1, - 96, - 7, - 130, - 1, - 96, - 64, - 81, - 128, - 96, - 128, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 80, - 80, - 129, - 82, - 80, - 80, - 144, - 80, - 97, - 29, - 139, - 132, - 132, - 66, - 132, - 97, - 63, - 115, - 144, - 147, - 146, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 149, - 148, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 97, - 32, - 171, - 131, - 96, - 8, - 96, - 0, - 135, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 144, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 32, - 96, - 64, - 81, - 128, - 97, - 1, - 64, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 2, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 3, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 4, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 5, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 6, - 130, - 1, - 96, - 64, - 81, - 128, - 97, - 1, - 0, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 18, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 22, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 24, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 26, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 30, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 21, - 21, - 21, - 21, - 129, - 82, - 80, - 80, - 129, - 82, - 96, - 32, - 1, - 96, - 7, - 130, - 1, - 96, - 64, - 81, - 128, - 96, - 128, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 80, - 80, - 129, - 82, - 80, - 80, - 97, - 64, - 48, - 144, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 145, - 80, - 145, - 80, - 91, - 146, - 80, - 146, - 144, - 80, - 86, - 91, - 96, - 0, - 128, - 132, - 21, - 97, - 32, - 227, - 87, - 97, - 32, - 220, - 131, - 97, - 32, - 214, - 134, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 97, - 136, - 82, - 86, - 91, - 144, - 97, - 65, - 53, - 86, - 91, - 144, - 80, - 97, - 33, - 28, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 134, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 8, - 96, - 32, - 82, - 96, - 64, - 144, - 32, - 96, - 6, - 1, - 84, - 97, - 33, - 25, - 144, - 132, - 144, - 97, - 32, - 214, - 144, - 135, - 144, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 97, - 136, - 82, - 86, - 91, - 144, - 80, - 91, - 144, - 80, - 91, - 148, - 147, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 11, - 84, - 96, - 1, - 20, - 97, - 33, - 77, - 87, - 96, - 64, - 81, - 96, - 1, - 98, - 56, - 221, - 247, - 96, - 224, - 27, - 3, - 25, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 2, - 96, - 11, - 85, - 97, - 33, - 90, - 97, - 65, - 74, - 86, - 91, - 96, - 85, - 96, - 249, - 27, - 130, - 130, - 96, - 0, - 129, - 97, - 33, - 112, - 87, - 97, - 33, - 112, - 97, - 136, - 105, - 86, - 91, - 144, - 80, - 1, - 53, - 96, - 248, - 28, - 96, - 248, - 27, - 96, - 1, - 96, - 1, - 96, - 248, - 27, - 3, - 25, - 22, - 20, - 97, - 33, - 152, - 87, - 97, - 33, - 147, - 130, - 130, - 97, - 65, - 178, - 86, - 91, - 97, - 26, - 57, - 86, - 91, - 97, - 26, - 57, - 130, - 130, - 97, - 65, - 178, - 97, - 69, - 10, - 86, - 91, - 96, - 0, - 97, - 24, - 76, - 96, - 8, - 96, - 0, - 132, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 144, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 32, - 96, - 64, - 81, - 128, - 97, - 1, - 64, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 2, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 3, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 4, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 5, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 6, - 130, - 1, - 96, - 64, - 81, - 128, - 97, - 1, - 0, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 18, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 22, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 24, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 26, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 30, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 21, - 21, - 21, - 21, - 129, - 82, - 80, - 80, - 129, - 82, - 96, - 32, - 1, - 96, - 7, - 130, - 1, - 96, - 64, - 81, - 128, - 96, - 128, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 80, - 80, - 129, - 82, - 80, - 80, - 96, - 96, - 1, - 81, - 99, - 255, - 255, - 255, - 255, - 22, - 21, - 21, - 144, - 86, - 91, - 96, - 11, - 84, - 96, - 1, - 20, - 97, - 36, - 225, - 87, - 96, - 64, - 81, - 96, - 1, - 98, - 56, - 221, - 247, - 96, - 224, - 27, - 3, - 25, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 2, - 96, - 11, - 85, - 48, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 130, - 22, - 3, - 97, - 37, - 15, - 87, - 96, - 64, - 81, - 99, - 47, - 53, - 37, - 49, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 0, - 97, - 37, - 27, - 51, - 133, - 97, - 43, - 170, - 86, - 91, - 144, - 80, - 96, - 0, - 25, - 131, - 3, - 97, - 37, - 42, - 87, - 128, - 146, - 80, - 91, - 128, - 131, - 17, - 21, - 97, - 37, - 75, - 87, - 96, - 64, - 81, - 99, - 50, - 124, - 188, - 155, - 96, - 226, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 97, - 37, - 85, - 132, - 132, - 97, - 69, - 216, - 86, - 91, - 97, - 37, - 95, - 132, - 132, - 97, - 70, - 43, - 86, - 91, - 127, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 132, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 3, - 97, - 37, - 200, - 87, - 97, - 37, - 195, - 127, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 131, - 133, - 97, - 70, - 126, - 86, - 91, - 97, - 37, - 211, - 86, - 91, - 97, - 37, - 211, - 132, - 131, - 133, - 97, - 71, - 101, - 86, - 91, - 97, - 37, - 219, - 97, - 58, - 225, - 86, - 91, - 80, - 96, - 1, - 96, - 11, - 85, - 96, - 4, - 84, - 96, - 255, - 22, - 97, - 38, - 4, - 87, - 96, - 64, - 81, - 99, - 4, - 86, - 76, - 113, - 96, - 226, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 80, - 80, - 80, - 86, - 91, - 96, - 11, - 84, - 96, - 1, - 20, - 97, - 38, - 47, - 87, - 96, - 64, - 81, - 96, - 1, - 98, - 56, - 221, - 247, - 96, - 224, - 27, - 3, - 25, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 2, - 96, - 11, - 129, - 144, - 85, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 133, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 8, - 96, - 32, - 82, - 96, - 64, - 144, - 32, - 144, - 129, - 1, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 51, - 20, - 97, - 38, - 122, - 87, - 96, - 64, - 81, - 99, - 35, - 1, - 158, - 103, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 64, - 128, - 81, - 97, - 1, - 0, - 129, - 1, - 130, - 82, - 96, - 0, - 128, - 130, - 82, - 96, - 32, - 130, - 1, - 129, - 144, - 82, - 145, - 129, - 1, - 130, - 144, - 82, - 96, - 96, - 129, - 1, - 130, - 144, - 82, - 96, - 128, - 129, - 1, - 130, - 144, - 82, - 96, - 160, - 129, - 1, - 130, - 144, - 82, - 96, - 192, - 129, - 1, - 130, - 144, - 82, - 96, - 224, - 129, - 1, - 145, - 144, - 145, - 82, - 80, - 96, - 64, - 128, - 81, - 97, - 1, - 0, - 129, - 1, - 130, - 82, - 96, - 6, - 131, - 1, - 84, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 129, - 22, - 130, - 82, - 97, - 255, - 255, - 96, - 1, - 96, - 128, - 27, - 130, - 4, - 129, - 22, - 96, - 32, - 132, - 1, - 82, - 96, - 1, - 96, - 144, - 27, - 130, - 4, - 129, - 22, - 147, - 131, - 1, - 147, - 144, - 147, - 82, - 96, - 1, - 96, - 160, - 27, - 129, - 4, - 131, - 22, - 96, - 96, - 131, - 1, - 82, - 96, - 1, - 96, - 176, - 27, - 129, - 4, - 131, - 22, - 96, - 128, - 131, - 1, - 82, - 96, - 1, - 96, - 192, - 27, - 129, - 4, - 131, - 22, - 96, - 160, - 131, - 1, - 82, - 99, - 255, - 255, - 255, - 255, - 96, - 1, - 96, - 208, - 27, - 130, - 4, - 22, - 96, - 192, - 131, - 1, - 82, - 96, - 255, - 96, - 1, - 96, - 240, - 27, - 144, - 145, - 4, - 22, - 21, - 21, - 96, - 224, - 130, - 1, - 82, - 144, - 131, - 22, - 21, - 97, - 39, - 90, - 87, - 97, - 255, - 255, - 131, - 22, - 96, - 32, - 130, - 1, - 82, - 91, - 97, - 255, - 255, - 132, - 22, - 21, - 97, - 39, - 111, - 87, - 97, - 255, - 255, - 132, - 22, - 96, - 64, - 130, - 1, - 82, - 91, - 97, - 255, - 255, - 133, - 22, - 21, - 97, - 39, - 132, - 87, - 97, - 255, - 255, - 133, - 22, - 96, - 160, - 130, - 1, - 82, - 91, - 97, - 39, - 142, - 130, - 130, - 97, - 71, - 227, - 86, - 91, - 96, - 64, - 81, - 97, - 255, - 255, - 132, - 129, - 22, - 130, - 82, - 128, - 134, - 22, - 145, - 144, - 135, - 22, - 144, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 137, - 22, - 144, - 127, - 99, - 136, - 150, - 84, - 253, - 163, - 215, - 78, - 149, - 252, - 123, - 230, - 211, - 16, - 196, - 83, - 198, - 136, - 59, - 108, - 205, - 232, - 64, - 12, - 71, - 103, - 39, - 35, - 126, - 99, - 42, - 194, - 144, - 96, - 32, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 164, - 80, - 80, - 96, - 1, - 96, - 11, - 85, - 96, - 4, - 84, - 96, - 255, - 22, - 97, - 40, - 3, - 87, - 96, - 64, - 81, - 99, - 4, - 86, - 76, - 113, - 96, - 226, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 97, - 43, - 25, - 96, - 8, - 96, - 0, - 134, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 144, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 32, - 96, - 64, - 81, - 128, - 97, - 1, - 64, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 2, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 3, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 4, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 5, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 6, - 130, - 1, - 96, - 64, - 81, - 128, - 97, - 1, - 0, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 18, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 22, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 24, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 26, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 30, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 21, - 21, - 21, - 21, - 129, - 82, - 80, - 80, - 129, - 82, - 96, - 32, - 1, - 96, - 7, - 130, - 1, - 96, - 64, - 81, - 128, - 96, - 128, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 80, - 80, - 129, - 82, - 80, - 80, - 132, - 96, - 0, - 97, - 72, - 225, - 86, - 91, - 144, - 149, - 144, - 148, - 80, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 11, - 84, - 96, - 1, - 20, - 97, - 43, - 74, - 87, - 96, - 64, - 81, - 96, - 1, - 98, - 56, - 221, - 247, - 96, - 224, - 27, - 3, - 25, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 2, - 96, - 11, - 85, - 52, - 96, - 0, - 3, - 97, - 43, - 112, - 87, - 96, - 64, - 81, - 99, - 124, - 148, - 110, - 215, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 97, - 43, - 120, - 97, - 65, - 74, - 86, - 91, - 97, - 43, - 128, - 97, - 58, - 225, - 86, - 91, - 96, - 1, - 96, - 11, - 85, - 96, - 4, - 84, - 96, - 255, - 22, - 97, - 43, - 168, - 87, - 96, - 64, - 81, - 99, - 4, - 86, - 76, - 113, - 96, - 226, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 145, - 130, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 32, - 129, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 147, - 144, - 148, - 22, - 130, - 82, - 145, - 144, - 145, - 82, - 32, - 84, - 144, - 86, - 91, - 96, - 0, - 97, - 33, - 31, - 131, - 131, - 96, - 8, - 96, - 0, - 136, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 144, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 32, - 96, - 64, - 81, - 128, - 97, - 1, - 64, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 2, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 3, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 4, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 5, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 6, - 130, - 1, - 96, - 64, - 81, - 128, - 97, - 1, - 0, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 18, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 22, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 24, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 26, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 30, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 21, - 21, - 21, - 21, - 129, - 82, - 80, - 80, - 129, - 82, - 96, - 32, - 1, - 96, - 7, - 130, - 1, - 96, - 64, - 81, - 128, - 96, - 128, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 80, - 80, - 129, - 82, - 80, - 80, - 97, - 73, - 105, - 144, - 146, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 96, - 96, - 96, - 32, - 96, - 0, - 82, - 107, - 11, - 118, - 49, - 46, - 48, - 46, - 48, - 45, - 98, - 101, - 116, - 97, - 96, - 43, - 82, - 96, - 96, - 96, - 0, - 243, - 91, - 96, - 0, - 128, - 96, - 0, - 128, - 97, - 47, - 30, - 133, - 128, - 81, - 96, - 32, - 144, - 145, - 1, - 81, - 144, - 145, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 145, - 80, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 145, - 80, - 97, - 47, - 91, - 97, - 47, - 86, - 134, - 97, - 1, - 32, - 1, - 81, - 96, - 32, - 1, - 81, - 96, - 255, - 22, - 132, - 97, - 74, - 33, - 144, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 97, - 74, - 55, - 86, - 91, - 147, - 80, - 97, - 47, - 127, - 97, - 47, - 86, - 134, - 97, - 1, - 32, - 1, - 81, - 96, - 96, - 1, - 81, - 96, - 255, - 22, - 131, - 97, - 74, - 33, - 144, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 146, - 80, - 80, - 80, - 145, - 80, - 145, - 86, - 91, - 96, - 0, - 128, - 97, - 13, - 126, - 131, - 96, - 64, - 1, - 81, - 97, - 47, - 156, - 144, - 97, - 136, - 127, - 86, - 91, - 132, - 144, - 97, - 64, - 48, - 86, - 91, - 96, - 0, - 130, - 96, - 32, - 1, - 81, - 99, - 255, - 255, - 255, - 255, - 22, - 130, - 97, - 17, - 147, - 145, - 144, - 97, - 136, - 82, - 86, - 91, - 96, - 0, - 130, - 97, - 1, - 0, - 1, - 81, - 96, - 224, - 1, - 81, - 21, - 97, - 47, - 215, - 87, - 80, - 99, - 1, - 225, - 133, - 89, - 97, - 24, - 76, - 86, - 91, - 96, - 0, - 97, - 47, - 231, - 132, - 97, - 1, - 0, - 1, - 81, - 97, - 74, - 77, - 86, - 91, - 99, - 255, - 255, - 255, - 255, - 22, - 128, - 132, - 3, - 144, - 132, - 16, - 2, - 131, - 3, - 146, - 144, - 146, - 3, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 97, - 33, - 28, - 131, - 133, - 135, - 97, - 1, - 0, - 1, - 81, - 96, - 0, - 1, - 81, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 97, - 48, - 64, - 137, - 97, - 1, - 0, - 1, - 81, - 96, - 128, - 1, - 81, - 97, - 255, - 255, - 22, - 97, - 39, - 16, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 145, - 144, - 145, - 2, - 4, - 144, - 86, - 91, - 134, - 97, - 74, - 116, - 86, - 91, - 96, - 0, - 128, - 97, - 48, - 82, - 131, - 97, - 74, - 145, - 86, - 91, - 144, - 147, - 5, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 130, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 1, - 132, - 1, - 96, - 32, - 82, - 96, - 64, - 129, - 32, - 84, - 129, - 97, - 48, - 130, - 133, - 133, - 97, - 57, - 236, - 86, - 91, - 144, - 80, - 97, - 48, - 142, - 130, - 130, - 97, - 136, - 165, - 86, - 91, - 150, - 149, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 128, - 96, - 8, - 96, - 0, - 134, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 144, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 32, - 144, - 80, - 97, - 51, - 181, - 66, - 130, - 96, - 64, - 81, - 128, - 97, - 1, - 64, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 2, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 3, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 4, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 5, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 6, - 130, - 1, - 96, - 64, - 81, - 128, - 97, - 1, - 0, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 18, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 22, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 24, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 26, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 30, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 21, - 21, - 21, - 21, - 129, - 82, - 80, - 80, - 129, - 82, - 96, - 32, - 1, - 96, - 7, - 130, - 1, - 96, - 64, - 81, - 128, - 96, - 128, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 80, - 80, - 129, - 82, - 80, - 80, - 97, - 47, - 187, - 144, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 145, - 80, - 96, - 0, - 128, - 97, - 54, - 167, - 131, - 96, - 64, - 81, - 128, - 97, - 1, - 64, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 2, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 3, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 4, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 5, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 6, - 130, - 1, - 96, - 64, - 81, - 128, - 97, - 1, - 0, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 18, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 22, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 24, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 26, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 30, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 21, - 21, - 21, - 21, - 129, - 82, - 80, - 80, - 129, - 82, - 96, - 32, - 1, - 96, - 7, - 130, - 1, - 96, - 64, - 81, - 128, - 96, - 128, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 80, - 80, - 129, - 82, - 80, - 80, - 128, - 81, - 96, - 32, - 144, - 145, - 1, - 81, - 144, - 145, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 145, - 80, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 145, - 80, - 97, - 57, - 177, - 130, - 130, - 134, - 134, - 96, - 64, - 81, - 128, - 97, - 1, - 64, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 2, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 3, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 4, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 5, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 6, - 130, - 1, - 96, - 64, - 81, - 128, - 97, - 1, - 0, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 18, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 22, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 24, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 26, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 30, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 21, - 21, - 21, - 21, - 129, - 82, - 80, - 80, - 129, - 82, - 96, - 32, - 1, - 96, - 7, - 130, - 1, - 96, - 64, - 81, - 128, - 96, - 128, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 80, - 80, - 129, - 82, - 80, - 80, - 97, - 48, - 1, - 144, - 147, - 146, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 96, - 6, - 132, - 1, - 84, - 96, - 15, - 145, - 144, - 145, - 11, - 149, - 80, - 97, - 57, - 224, - 144, - 131, - 144, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 129, - 22, - 144, - 96, - 1, - 96, - 176, - 27, - 144, - 4, - 97, - 255, - 255, - 22, - 135, - 97, - 74, - 169, - 86, - 91, - 149, - 80, - 80, - 80, - 80, - 145, - 147, - 144, - 146, - 80, - 86, - 91, - 96, - 64, - 128, - 81, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 131, - 129, - 22, - 96, - 36, - 128, - 132, - 1, - 145, - 144, - 145, - 82, - 131, - 81, - 128, - 132, - 3, - 144, - 145, - 1, - 129, - 82, - 96, - 68, - 144, - 146, - 1, - 131, - 82, - 96, - 32, - 130, - 1, - 128, - 81, - 96, - 1, - 96, - 1, - 96, - 224, - 27, - 3, - 22, - 99, - 112, - 160, - 130, - 49, - 96, - 224, - 27, - 23, - 144, - 82, - 145, - 81, - 96, - 0, - 146, - 131, - 146, - 131, - 146, - 145, - 135, - 22, - 145, - 97, - 58, - 70, - 145, - 144, - 97, - 136, - 228, - 86, - 91, - 96, - 0, - 96, - 64, - 81, - 128, - 131, - 3, - 129, - 133, - 90, - 250, - 145, - 80, - 80, - 61, - 128, - 96, - 0, - 129, - 20, - 97, - 58, - 129, - 87, - 96, - 64, - 81, - 145, - 80, - 96, - 31, - 25, - 96, - 63, - 61, - 1, - 22, - 130, - 1, - 96, - 64, - 82, - 61, - 130, - 82, - 61, - 96, - 0, - 96, - 32, - 132, - 1, - 62, - 97, - 58, - 134, - 86, - 91, - 96, - 96, - 145, - 80, - 91, - 80, - 145, - 80, - 145, - 80, - 129, - 21, - 128, - 97, - 58, - 154, - 87, - 80, - 128, - 81, - 96, - 32, - 20, - 21, - 91, - 21, - 97, - 58, - 184, - 87, - 96, - 64, - 81, - 99, - 197, - 46, - 62, - 255, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 128, - 128, - 96, - 32, - 1, - 144, - 81, - 129, - 1, - 144, - 97, - 29, - 139, - 145, - 144, - 97, - 137, - 0, - 86, - 91, - 97, - 58, - 214, - 132, - 132, - 97, - 76, - 48, - 86, - 91, - 97, - 40, - 3, - 131, - 131, - 131, - 97, - 76, - 192, - 86, - 91, - 96, - 0, - 128, - 96, - 3, - 1, - 128, - 84, - 128, - 96, - 32, - 2, - 96, - 32, - 1, - 96, - 64, - 81, - 144, - 129, - 1, - 96, - 64, - 82, - 128, - 146, - 145, - 144, - 129, - 129, - 82, - 96, - 32, - 1, - 130, - 128, - 84, - 128, - 21, - 97, - 59, - 59, - 87, - 96, - 32, - 2, - 130, - 1, - 145, - 144, - 96, - 0, - 82, - 96, - 32, - 96, - 0, - 32, - 144, - 91, - 129, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 1, - 144, - 145, - 1, - 144, - 96, - 32, - 1, - 128, - 131, - 17, - 97, - 59, - 29, - 87, - 91, - 80, - 80, - 80, - 80, - 80, - 144, - 80, - 96, - 0, - 129, - 81, - 144, - 80, - 128, - 96, - 0, - 3, - 97, - 59, - 90, - 87, - 97, - 26, - 105, - 96, - 0, - 97, - 76, - 204, - 86, - 91, - 128, - 91, - 96, - 0, - 131, - 97, - 59, - 106, - 96, - 1, - 132, - 97, - 136, - 82, - 86, - 91, - 129, - 81, - 129, - 16, - 97, - 59, - 122, - 87, - 97, - 59, - 122, - 97, - 136, - 105, - 86, - 91, - 96, - 32, - 2, - 96, - 32, - 1, - 1, - 81, - 144, - 80, - 96, - 0, - 128, - 96, - 0, - 97, - 59, - 159, - 132, - 48, - 96, - 0, - 97, - 76, - 251, - 144, - 146, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 145, - 148, - 80, - 146, - 80, - 144, - 80, - 130, - 21, - 97, - 60, - 52, - 87, - 96, - 64, - 81, - 131, - 129, - 82, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 133, - 22, - 144, - 51, - 144, - 127, - 73, - 225, - 68, - 60, - 178, - 94, - 23, - 203, - 235, - 197, - 10, - 163, - 227, - 165, - 163, - 223, - 58, - 195, - 52, - 175, - 133, - 43, - 198, - 243, - 232, - 210, - 88, - 85, - 130, - 87, - 187, - 17, - 144, - 96, - 32, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 163, - 131, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 127, - 128, - 178, - 23, - 72, - 199, - 135, - 197, - 46, - 135, - 166, - 178, - 34, - 1, - 30, - 10, - 14, - 208, - 249, - 204, - 32, - 21, - 240, - 206, - 212, - 103, - 72, - 100, - 45, - 198, - 46, - 233, - 248, - 132, - 96, - 64, - 81, - 97, - 60, - 39, - 145, - 129, - 82, - 96, - 32, - 1, - 144, - 86, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 162, - 97, - 61, - 65, - 86, - 91, - 129, - 21, - 97, - 60, - 190, - 87, - 96, - 64, - 81, - 130, - 129, - 82, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 133, - 22, - 144, - 51, - 144, - 127, - 11, - 11, - 130, - 25, - 83, - 229, - 84, - 91, - 113, - 242, - 8, - 88, - 51, - 228, - 168, - 223, - 208, - 217, - 155, - 189, - 255, - 81, - 24, - 152, - 103, - 42, - 232, - 23, - 154, - 152, - 45, - 243, - 144, - 96, - 32, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 163, - 131, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 127, - 28, - 113, - 30, - 202, - 141, - 11, - 105, - 75, - 188, - 176, - 161, - 68, - 98, - 167, - 0, - 98, - 34, - 231, - 33, - 149, - 75, - 44, - 95, - 247, - 152, - 246, - 6, - 129, - 126, - 177, - 16, - 50, - 131, - 96, - 64, - 81, - 97, - 60, - 181, - 145, - 129, - 82, - 96, - 32, - 1, - 144, - 86, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 162, - 91, - 128, - 21, - 97, - 61, - 65, - 87, - 96, - 14, - 96, - 64, - 81, - 128, - 96, - 96, - 1, - 96, - 64, - 82, - 128, - 134, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 131, - 129, - 82, - 96, - 32, - 1, - 97, - 60, - 240, - 135, - 48, - 97, - 57, - 236, - 86, - 91, - 144, - 82, - 129, - 84, - 96, - 1, - 128, - 130, - 1, - 132, - 85, - 96, - 0, - 147, - 132, - 82, - 96, - 32, - 147, - 132, - 144, - 32, - 131, - 81, - 96, - 3, - 144, - 147, - 2, - 1, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 25, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 144, - 147, - 22, - 146, - 144, - 146, - 23, - 130, - 85, - 146, - 130, - 1, - 81, - 146, - 129, - 1, - 146, - 144, - 146, - 85, - 96, - 64, - 1, - 81, - 96, - 2, - 144, - 145, - 1, - 85, - 91, - 96, - 3, - 128, - 84, - 128, - 97, - 61, - 82, - 87, - 97, - 61, - 82, - 97, - 137, - 25, - 86, - 91, - 96, - 0, - 130, - 129, - 82, - 96, - 32, - 129, - 32, - 130, - 1, - 96, - 0, - 25, - 144, - 129, - 1, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 25, - 22, - 144, - 85, - 145, - 130, - 1, - 144, - 146, - 85, - 134, - 1, - 149, - 144, - 3, - 96, - 1, - 1, - 147, - 80, - 97, - 59, - 92, - 146, - 80, - 80, - 80, - 87, - 96, - 0, - 96, - 14, - 128, - 84, - 128, - 96, - 32, - 2, - 96, - 32, - 1, - 96, - 64, - 81, - 144, - 129, - 1, - 96, - 64, - 82, - 128, - 146, - 145, - 144, - 129, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 144, - 91, - 130, - 130, - 16, - 21, - 97, - 62, - 2, - 87, - 96, - 0, - 132, - 129, - 82, - 96, - 32, - 144, - 129, - 144, - 32, - 96, - 64, - 128, - 81, - 96, - 96, - 129, - 1, - 130, - 82, - 96, - 3, - 134, - 2, - 144, - 146, - 1, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 131, - 82, - 96, - 1, - 128, - 130, - 1, - 84, - 132, - 134, - 1, - 82, - 96, - 2, - 144, - 145, - 1, - 84, - 145, - 131, - 1, - 145, - 144, - 145, - 82, - 144, - 131, - 82, - 144, - 146, - 1, - 145, - 1, - 97, - 61, - 173, - 86, - 91, - 80, - 80, - 130, - 81, - 146, - 147, - 80, - 80, - 80, - 91, - 128, - 21, - 97, - 62, - 112, - 87, - 96, - 0, - 97, - 62, - 31, - 96, - 1, - 131, - 97, - 136, - 82, - 86, - 91, - 144, - 80, - 97, - 62, - 102, - 131, - 130, - 129, - 81, - 129, - 16, - 97, - 62, - 54, - 87, - 97, - 62, - 54, - 97, - 136, - 105, - 86, - 91, - 96, - 32, - 2, - 96, - 32, - 1, - 1, - 81, - 96, - 0, - 1, - 81, - 48, - 133, - 132, - 129, - 81, - 129, - 16, - 97, - 62, - 85, - 87, - 97, - 62, - 85, - 97, - 136, - 105, - 86, - 91, - 96, - 32, - 2, - 96, - 32, - 1, - 1, - 81, - 96, - 32, - 1, - 81, - 97, - 76, - 192, - 86, - 91, - 80, - 96, - 0, - 25, - 1, - 97, - 62, - 12, - 86, - 91, - 80, - 128, - 81, - 91, - 128, - 21, - 97, - 63, - 86, - 87, - 96, - 0, - 97, - 62, - 135, - 96, - 1, - 131, - 97, - 136, - 82, - 86, - 91, - 144, - 80, - 96, - 0, - 131, - 130, - 129, - 81, - 129, - 16, - 97, - 62, - 157, - 87, - 97, - 62, - 157, - 97, - 136, - 105, - 86, - 91, - 96, - 32, - 2, - 96, - 32, - 1, - 1, - 81, - 96, - 0, - 1, - 81, - 144, - 80, - 96, - 0, - 132, - 131, - 129, - 81, - 129, - 16, - 97, - 62, - 191, - 87, - 97, - 62, - 191, - 97, - 136, - 105, - 86, - 91, - 96, - 32, - 2, - 96, - 32, - 1, - 1, - 81, - 96, - 64, - 1, - 81, - 144, - 80, - 96, - 0, - 97, - 62, - 217, - 131, - 48, - 97, - 57, - 236, - 86, - 91, - 144, - 80, - 96, - 0, - 130, - 135, - 134, - 129, - 81, - 129, - 16, - 97, - 62, - 240, - 87, - 97, - 62, - 240, - 97, - 136, - 105, - 86, - 91, - 96, - 32, - 2, - 96, - 32, - 1, - 1, - 81, - 96, - 32, - 1, - 81, - 97, - 63, - 6, - 145, - 144, - 97, - 137, - 47, - 86, - 91, - 144, - 80, - 128, - 130, - 16, - 21, - 97, - 63, - 69, - 87, - 131, - 97, - 63, - 27, - 130, - 132, - 97, - 136, - 165, - 86, - 91, - 96, - 64, - 81, - 99, - 127, - 17, - 205, - 213, - 96, - 225, - 27, - 129, - 82, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 144, - 146, - 22, - 96, - 4, - 131, - 1, - 82, - 96, - 36, - 130, - 1, - 82, - 96, - 68, - 1, - 97, - 25, - 118, - 86, - 91, - 133, - 96, - 1, - 144, - 3, - 149, - 80, - 80, - 80, - 80, - 80, - 80, - 97, - 62, - 116, - 86, - 91, - 97, - 63, - 96, - 96, - 0, - 97, - 76, - 204, - 86, - 91, - 97, - 63, - 108, - 96, - 14, - 96, - 0, - 97, - 129, - 241, - 86, - 91, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 97, - 63, - 132, - 135, - 135, - 135, - 135, - 97, - 77, - 224, - 86, - 91, - 145, - 80, - 145, - 80, - 96, - 0, - 128, - 97, - 63, - 151, - 137, - 133, - 138, - 134, - 97, - 78, - 223, - 86, - 91, - 145, - 80, - 145, - 80, - 129, - 129, - 17, - 21, - 97, - 63, - 188, - 87, - 96, - 64, - 81, - 99, - 1, - 0, - 7, - 39, - 96, - 229, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 192, - 132, - 1, - 81, - 97, - 63, - 207, - 144, - 97, - 32, - 214, - 131, - 133, - 97, - 136, - 82, - 86, - 91, - 132, - 97, - 1, - 0, - 1, - 129, - 129, - 81, - 97, - 63, - 225, - 145, - 144, - 97, - 137, - 47, - 86, - 91, - 144, - 82, - 80, - 96, - 0, - 136, - 97, - 63, - 250, - 87, - 137, - 97, - 1, - 32, - 1, - 81, - 96, - 32, - 1, - 81, - 97, - 64, - 5, - 86, - 91, - 137, - 97, - 1, - 32, - 1, - 81, - 96, - 96, - 1, - 81, - 91, - 96, - 255, - 22, - 144, - 80, - 97, - 64, - 34, - 129, - 134, - 97, - 1, - 0, - 1, - 81, - 97, - 74, - 33, - 144, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 154, - 153, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 15, - 131, - 144, - 11, - 21, - 97, - 32, - 176, - 87, - 131, - 81, - 96, - 32, - 133, - 1, - 81, - 96, - 0, - 145, - 130, - 145, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 145, - 80, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 145, - 80, - 96, - 0, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 97, - 64, - 127, - 136, - 97, - 1, - 32, - 1, - 81, - 96, - 32, - 1, - 81, - 96, - 255, - 22, - 97, - 74, - 145, - 86, - 91, - 97, - 64, - 137, - 145, - 144, - 97, - 137, - 71, - 86, - 91, - 144, - 80, - 96, - 0, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 97, - 64, - 171, - 137, - 97, - 1, - 32, - 1, - 81, - 96, - 96, - 1, - 81, - 96, - 255, - 22, - 97, - 74, - 145, - 86, - 91, - 97, - 64, - 181, - 145, - 144, - 97, - 137, - 71, - 86, - 91, - 144, - 80, - 96, - 0, - 128, - 136, - 96, - 15, - 11, - 19, - 21, - 97, - 64, - 244, - 87, - 80, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 135, - 22, - 97, - 64, - 221, - 97, - 47, - 86, - 134, - 131, - 134, - 97, - 79, - 199, - 86, - 91, - 150, - 80, - 97, - 64, - 237, - 97, - 47, - 86, - 133, - 131, - 133, - 97, - 79, - 199, - 86, - 91, - 149, - 80, - 97, - 65, - 41, - 86, - 91, - 97, - 64, - 253, - 136, - 97, - 136, - 127, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 144, - 80, - 97, - 65, - 22, - 97, - 47, - 86, - 134, - 131, - 134, - 97, - 79, - 245, - 86, - 91, - 150, - 80, - 97, - 65, - 38, - 97, - 47, - 86, - 133, - 131, - 133, - 97, - 79, - 245, - 86, - 91, - 149, - 80, - 91, - 80, - 80, - 80, - 80, - 80, - 146, - 80, - 146, - 144, - 80, - 86, - 91, - 96, - 0, - 97, - 17, - 147, - 131, - 131, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 97, - 79, - 245, - 86, - 91, - 52, - 21, - 97, - 43, - 168, - 87, - 97, - 65, - 123, - 96, - 0, - 127, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 97, - 80, - 20, - 86, - 91, - 96, - 64, - 81, - 52, - 129, - 82, - 51, - 144, - 127, - 225, - 255, - 252, - 196, - 146, - 61, - 4, - 181, - 89, - 244, - 210, - 154, - 139, - 252, - 108, - 218, - 4, - 235, - 91, - 13, - 60, - 70, - 7, - 81, - 194, - 64, - 44, - 92, - 92, - 201, - 16, - 156, - 144, - 96, - 32, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 162, - 86, - 91, - 96, - 0, - 97, - 65, - 231, - 131, - 131, - 96, - 0, - 129, - 129, - 16, - 97, - 65, - 202, - 87, - 97, - 65, - 202, - 97, - 136, - 105, - 86, - 91, - 145, - 144, - 145, - 1, - 53, - 96, - 4, - 129, - 144, - 28, - 96, - 255, - 96, - 244, - 27, - 22, - 146, - 96, - 15, - 96, - 248, - 27, - 144, - 145, - 22, - 145, - 80, - 86, - 91, - 145, - 80, - 80, - 96, - 1, - 96, - 1, - 96, - 248, - 27, - 3, - 25, - 128, - 130, - 22, - 1, - 97, - 66, - 43, - 87, - 96, - 0, - 128, - 96, - 0, - 97, - 66, - 10, - 134, - 134, - 97, - 80, - 115, - 86, - 91, - 146, - 80, - 146, - 80, - 146, - 80, - 97, - 66, - 33, - 131, - 96, - 255, - 22, - 96, - 1, - 20, - 131, - 131, - 97, - 80, - 227, - 86, - 91, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 253, - 96, - 248, - 27, - 96, - 1, - 96, - 1, - 96, - 248, - 27, - 3, - 25, - 130, - 22, - 1, - 97, - 66, - 102, - 87, - 96, - 0, - 128, - 96, - 0, - 97, - 66, - 79, - 134, - 134, - 97, - 80, - 115, - 86, - 91, - 146, - 80, - 146, - 80, - 146, - 80, - 97, - 66, - 33, - 131, - 96, - 255, - 22, - 96, - 1, - 20, - 131, - 131, - 97, - 82, - 206, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 248, - 27, - 3, - 25, - 129, - 22, - 96, - 3, - 96, - 249, - 27, - 20, - 128, - 97, - 66, - 143, - 87, - 80, - 96, - 1, - 96, - 1, - 96, - 248, - 27, - 3, - 25, - 129, - 22, - 96, - 5, - 96, - 248, - 27, - 20, - 91, - 21, - 97, - 67, - 74, - 87, - 96, - 64, - 128, - 81, - 96, - 160, - 129, - 1, - 130, - 82, - 132, - 53, - 96, - 0, - 144, - 129, - 26, - 96, - 15, - 129, - 22, - 96, - 6, - 20, - 96, - 255, - 144, - 129, - 22, - 96, - 128, - 133, - 1, - 82, - 96, - 1, - 96, - 9, - 137, - 1, - 53, - 132, - 26, - 128, - 138, - 1, - 130, - 129, - 1, - 53, - 96, - 8, - 131, - 140, - 3, - 96, - 0, - 25, - 1, - 129, - 2, - 97, - 1, - 0, - 144, - 129, - 3, - 146, - 144, - 146, - 28, - 146, - 53, - 136, - 26, - 96, - 10, - 144, - 129, - 10, - 147, - 144, - 147, - 2, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 144, - 129, - 22, - 96, - 96, - 139, - 1, - 82, - 96, - 11, - 142, - 1, - 53, - 96, - 10, - 25, - 144, - 149, - 1, - 144, - 145, - 2, - 144, - 145, - 3, - 146, - 144, - 146, - 28, - 129, - 140, - 1, - 53, - 144, - 150, - 26, - 144, - 10, - 148, - 144, - 148, - 2, - 144, - 147, - 22, - 148, - 132, - 1, - 148, - 144, - 148, - 82, - 144, - 134, - 1, - 53, - 96, - 192, - 28, - 96, - 32, - 131, - 1, - 82, - 96, - 4, - 28, - 144, - 145, - 22, - 129, - 82, - 97, - 67, - 65, - 129, - 97, - 84, - 180, - 86, - 91, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 245, - 96, - 248, - 27, - 96, - 1, - 96, - 1, - 96, - 248, - 27, - 3, - 25, - 130, - 22, - 1, - 97, - 68, - 59, - 87, - 96, - 0, - 128, - 96, - 0, - 128, - 96, - 0, - 128, - 96, - 0, - 128, - 96, - 0, - 97, - 68, - 9, - 140, - 140, - 96, - 1, - 128, - 131, - 1, - 53, - 96, - 232, - 28, - 147, - 96, - 4, - 132, - 1, - 53, - 96, - 96, - 28, - 147, - 96, - 24, - 129, - 1, - 53, - 96, - 240, - 144, - 129, - 28, - 148, - 96, - 26, - 131, - 1, - 53, - 130, - 28, - 148, - 96, - 28, - 132, - 1, - 53, - 131, - 28, - 148, - 96, - 30, - 133, - 1, - 53, - 132, - 28, - 148, - 96, - 32, - 129, - 1, - 53, - 144, - 148, - 28, - 147, - 96, - 35, - 129, - 1, - 53, - 96, - 0, - 144, - 129, - 26, - 96, - 10, - 144, - 129, - 10, - 96, - 36, - 132, - 1, - 53, - 96, - 8, - 96, - 35, - 25, - 96, - 34, - 135, - 1, - 53, - 134, - 26, - 144, - 129, - 1, - 130, - 2, - 97, - 1, - 0, - 144, - 129, - 3, - 147, - 144, - 147, - 28, - 147, - 144, - 147, - 2, - 152, - 149, - 131, - 1, - 128, - 53, - 144, - 149, - 26, - 144, - 147, - 10, - 147, - 144, - 150, - 1, - 53, - 96, - 0, - 25, - 145, - 144, - 148, - 3, - 1, - 2, - 144, - 147, - 3, - 28, - 145, - 144, - 145, - 2, - 144, - 86, - 91, - 152, - 80, - 152, - 80, - 152, - 80, - 152, - 80, - 152, - 80, - 152, - 80, - 152, - 80, - 152, - 80, - 152, - 80, - 97, - 68, - 44, - 137, - 137, - 137, - 137, - 137, - 137, - 137, - 137, - 137, - 97, - 92, - 89, - 86, - 91, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 61, - 96, - 250, - 27, - 96, - 1, - 96, - 1, - 96, - 248, - 27, - 3, - 25, - 130, - 22, - 1, - 97, - 68, - 115, - 87, - 96, - 0, - 128, - 97, - 68, - 93, - 133, - 133, - 97, - 95, - 236, - 86, - 91, - 145, - 80, - 145, - 80, - 97, - 68, - 107, - 130, - 130, - 97, - 96, - 51, - 86, - 91, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 63, - 96, - 250, - 27, - 96, - 1, - 96, - 1, - 96, - 248, - 27, - 3, - 25, - 130, - 22, - 1, - 97, - 68, - 241, - 87, - 96, - 0, - 128, - 128, - 133, - 53, - 96, - 184, - 129, - 144, - 28, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 144, - 96, - 10, - 129, - 129, - 26, - 129, - 10, - 96, - 11, - 138, - 1, - 53, - 96, - 8, - 96, - 9, - 133, - 144, - 26, - 96, - 10, - 25, - 129, - 1, - 130, - 2, - 97, - 1, - 0, - 144, - 129, - 3, - 147, - 144, - 147, - 28, - 147, - 144, - 147, - 2, - 148, - 131, - 26, - 144, - 147, - 10, - 96, - 1, - 131, - 141, - 1, - 1, - 53, - 146, - 139, - 3, - 96, - 0, - 25, - 1, - 144, - 147, - 2, - 144, - 3, - 28, - 2, - 146, - 80, - 146, - 80, - 146, - 80, - 97, - 68, - 107, - 131, - 131, - 131, - 97, - 99, - 52, - 86, - 91, - 96, - 64, - 81, - 99, - 27, - 24, - 145, - 237, - 96, - 227, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 0, - 131, - 131, - 96, - 1, - 129, - 129, - 16, - 97, - 69, - 31, - 87, - 97, - 69, - 31, - 97, - 136, - 105, - 86, - 91, - 145, - 144, - 145, - 1, - 53, - 96, - 248, - 28, - 145, - 80, - 96, - 2, - 144, - 80, - 96, - 0, - 128, - 128, - 91, - 132, - 96, - 255, - 22, - 129, - 20, - 97, - 66, - 33, - 87, - 131, - 146, - 80, - 135, - 135, - 132, - 129, - 129, - 16, - 97, - 69, - 81, - 87, - 97, - 69, - 81, - 97, - 136, - 105, - 86, - 91, - 97, - 69, - 98, - 146, - 1, - 53, - 96, - 248, - 28, - 144, - 80, - 132, - 97, - 137, - 47, - 86, - 91, - 97, - 69, - 109, - 144, - 96, - 1, - 97, - 137, - 47, - 86, - 91, - 145, - 80, - 134, - 130, - 17, - 21, - 97, - 69, - 147, - 87, - 96, - 64, - 81, - 99, - 128, - 246, - 59, - 209, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 129, - 1, - 131, - 144, - 82, - 96, - 36, - 1, - 97, - 25, - 118, - 86, - 91, - 54, - 96, - 0, - 97, - 69, - 162, - 132, - 134, - 139, - 141, - 97, - 137, - 102, - 86, - 91, - 148, - 150, - 80, - 134, - 148, - 144, - 146, - 80, - 144, - 80, - 97, - 69, - 197, - 97, - 69, - 188, - 130, - 96, - 1, - 129, - 134, - 97, - 137, - 102, - 86, - 91, - 138, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 80, - 80, - 128, - 97, - 69, - 209, - 144, - 97, - 137, - 144, - 86, - 91, - 144, - 80, - 97, - 69, - 50, - 86, - 91, - 97, - 69, - 229, - 96, - 0, - 51, - 132, - 132, - 97, - 101, - 143, - 86, - 91, - 80, - 80, - 96, - 64, - 81, - 129, - 129, - 82, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 131, - 22, - 144, - 51, - 144, - 127, - 11, - 11, - 130, - 25, - 83, - 229, - 84, - 91, - 113, - 242, - 8, - 88, - 51, - 228, - 168, - 223, - 208, - 217, - 155, - 189, - 255, - 81, - 24, - 152, - 103, - 42, - 232, - 23, - 154, - 152, - 45, - 243, - 144, - 96, - 32, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 163, - 80, - 80, - 86, - 91, - 97, - 70, - 55, - 96, - 0, - 131, - 131, - 97, - 101, - 221, - 86, - 91, - 129, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 127, - 28, - 113, - 30, - 202, - 141, - 11, - 105, - 75, - 188, - 176, - 161, - 68, - 98, - 167, - 0, - 98, - 34, - 231, - 33, - 149, - 75, - 44, - 95, - 247, - 152, - 246, - 6, - 129, - 126, - 177, - 16, - 50, - 130, - 96, - 64, - 81, - 97, - 70, - 114, - 145, - 129, - 82, - 96, - 32, - 1, - 144, - 86, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 162, - 80, - 80, - 86, - 91, - 96, - 64, - 81, - 99, - 46, - 26, - 125, - 77, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 129, - 1, - 130, - 144, - 82, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 132, - 22, - 144, - 99, - 46, - 26, - 125, - 77, - 144, - 96, - 36, - 1, - 96, - 0, - 96, - 64, - 81, - 128, - 131, - 3, - 129, - 96, - 0, - 135, - 128, - 59, - 21, - 128, - 21, - 97, - 70, - 192, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 90, - 241, - 21, - 128, - 21, - 97, - 70, - 212, - 87, - 61, - 96, - 0, - 128, - 62, - 61, - 96, - 0, - 253, - 91, - 80, - 80, - 96, - 64, - 128, - 81, - 96, - 0, - 128, - 130, - 82, - 96, - 32, - 130, - 1, - 146, - 131, - 144, - 82, - 147, - 80, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 134, - 22, - 146, - 80, - 132, - 145, - 97, - 71, - 1, - 145, - 144, - 97, - 136, - 228, - 86, - 91, - 96, - 0, - 96, - 64, - 81, - 128, - 131, - 3, - 129, - 133, - 135, - 90, - 241, - 146, - 80, - 80, - 80, - 61, - 128, - 96, - 0, - 129, - 20, - 97, - 71, - 62, - 87, - 96, - 64, - 81, - 145, - 80, - 96, - 31, - 25, - 96, - 63, - 61, - 1, - 22, - 130, - 1, - 96, - 64, - 82, - 61, - 130, - 82, - 61, - 96, - 0, - 96, - 32, - 132, - 1, - 62, - 97, - 71, - 67, - 86, - 91, - 96, - 96, - 145, - 80, - 91, - 80, - 80, - 144, - 80, - 128, - 97, - 40, - 3, - 87, - 96, - 64, - 81, - 99, - 117, - 244, - 38, - 131, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 0, - 96, - 64, - 81, - 99, - 169, - 5, - 156, - 187, - 96, - 224, - 27, - 96, - 0, - 82, - 131, - 96, - 4, - 82, - 130, - 96, - 36, - 82, - 96, - 32, - 96, - 0, - 96, - 68, - 96, - 0, - 128, - 137, - 90, - 241, - 61, - 21, - 96, - 31, - 61, - 17, - 96, - 1, - 96, - 0, - 81, - 20, - 22, - 23, - 22, - 145, - 80, - 96, - 0, - 96, - 96, - 82, - 128, - 96, - 64, - 82, - 80, - 128, - 97, - 40, - 3, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 15, - 96, - 36, - 130, - 1, - 82, - 110, - 21, - 20, - 144, - 83, - 148, - 209, - 145, - 84, - 151, - 209, - 144, - 82, - 83, - 17, - 81, - 96, - 138, - 27, - 96, - 68, - 130, - 1, - 82, - 96, - 100, - 1, - 97, - 25, - 118, - 86, - 91, - 97, - 71, - 236, - 129, - 97, - 102, - 98, - 86, - 91, - 128, - 81, - 96, - 6, - 146, - 144, - 146, - 1, - 128, - 84, - 96, - 32, - 131, - 1, - 81, - 96, - 64, - 132, - 1, - 81, - 96, - 96, - 133, - 1, - 81, - 96, - 128, - 134, - 1, - 81, - 96, - 160, - 135, - 1, - 81, - 96, - 192, - 136, - 1, - 81, - 96, - 224, - 144, - 152, - 1, - 81, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 144, - 153, - 22, - 113, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 25, - 144, - 150, - 22, - 149, - 144, - 149, - 23, - 96, - 1, - 96, - 128, - 27, - 97, - 255, - 255, - 149, - 134, - 22, - 2, - 23, - 99, - 255, - 255, - 255, - 255, - 96, - 144, - 27, - 25, - 22, - 96, - 1, - 96, - 144, - 27, - 147, - 133, - 22, - 147, - 144, - 147, - 2, - 97, - 255, - 255, - 96, - 160, - 27, - 25, - 22, - 146, - 144, - 146, - 23, - 96, - 1, - 96, - 160, - 27, - 145, - 132, - 22, - 145, - 144, - 145, - 2, - 23, - 99, - 255, - 255, - 255, - 255, - 96, - 176, - 27, - 25, - 22, - 96, - 1, - 96, - 176, - 27, - 145, - 131, - 22, - 145, - 144, - 145, - 2, - 97, - 255, - 255, - 96, - 192, - 27, - 25, - 22, - 23, - 96, - 1, - 96, - 192, - 27, - 145, - 144, - 146, - 22, - 2, - 23, - 100, - 255, - 255, - 255, - 255, - 255, - 96, - 208, - 27, - 25, - 22, - 96, - 1, - 96, - 208, - 27, - 99, - 255, - 255, - 255, - 255, - 144, - 147, - 22, - 146, - 144, - 146, - 2, - 96, - 255, - 96, - 240, - 27, - 25, - 22, - 145, - 144, - 145, - 23, - 96, - 1, - 96, - 240, - 27, - 146, - 21, - 21, - 146, - 144, - 146, - 2, - 145, - 144, - 145, - 23, - 144, - 85, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 133, - 97, - 1, - 0, - 1, - 81, - 96, - 0, - 1, - 81, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 144, - 80, - 96, - 0, - 97, - 73, - 34, - 135, - 97, - 1, - 0, - 1, - 81, - 96, - 128, - 1, - 81, - 97, - 255, - 255, - 22, - 97, - 39, - 16, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 145, - 144, - 145, - 2, - 4, - 144, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 73, - 47, - 136, - 97, - 102, - 127, - 86, - 91, - 144, - 80, - 97, - 73, - 74, - 135, - 132, - 138, - 97, - 1, - 0, - 1, - 81, - 96, - 128, - 1, - 81, - 97, - 255, - 255, - 22, - 132, - 97, - 102, - 158, - 86, - 91, - 148, - 80, - 97, - 73, - 92, - 133, - 132, - 132, - 132, - 138, - 96, - 15, - 11, - 97, - 103, - 173, - 86, - 91, - 147, - 80, - 80, - 80, - 80, - 147, - 80, - 147, - 145, - 80, - 80, - 86, - 91, - 96, - 0, - 97, - 73, - 141, - 97, - 47, - 86, - 133, - 97, - 1, - 32, - 1, - 81, - 96, - 32, - 1, - 81, - 96, - 255, - 22, - 133, - 97, - 104, - 200, - 144, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 146, - 80, - 97, - 73, - 186, - 97, - 47, - 86, - 133, - 97, - 1, - 32, - 1, - 81, - 96, - 96, - 1, - 81, - 96, - 255, - 22, - 132, - 97, - 104, - 200, - 144, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 145, - 80, - 96, - 0, - 128, - 97, - 73, - 216, - 134, - 128, - 81, - 96, - 32, - 144, - 145, - 1, - 81, - 144, - 145, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 145, - 130, - 22, - 147, - 80, - 22, - 144, - 80, - 96, - 0, - 97, - 73, - 244, - 134, - 132, - 97, - 104, - 223, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 74, - 2, - 134, - 132, - 97, - 104, - 223, - 86, - 91, - 144, - 80, - 97, - 74, - 21, - 129, - 131, - 17, - 130, - 132, - 3, - 2, - 131, - 3, - 97, - 74, - 55, - 86, - 91, - 152, - 151, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 97, - 74, - 45, - 131, - 97, - 74, - 145, - 86, - 91, - 144, - 147, - 4, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 96, - 1, - 96, - 128, - 27, - 130, - 16, - 97, - 74, - 73, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 144, - 86, - 91, - 96, - 0, - 97, - 24, - 76, - 130, - 96, - 192, - 1, - 81, - 99, - 255, - 255, - 255, - 255, - 22, - 97, - 74, - 110, - 132, - 96, - 96, - 1, - 81, - 97, - 255, - 255, - 22, - 97, - 104, - 244, - 86, - 91, - 1, - 97, - 105, - 65, - 86, - 91, - 96, - 0, - 128, - 97, - 74, - 132, - 134, - 134, - 134, - 134, - 134, - 97, - 103, - 173, - 86, - 91, - 144, - 150, - 3, - 150, - 149, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 97, - 74, - 158, - 130, - 96, - 18, - 97, - 136, - 82, - 86, - 91, - 97, - 24, - 76, - 144, - 96, - 10, - 97, - 138, - 141, - 86, - 91, - 96, - 0, - 128, - 99, - 1, - 225, - 133, - 89, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 132, - 2, - 4, - 144, - 80, - 96, - 0, - 97, - 39, - 16, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 134, - 2, - 4, - 144, - 80, - 134, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 16, - 21, - 97, - 74, - 254, - 87, - 96, - 64, - 81, - 99, - 177, - 21, - 88, - 223, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 129, - 1, - 136, - 144, - 82, - 96, - 36, - 1, - 97, - 25, - 118, - 86, - 91, - 134, - 96, - 0, - 3, - 97, - 75, - 31, - 87, - 96, - 64, - 81, - 99, - 34, - 5, - 51, - 99, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 129, - 21, - 128, - 97, - 75, - 42, - 87, - 80, - 128, - 21, - 91, - 21, - 97, - 75, - 57, - 87, - 133, - 146, - 80, - 80, - 80, - 97, - 33, - 31, - 86, - 91, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 135, - 3, - 97, - 75, - 82, - 87, - 133, - 146, - 80, - 80, - 80, - 97, - 33, - 31, - 86, - 91, - 96, - 0, - 97, - 75, - 102, - 136, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 97, - 136, - 165, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 75, - 115, - 130, - 97, - 105, - 84, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 75, - 147, - 132, - 99, - 59, - 154, - 202, - 0, - 97, - 75, - 137, - 136, - 97, - 105, - 241, - 86, - 91, - 97, - 32, - 214, - 145, - 144, - 97, - 137, - 71, - 86, - 91, - 144, - 80, - 96, - 0, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 97, - 75, - 170, - 131, - 133, - 97, - 138, - 153, - 86, - 91, - 97, - 75, - 180, - 145, - 144, - 97, - 139, - 52, - 86, - 91, - 144, - 80, - 96, - 0, - 103, - 27, - 193, - 109, - 103, - 78, - 200, - 0, - 0, - 97, - 75, - 203, - 135, - 128, - 97, - 137, - 71, - 86, - 91, - 97, - 75, - 213, - 145, - 144, - 97, - 139, - 98, - 86, - 91, - 144, - 80, - 96, - 0, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 97, - 75, - 236, - 137, - 132, - 97, - 137, - 71, - 86, - 91, - 97, - 75, - 246, - 145, - 144, - 97, - 139, - 52, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 76, - 4, - 130, - 133, - 97, - 136, - 165, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 76, - 17, - 130, - 97, - 106, - 149, - 86, - 91, - 144, - 80, - 97, - 76, - 29, - 129, - 143, - 97, - 65, - 53, - 86, - 91, - 159, - 158, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 4, - 130, - 1, - 84, - 96, - 255, - 22, - 21, - 97, - 76, - 74, - 87, - 96, - 4, - 130, - 1, - 128, - 84, - 96, - 255, - 25, - 22, - 144, - 85, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 129, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 2, - 131, - 1, - 96, - 32, - 82, - 96, - 64, - 144, - 32, - 84, - 96, - 255, - 22, - 97, - 26, - 105, - 87, - 96, - 3, - 130, - 1, - 128, - 84, - 96, - 1, - 128, - 130, - 1, - 131, - 85, - 96, - 0, - 146, - 131, - 82, - 96, - 32, - 128, - 132, - 32, - 144, - 146, - 1, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 134, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 25, - 144, - 145, - 22, - 129, - 23, - 144, - 145, - 85, - 131, - 82, - 96, - 2, - 133, - 1, - 144, - 145, - 82, - 96, - 64, - 144, - 145, - 32, - 128, - 84, - 96, - 255, - 25, - 22, - 144, - 145, - 23, - 144, - 85, - 80, - 80, - 86, - 91, - 97, - 38, - 4, - 131, - 51, - 132, - 132, - 97, - 108, - 62, - 86, - 91, - 96, - 3, - 129, - 1, - 84, - 21, - 97, - 76, - 222, - 87, - 97, - 76, - 222, - 97, - 139, - 118, - 86, - 91, - 96, - 4, - 129, - 1, - 128, - 84, - 96, - 255, - 25, - 22, - 96, - 1, - 23, - 144, - 85, - 97, - 25, - 233, - 96, - 3, - 130, - 1, - 96, - 0, - 97, - 130, - 18, - 86, - 91, - 96, - 0, - 128, - 128, - 128, - 97, - 77, - 11, - 135, - 135, - 135, - 97, - 48, - 92, - 86, - 91, - 144, - 80, - 96, - 0, - 129, - 19, - 21, - 97, - 77, - 90, - 87, - 146, - 80, - 130, - 97, - 77, - 37, - 135, - 51, - 136, - 132, - 97, - 108, - 197, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 134, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 1, - 136, - 1, - 96, - 32, - 82, - 96, - 64, - 129, - 32, - 128, - 84, - 131, - 146, - 144, - 97, - 77, - 79, - 144, - 132, - 144, - 97, - 137, - 47, - 86, - 91, - 144, - 145, - 85, - 80, - 97, - 77, - 181, - 144, - 80, - 86, - 91, - 96, - 0, - 129, - 18, - 21, - 97, - 77, - 181, - 87, - 97, - 77, - 108, - 129, - 97, - 139, - 140, - 86, - 91, - 145, - 80, - 97, - 77, - 122, - 135, - 51, - 136, - 133, - 97, - 101, - 143, - 86, - 91, - 144, - 147, - 80, - 145, - 80, - 130, - 21, - 97, - 77, - 181, - 87, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 134, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 1, - 136, - 1, - 96, - 32, - 82, - 96, - 64, - 129, - 32, - 128, - 84, - 133, - 146, - 144, - 97, - 77, - 175, - 144, - 132, - 144, - 97, - 136, - 82, - 86, - 91, - 144, - 145, - 85, - 80, - 80, - 91, - 80, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 144, - 148, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 2, - 144, - 149, - 1, - 96, - 32, - 82, - 96, - 64, - 144, - 148, - 32, - 128, - 84, - 96, - 255, - 25, - 22, - 144, - 85, - 147, - 144, - 80, - 86, - 91, - 97, - 77, - 232, - 97, - 130, - 48, - 86, - 91, - 96, - 0, - 97, - 77, - 242, - 97, - 130, - 48, - 86, - 91, - 96, - 128, - 135, - 1, - 81, - 96, - 0, - 144, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 97, - 78, - 22, - 87, - 135, - 97, - 1, - 0, - 1, - 81, - 96, - 64, - 1, - 81, - 97, - 78, - 33, - 86, - 91, - 135, - 97, - 1, - 0, - 1, - 81, - 96, - 160, - 1, - 81, - 91, - 97, - 255, - 255, - 22, - 144, - 80, - 97, - 78, - 55, - 136, - 128, - 81, - 96, - 32, - 144, - 145, - 1, - 81, - 144, - 145, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 144, - 129, - 22, - 96, - 96, - 133, - 1, - 82, - 22, - 96, - 64, - 131, - 1, - 82, - 97, - 78, - 87, - 136, - 134, - 97, - 47, - 187, - 86, - 91, - 146, - 80, - 97, - 78, - 109, - 136, - 131, - 96, - 64, - 1, - 81, - 132, - 96, - 96, - 1, - 81, - 134, - 97, - 48, - 1, - 86, - 91, - 130, - 82, - 97, - 78, - 155, - 135, - 97, - 78, - 134, - 87, - 136, - 97, - 1, - 32, - 1, - 81, - 96, - 96, - 1, - 81, - 97, - 78, - 145, - 86, - 91, - 136, - 97, - 1, - 32, - 1, - 81, - 96, - 32, - 1, - 81, - 91, - 135, - 144, - 96, - 255, - 22, - 97, - 104, - 200, - 86, - 91, - 96, - 128, - 131, - 1, - 129, - 144, - 82, - 96, - 64, - 137, - 1, - 81, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 192, - 132, - 1, - 82, - 97, - 39, - 16, - 144, - 97, - 78, - 196, - 144, - 131, - 144, - 97, - 137, - 71, - 86, - 91, - 97, - 78, - 206, - 145, - 144, - 97, - 139, - 98, - 86, - 91, - 96, - 160, - 131, - 1, - 82, - 80, - 145, - 80, - 148, - 80, - 148, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 128, - 96, - 0, - 97, - 79, - 12, - 137, - 97, - 1, - 0, - 1, - 81, - 96, - 128, - 1, - 81, - 97, - 255, - 255, - 22, - 97, - 39, - 16, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 145, - 144, - 145, - 2, - 4, - 144, - 86, - 91, - 144, - 80, - 134, - 21, - 97, - 79, - 39, - 87, - 96, - 64, - 136, - 1, - 81, - 96, - 96, - 137, - 1, - 81, - 149, - 80, - 146, - 80, - 97, - 79, - 55, - 86, - 91, - 96, - 64, - 136, - 1, - 81, - 96, - 96, - 137, - 1, - 81, - 144, - 149, - 80, - 146, - 80, - 91, - 97, - 79, - 89, - 136, - 96, - 192, - 1, - 81, - 137, - 96, - 160, - 1, - 81, - 138, - 96, - 128, - 1, - 81, - 97, - 79, - 83, - 145, - 144, - 97, - 136, - 82, - 86, - 91, - 144, - 97, - 104, - 223, - 86, - 91, - 97, - 79, - 99, - 144, - 132, - 97, - 137, - 47, - 86, - 91, - 145, - 80, - 134, - 21, - 97, - 79, - 149, - 87, - 97, - 79, - 142, - 130, - 138, - 97, - 1, - 0, - 1, - 81, - 96, - 0, - 1, - 81, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 131, - 137, - 140, - 96, - 0, - 1, - 81, - 97, - 103, - 173, - 86, - 91, - 147, - 80, - 97, - 79, - 187, - 86, - 91, - 97, - 79, - 184, - 130, - 138, - 97, - 1, - 0, - 1, - 81, - 96, - 0, - 1, - 81, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 131, - 137, - 140, - 96, - 0, - 1, - 81, - 97, - 109, - 4, - 86, - 91, - 147, - 80, - 91, - 80, - 80, - 80, - 148, - 80, - 148, - 146, - 80, - 80, - 80, - 86, - 91, - 130, - 130, - 2, - 129, - 21, - 21, - 132, - 21, - 133, - 131, - 4, - 133, - 20, - 23, - 22, - 97, - 79, - 223, - 87, - 96, - 0, - 128, - 253, - 91, - 96, - 1, - 130, - 96, - 1, - 131, - 3, - 4, - 1, - 129, - 21, - 21, - 2, - 144, - 80, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 130, - 130, - 2, - 129, - 21, - 21, - 132, - 21, - 133, - 131, - 4, - 133, - 20, - 23, - 22, - 97, - 80, - 13, - 87, - 96, - 0, - 128, - 253, - 91, - 4, - 146, - 145, - 80, - 80, - 86, - 91, - 52, - 21, - 97, - 26, - 105, - 87, - 97, - 80, - 36, - 130, - 130, - 97, - 76, - 48, - 86, - 91, - 128, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 99, - 208, - 227, - 13, - 176, - 52, - 96, - 64, - 81, - 130, - 99, - 255, - 255, - 255, - 255, - 22, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 0, - 96, - 64, - 81, - 128, - 131, - 3, - 129, - 133, - 136, - 128, - 59, - 21, - 128, - 21, - 97, - 80, - 95, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 90, - 241, - 21, - 128, - 21, - 97, - 67, - 65, - 87, - 61, - 96, - 0, - 128, - 62, - 61, - 96, - 0, - 253, - 91, - 96, - 0, - 128, - 128, - 96, - 11, - 132, - 16, - 21, - 97, - 80, - 163, - 87, - 96, - 64, - 81, - 99, - 112, - 206, - 228, - 175, - 96, - 225, - 27, - 129, - 82, - 96, - 11, - 96, - 4, - 130, - 1, - 82, - 96, - 36, - 129, - 1, - 133, - 144, - 82, - 96, - 68, - 1, - 97, - 25, - 118, - 86, - 91, - 80, - 80, - 80, - 144, - 53, - 96, - 252, - 129, - 144, - 28, - 146, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 96, - 184, - 131, - 144, - 28, - 22, - 146, - 96, - 255, - 96, - 176, - 132, - 144, - 28, - 22, - 96, - 10, - 10, - 96, - 80, - 147, - 144, - 147, - 27, - 96, - 9, - 25, - 144, - 145, - 1, - 96, - 8, - 2, - 97, - 1, - 0, - 3, - 28, - 145, - 144, - 145, - 2, - 144, - 86, - 91, - 96, - 0, - 128, - 97, - 80, - 239, - 132, - 97, - 33, - 165, - 86, - 91, - 97, - 81, - 23, - 87, - 96, - 64, - 81, - 99, - 106, - 36, - 6, - 163, - 96, - 225, - 27, - 129, - 82, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 133, - 22, - 96, - 4, - 130, - 1, - 82, - 96, - 36, - 1, - 97, - 25, - 118, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 132, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 8, - 96, - 32, - 129, - 144, - 82, - 96, - 64, - 144, - 145, - 32, - 96, - 7, - 129, - 1, - 84, - 145, - 1, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 145, - 130, - 22, - 145, - 22, - 134, - 21, - 97, - 81, - 104, - 87, - 97, - 81, - 101, - 134, - 97, - 81, - 91, - 51, - 133, - 97, - 43, - 170, - 86, - 91, - 97, - 10, - 24, - 51, - 133, - 97, - 43, - 170, - 86, - 91, - 148, - 80, - 91, - 132, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 0, - 3, - 97, - 81, - 146, - 87, - 96, - 64, - 81, - 99, - 2, - 0, - 232, - 169, - 96, - 227, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 97, - 81, - 159, - 134, - 97, - 5, - 0, - 135, - 97, - 110, - 64, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 145, - 130, - 22, - 149, - 80, - 22, - 146, - 80, - 131, - 21, - 128, - 97, - 81, - 186, - 87, - 80, - 130, - 21, - 91, - 21, - 97, - 81, - 216, - 87, - 96, - 64, - 81, - 99, - 33, - 60, - 124, - 197, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 0, - 96, - 64, - 81, - 128, - 97, - 1, - 0, - 1, - 96, - 64, - 82, - 128, - 51, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 136, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 66, - 129, - 82, - 96, - 32, - 1, - 134, - 129, - 82, - 96, - 32, - 1, - 133, - 129, - 82, - 96, - 32, - 1, - 132, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 131, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 97, - 82, - 61, - 136, - 97, - 110, - 64, - 86, - 91, - 96, - 15, - 11, - 144, - 82, - 144, - 80, - 97, - 82, - 77, - 129, - 97, - 110, - 86, - 86, - 91, - 80, - 80, - 80, - 129, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 131, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 136, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 127, - 253, - 255, - 236, - 167, - 81, - 240, - 220, - 170, - 183, - 85, - 49, - 203, - 129, - 60, - 18, - 187, - 253, - 86, - 238, - 62, - 150, - 76, - 196, - 113, - 215, - 239, - 67, - 147, - 36, - 2, - 238, - 24, - 136, - 136, - 139, - 96, - 64, - 81, - 97, - 82, - 187, - 147, - 146, - 145, - 144, - 146, - 131, - 82, - 96, - 32, - 131, - 1, - 145, - 144, - 145, - 82, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 64, - 130, - 1, - 82, - 96, - 96, - 1, - 144, - 86, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 164, - 80, - 80, - 80, - 147, - 80, - 147, - 145, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 97, - 82, - 218, - 132, - 97, - 33, - 165, - 86, - 91, - 97, - 83, - 2, - 87, - 96, - 64, - 81, - 99, - 106, - 36, - 6, - 163, - 96, - 225, - 27, - 129, - 82, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 133, - 22, - 96, - 4, - 130, - 1, - 82, - 96, - 36, - 1, - 97, - 25, - 118, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 132, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 8, - 96, - 32, - 129, - 144, - 82, - 96, - 64, - 144, - 145, - 32, - 96, - 7, - 129, - 1, - 84, - 145, - 1, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 145, - 130, - 22, - 145, - 22, - 134, - 21, - 97, - 83, - 104, - 87, - 51, - 96, - 0, - 144, - 129, - 82, - 96, - 10, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 138, - 22, - 132, - 82, - 144, - 145, - 82, - 144, - 32, - 84, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 148, - 80, - 91, - 132, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 0, - 3, - 97, - 83, - 146, - 87, - 96, - 64, - 81, - 99, - 2, - 0, - 232, - 169, - 96, - 227, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 97, - 83, - 168, - 134, - 97, - 83, - 159, - 135, - 97, - 110, - 64, - 86, - 91, - 97, - 5, - 0, - 144, - 97, - 136, - 127, - 86, - 91, - 129, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 145, - 80, - 128, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 144, - 80, - 128, - 148, - 80, - 129, - 149, - 80, - 80, - 80, - 96, - 0, - 96, - 64, - 81, - 128, - 97, - 1, - 0, - 1, - 96, - 64, - 82, - 128, - 51, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 136, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 66, - 129, - 82, - 96, - 32, - 1, - 134, - 129, - 82, - 96, - 32, - 1, - 133, - 129, - 82, - 96, - 32, - 1, - 132, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 131, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 97, - 84, - 45, - 136, - 97, - 110, - 64, - 86, - 91, - 97, - 84, - 54, - 144, - 97, - 136, - 127, - 86, - 91, - 96, - 15, - 11, - 144, - 82, - 144, - 80, - 97, - 84, - 70, - 129, - 97, - 110, - 86, - 86, - 91, - 80, - 80, - 80, - 129, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 131, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 136, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 127, - 48, - 132, - 202, - 244, - 137, - 102, - 92, - 171, - 7, - 69, - 44, - 254, - 79, - 61, - 14, - 181, - 224, - 220, - 21, - 234, - 198, - 252, - 101, - 128, - 152, - 133, - 142, - 99, - 158, - 112, - 229, - 58, - 136, - 136, - 139, - 96, - 64, - 81, - 97, - 82, - 187, - 147, - 146, - 145, - 144, - 146, - 131, - 82, - 96, - 32, - 131, - 1, - 145, - 144, - 145, - 82, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 64, - 130, - 1, - 82, - 96, - 96, - 1, - 144, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 131, - 96, - 64, - 1, - 81, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 0, - 3, - 97, - 84, - 231, - 87, - 96, - 64, - 81, - 99, - 175, - 69, - 140, - 7, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 32, - 128, - 133, - 1, - 128, - 81, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 8, - 144, - 146, - 82, - 96, - 64, - 144, - 145, - 32, - 144, - 81, - 97, - 85, - 17, - 144, - 97, - 33, - 165, - 86, - 91, - 97, - 85, - 63, - 87, - 96, - 32, - 133, - 1, - 81, - 96, - 64, - 81, - 99, - 106, - 36, - 6, - 163, - 96, - 225, - 27, - 129, - 82, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 144, - 145, - 22, - 96, - 4, - 130, - 1, - 82, - 96, - 36, - 1, - 97, - 25, - 118, - 86, - 91, - 96, - 128, - 133, - 1, - 81, - 96, - 15, - 128, - 84, - 96, - 255, - 144, - 146, - 22, - 96, - 1, - 20, - 96, - 255, - 25, - 144, - 146, - 22, - 145, - 144, - 145, - 23, - 144, - 85, - 96, - 2, - 129, - 1, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 51, - 20, - 97, - 85, - 133, - 87, - 96, - 6, - 129, - 1, - 84, - 96, - 1, - 96, - 144, - 27, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 85, - 150, - 86, - 91, - 96, - 6, - 129, - 1, - 84, - 96, - 1, - 96, - 192, - 27, - 144, - 4, - 97, - 255, - 255, - 22, - 91, - 96, - 15, - 128, - 84, - 97, - 255, - 255, - 146, - 144, - 146, - 22, - 96, - 1, - 96, - 168, - 27, - 2, - 97, - 255, - 255, - 96, - 168, - 27, - 25, - 131, - 22, - 129, - 23, - 144, - 145, - 85, - 96, - 255, - 144, - 129, - 22, - 145, - 22, - 23, - 21, - 97, - 86, - 17, - 87, - 96, - 4, - 129, - 1, - 84, - 96, - 17, - 85, - 96, - 7, - 129, - 1, - 84, - 96, - 15, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 146, - 131, - 22, - 97, - 1, - 0, - 2, - 97, - 1, - 0, - 96, - 1, - 96, - 168, - 27, - 3, - 25, - 144, - 145, - 22, - 23, - 144, - 85, - 96, - 8, - 130, - 1, - 84, - 96, - 16, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 25, - 22, - 145, - 144, - 146, - 22, - 23, - 144, - 85, - 97, - 86, - 92, - 86, - 91, - 96, - 5, - 129, - 1, - 84, - 96, - 17, - 85, - 96, - 8, - 129, - 1, - 84, - 96, - 15, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 146, - 131, - 22, - 97, - 1, - 0, - 2, - 97, - 1, - 0, - 96, - 1, - 96, - 168, - 27, - 3, - 25, - 144, - 145, - 22, - 23, - 144, - 85, - 96, - 7, - 130, - 1, - 84, - 96, - 16, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 25, - 22, - 145, - 144, - 146, - 22, - 23, - 144, - 85, - 91, - 97, - 86, - 100, - 97, - 130, - 48, - 86, - 91, - 96, - 0, - 128, - 97, - 86, - 116, - 136, - 96, - 32, - 1, - 81, - 97, - 111, - 185, - 86, - 91, - 145, - 80, - 145, - 80, - 129, - 97, - 86, - 150, - 87, - 96, - 64, - 81, - 99, - 57, - 139, - 54, - 219, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 15, - 84, - 96, - 0, - 144, - 97, - 86, - 207, - 144, - 51, - 144, - 96, - 255, - 22, - 97, - 86, - 188, - 87, - 96, - 8, - 135, - 1, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 97, - 43, - 170, - 86, - 91, - 96, - 7, - 135, - 1, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 97, - 43, - 170, - 86, - 91, - 144, - 80, - 136, - 96, - 0, - 1, - 81, - 96, - 255, - 22, - 96, - 1, - 20, - 97, - 86, - 243, - 87, - 136, - 96, - 64, - 1, - 81, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 97, - 86, - 245, - 86, - 91, - 128, - 91, - 96, - 15, - 84, - 144, - 151, - 80, - 97, - 87, - 52, - 144, - 96, - 255, - 22, - 97, - 87, - 26, - 87, - 96, - 8, - 134, - 1, - 84, - 96, - 1, - 96, - 160, - 27, - 144, - 4, - 96, - 255, - 22, - 97, - 87, - 42, - 86, - 91, - 96, - 7, - 134, - 1, - 84, - 96, - 1, - 96, - 160, - 27, - 144, - 4, - 96, - 255, - 22, - 91, - 136, - 144, - 96, - 255, - 22, - 97, - 104, - 200, - 86, - 91, - 96, - 96, - 138, - 1, - 81, - 96, - 15, - 84, - 145, - 152, - 80, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 150, - 80, - 97, - 87, - 127, - 144, - 96, - 255, - 22, - 97, - 87, - 105, - 87, - 96, - 7, - 134, - 1, - 84, - 96, - 1, - 96, - 160, - 27, - 144, - 4, - 96, - 255, - 22, - 97, - 78, - 145, - 86, - 91, - 96, - 8, - 134, - 1, - 84, - 135, - 144, - 96, - 1, - 96, - 160, - 27, - 144, - 4, - 96, - 255, - 22, - 97, - 104, - 200, - 86, - 91, - 145, - 132, - 82, - 80, - 96, - 224, - 131, - 1, - 134, - 144, - 82, - 96, - 1, - 132, - 1, - 84, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 144, - 129, - 22, - 96, - 192, - 133, - 1, - 82, - 97, - 1, - 0, - 132, - 1, - 130, - 144, - 82, - 132, - 84, - 96, - 1, - 96, - 128, - 27, - 129, - 4, - 130, - 22, - 96, - 96, - 134, - 1, - 82, - 22, - 96, - 64, - 132, - 1, - 82, - 147, - 80, - 80, - 96, - 0, - 131, - 144, - 3, - 97, - 87, - 226, - 87, - 96, - 64, - 81, - 99, - 115, - 12, - 49, - 191, - 96, - 225, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 128, - 96, - 224, - 1, - 81, - 96, - 0, - 3, - 97, - 88, - 7, - 87, - 96, - 64, - 81, - 99, - 175, - 69, - 140, - 7, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 128, - 96, - 192, - 1, - 81, - 96, - 0, - 3, - 97, - 88, - 44, - 87, - 96, - 64, - 81, - 99, - 2, - 0, - 232, - 169, - 96, - 227, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 97, - 1, - 0, - 129, - 1, - 81, - 96, - 15, - 84, - 96, - 0, - 145, - 130, - 145, - 130, - 145, - 130, - 145, - 130, - 145, - 130, - 145, - 130, - 145, - 144, - 96, - 255, - 22, - 21, - 97, - 88, - 97, - 87, - 96, - 64, - 137, - 1, - 81, - 96, - 96, - 138, - 1, - 81, - 144, - 152, - 80, - 148, - 80, - 97, - 88, - 112, - 86, - 91, - 96, - 64, - 137, - 1, - 81, - 96, - 96, - 138, - 1, - 81, - 152, - 80, - 148, - 80, - 91, - 96, - 224, - 137, - 1, - 81, - 96, - 15, - 84, - 144, - 147, - 80, - 97, - 39, - 16, - 144, - 97, - 88, - 148, - 144, - 96, - 1, - 96, - 168, - 27, - 144, - 4, - 97, - 255, - 255, - 22, - 133, - 97, - 137, - 71, - 86, - 91, - 97, - 88, - 158, - 145, - 144, - 97, - 139, - 98, - 86, - 91, - 96, - 160, - 138, - 1, - 82, - 96, - 13, - 84, - 21, - 97, - 89, - 21, - 87, - 96, - 0, - 96, - 13, - 84, - 138, - 96, - 160, - 1, - 81, - 97, - 88, - 191, - 145, - 144, - 97, - 139, - 98, - 86, - 91, - 144, - 80, - 128, - 138, - 96, - 160, - 1, - 129, - 129, - 81, - 97, - 88, - 211, - 145, - 144, - 97, - 136, - 82, - 86, - 91, - 144, - 82, - 80, - 96, - 15, - 84, - 97, - 89, - 19, - 144, - 127, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 144, - 97, - 1, - 0, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 131, - 97, - 115, - 21, - 86, - 91, - 80, - 91, - 96, - 160, - 137, - 1, - 81, - 97, - 89, - 36, - 144, - 132, - 97, - 136, - 82, - 86, - 91, - 145, - 80, - 97, - 89, - 61, - 137, - 96, - 192, - 1, - 81, - 132, - 97, - 104, - 223, - 144, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 97, - 89, - 71, - 144, - 137, - 97, - 137, - 47, - 86, - 91, - 150, - 80, - 97, - 89, - 96, - 137, - 96, - 192, - 1, - 81, - 131, - 97, - 104, - 223, - 144, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 97, - 89, - 106, - 144, - 137, - 97, - 137, - 47, - 86, - 91, - 149, - 80, - 97, - 89, - 131, - 137, - 96, - 192, - 1, - 81, - 130, - 97, - 104, - 223, - 144, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 97, - 89, - 141, - 144, - 134, - 97, - 136, - 82, - 86, - 91, - 96, - 15, - 84, - 144, - 148, - 80, - 96, - 0, - 147, - 80, - 131, - 146, - 80, - 96, - 255, - 22, - 21, - 144, - 80, - 97, - 89, - 183, - 87, - 96, - 96, - 136, - 1, - 131, - 144, - 82, - 96, - 64, - 136, - 1, - 133, - 144, - 82, - 97, - 89, - 198, - 86, - 91, - 96, - 96, - 136, - 1, - 133, - 144, - 82, - 96, - 64, - 136, - 1, - 131, - 144, - 82, - 91, - 97, - 89, - 227, - 141, - 96, - 32, - 1, - 81, - 137, - 96, - 0, - 1, - 81, - 138, - 96, - 64, - 1, - 81, - 139, - 96, - 96, - 1, - 81, - 66, - 97, - 17, - 154, - 86, - 91, - 144, - 146, - 80, - 144, - 80, - 129, - 97, - 90, - 19, - 87, - 135, - 81, - 96, - 64, - 81, - 99, - 4, - 36, - 180, - 45, - 96, - 227, - 27, - 129, - 82, - 96, - 4, - 129, - 1, - 145, - 144, - 145, - 82, - 96, - 36, - 129, - 1, - 130, - 144, - 82, - 96, - 68, - 1, - 97, - 25, - 118, - 86, - 91, - 96, - 15, - 11, - 96, - 32, - 128, - 137, - 1, - 145, - 144, - 145, - 82, - 140, - 1, - 81, - 96, - 0, - 145, - 80, - 97, - 90, - 48, - 144, - 136, - 97, - 115, - 116, - 86, - 91, - 144, - 80, - 128, - 97, - 90, - 86, - 87, - 96, - 15, - 84, - 96, - 255, - 22, - 21, - 97, - 90, - 78, - 87, - 96, - 64, - 135, - 1, - 133, - 144, - 82, - 97, - 90, - 86, - 86, - 91, - 96, - 96, - 135, - 1, - 133, - 144, - 82, - 91, - 80, - 96, - 32, - 139, - 1, - 81, - 96, - 64, - 135, - 1, - 81, - 96, - 96, - 136, - 1, - 81, - 96, - 192, - 137, - 1, - 81, - 96, - 15, - 84, - 97, - 90, - 165, - 148, - 147, - 146, - 145, - 144, - 96, - 255, - 22, - 97, - 90, - 132, - 87, - 96, - 0, - 97, - 90, - 136, - 86, - 91, - 96, - 17, - 84, - 91, - 96, - 15, - 84, - 96, - 255, - 22, - 97, - 90, - 154, - 87, - 96, - 17, - 84, - 97, - 90, - 157, - 86, - 91, - 96, - 0, - 91, - 96, - 18, - 84, - 97, - 116, - 46, - 86, - 91, - 96, - 15, - 84, - 96, - 0, - 144, - 129, - 144, - 96, - 255, - 22, - 21, - 97, - 90, - 216, - 87, - 80, - 80, - 96, - 7, - 135, - 1, - 84, - 96, - 8, - 136, - 1, - 84, - 96, - 255, - 96, - 1, - 96, - 160, - 27, - 146, - 131, - 144, - 4, - 129, - 22, - 146, - 144, - 145, - 4, - 22, - 97, - 90, - 247, - 86, - 91, - 80, - 80, - 96, - 8, - 135, - 1, - 84, - 96, - 7, - 136, - 1, - 84, - 96, - 255, - 96, - 1, - 96, - 160, - 27, - 146, - 131, - 144, - 4, - 129, - 22, - 146, - 144, - 145, - 4, - 22, - 91, - 96, - 224, - 136, - 1, - 81, - 97, - 91, - 6, - 144, - 131, - 97, - 74, - 33, - 86, - 91, - 96, - 224, - 137, - 1, - 82, - 97, - 1, - 0, - 136, - 1, - 81, - 97, - 91, - 27, - 144, - 130, - 97, - 74, - 33, - 86, - 91, - 136, - 97, - 1, - 0, - 1, - 129, - 129, - 82, - 80, - 80, - 80, - 80, - 97, - 91, - 77, - 96, - 15, - 96, - 0, - 1, - 96, - 1, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 135, - 96, - 224, - 1, - 81, - 97, - 116, - 238, - 86, - 91, - 96, - 16, - 84, - 97, - 1, - 0, - 135, - 1, - 81, - 97, - 91, - 105, - 145, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 144, - 97, - 70, - 43, - 86, - 91, - 96, - 16, - 84, - 96, - 15, - 84, - 96, - 32, - 141, - 1, - 81, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 146, - 131, - 22, - 146, - 97, - 1, - 0, - 144, - 146, - 4, - 144, - 145, - 22, - 144, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 129, - 22, - 144, - 127, - 97, - 126, - 155, - 20, - 125, - 3, - 180, - 78, - 28, - 201, - 66, - 120, - 47, - 118, - 32, - 200, - 150, - 51, - 38, - 149, - 107, - 101, - 163, - 96, - 8, - 242, - 129, - 202, - 97, - 147, - 2, - 50, - 144, - 97, - 91, - 192, - 144, - 97, - 24, - 82, - 86, - 91, - 138, - 96, - 224, - 1, - 81, - 139, - 97, - 1, - 0, - 1, - 81, - 140, - 96, - 160, - 1, - 81, - 141, - 96, - 32, - 1, - 81, - 96, - 64, - 81, - 97, - 92, - 4, - 149, - 148, - 147, - 146, - 145, - 144, - 148, - 133, - 82, - 96, - 32, - 133, - 1, - 147, - 144, - 147, - 82, - 96, - 64, - 132, - 1, - 145, - 144, - 145, - 82, - 96, - 96, - 131, - 1, - 82, - 96, - 128, - 130, - 1, - 82, - 96, - 160, - 1, - 144, - 86, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 164, - 80, - 80, - 96, - 15, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 184, - 27, - 3, - 25, - 22, - 144, - 85, - 80, - 80, - 96, - 16, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 25, - 22, - 144, - 85, - 80, - 96, - 0, - 96, - 17, - 129, - 144, - 85, - 96, - 18, - 85, - 96, - 32, - 149, - 144, - 149, - 1, - 81, - 96, - 224, - 134, - 1, - 81, - 97, - 1, - 0, - 144, - 150, - 1, - 81, - 144, - 150, - 144, - 148, - 80, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 129, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 0, - 3, - 97, - 92, - 133, - 87, - 96, - 64, - 81, - 99, - 77, - 251, - 160, - 35, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 0, - 98, - 255, - 255, - 255, - 139, - 22, - 21, - 97, - 92, - 152, - 87, - 138, - 97, - 92, - 161, - 86, - 91, - 96, - 5, - 84, - 98, - 255, - 255, - 255, - 22, - 91, - 144, - 80, - 128, - 98, - 255, - 255, - 255, - 22, - 96, - 0, - 3, - 97, - 92, - 201, - 87, - 96, - 64, - 81, - 99, - 7, - 147, - 223, - 99, - 96, - 226, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 98, - 255, - 255, - 255, - 129, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 6, - 96, - 32, - 82, - 96, - 64, - 129, - 32, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 141, - 22, - 21, - 21, - 146, - 145, - 144, - 130, - 144, - 97, - 92, - 255, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 97, - 139, - 168, - 86, - 91, - 145, - 144, - 97, - 1, - 0, - 10, - 129, - 84, - 129, - 99, - 255, - 255, - 255, - 255, - 2, - 25, - 22, - 144, - 131, - 99, - 255, - 255, - 255, - 255, - 22, - 2, - 23, - 144, - 85, - 144, - 80, - 97, - 93, - 53, - 131, - 131, - 131, - 96, - 40, - 146, - 144, - 146, - 27, - 96, - 32, - 145, - 144, - 145, - 27, - 23, - 23, - 144, - 86, - 91, - 147, - 80, - 80, - 96, - 0, - 96, - 8, - 96, - 0, - 133, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 144, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 32, - 144, - 80, - 139, - 129, - 96, - 2, - 1, - 96, - 0, - 97, - 1, - 0, - 10, - 129, - 84, - 129, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 2, - 25, - 22, - 144, - 131, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 2, - 23, - 144, - 85, - 80, - 129, - 128, - 21, - 97, - 93, - 153, - 87, - 80, - 97, - 255, - 255, - 139, - 22, - 21, - 91, - 21, - 97, - 93, - 189, - 87, - 96, - 64, - 81, - 99, - 246, - 244, - 163, - 143, - 96, - 224, - 27, - 129, - 82, - 97, - 255, - 255, - 140, - 22, - 96, - 4, - 130, - 1, - 82, - 96, - 36, - 1, - 97, - 25, - 118, - 86, - 91, - 96, - 0, - 97, - 93, - 200, - 66, - 97, - 105, - 65, - 86, - 91, - 96, - 1, - 131, - 129, - 1, - 128, - 84, - 99, - 255, - 255, - 255, - 255, - 96, - 128, - 27, - 25, - 22, - 96, - 1, - 96, - 128, - 27, - 99, - 255, - 255, - 255, - 255, - 133, - 22, - 2, - 23, - 144, - 85, - 98, - 255, - 255, - 255, - 134, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 7, - 96, - 32, - 129, - 144, - 82, - 96, - 64, - 130, - 32, - 128, - 84, - 145, - 135, - 1, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 147, - 132, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 25, - 128, - 131, - 22, - 130, - 23, - 132, - 85, - 132, - 84, - 96, - 1, - 96, - 1, - 96, - 168, - 27, - 3, - 25, - 147, - 132, - 22, - 144, - 146, - 23, - 96, - 1, - 96, - 160, - 27, - 146, - 131, - 144, - 4, - 96, - 255, - 144, - 129, - 22, - 132, - 2, - 145, - 144, - 145, - 23, - 144, - 148, - 85, - 147, - 144, - 150, - 1, - 128, - 84, - 96, - 8, - 139, - 1, - 128, - 84, - 145, - 144, - 150, - 22, - 148, - 129, - 22, - 133, - 23, - 134, - 85, - 144, - 84, - 145, - 22, - 144, - 146, - 23, - 145, - 133, - 144, - 4, - 22, - 144, - 147, - 2, - 146, - 144, - 146, - 23, - 144, - 145, - 85, - 144, - 145, - 80, - 97, - 255, - 255, - 138, - 129, - 22, - 20, - 97, - 94, - 139, - 87, - 96, - 0, - 97, - 94, - 142, - 86, - 91, - 96, - 1, - 91, - 144, - 80, - 96, - 0, - 96, - 64, - 81, - 128, - 97, - 1, - 0, - 1, - 96, - 64, - 82, - 128, - 138, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 134, - 97, - 94, - 189, - 87, - 96, - 12, - 84, - 96, - 255, - 22, - 97, - 94, - 191, - 86, - 91, - 139, - 91, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 142, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 131, - 97, - 94, - 221, - 87, - 140, - 97, - 94, - 225, - 86, - 91, - 97, - 1, - 244, - 91, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 141, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 134, - 97, - 95, - 0, - 87, - 96, - 0, - 97, - 95, - 2, - 86, - 91, - 143, - 91, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 132, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 131, - 21, - 21, - 129, - 82, - 80, - 144, - 80, - 97, - 95, - 50, - 129, - 133, - 97, - 71, - 227, - 144, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 96, - 0, - 128, - 97, - 95, - 72, - 137, - 139, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 97, - 40, - 9, - 86, - 91, - 145, - 80, - 145, - 80, - 97, - 95, - 85, - 129, - 97, - 74, - 55, - 86, - 91, - 97, - 95, - 94, - 131, - 97, - 74, - 55, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 145, - 130, - 22, - 96, - 1, - 96, - 128, - 27, - 2, - 144, - 130, - 22, - 23, - 135, - 85, - 96, - 8, - 135, - 1, - 84, - 96, - 7, - 136, - 1, - 84, - 96, - 64, - 128, - 81, - 139, - 21, - 21, - 129, - 82, - 147, - 142, - 22, - 96, - 32, - 133, - 1, - 82, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 146, - 131, - 22, - 147, - 145, - 144, - 146, - 22, - 145, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 141, - 22, - 145, - 127, - 118, - 9, - 244, - 94, - 22, - 55, - 139, - 176, - 120, - 40, - 132, - 113, - 155, - 162, - 77, - 59, - 188, - 90, - 182, - 163, - 115, - 185, - 234, - 202, - 204, - 37, - 198, - 20, - 59, - 135, - 207, - 119, - 145, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 164, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 153, - 152, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 41, - 131, - 20, - 97, - 96, - 26, - 87, - 96, - 64, - 81, - 99, - 112, - 206, - 228, - 175, - 96, - 225, - 27, - 129, - 82, - 96, - 41, - 96, - 4, - 130, - 1, - 82, - 96, - 36, - 129, - 1, - 132, - 144, - 82, - 96, - 68, - 1, - 97, - 25, - 118, - 86, - 91, - 80, - 80, - 80, - 96, - 1, - 129, - 1, - 53, - 96, - 96, - 144, - 129, - 28, - 146, - 96, - 21, - 144, - 146, - 1, - 53, - 144, - 28, - 144, - 86, - 91, - 96, - 0, - 129, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 131, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 3, - 97, - 96, - 103, - 87, - 96, - 64, - 81, - 99, - 59, - 14, - 45, - 229, - 96, - 226, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 80, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 128, - 131, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 9, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 147, - 133, - 22, - 131, - 82, - 146, - 144, - 82, - 32, - 84, - 98, - 255, - 255, - 255, - 22, - 128, - 21, - 97, - 96, - 185, - 87, - 96, - 64, - 81, - 99, - 51, - 37, - 250, - 119, - 96, - 224, - 27, - 129, - 82, - 98, - 255, - 255, - 255, - 130, - 22, - 96, - 4, - 130, - 1, - 82, - 96, - 36, - 1, - 97, - 25, - 118, - 86, - 91, - 96, - 0, - 128, - 132, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 99, - 49, - 60, - 229, - 103, - 96, - 64, - 81, - 129, - 99, - 255, - 255, - 255, - 255, - 22, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 32, - 96, - 64, - 81, - 128, - 131, - 3, - 129, - 134, - 90, - 250, - 21, - 128, - 21, - 97, - 96, - 250, - 87, - 61, - 96, - 0, - 128, - 62, - 61, - 96, - 0, - 253, - 91, - 80, - 80, - 80, - 80, - 96, - 64, - 81, - 61, - 96, - 31, - 25, - 96, - 31, - 130, - 1, - 22, - 130, - 1, - 128, - 96, - 64, - 82, - 80, - 129, - 1, - 144, - 97, - 97, - 30, - 145, - 144, - 97, - 139, - 203, - 86, - 91, - 132, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 99, - 49, - 60, - 229, - 103, - 96, - 64, - 81, - 129, - 99, - 255, - 255, - 255, - 255, - 22, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 32, - 96, - 64, - 81, - 128, - 131, - 3, - 129, - 134, - 90, - 250, - 21, - 128, - 21, - 97, - 97, - 92, - 87, - 61, - 96, - 0, - 128, - 62, - 61, - 96, - 0, - 253, - 91, - 80, - 80, - 80, - 80, - 96, - 64, - 81, - 61, - 96, - 31, - 25, - 96, - 31, - 130, - 1, - 22, - 130, - 1, - 128, - 96, - 64, - 82, - 80, - 129, - 1, - 144, - 97, - 97, - 128, - 145, - 144, - 97, - 139, - 203, - 86, - 91, - 144, - 146, - 80, - 144, - 80, - 97, - 97, - 166, - 96, - 255, - 131, - 22, - 96, - 6, - 96, - 18, - 129, - 131, - 20, - 145, - 131, - 17, - 145, - 144, - 145, - 23, - 130, - 130, - 20, - 145, - 144, - 146, - 16, - 23, - 22, - 144, - 86, - 91, - 97, - 97, - 200, - 87, - 96, - 64, - 81, - 99, - 202, - 149, - 3, - 145, - 96, - 224, - 27, - 129, - 82, - 96, - 255, - 131, - 22, - 96, - 4, - 130, - 1, - 82, - 96, - 36, - 1, - 97, - 25, - 118, - 86, - 91, - 97, - 97, - 233, - 96, - 255, - 130, - 22, - 96, - 6, - 96, - 18, - 129, - 131, - 20, - 145, - 131, - 17, - 145, - 144, - 145, - 23, - 130, - 130, - 20, - 145, - 144, - 146, - 16, - 23, - 22, - 144, - 86, - 91, - 97, - 98, - 11, - 87, - 96, - 64, - 81, - 99, - 202, - 149, - 3, - 145, - 96, - 224, - 27, - 129, - 82, - 96, - 255, - 130, - 22, - 96, - 4, - 130, - 1, - 82, - 96, - 36, - 1, - 97, - 25, - 118, - 86, - 91, - 96, - 5, - 128, - 84, - 96, - 0, - 144, - 97, - 98, - 32, - 144, - 98, - 255, - 255, - 255, - 22, - 97, - 139, - 238, - 86, - 91, - 130, - 84, - 97, - 1, - 0, - 146, - 144, - 146, - 10, - 98, - 255, - 255, - 255, - 129, - 129, - 2, - 25, - 144, - 147, - 22, - 146, - 130, - 22, - 144, - 129, - 2, - 146, - 144, - 146, - 23, - 144, - 146, - 85, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 135, - 129, - 22, - 96, - 0, - 129, - 129, - 82, - 96, - 9, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 139, - 134, - 22, - 128, - 133, - 82, - 144, - 131, - 82, - 129, - 132, - 32, - 128, - 84, - 98, - 255, - 255, - 255, - 25, - 22, - 136, - 23, - 144, - 85, - 129, - 81, - 96, - 128, - 129, - 1, - 131, - 82, - 133, - 129, - 82, - 96, - 255, - 139, - 129, - 22, - 130, - 134, - 1, - 129, - 129, - 82, - 131, - 134, - 1, - 133, - 129, - 82, - 141, - 132, - 22, - 96, - 96, - 134, - 1, - 129, - 129, - 82, - 141, - 139, - 82, - 96, - 7, - 138, - 82, - 153, - 136, - 144, - 32, - 149, - 81, - 134, - 84, - 147, - 81, - 144, - 141, - 22, - 96, - 1, - 96, - 1, - 96, - 168, - 27, - 3, - 25, - 148, - 133, - 22, - 23, - 96, - 1, - 96, - 160, - 27, - 145, - 135, - 22, - 130, - 2, - 23, - 135, - 85, - 145, - 81, - 96, - 1, - 150, - 144, - 150, - 1, - 128, - 84, - 154, - 81, - 150, - 144, - 156, - 22, - 153, - 144, - 146, - 22, - 152, - 144, - 152, - 23, - 147, - 144, - 146, - 22, - 144, - 150, - 2, - 145, - 144, - 145, - 23, - 144, - 150, - 85, - 129, - 81, - 147, - 132, - 82, - 145, - 131, - 1, - 148, - 144, - 148, - 82, - 148, - 151, - 80, - 144, - 146, - 145, - 127, - 192, - 197, - 223, - 152, - 164, - 202, - 135, - 163, - 33, - 163, - 59, - 241, - 39, - 124, - 243, - 45, - 49, - 169, - 123, - 108, - 225, - 75, - 151, - 71, - 56, - 33, - 73, - 185, - 226, - 99, - 30, - 163, - 145, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 164, - 80, - 80, - 146, - 145, - 80, - 80, - 86, - 91, - 51, - 96, - 0, - 144, - 129, - 82, - 96, - 10, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 135, - 22, - 132, - 82, - 144, - 145, - 82, - 129, - 32, - 128, - 84, - 144, - 145, - 96, - 1, - 96, - 128, - 27, - 144, - 145, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 144, - 3, - 97, - 99, - 153, - 87, - 96, - 64, - 81, - 99, - 47, - 155, - 2, - 219, - 96, - 225, - 27, - 129, - 82, - 51, - 96, - 4, - 130, - 1, - 82, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 133, - 22, - 96, - 36, - 130, - 1, - 82, - 96, - 68, - 1, - 97, - 25, - 118, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 132, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 8, - 96, - 32, - 129, - 144, - 82, - 96, - 64, - 144, - 145, - 32, - 96, - 4, - 129, - 1, - 84, - 96, - 5, - 130, - 1, - 84, - 96, - 3, - 131, - 1, - 84, - 96, - 7, - 132, - 1, - 84, - 148, - 132, - 1, - 84, - 147, - 148, - 146, - 147, - 145, - 146, - 144, - 145, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 145, - 130, - 22, - 145, - 22, - 97, - 99, - 237, - 135, - 134, - 134, - 134, - 97, - 117, - 53, - 86, - 91, - 80, - 96, - 0, - 145, - 80, - 80, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 138, - 129, - 22, - 20, - 97, - 100, - 9, - 87, - 137, - 97, - 100, - 24, - 86, - 91, - 96, - 4, - 136, - 1, - 84, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 91, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 144, - 80, - 96, - 0, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 128, - 22, - 138, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 20, - 97, - 100, - 68, - 87, - 137, - 97, - 100, - 90, - 86, - 91, - 96, - 4, - 137, - 1, - 84, - 96, - 1, - 96, - 128, - 27, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 91, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 144, - 80, - 97, - 100, - 110, - 130, - 97, - 74, - 55, - 86, - 91, - 96, - 4, - 138, - 1, - 128, - 84, - 96, - 0, - 144, - 97, - 100, - 139, - 144, - 132, - 144, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 97, - 140, - 6, - 86, - 91, - 146, - 80, - 97, - 1, - 0, - 10, - 129, - 84, - 129, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 2, - 25, - 22, - 144, - 131, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 2, - 23, - 144, - 85, - 80, - 97, - 100, - 184, - 129, - 97, - 74, - 55, - 86, - 91, - 96, - 4, - 138, - 1, - 128, - 84, - 96, - 16, - 144, - 97, - 100, - 220, - 144, - 132, - 144, - 96, - 1, - 96, - 128, - 27, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 97, - 140, - 6, - 86, - 91, - 146, - 80, - 97, - 1, - 0, - 10, - 129, - 84, - 129, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 2, - 25, - 22, - 144, - 131, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 2, - 23, - 144, - 85, - 80, - 96, - 0, - 130, - 17, - 21, - 97, - 101, - 20, - 87, - 97, - 101, - 20, - 51, - 133, - 132, - 97, - 115, - 21, - 86, - 91, - 128, - 21, - 97, - 101, - 37, - 87, - 97, - 101, - 37, - 51, - 132, - 131, - 97, - 115, - 21, - 86, - 91, - 96, - 64, - 128, - 81, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 142, - 22, - 129, - 82, - 96, - 32, - 129, - 1, - 132, - 144, - 82, - 144, - 129, - 1, - 130, - 144, - 82, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 128, - 133, - 22, - 145, - 144, - 134, - 22, - 144, - 51, - 144, - 127, - 61, - 77, - 68, - 65, - 44, - 245, - 221, - 218, - 92, - 53, - 136, - 92, - 203, - 130, - 210, - 76, - 94, - 57, - 133, - 24, - 235, - 124, - 251, - 17, - 109, - 70, - 235, - 126, - 75, - 190, - 14, - 123, - 144, - 96, - 96, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 164, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 97, - 101, - 156, - 134, - 133, - 97, - 76, - 48, - 86, - 91, - 80, - 80, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 146, - 131, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 32, - 148, - 133, - 82, - 96, - 64, - 128, - 130, - 32, - 147, - 144, - 148, - 22, - 129, - 82, - 145, - 144, - 147, - 82, - 32, - 128, - 84, - 130, - 129, - 17, - 131, - 130, - 3, - 2, - 129, - 3, - 144, - 129, - 144, - 3, - 144, - 145, - 85, - 145, - 144, - 130, - 144, - 3, - 144, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 130, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 1, - 132, - 1, - 96, - 32, - 82, - 96, - 64, - 144, - 32, - 84, - 128, - 130, - 17, - 21, - 97, - 102, - 35, - 87, - 96, - 64, - 81, - 99, - 49, - 82, - 118, - 201, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 129, - 1, - 130, - 144, - 82, - 96, - 36, - 129, - 1, - 131, - 144, - 82, - 96, - 68, - 1, - 97, - 25, - 118, - 86, - 91, - 97, - 102, - 45, - 132, - 132, - 97, - 76, - 48, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 131, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 1, - 133, - 1, - 96, - 32, - 82, - 96, - 64, - 129, - 32, - 128, - 84, - 132, - 146, - 144, - 97, - 102, - 87, - 144, - 132, - 144, - 97, - 136, - 82, - 86, - 91, - 144, - 145, - 85, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 97, - 102, - 110, - 131, - 97, - 118, - 193, - 86, - 91, - 145, - 80, - 145, - 80, - 129, - 97, - 38, - 4, - 87, - 128, - 81, - 129, - 96, - 32, - 1, - 253, - 91, - 96, - 0, - 97, - 24, - 76, - 130, - 96, - 96, - 1, - 81, - 99, - 255, - 255, - 255, - 255, - 22, - 131, - 97, - 47, - 187, - 144, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 96, - 0, - 128, - 97, - 102, - 171, - 134, - 134, - 97, - 104, - 223, - 86, - 91, - 144, - 80, - 128, - 21, - 97, - 103, - 164, - 87, - 96, - 0, - 97, - 102, - 190, - 130, - 97, - 120, - 224, - 86, - 91, - 144, - 80, - 99, - 1, - 225, - 133, - 89, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 133, - 129, - 2, - 145, - 144, - 145, - 4, - 144, - 97, - 39, - 16, - 144, - 135, - 2, - 4, - 96, - 0, - 103, - 27, - 193, - 109, - 103, - 78, - 200, - 0, - 0, - 97, - 102, - 242, - 131, - 128, - 97, - 137, - 71, - 86, - 91, - 97, - 102, - 252, - 145, - 144, - 97, - 139, - 98, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 103, - 10, - 132, - 131, - 97, - 137, - 71, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 103, - 32, - 132, - 99, - 59, - 154, - 202, - 0, - 97, - 75, - 137, - 136, - 97, - 105, - 241, - 86, - 91, - 144, - 80, - 96, - 0, - 129, - 131, - 97, - 103, - 56, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 138, - 97, - 138, - 153, - 86, - 91, - 97, - 103, - 66, - 145, - 144, - 97, - 140, - 46, - 86, - 91, - 97, - 103, - 76, - 145, - 144, - 97, - 139, - 52, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 103, - 89, - 130, - 97, - 122, - 187, - 86, - 91, - 144, - 80, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 129, - 19, - 21, - 97, - 103, - 135, - 87, - 96, - 64, - 81, - 99, - 177, - 21, - 88, - 223, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 129, - 1, - 130, - 144, - 82, - 96, - 36, - 1, - 97, - 25, - 118, - 86, - 91, - 97, - 103, - 153, - 129, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 97, - 136, - 165, - 86, - 91, - 153, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 91, - 80, - 148, - 147, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 134, - 17, - 21, - 97, - 103, - 216, - 87, - 96, - 64, - 81, - 99, - 170, - 243, - 149, - 111, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 134, - 3, - 97, - 103, - 238, - 87, - 80, - 128, - 97, - 29, - 139, - 86, - 91, - 133, - 96, - 0, - 3, - 97, - 104, - 7, - 87, - 97, - 104, - 0, - 130, - 134, - 97, - 140, - 46, - 86, - 91, - 144, - 80, - 97, - 29, - 139, - 86, - 91, - 130, - 21, - 97, - 104, - 162, - 87, - 96, - 0, - 97, - 104, - 29, - 132, - 99, - 1, - 225, - 133, - 88, - 97, - 104, - 223, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 104, - 42, - 130, - 97, - 105, - 241, - 86, - 91, - 144, - 80, - 97, - 104, - 58, - 99, - 59, - 154, - 202, - 0, - 130, - 97, - 137, - 71, - 86, - 91, - 144, - 80, - 97, - 104, - 70, - 134, - 130, - 97, - 65, - 53, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 104, - 92, - 137, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 97, - 136, - 165, - 86, - 91, - 144, - 80, - 97, - 104, - 103, - 129, - 97, - 105, - 84, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 104, - 117, - 131, - 131, - 97, - 136, - 165, - 86, - 91, - 144, - 80, - 97, - 104, - 128, - 129, - 97, - 122, - 187, - 86, - 91, - 144, - 80, - 133, - 97, - 104, - 141, - 138, - 131, - 97, - 123, - 36, - 86, - 91, - 97, - 104, - 151, - 145, - 144, - 97, - 140, - 46, - 86, - 91, - 148, - 80, - 80, - 80, - 80, - 80, - 97, - 29, - 139, - 86, - 91, - 129, - 97, - 104, - 190, - 134, - 97, - 104, - 185, - 137, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 97, - 136, - 165, - 86, - 91, - 97, - 123, - 36, - 86, - 91, - 97, - 48, - 142, - 145, - 144, - 97, - 140, - 46, - 86, - 91, - 96, - 0, - 128, - 97, - 104, - 212, - 131, - 97, - 74, - 145, - 86, - 91, - 147, - 144, - 147, - 2, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 97, - 17, - 147, - 131, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 132, - 97, - 79, - 245, - 86, - 91, - 96, - 64, - 128, - 81, - 96, - 4, - 129, - 82, - 96, - 36, - 129, - 1, - 144, - 145, - 82, - 96, - 32, - 129, - 1, - 128, - 81, - 96, - 1, - 96, - 1, - 96, - 224, - 27, - 3, - 22, - 99, - 11, - 190, - 187, - 51, - 96, - 227, - 27, - 23, - 144, - 82, - 98, - 1, - 81, - 128, - 130, - 2, - 144, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 130, - 17, - 21, - 97, - 105, - 59, - 87, - 128, - 81, - 129, - 96, - 32, - 1, - 253, - 91, - 80, - 145, - 144, - 80, - 86, - 91, - 96, - 0, - 100, - 1, - 0, - 0, - 0, - 0, - 130, - 16, - 97, - 74, - 73, - 87, - 96, - 0, - 128, - 253, - 91, - 96, - 0, - 103, - 6, - 240, - 91, - 89, - 211, - 178, - 0, - 0, - 130, - 3, - 97, - 105, - 109, - 87, - 80, - 96, - 0, - 145, - 144, - 80, - 86, - 91, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 130, - 18, - 97, - 105, - 149, - 87, - 96, - 64, - 81, - 99, - 7, - 160, - 33, - 39, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 129, - 96, - 0, - 3, - 97, - 105, - 182, - 87, - 96, - 64, - 81, - 99, - 34, - 237, - 89, - 133, - 96, - 226, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 0, - 97, - 105, - 195, - 131, - 96, - 2, - 97, - 138, - 153, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 105, - 208, - 130, - 97, - 123, - 57, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 105, - 230, - 103, - 19, - 160, - 75, - 189, - 253, - 201, - 190, - 136, - 131, - 97, - 123, - 36, - 86, - 91, - 144, - 80, - 97, - 29, - 139, - 129, - 97, - 139, - 140, - 86, - 91, - 96, - 181, - 129, - 96, - 1, - 96, - 136, - 27, - 129, - 16, - 97, - 106, - 10, - 87, - 96, - 64, - 145, - 144, - 145, - 27, - 144, - 96, - 128, - 28, - 91, - 105, - 1, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 129, - 16, - 97, - 106, - 38, - 87, - 96, - 32, - 145, - 144, - 145, - 27, - 144, - 96, - 64, - 28, - 91, - 101, - 1, - 0, - 0, - 0, - 0, - 0, - 129, - 16, - 97, - 106, - 62, - 87, - 96, - 16, - 145, - 144, - 145, - 27, - 144, - 96, - 32, - 28, - 91, - 99, - 1, - 0, - 0, - 0, - 129, - 16, - 97, - 106, - 84, - 87, - 96, - 8, - 145, - 144, - 145, - 27, - 144, - 96, - 16, - 28, - 91, - 98, - 1, - 0, - 0, - 1, - 2, - 96, - 18, - 28, - 128, - 130, - 4, - 1, - 96, - 1, - 144, - 129, - 28, - 128, - 131, - 4, - 1, - 129, - 28, - 128, - 131, - 4, - 1, - 129, - 28, - 128, - 131, - 4, - 1, - 129, - 28, - 128, - 131, - 4, - 1, - 129, - 28, - 128, - 131, - 4, - 1, - 129, - 28, - 128, - 131, - 4, - 1, - 144, - 28, - 144, - 129, - 144, - 4, - 129, - 17, - 144, - 3, - 144, - 86, - 91, - 96, - 0, - 104, - 2, - 72, - 206, - 54, - 167, - 12, - 178, - 107, - 62, - 25, - 130, - 19, - 97, - 106, - 176, - 87, - 80, - 96, - 0, - 145, - 144, - 80, - 86, - 91, - 104, - 7, - 85, - 191, - 121, - 139, - 74, - 27, - 241, - 229, - 130, - 18, - 97, - 106, - 247, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 12, - 96, - 36, - 130, - 1, - 82, - 107, - 69, - 88, - 80, - 95, - 79, - 86, - 69, - 82, - 70, - 76, - 79, - 87, - 96, - 160, - 27, - 96, - 68, - 130, - 1, - 82, - 96, - 100, - 1, - 97, - 25, - 118, - 86, - 91, - 101, - 3, - 120, - 45, - 172, - 233, - 217, - 96, - 78, - 131, - 144, - 27, - 5, - 145, - 80, - 96, - 0, - 96, - 96, - 107, - 177, - 114, - 23, - 247, - 209, - 207, - 121, - 171, - 201, - 227, - 179, - 152, - 132, - 130, - 27, - 5, - 96, - 1, - 96, - 95, - 27, - 1, - 144, - 29, - 107, - 177, - 114, - 23, - 247, - 209, - 207, - 121, - 171, - 201, - 227, - 179, - 152, - 129, - 2, - 144, - 147, - 3, - 108, - 36, - 12, - 51, - 14, - 159, - 178, - 217, - 203, - 175, - 15, - 213, - 170, - 251, - 25, - 129, - 1, - 129, - 2, - 96, - 96, - 144, - 129, - 29, - 109, - 2, - 119, - 89, - 73, - 145, - 207, - 200, - 95, - 110, - 36, - 97, - 131, - 124, - 217, - 1, - 130, - 2, - 129, - 29, - 109, - 26, - 82, - 18, - 85, - 227, - 79, - 106, - 80, - 97, - 178, - 94, - 241, - 201, - 195, - 25, - 1, - 130, - 2, - 129, - 29, - 109, - 177, - 187, - 178, - 1, - 244, - 67, - 207, - 150, - 47, - 26, - 29, - 61, - 180, - 165, - 1, - 130, - 2, - 129, - 29, - 110, - 2, - 199, - 35, - 136, - 217, - 247, - 79, - 81, - 169, - 51, - 31, - 237, - 105, - 63, - 20, - 25, - 1, - 130, - 2, - 129, - 29, - 110, - 5, - 24, - 11, - 177, - 71, - 153, - 171, - 71, - 168, - 168, - 203, - 42, - 82, - 125, - 87, - 1, - 109, - 2, - 209, - 103, - 32, - 87, - 123, - 209, - 155, - 246, - 20, - 23, - 111, - 233, - 234, - 108, - 16, - 254, - 104, - 231, - 253, - 55, - 208, - 0, - 123, - 113, - 63, - 118, - 80, - 132, - 1, - 132, - 2, - 131, - 29, - 144, - 129, - 1, - 144, - 132, - 1, - 109, - 1, - 211, - 150, - 126, - 211, - 15, - 196, - 248, - 156, - 2, - 186, - 181, - 112, - 129, - 25, - 1, - 2, - 144, - 145, - 29, - 110, - 5, - 135, - 245, - 3, - 187, - 110, - 162, - 157, - 37, - 252, - 183, - 64, - 25, - 100, - 80, - 1, - 144, - 145, - 2, - 109, - 54, - 13, - 122, - 238, - 160, - 147, - 38, - 62, - 204, - 110, - 14, - 203, - 41, - 23, - 96, - 98, - 27, - 1, - 5, - 116, - 2, - 157, - 157, - 195, - 133, - 99, - 195, - 46, - 92, - 47, - 109, - 193, - 146, - 238, - 112, - 239, - 101, - 249, - 151, - 138, - 243, - 2, - 96, - 195, - 147, - 144, - 147, - 3, - 146, - 144, - 146, - 28, - 146, - 145, - 80, - 80, - 86, - 91, - 96, - 0, - 96, - 64, - 81, - 99, - 35, - 184, - 114, - 221, - 96, - 224, - 27, - 96, - 0, - 82, - 132, - 96, - 4, - 82, - 131, - 96, - 36, - 82, - 130, - 96, - 68, - 82, - 96, - 32, - 96, - 0, - 96, - 100, - 96, - 0, - 128, - 138, - 90, - 241, - 61, - 21, - 96, - 31, - 61, - 17, - 96, - 1, - 96, - 0, - 81, - 20, - 22, - 23, - 22, - 145, - 80, - 96, - 0, - 96, - 96, - 82, - 128, - 96, - 64, - 82, - 80, - 128, - 97, - 63, - 108, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 20, - 96, - 36, - 130, - 1, - 82, - 115, - 21, - 20, - 144, - 83, - 148, - 209, - 145, - 84, - 151, - 209, - 148, - 147, - 211, - 87, - 209, - 144, - 82, - 83, - 17, - 81, - 96, - 98, - 27, - 96, - 68, - 130, - 1, - 82, - 96, - 100, - 1, - 97, - 25, - 118, - 86, - 91, - 97, - 108, - 207, - 132, - 131, - 97, - 76, - 48, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 128, - 132, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 32, - 134, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 147, - 134, - 22, - 131, - 82, - 146, - 144, - 82, - 144, - 129, - 32, - 128, - 84, - 131, - 146, - 144, - 97, - 102, - 87, - 144, - 132, - 144, - 97, - 137, - 47, - 86, - 91, - 96, - 0, - 130, - 21, - 97, - 110, - 21, - 87, - 96, - 0, - 97, - 109, - 28, - 132, - 99, - 1, - 225, - 133, - 88, - 97, - 104, - 223, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 109, - 41, - 130, - 97, - 105, - 241, - 86, - 91, - 144, - 80, - 97, - 109, - 57, - 99, - 59, - 154, - 202, - 0, - 130, - 97, - 137, - 71, - 86, - 91, - 144, - 80, - 97, - 109, - 69, - 134, - 130, - 97, - 65, - 53, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 109, - 92, - 97, - 109, - 86, - 134, - 139, - 97, - 140, - 46, - 86, - 91, - 137, - 97, - 125, - 178, - 86, - 91, - 144, - 80, - 96, - 0, - 129, - 18, - 21, - 97, - 109, - 128, - 87, - 96, - 64, - 81, - 99, - 170, - 243, - 149, - 111, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 129, - 19, - 21, - 97, - 109, - 169, - 87, - 96, - 64, - 81, - 99, - 170, - 243, - 149, - 111, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 129, - 3, - 97, - 109, - 196, - 87, - 96, - 0, - 147, - 80, - 80, - 80, - 80, - 97, - 29, - 139, - 86, - 91, - 128, - 96, - 0, - 3, - 97, - 109, - 223, - 87, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 147, - 80, - 80, - 80, - 80, - 97, - 29, - 139, - 86, - 91, - 97, - 109, - 232, - 129, - 97, - 105, - 84, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 109, - 246, - 131, - 131, - 97, - 140, - 46, - 86, - 91, - 144, - 80, - 97, - 110, - 1, - 129, - 97, - 122, - 187, - 86, - 91, - 144, - 80, - 97, - 104, - 151, - 129, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 97, - 136, - 165, - 86, - 91, - 96, - 0, - 97, - 110, - 33, - 131, - 136, - 97, - 140, - 46, - 86, - 91, - 144, - 80, - 133, - 97, - 110, - 46, - 130, - 130, - 97, - 125, - 178, - 86, - 91, - 97, - 74, - 21, - 144, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 97, - 136, - 165, - 86, - 91, - 96, - 0, - 96, - 1, - 96, - 1, - 96, - 127, - 27, - 3, - 130, - 17, - 21, - 97, - 74, - 73, - 87, - 96, - 0, - 128, - 253, - 91, - 96, - 32, - 128, - 130, - 1, - 128, - 81, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 144, - 129, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 8, - 132, - 82, - 96, - 64, - 128, - 130, - 32, - 134, - 81, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 131, - 82, - 96, - 10, - 134, - 82, - 129, - 131, - 32, - 148, - 81, - 144, - 147, - 22, - 130, - 82, - 146, - 144, - 147, - 82, - 144, - 130, - 32, - 96, - 4, - 130, - 1, - 84, - 96, - 5, - 131, - 1, - 84, - 96, - 3, - 132, - 1, - 84, - 133, - 148, - 133, - 148, - 144, - 147, - 144, - 146, - 97, - 110, - 188, - 146, - 132, - 146, - 145, - 144, - 97, - 117, - 53, - 86, - 91, - 96, - 32, - 137, - 1, - 81, - 137, - 81, - 96, - 224, - 139, - 1, - 81, - 148, - 153, - 80, - 146, - 151, - 80, - 144, - 149, - 80, - 96, - 0, - 146, - 97, - 110, - 225, - 146, - 144, - 96, - 15, - 11, - 97, - 16, - 169, - 86, - 91, - 144, - 80, - 128, - 97, - 111, - 19, - 87, - 96, - 6, - 131, - 1, - 84, - 96, - 64, - 81, - 99, - 38, - 136, - 198, - 203, - 96, - 226, - 27, - 129, - 82, - 96, - 1, - 96, - 128, - 27, - 144, - 145, - 4, - 97, - 255, - 255, - 22, - 96, - 4, - 130, - 1, - 82, - 96, - 36, - 1, - 97, - 25, - 118, - 86, - 91, - 96, - 64, - 135, - 1, - 81, - 96, - 224, - 136, - 1, - 81, - 97, - 111, - 40, - 145, - 132, - 145, - 97, - 125, - 199, - 86, - 91, - 96, - 224, - 135, - 1, - 81, - 96, - 32, - 128, - 137, - 1, - 81, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 8, - 144, - 145, - 82, - 96, - 64, - 144, - 32, - 97, - 111, - 83, - 145, - 97, - 126, - 29, - 86, - 91, - 96, - 160, - 135, - 1, - 81, - 96, - 192, - 136, - 1, - 81, - 96, - 224, - 137, - 1, - 81, - 96, - 0, - 96, - 15, - 145, - 144, - 145, - 11, - 18, - 21, - 97, - 111, - 145, - 87, - 97, - 111, - 126, - 130, - 138, - 96, - 96, - 1, - 81, - 97, - 70, - 43, - 86, - 91, - 97, - 111, - 140, - 129, - 138, - 96, - 128, - 1, - 81, - 97, - 70, - 43, - 86, - 91, - 97, - 111, - 173, - 86, - 91, - 97, - 111, - 159, - 130, - 138, - 96, - 96, - 1, - 81, - 97, - 116, - 238, - 86, - 91, - 97, - 111, - 173, - 129, - 138, - 96, - 128, - 1, - 81, - 97, - 116, - 238, - 86, - 91, - 80, - 80, - 80, - 80, - 80, - 145, - 147, - 144, - 146, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 97, - 111, - 199, - 132, - 97, - 48, - 152, - 86, - 91, - 80, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 134, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 8, - 96, - 32, - 82, - 96, - 64, - 144, - 32, - 144, - 146, - 80, - 97, - 111, - 238, - 145, - 80, - 66, - 97, - 126, - 92, - 86, - 91, - 97, - 114, - 248, - 96, - 8, - 96, - 0, - 134, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 144, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 32, - 96, - 64, - 81, - 128, - 97, - 1, - 64, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 2, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 3, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 4, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 5, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 6, - 130, - 1, - 96, - 64, - 81, - 128, - 97, - 1, - 0, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 18, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 22, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 24, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 26, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 30, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 21, - 21, - 21, - 21, - 129, - 82, - 80, - 80, - 129, - 82, - 96, - 32, - 1, - 96, - 7, - 130, - 1, - 96, - 64, - 81, - 128, - 96, - 128, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 80, - 80, - 129, - 82, - 80, - 80, - 97, - 102, - 127, - 86, - 91, - 96, - 0, - 3, - 97, - 115, - 10, - 87, - 96, - 0, - 148, - 144, - 147, - 80, - 145, - 80, - 80, - 86, - 91, - 96, - 1, - 148, - 144, - 147, - 80, - 145, - 80, - 80, - 86, - 91, - 97, - 115, - 34, - 96, - 0, - 132, - 132, - 132, - 97, - 108, - 197, - 86, - 91, - 129, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 131, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 127, - 73, - 225, - 68, - 60, - 178, - 94, - 23, - 203, - 235, - 197, - 10, - 163, - 227, - 165, - 163, - 223, - 58, - 195, - 52, - 175, - 133, - 43, - 198, - 243, - 232, - 210, - 88, - 85, - 130, - 87, - 187, - 17, - 131, - 96, - 64, - 81, - 97, - 115, - 103, - 145, - 129, - 82, - 96, - 32, - 1, - 144, - 86, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 163, - 80, - 80, - 80, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 130, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 8, - 96, - 32, - 82, - 96, - 64, - 129, - 32, - 96, - 2, - 1, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 51, - 3, - 97, - 115, - 246, - 87, - 129, - 81, - 96, - 32, - 131, - 1, - 81, - 96, - 0, - 145, - 97, - 115, - 178, - 145, - 97, - 136, - 165, - 86, - 91, - 144, - 80, - 96, - 0, - 128, - 130, - 18, - 97, - 115, - 195, - 87, - 129, - 97, - 115, - 204, - 86, - 91, - 97, - 115, - 204, - 130, - 97, - 139, - 140, - 86, - 91, - 144, - 80, - 128, - 21, - 97, - 115, - 243, - 87, - 97, - 115, - 243, - 97, - 115, - 238, - 133, - 96, - 192, - 1, - 81, - 131, - 97, - 104, - 223, - 144, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 96, - 18, - 85, - 86, - 91, - 80, - 80, - 91, - 96, - 0, - 130, - 96, - 32, - 1, - 81, - 19, - 21, - 97, - 116, - 37, - 87, - 97, - 116, - 29, - 97, - 116, - 24, - 131, - 96, - 160, - 1, - 81, - 132, - 96, - 192, - 1, - 81, - 97, - 104, - 223, - 86, - 91, - 96, - 17, - 85, - 86, - 91, - 80, - 96, - 1, - 97, - 24, - 76, - 86, - 91, - 80, - 96, - 0, - 146, - 145, - 80, - 80, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 135, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 8, - 96, - 32, - 82, - 96, - 64, - 144, - 32, - 97, - 116, - 79, - 135, - 97, - 74, - 55, - 86, - 91, - 129, - 84, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 25, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 145, - 144, - 145, - 22, - 23, - 129, - 85, - 97, - 116, - 115, - 134, - 97, - 74, - 55, - 86, - 91, - 129, - 84, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 145, - 130, - 22, - 96, - 1, - 96, - 128, - 27, - 2, - 145, - 22, - 23, - 129, - 85, - 97, - 116, - 148, - 133, - 97, - 74, - 55, - 86, - 91, - 96, - 1, - 130, - 1, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 25, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 146, - 144, - 146, - 22, - 145, - 144, - 145, - 23, - 144, - 85, - 97, - 116, - 192, - 129, - 66, - 97, - 126, - 92, - 86, - 91, - 96, - 4, - 129, - 1, - 84, - 132, - 1, - 96, - 4, - 130, - 1, - 85, - 96, - 5, - 129, - 1, - 84, - 131, - 1, - 96, - 5, - 130, - 1, - 85, - 96, - 3, - 129, - 1, - 84, - 130, - 1, - 96, - 3, - 144, - 145, - 1, - 85, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 97, - 116, - 250, - 96, - 0, - 131, - 131, - 97, - 126, - 139, - 86, - 91, - 129, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 127, - 128, - 178, - 23, - 72, - 199, - 135, - 197, - 46, - 135, - 166, - 178, - 34, - 1, - 30, - 10, - 14, - 208, - 249, - 204, - 32, - 21, - 240, - 206, - 212, - 103, - 72, - 100, - 45, - 198, - 46, - 233, - 248, - 130, - 96, - 64, - 81, - 97, - 70, - 114, - 145, - 129, - 82, - 96, - 32, - 1, - 144, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 128, - 97, - 117, - 73, - 135, - 137, - 96, - 2, - 1, - 84, - 144, - 3, - 144, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 117, - 91, - 135, - 138, - 96, - 3, - 1, - 84, - 144, - 3, - 144, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 117, - 109, - 135, - 139, - 96, - 1, - 1, - 84, - 144, - 3, - 144, - 86, - 91, - 138, - 84, - 144, - 145, - 80, - 97, - 117, - 134, - 144, - 132, - 144, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 97, - 65, - 53, - 86, - 91, - 138, - 84, - 144, - 150, - 80, - 97, - 117, - 159, - 144, - 131, - 144, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 97, - 65, - 53, - 86, - 91, - 138, - 84, - 144, - 149, - 80, - 97, - 117, - 184, - 144, - 130, - 144, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 97, - 65, - 53, - 86, - 91, - 96, - 2, - 139, - 1, - 138, - 144, - 85, - 96, - 3, - 139, - 1, - 137, - 144, - 85, - 96, - 1, - 139, - 1, - 136, - 144, - 85, - 147, - 80, - 97, - 117, - 216, - 134, - 97, - 74, - 55, - 86, - 91, - 96, - 4, - 139, - 1, - 128, - 84, - 96, - 0, - 144, - 97, - 117, - 245, - 144, - 132, - 144, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 97, - 140, - 111, - 86, - 91, - 146, - 80, - 97, - 1, - 0, - 10, - 129, - 84, - 129, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 2, - 25, - 22, - 144, - 131, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 2, - 23, - 144, - 85, - 80, - 97, - 118, - 34, - 133, - 97, - 74, - 55, - 86, - 91, - 96, - 4, - 139, - 1, - 128, - 84, - 96, - 16, - 144, - 97, - 118, - 70, - 144, - 132, - 144, - 96, - 1, - 96, - 128, - 27, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 97, - 140, - 111, - 86, - 91, - 146, - 80, - 97, - 1, - 0, - 10, - 129, - 84, - 129, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 2, - 25, - 22, - 144, - 131, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 2, - 23, - 144, - 85, - 80, - 97, - 118, - 115, - 132, - 97, - 74, - 55, - 86, - 91, - 96, - 5, - 139, - 1, - 128, - 84, - 96, - 0, - 144, - 97, - 118, - 144, - 144, - 132, - 144, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 97, - 140, - 111, - 86, - 91, - 146, - 80, - 97, - 1, - 0, - 10, - 129, - 84, - 129, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 2, - 25, - 22, - 144, - 131, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 2, - 23, - 144, - 85, - 80, - 80, - 80, - 80, - 148, - 80, - 148, - 80, - 148, - 145, - 80, - 80, - 86, - 91, - 96, - 0, - 96, - 96, - 97, - 2, - 88, - 131, - 96, - 32, - 1, - 81, - 97, - 255, - 255, - 22, - 17, - 21, - 97, - 119, - 54, - 87, - 96, - 32, - 131, - 1, - 81, - 96, - 64, - 81, - 97, - 255, - 255, - 144, - 145, - 22, - 96, - 36, - 130, - 1, - 82, - 96, - 0, - 144, - 99, - 122, - 127, - 16, - 65, - 96, - 225, - 27, - 144, - 96, - 68, - 1, - 91, - 96, - 64, - 128, - 81, - 96, - 31, - 25, - 129, - 132, - 3, - 1, - 129, - 82, - 145, - 144, - 82, - 96, - 32, - 129, - 1, - 128, - 81, - 96, - 1, - 96, - 1, - 96, - 224, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 224, - 27, - 3, - 25, - 144, - 147, - 22, - 146, - 144, - 146, - 23, - 144, - 145, - 82, - 144, - 148, - 144, - 147, - 80, - 145, - 80, - 80, - 86, - 91, - 97, - 119, - 93, - 131, - 96, - 128, - 1, - 81, - 97, - 255, - 255, - 22, - 96, - 100, - 97, - 97, - 168, - 129, - 131, - 20, - 145, - 131, - 17, - 145, - 144, - 145, - 23, - 130, - 130, - 20, - 145, - 144, - 146, - 16, - 23, - 22, - 144, - 86, - 91, - 97, - 119, - 136, - 87, - 96, - 128, - 131, - 1, - 81, - 96, - 64, - 81, - 97, - 255, - 255, - 144, - 145, - 22, - 96, - 36, - 130, - 1, - 82, - 96, - 0, - 144, - 99, - 9, - 98, - 43, - 49, - 96, - 225, - 27, - 144, - 96, - 68, - 1, - 97, - 118, - 250, - 86, - 91, - 97, - 119, - 175, - 131, - 96, - 96, - 1, - 81, - 97, - 255, - 255, - 22, - 96, - 1, - 97, - 1, - 244, - 129, - 131, - 20, - 145, - 131, - 17, - 145, - 144, - 145, - 23, - 130, - 130, - 20, - 145, - 144, - 146, - 16, - 23, - 22, - 144, - 86, - 91, - 97, - 119, - 218, - 87, - 96, - 96, - 131, - 1, - 81, - 96, - 64, - 81, - 97, - 255, - 255, - 144, - 145, - 22, - 96, - 36, - 130, - 1, - 82, - 96, - 0, - 144, - 99, - 174, - 145, - 144, - 39, - 96, - 224, - 27, - 144, - 96, - 68, - 1, - 97, - 118, - 250, - 86, - 91, - 130, - 81, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 144, - 129, - 22, - 129, - 129, - 16, - 145, - 129, - 20, - 145, - 144, - 145, - 23, - 96, - 1, - 128, - 131, - 17, - 146, - 20, - 145, - 144, - 145, - 23, - 22, - 97, - 120, - 42, - 87, - 130, - 81, - 96, - 64, - 81, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 144, - 145, - 22, - 96, - 36, - 130, - 1, - 82, - 96, - 0, - 144, - 99, - 139, - 191, - 136, - 181, - 96, - 224, - 27, - 144, - 96, - 68, - 1, - 97, - 118, - 250, - 86, - 91, - 97, - 120, - 81, - 131, - 96, - 64, - 1, - 81, - 97, - 255, - 255, - 22, - 96, - 1, - 97, - 3, - 232, - 129, - 131, - 20, - 145, - 131, - 17, - 145, - 144, - 145, - 23, - 130, - 130, - 20, - 145, - 144, - 146, - 16, - 23, - 22, - 144, - 86, - 91, - 97, - 120, - 124, - 87, - 96, - 64, - 128, - 132, - 1, - 81, - 144, - 81, - 97, - 255, - 255, - 144, - 145, - 22, - 96, - 36, - 130, - 1, - 82, - 96, - 0, - 144, - 99, - 246, - 244, - 163, - 143, - 96, - 224, - 27, - 144, - 96, - 68, - 1, - 97, - 118, - 250, - 86, - 91, - 96, - 160, - 131, - 1, - 81, - 96, - 64, - 132, - 1, - 81, - 97, - 255, - 255, - 145, - 130, - 22, - 128, - 21, - 128, - 21, - 23, - 146, - 144, - 145, - 22, - 129, - 129, - 20, - 145, - 16, - 23, - 22, - 97, - 120, - 199, - 87, - 96, - 160, - 131, - 1, - 81, - 96, - 64, - 81, - 97, - 255, - 255, - 144, - 145, - 22, - 96, - 36, - 130, - 1, - 82, - 96, - 0, - 144, - 99, - 246, - 244, - 163, - 143, - 96, - 224, - 27, - 144, - 96, - 68, - 1, - 97, - 118, - 250, - 86, - 91, - 80, - 80, - 96, - 64, - 128, - 81, - 96, - 32, - 129, - 1, - 144, - 145, - 82, - 96, - 0, - 129, - 82, - 96, - 1, - 146, - 144, - 145, - 80, - 86, - 91, - 96, - 0, - 128, - 130, - 19, - 97, - 121, - 29, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 9, - 96, - 36, - 130, - 1, - 82, - 104, - 21, - 83, - 145, - 17, - 81, - 146, - 83, - 145, - 81, - 96, - 186, - 27, - 96, - 68, - 130, - 1, - 82, - 96, - 100, - 1, - 97, - 25, - 118, - 86, - 91, - 96, - 0, - 96, - 96, - 97, - 121, - 42, - 132, - 97, - 126, - 201, - 86, - 91, - 3, - 96, - 159, - 129, - 129, - 3, - 148, - 144, - 148, - 27, - 144, - 147, - 28, - 108, - 70, - 87, - 114, - 178, - 187, - 187, - 95, - 130, - 75, - 21, - 32, - 122, - 48, - 129, - 1, - 129, - 2, - 96, - 96, - 144, - 129, - 29, - 109, - 3, - 136, - 234, - 162, - 116, - 18, - 213, - 172, - 160, - 38, - 129, - 93, - 99, - 110, - 1, - 130, - 2, - 129, - 29, - 109, - 13, - 249, - 154, - 197, - 2, - 3, - 27, - 249, - 83, - 239, - 244, - 114, - 253, - 204, - 1, - 130, - 2, - 129, - 29, - 109, - 19, - 205, - 255, - 178, - 157, - 81, - 217, - 147, - 34, - 189, - 255, - 95, - 34, - 17, - 1, - 130, - 2, - 129, - 29, - 109, - 10, - 15, - 116, - 32, - 35, - 222, - 247, - 131, - 163, - 7, - 169, - 134, - 145, - 46, - 1, - 130, - 2, - 129, - 29, - 109, - 1, - 146, - 13, - 128, - 67, - 202, - 137, - 181, - 35, - 146, - 83, - 40, - 78, - 66, - 1, - 130, - 2, - 129, - 29, - 108, - 11, - 122, - 134, - 215, - 55, - 84, - 104, - 250, - 198, - 103, - 160, - 165, - 39, - 1, - 108, - 41, - 80, - 142, - 69, - 133, - 67, - 216, - 170, - 77, - 242, - 171, - 238, - 120, - 131, - 1, - 131, - 2, - 130, - 29, - 109, - 1, - 57, - 96, - 26, - 46, - 250, - 190, - 113, - 126, - 96, - 76, - 187, - 72, - 148, - 1, - 131, - 2, - 130, - 29, - 109, - 2, - 36, - 127, - 122, - 123, - 101, - 148, - 50, - 6, - 73, - 170, - 3, - 171, - 161, - 1, - 131, - 2, - 130, - 29, - 108, - 140, - 63, - 56, - 233, - 90, - 107, - 31, - 242, - 171, - 28, - 59, - 52, - 54, - 25, - 1, - 131, - 2, - 130, - 29, - 109, - 2, - 56, - 71, - 115, - 189, - 241, - 172, - 86, - 118, - 250, - 204, - 237, - 96, - 144, - 25, - 1, - 131, - 2, - 144, - 145, - 29, - 108, - 185, - 160, - 37, - 216, - 20, - 178, - 156, - 33, - 43, - 139, - 26, - 7, - 205, - 25, - 1, - 144, - 145, - 2, - 120, - 10, - 9, - 80, - 112, - 132, - 204, - 105, - 155, - 176, - 231, - 30, - 168, - 105, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 25, - 1, - 5, - 113, - 19, - 64, - 218, - 160, - 213, - 247, - 105, - 219, - 161, - 145, - 92, - 239, - 89, - 240, - 129, - 90, - 85, - 6, - 2, - 125, - 2, - 103, - 163, - 108, - 12, - 149, - 179, - 151, - 90, - 179, - 238, - 91, - 32, - 58, - 118, - 20, - 163, - 247, - 83, - 115, - 240, - 71, - 216, - 3, - 174, - 123, - 102, - 135, - 242, - 179, - 147, - 144, - 147, - 2, - 146, - 144, - 146, - 1, - 125, - 87, - 17, - 94, - 71, - 1, - 140, - 113, - 119, - 238, - 191, - 124, - 211, - 112, - 163, - 53, - 106, - 27, - 120, - 99, - 0, - 138, - 90, - 232, - 2, - 140, - 114, - 184, - 134, - 66, - 132, - 1, - 96, - 174, - 29, - 146, - 145, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 103, - 19, - 160, - 75, - 189, - 253, - 201, - 190, - 136, - 97, - 122, - 217, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 133, - 97, - 138, - 153, - 86, - 91, - 97, - 122, - 227, - 145, - 144, - 97, - 139, - 52, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 122, - 240, - 130, - 97, - 139, - 140, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 122, - 253, - 130, - 97, - 127, - 103, - 86, - 91, - 144, - 80, - 103, - 27, - 193, - 109, - 103, - 78, - 200, - 0, - 0, - 97, - 123, - 26, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 131, - 97, - 138, - 153, - 86, - 91, - 97, - 29, - 139, - 145, - 144, - 97, - 139, - 52, - 86, - 91, - 96, - 0, - 97, - 17, - 147, - 131, - 131, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 97, - 129, - 75, - 86, - 91, - 96, - 0, - 128, - 130, - 18, - 128, - 97, - 123, - 80, - 87, - 80, - 103, - 27, - 193, - 109, - 103, - 78, - 200, - 0, - 0, - 130, - 19, - 91, - 21, - 97, - 123, - 110, - 87, - 96, - 64, - 81, - 99, - 45, - 4, - 131, - 197, - 96, - 226, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 129, - 96, - 0, - 3, - 97, - 123, - 143, - 87, - 96, - 64, - 81, - 99, - 7, - 160, - 33, - 39, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 129, - 103, - 27, - 193, - 109, - 103, - 78, - 200, - 0, - 0, - 3, - 97, - 123, - 183, - 87, - 96, - 64, - 81, - 99, - 34, - 237, - 89, - 133, - 96, - 226, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 128, - 21, - 97, - 123, - 194, - 87, - 145, - 144, - 80, - 86, - 91, - 96, - 0, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 131, - 18, - 97, - 123, - 234, - 87, - 97, - 123, - 229, - 131, - 103, - 27, - 193, - 109, - 103, - 78, - 200, - 0, - 0, - 97, - 136, - 165, - 86, - 91, - 97, - 123, - 236, - 86, - 91, - 130, - 91, - 144, - 80, - 96, - 0, - 97, - 124, - 2, - 130, - 103, - 27, - 193, - 109, - 103, - 78, - 200, - 0, - 0, - 97, - 125, - 178, - 86, - 91, - 144, - 80, - 128, - 96, - 0, - 3, - 97, - 124, - 37, - 87, - 96, - 64, - 81, - 99, - 7, - 160, - 33, - 39, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 0, - 97, - 124, - 48, - 130, - 97, - 120, - 224, - 86, - 91, - 144, - 80, - 96, - 0, - 99, - 59, - 154, - 202, - 0, - 97, - 124, - 91, - 97, - 124, - 86, - 97, - 124, - 80, - 103, - 27, - 193, - 109, - 103, - 78, - 200, - 0, - 0, - 97, - 139, - 140, - 86, - 91, - 133, - 97, - 123, - 36, - 86, - 91, - 97, - 105, - 241, - 86, - 91, - 97, - 124, - 101, - 145, - 144, - 97, - 138, - 153, - 86, - 91, - 144, - 80, - 96, - 0, - 128, - 97, - 124, - 124, - 131, - 103, - 3, - 193, - 102, - 92, - 122, - 171, - 32, - 0, - 97, - 123, - 36, - 86, - 91, - 97, - 124, - 142, - 144, - 103, - 32, - 5, - 254, - 79, - 38, - 142, - 160, - 0, - 97, - 140, - 46, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 124, - 185, - 132, - 97, - 124, - 167, - 134, - 102, - 159, - 50, - 117, - 36, - 98, - 160, - 0, - 97, - 123, - 36, - 86, - 91, - 97, - 104, - 185, - 144, - 103, - 13, - 197, - 82, - 127, - 100, - 44, - 32, - 0, - 97, - 140, - 46, - 86, - 91, - 97, - 124, - 203, - 144, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 97, - 140, - 46, - 86, - 91, - 144, - 80, - 97, - 124, - 239, - 103, - 9, - 208, - 40, - 204, - 111, - 32, - 95, - 255, - 25, - 133, - 97, - 124, - 229, - 133, - 133, - 97, - 125, - 178, - 86, - 91, - 97, - 104, - 185, - 145, - 144, - 97, - 136, - 165, - 86, - 91, - 146, - 80, - 80, - 80, - 96, - 0, - 91, - 96, - 2, - 129, - 16, - 21, - 97, - 125, - 138, - 87, - 96, - 0, - 134, - 97, - 125, - 11, - 132, - 97, - 127, - 103, - 86, - 91, - 97, - 125, - 21, - 145, - 144, - 97, - 136, - 165, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 125, - 35, - 132, - 133, - 97, - 123, - 36, - 86, - 91, - 97, - 125, - 44, - 144, - 97, - 139, - 140, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 125, - 57, - 130, - 97, - 106, - 149, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 125, - 71, - 134, - 133, - 97, - 123, - 36, - 86, - 91, - 97, - 125, - 89, - 103, - 15, - 168, - 206, - 223, - 194, - 173, - 221, - 250, - 132, - 97, - 123, - 36, - 86, - 91, - 97, - 125, - 99, - 145, - 144, - 97, - 136, - 165, - 86, - 91, - 144, - 80, - 97, - 125, - 111, - 132, - 130, - 97, - 125, - 178, - 86, - 91, - 97, - 125, - 121, - 144, - 135, - 97, - 140, - 46, - 86, - 91, - 149, - 80, - 132, - 96, - 1, - 1, - 148, - 80, - 80, - 80, - 80, - 80, - 97, - 124, - 246, - 86, - 91, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 136, - 18, - 97, - 125, - 167, - 87, - 97, - 125, - 162, - 130, - 97, - 139, - 140, - 86, - 91, - 97, - 74, - 21, - 86, - 91, - 80, - 150, - 149, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 97, - 17, - 147, - 131, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 132, - 97, - 129, - 75, - 86, - 91, - 130, - 84, - 99, - 255, - 255, - 255, - 255, - 131, - 22, - 96, - 1, - 96, - 128, - 27, - 2, - 99, - 255, - 255, - 255, - 255, - 96, - 128, - 27, - 25, - 130, - 22, - 129, - 23, - 133, - 85, - 97, - 125, - 253, - 145, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 145, - 130, - 22, - 145, - 22, - 23, - 130, - 97, - 129, - 106, - 86, - 91, - 131, - 84, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 25, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 145, - 144, - 145, - 22, - 23, - 144, - 146, - 85, - 80, - 80, - 86, - 91, - 96, - 1, - 130, - 1, - 84, - 97, - 126, - 53, - 144, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 130, - 97, - 129, - 106, - 86, - 91, - 96, - 1, - 146, - 144, - 146, - 1, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 25, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 144, - 147, - 22, - 146, - 144, - 146, - 23, - 144, - 145, - 85, - 80, - 86, - 91, - 97, - 126, - 101, - 129, - 97, - 105, - 65, - 86, - 91, - 130, - 96, - 1, - 1, - 96, - 16, - 97, - 1, - 0, - 10, - 129, - 84, - 129, - 99, - 255, - 255, - 255, - 255, - 2, - 25, - 22, - 144, - 131, - 99, - 255, - 255, - 255, - 255, - 22, - 2, - 23, - 144, - 85, - 80, - 80, - 80, - 86, - 91, - 97, - 126, - 149, - 131, - 131, - 97, - 76, - 48, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 130, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 1, - 132, - 1, - 96, - 32, - 82, - 96, - 64, - 129, - 32, - 128, - 84, - 131, - 146, - 144, - 97, - 126, - 191, - 144, - 132, - 144, - 97, - 137, - 47, - 86, - 91, - 144, - 145, - 85, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 130, - 17, - 97, - 127, - 6, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 9, - 96, - 36, - 130, - 1, - 82, - 104, - 21, - 83, - 145, - 17, - 81, - 146, - 83, - 145, - 81, - 96, - 186, - 27, - 96, - 68, - 130, - 1, - 82, - 96, - 100, - 1, - 97, - 25, - 118, - 86, - 91, - 80, - 96, - 1, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 130, - 17, - 96, - 7, - 27, - 130, - 129, - 28, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 16, - 96, - 6, - 27, - 23, - 130, - 129, - 28, - 99, - 255, - 255, - 255, - 255, - 16, - 96, - 5, - 27, - 23, - 130, - 129, - 28, - 97, - 255, - 255, - 16, - 96, - 4, - 27, - 23, - 130, - 129, - 28, - 96, - 255, - 16, - 96, - 3, - 144, - 129, - 27, - 144, - 145, - 23, - 131, - 129, - 28, - 96, - 15, - 16, - 96, - 2, - 27, - 23, - 131, - 129, - 28, - 144, - 145, - 16, - 130, - 27, - 23, - 145, - 130, - 28, - 17, - 23, - 144, - 86, - 91, - 96, - 0, - 129, - 96, - 0, - 3, - 97, - 127, - 128, - 87, - 80, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 145, - 144, - 80, - 86, - 91, - 103, - 86, - 152, - 238, - 240, - 102, - 112, - 0, - 0, - 130, - 18, - 97, - 127, - 151, - 87, - 80, - 96, - 0, - 145, - 144, - 80, - 86, - 91, - 97, - 127, - 168, - 103, - 86, - 152, - 238, - 240, - 102, - 112, - 0, - 0, - 97, - 139, - 140, - 86, - 91, - 130, - 19, - 97, - 127, - 189, - 87, - 80, - 103, - 27, - 193, - 109, - 103, - 78, - 200, - 0, - 0, - 145, - 144, - 80, - 86, - 91, - 96, - 0, - 97, - 127, - 200, - 131, - 97, - 129, - 181, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 128, - 1, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 97, - 127, - 234, - 132, - 103, - 27, - 193, - 109, - 103, - 78, - 200, - 0, - 0, - 97, - 104, - 223, - 86, - 91, - 97, - 127, - 252, - 144, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 97, - 140, - 46, - 86, - 91, - 97, - 125, - 178, - 86, - 91, - 144, - 80, - 96, - 0, - 128, - 130, - 97, - 128, - 93, - 129, - 97, - 128, - 74, - 129, - 97, - 128, - 56, - 129, - 97, - 128, - 37, - 129, - 103, - 2, - 95, - 15, - 225, - 5, - 163, - 20, - 0, - 97, - 123, - 36, - 86, - 91, - 97, - 104, - 185, - 144, - 103, - 11, - 104, - 223, - 24, - 228, - 113, - 251, - 255, - 25, - 97, - 140, - 46, - 86, - 91, - 97, - 104, - 185, - 144, - 103, - 20, - 168, - 69, - 76, - 25, - 225, - 172, - 0, - 97, - 140, - 46, - 86, - 91, - 97, - 104, - 185, - 144, - 103, - 15, - 193, - 14, - 1, - 87, - 130, - 119, - 255, - 25, - 97, - 140, - 46, - 86, - 91, - 97, - 128, - 111, - 144, - 103, - 3, - 222, - 189, - 8, - 59, - 140, - 124, - 0, - 97, - 140, - 46, - 86, - 91, - 145, - 80, - 131, - 144, - 80, - 97, - 128, - 215, - 129, - 97, - 128, - 197, - 129, - 97, - 128, - 179, - 129, - 97, - 128, - 161, - 129, - 97, - 128, - 142, - 129, - 139, - 97, - 123, - 36, - 86, - 91, - 97, - 104, - 185, - 144, - 103, - 2, - 149, - 212, - 0, - 234, - 50, - 87, - 255, - 25, - 97, - 140, - 46, - 86, - 91, - 97, - 104, - 185, - 144, - 103, - 1, - 87, - 216, - 178, - 236, - 199, - 8, - 0, - 97, - 140, - 46, - 86, - 91, - 97, - 104, - 185, - 144, - 103, - 5, - 49, - 10, - 167, - 213, - 33, - 48, - 0, - 97, - 140, - 46, - 86, - 91, - 97, - 104, - 185, - 144, - 103, - 13, - 224, - 204, - 61, - 21, - 97, - 0, - 0, - 97, - 140, - 46, - 86, - 91, - 145, - 80, - 129, - 103, - 17, - 144, - 0, - 171, - 16, - 15, - 252, - 0, - 97, - 128, - 237, - 135, - 136, - 97, - 123, - 36, - 86, - 91, - 97, - 128, - 249, - 144, - 96, - 0, - 25, - 97, - 138, - 153, - 86, - 91, - 97, - 129, - 3, - 145, - 144, - 97, - 136, - 165, - 86, - 91, - 97, - 129, - 13, - 145, - 144, - 97, - 140, - 46, - 86, - 91, - 146, - 80, - 80, - 96, - 0, - 97, - 129, - 27, - 131, - 97, - 106, - 149, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 129, - 41, - 133, - 131, - 97, - 123, - 36, - 86, - 91, - 144, - 80, - 96, - 0, - 136, - 18, - 97, - 129, - 57, - 87, - 128, - 97, - 74, - 21, - 86, - 91, - 97, - 74, - 21, - 129, - 103, - 27, - 193, - 109, - 103, - 78, - 200, - 0, - 0, - 97, - 136, - 165, - 86, - 91, - 130, - 130, - 2, - 129, - 21, - 21, - 132, - 21, - 133, - 131, - 5, - 133, - 20, - 23, - 22, - 97, - 129, - 99, - 87, - 96, - 0, - 128, - 253, - 91, - 5, - 146, - 145, - 80, - 80, - 86, - 91, - 96, - 64, - 128, - 81, - 96, - 4, - 129, - 82, - 96, - 36, - 129, - 1, - 144, - 145, - 82, - 96, - 32, - 129, - 1, - 128, - 81, - 96, - 1, - 96, - 1, - 96, - 224, - 27, - 3, - 22, - 99, - 31, - 255, - 150, - 129, - 96, - 224, - 27, - 23, - 144, - 82, - 130, - 130, - 1, - 144, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 130, - 17, - 21, - 97, - 129, - 174, - 87, - 128, - 81, - 129, - 96, - 32, - 1, - 253, - 91, - 80, - 146, - 145, - 80, - 80, - 86, - 91, - 96, - 0, - 96, - 1, - 96, - 255, - 27, - 130, - 3, - 97, - 129, - 219, - 87, - 96, - 64, - 81, - 99, - 77, - 45, - 117, - 177, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 0, - 130, - 18, - 21, - 97, - 74, - 73, - 87, - 80, - 25, - 96, - 1, - 1, - 144, - 86, - 91, - 145, - 144, - 80, - 86, - 91, - 80, - 128, - 84, - 96, - 0, - 130, - 85, - 96, - 3, - 2, - 144, - 96, - 0, - 82, - 96, - 32, - 96, - 0, - 32, - 144, - 129, - 1, - 144, - 97, - 25, - 233, - 145, - 144, - 97, - 130, - 124, - 86, - 91, - 80, - 128, - 84, - 96, - 0, - 130, - 85, - 144, - 96, - 0, - 82, - 96, - 32, - 96, - 0, - 32, - 144, - 129, - 1, - 144, - 97, - 25, - 233, - 145, - 144, - 97, - 130, - 169, - 86, - 91, - 96, - 64, - 81, - 128, - 97, - 1, - 32, - 1, - 96, - 64, - 82, - 128, - 96, - 0, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 129, - 82, - 80, - 144, - 86, - 91, - 91, - 128, - 130, - 17, - 21, - 97, - 74, - 73, - 87, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 25, - 22, - 129, - 85, - 96, - 0, - 96, - 1, - 130, - 1, - 129, - 144, - 85, - 96, - 2, - 130, - 1, - 85, - 96, - 3, - 1, - 97, - 130, - 125, - 86, - 91, - 91, - 128, - 130, - 17, - 21, - 97, - 74, - 73, - 87, - 96, - 0, - 129, - 85, - 96, - 1, - 1, - 97, - 130, - 170, - 86, - 91, - 128, - 53, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 129, - 22, - 129, - 20, - 97, - 129, - 236, - 87, - 96, - 0, - 128, - 253, - 91, - 96, - 0, - 96, - 32, - 130, - 132, - 3, - 18, - 21, - 97, - 130, - 231, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 17, - 147, - 130, - 97, - 130, - 190, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 129, - 22, - 129, - 20, - 97, - 25, - 233, - 87, - 96, - 0, - 128, - 253, - 91, - 96, - 0, - 128, - 96, - 0, - 96, - 96, - 132, - 134, - 3, - 18, - 21, - 97, - 131, - 26, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 131, - 35, - 132, - 97, - 130, - 190, - 86, - 91, - 146, - 80, - 96, - 32, - 132, - 1, - 53, - 97, - 131, - 51, - 129, - 97, - 130, - 240, - 86, - 91, - 146, - 149, - 146, - 148, - 80, - 80, - 80, - 96, - 64, - 145, - 144, - 145, - 1, - 53, - 144, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 128, - 96, - 0, - 96, - 160, - 134, - 136, - 3, - 18, - 21, - 97, - 131, - 92, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 131, - 101, - 134, - 97, - 130, - 190, - 86, - 91, - 151, - 96, - 32, - 135, - 1, - 53, - 151, - 80, - 96, - 64, - 135, - 1, - 53, - 150, - 96, - 96, - 129, - 1, - 53, - 150, - 80, - 96, - 128, - 1, - 53, - 148, - 80, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 64, - 131, - 133, - 3, - 18, - 21, - 97, - 131, - 153, - 87, - 96, - 0, - 128, - 253, - 91, - 130, - 53, - 97, - 131, - 164, - 129, - 97, - 130, - 240, - 86, - 91, - 145, - 80, - 96, - 32, - 131, - 1, - 53, - 97, - 131, - 180, - 129, - 97, - 130, - 240, - 86, - 91, - 128, - 145, - 80, - 80, - 146, - 80, - 146, - 144, - 80, - 86, - 91, - 96, - 0, - 96, - 32, - 130, - 132, - 3, - 18, - 21, - 97, - 131, - 209, - 87, - 96, - 0, - 128, - 253, - 91, - 129, - 53, - 97, - 17, - 147, - 129, - 97, - 130, - 240, - 86, - 91, - 96, - 0, - 96, - 32, - 130, - 132, - 3, - 18, - 21, - 97, - 131, - 238, - 87, - 96, - 0, - 128, - 253, - 91, - 129, - 53, - 98, - 255, - 255, - 255, - 129, - 22, - 129, - 20, - 97, - 17, - 147, - 87, - 96, - 0, - 128, - 253, - 91, - 96, - 0, - 96, - 32, - 130, - 132, - 3, - 18, - 21, - 97, - 132, - 19, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 53, - 145, - 144, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 64, - 131, - 133, - 3, - 18, - 21, - 97, - 132, - 45, - 87, - 96, - 0, - 128, - 253, - 91, - 130, - 53, - 97, - 132, - 56, - 129, - 97, - 130, - 240, - 86, - 91, - 148, - 96, - 32, - 147, - 144, - 147, - 1, - 53, - 147, - 80, - 80, - 80, - 86, - 91, - 128, - 53, - 128, - 21, - 21, - 129, - 20, - 97, - 129, - 236, - 87, - 96, - 0, - 128, - 253, - 91, - 96, - 0, - 128, - 96, - 0, - 96, - 96, - 132, - 134, - 3, - 18, - 21, - 97, - 132, - 107, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 132, - 116, - 132, - 97, - 130, - 190, - 86, - 91, - 146, - 80, - 97, - 132, - 130, - 96, - 32, - 133, - 1, - 97, - 132, - 70, - 86, - 91, - 145, - 80, - 96, - 64, - 132, - 1, - 53, - 144, - 80, - 146, - 80, - 146, - 80, - 146, - 86, - 91, - 96, - 0, - 128, - 96, - 64, - 131, - 133, - 3, - 18, - 21, - 97, - 132, - 165, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 132, - 174, - 131, - 97, - 130, - 190, - 86, - 91, - 145, - 80, - 96, - 32, - 131, - 1, - 53, - 128, - 96, - 15, - 11, - 129, - 20, - 97, - 131, - 180, - 87, - 96, - 0, - 128, - 253, - 91, - 96, - 0, - 97, - 2, - 128, - 130, - 1, - 144, - 80, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 128, - 141, - 22, - 131, - 82, - 128, - 140, - 22, - 96, - 32, - 132, - 1, - 82, - 128, - 139, - 22, - 96, - 64, - 132, - 1, - 82, - 99, - 255, - 255, - 255, - 255, - 138, - 22, - 96, - 96, - 132, - 1, - 82, - 96, - 1, - 128, - 96, - 160, - 27, - 3, - 137, - 22, - 96, - 128, - 132, - 1, - 82, - 135, - 96, - 160, - 132, - 1, - 82, - 134, - 96, - 192, - 132, - 1, - 82, - 133, - 96, - 224, - 132, - 1, - 82, - 128, - 133, - 81, - 22, - 97, - 1, - 0, - 132, - 1, - 82, - 80, - 96, - 32, - 132, - 1, - 81, - 97, - 255, - 255, - 128, - 130, - 22, - 97, - 1, - 32, - 133, - 1, - 82, - 128, - 96, - 64, - 135, - 1, - 81, - 22, - 97, - 1, - 64, - 133, - 1, - 82, - 80, - 80, - 96, - 96, - 132, - 1, - 81, - 97, - 133, - 87, - 97, - 1, - 96, - 132, - 1, - 130, - 97, - 255, - 255, - 22, - 144, - 82, - 86, - 91, - 80, - 96, - 128, - 132, - 1, - 81, - 97, - 255, - 255, - 144, - 129, - 22, - 97, - 1, - 128, - 132, - 1, - 82, - 96, - 160, - 133, - 1, - 81, - 22, - 97, - 1, - 160, - 131, - 1, - 82, - 96, - 192, - 132, - 1, - 81, - 99, - 255, - 255, - 255, - 255, - 22, - 97, - 1, - 192, - 131, - 1, - 82, - 96, - 224, - 144, - 147, - 1, - 81, - 21, - 21, - 97, - 1, - 224, - 130, - 1, - 82, - 129, - 81, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 144, - 129, - 22, - 97, - 2, - 0, - 131, - 1, - 82, - 96, - 32, - 131, - 1, - 81, - 96, - 255, - 144, - 129, - 22, - 97, - 2, - 32, - 132, - 1, - 82, - 96, - 64, - 132, - 1, - 81, - 144, - 145, - 22, - 97, - 2, - 64, - 131, - 1, - 82, - 96, - 96, - 144, - 146, - 1, - 81, - 144, - 145, - 22, - 97, - 2, - 96, - 144, - 145, - 1, - 82, - 152, - 151, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 128, - 96, - 128, - 133, - 135, - 3, - 18, - 21, - 97, - 133, - 247, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 134, - 0, - 133, - 97, - 130, - 190, - 86, - 91, - 147, - 80, - 97, - 134, - 14, - 96, - 32, - 134, - 1, - 97, - 132, - 70, - 86, - 91, - 147, - 150, - 147, - 149, - 80, - 80, - 80, - 80, - 96, - 64, - 130, - 1, - 53, - 145, - 96, - 96, - 1, - 53, - 144, - 86, - 91, - 96, - 0, - 128, - 96, - 32, - 131, - 133, - 3, - 18, - 21, - 97, - 134, - 54, - 87, - 96, - 0, - 128, - 253, - 91, - 130, - 53, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 128, - 130, - 17, - 21, - 97, - 134, - 77, - 87, - 96, - 0, - 128, - 253, - 91, - 129, - 133, - 1, - 145, - 80, - 133, - 96, - 31, - 131, - 1, - 18, - 97, - 134, - 97, - 87, - 96, - 0, - 128, - 253, - 91, - 129, - 53, - 129, - 129, - 17, - 21, - 97, - 134, - 112, - 87, - 96, - 0, - 128, - 253, - 91, - 134, - 96, - 32, - 130, - 133, - 1, - 1, - 17, - 21, - 97, - 134, - 130, - 87, - 96, - 0, - 128, - 253, - 91, - 96, - 32, - 146, - 144, - 146, - 1, - 150, - 145, - 149, - 80, - 144, - 147, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 96, - 96, - 132, - 134, - 3, - 18, - 21, - 97, - 134, - 169, - 87, - 96, - 0, - 128, - 253, - 91, - 131, - 53, - 97, - 134, - 180, - 129, - 97, - 130, - 240, - 86, - 91, - 146, - 80, - 96, - 32, - 132, - 1, - 53, - 145, - 80, - 96, - 64, - 132, - 1, - 53, - 97, - 134, - 203, - 129, - 97, - 130, - 240, - 86, - 91, - 128, - 145, - 80, - 80, - 146, - 80, - 146, - 80, - 146, - 86, - 91, - 128, - 53, - 97, - 255, - 255, - 129, - 22, - 129, - 20, - 97, - 129, - 236, - 87, - 96, - 0, - 128, - 253, - 91, - 96, - 0, - 128, - 96, - 0, - 128, - 96, - 128, - 133, - 135, - 3, - 18, - 21, - 97, - 134, - 254, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 135, - 7, - 133, - 97, - 130, - 190, - 86, - 91, - 147, - 80, - 97, - 135, - 21, - 96, - 32, - 134, - 1, - 97, - 134, - 214, - 86, - 91, - 146, - 80, - 97, - 135, - 35, - 96, - 64, - 134, - 1, - 97, - 134, - 214, - 86, - 91, - 145, - 80, - 97, - 135, - 49, - 96, - 96, - 134, - 1, - 97, - 134, - 214, - 86, - 91, - 144, - 80, - 146, - 149, - 145, - 148, - 80, - 146, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 64, - 131, - 133, - 3, - 18, - 21, - 97, - 135, - 79, - 87, - 96, - 0, - 128, - 253, - 91, - 130, - 53, - 97, - 135, - 90, - 129, - 97, - 130, - 240, - 86, - 91, - 145, - 80, - 97, - 135, - 104, - 96, - 32, - 132, - 1, - 97, - 130, - 190, - 86, - 91, - 144, - 80, - 146, - 80, - 146, - 144, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 64, - 131, - 133, - 3, - 18, - 21, - 97, - 135, - 132, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 132, - 56, - 131, - 97, - 130, - 190, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 96, - 96, - 132, - 134, - 3, - 18, - 21, - 97, - 135, - 162, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 135, - 171, - 132, - 97, - 130, - 190, - 86, - 91, - 149, - 96, - 32, - 133, - 1, - 53, - 149, - 80, - 96, - 64, - 144, - 148, - 1, - 53, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 91, - 131, - 129, - 16, - 21, - 97, - 135, - 219, - 87, - 129, - 129, - 1, - 81, - 131, - 130, - 1, - 82, - 96, - 32, - 1, - 97, - 135, - 195, - 86, - 91, - 131, - 129, - 17, - 21, - 97, - 40, - 3, - 87, - 80, - 80, - 96, - 0, - 145, - 1, - 82, - 86, - 91, - 96, - 32, - 129, - 82, - 96, - 0, - 130, - 81, - 128, - 96, - 32, - 132, - 1, - 82, - 97, - 136, - 11, - 129, - 96, - 64, - 133, - 1, - 96, - 32, - 135, - 1, - 97, - 135, - 192, - 86, - 91, - 96, - 31, - 1, - 96, - 31, - 25, - 22, - 145, - 144, - 145, - 1, - 96, - 64, - 1, - 146, - 145, - 80, - 80, - 86, - 91, - 96, - 0, - 96, - 32, - 130, - 132, - 3, - 18, - 21, - 97, - 136, - 49, - 87, - 96, - 0, - 128, - 253, - 91, - 129, - 81, - 97, - 17, - 147, - 129, - 97, - 130, - 240, - 86, - 91, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 17, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 96, - 0, - 130, - 130, - 16, - 21, - 97, - 136, - 100, - 87, - 97, - 136, - 100, - 97, - 136, - 60, - 86, - 91, - 80, - 3, - 144, - 86, - 91, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 50, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 96, - 0, - 129, - 96, - 15, - 11, - 96, - 1, - 96, - 1, - 96, - 127, - 27, - 3, - 25, - 129, - 3, - 97, - 136, - 156, - 87, - 97, - 136, - 156, - 97, - 136, - 60, - 86, - 91, - 96, - 0, - 3, - 146, - 145, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 131, - 18, - 128, - 21, - 96, - 1, - 96, - 255, - 27, - 133, - 1, - 132, - 18, - 22, - 21, - 97, - 136, - 195, - 87, - 97, - 136, - 195, - 97, - 136, - 60, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 255, - 27, - 3, - 132, - 1, - 131, - 19, - 129, - 22, - 21, - 97, - 136, - 222, - 87, - 97, - 136, - 222, - 97, - 136, - 60, - 86, - 91, - 80, - 80, - 3, - 144, - 86, - 91, - 96, - 0, - 130, - 81, - 97, - 136, - 246, - 129, - 132, - 96, - 32, - 135, - 1, - 97, - 135, - 192, - 86, - 91, - 145, - 144, - 145, - 1, - 146, - 145, - 80, - 80, - 86, - 91, - 96, - 0, - 96, - 32, - 130, - 132, - 3, - 18, - 21, - 97, - 137, - 18, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 81, - 145, - 144, - 80, - 86, - 91, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 49, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 96, - 0, - 130, - 25, - 130, - 17, - 21, - 97, - 137, - 66, - 87, - 97, - 137, - 66, - 97, - 136, - 60, - 86, - 91, - 80, - 1, - 144, - 86, - 91, - 96, - 0, - 129, - 96, - 0, - 25, - 4, - 131, - 17, - 130, - 21, - 21, - 22, - 21, - 97, - 137, - 97, - 87, - 97, - 137, - 97, - 97, - 136, - 60, - 86, - 91, - 80, - 2, - 144, - 86, - 91, - 96, - 0, - 128, - 133, - 133, - 17, - 21, - 97, - 137, - 118, - 87, - 96, - 0, - 128, - 253, - 91, - 131, - 134, - 17, - 21, - 97, - 137, - 131, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 80, - 130, - 1, - 147, - 145, - 144, - 146, - 3, - 145, - 80, - 86, - 91, - 96, - 0, - 96, - 1, - 130, - 1, - 97, - 137, - 162, - 87, - 97, - 137, - 162, - 97, - 136, - 60, - 86, - 91, - 80, - 96, - 1, - 1, - 144, - 86, - 91, - 96, - 1, - 129, - 129, - 91, - 128, - 133, - 17, - 21, - 97, - 137, - 228, - 87, - 129, - 96, - 0, - 25, - 4, - 130, - 17, - 21, - 97, - 137, - 202, - 87, - 97, - 137, - 202, - 97, - 136, - 60, - 86, - 91, - 128, - 133, - 22, - 21, - 97, - 137, - 215, - 87, - 145, - 129, - 2, - 145, - 91, - 147, - 132, - 28, - 147, - 144, - 128, - 2, - 144, - 97, - 137, - 174, - 86, - 91, - 80, - 146, - 80, - 146, - 144, - 80, - 86, - 91, - 96, - 0, - 130, - 97, - 137, - 251, - 87, - 80, - 96, - 1, - 97, - 24, - 76, - 86, - 91, - 129, - 97, - 138, - 8, - 87, - 80, - 96, - 0, - 97, - 24, - 76, - 86, - 91, - 129, - 96, - 1, - 129, - 20, - 97, - 138, - 30, - 87, - 96, - 2, - 129, - 20, - 97, - 138, - 40, - 87, - 97, - 138, - 68, - 86, - 91, - 96, - 1, - 145, - 80, - 80, - 97, - 24, - 76, - 86, - 91, - 96, - 255, - 132, - 17, - 21, - 97, - 138, - 57, - 87, - 97, - 138, - 57, - 97, - 136, - 60, - 86, - 91, - 80, - 80, - 96, - 1, - 130, - 27, - 97, - 24, - 76, - 86, - 91, - 80, - 96, - 32, - 131, - 16, - 97, - 1, - 51, - 131, - 16, - 22, - 96, - 78, - 132, - 16, - 96, - 11, - 132, - 16, - 22, - 23, - 21, - 97, - 138, - 103, - 87, - 80, - 129, - 129, - 10, - 97, - 24, - 76, - 86, - 91, - 97, - 138, - 113, - 131, - 131, - 97, - 137, - 169, - 86, - 91, - 128, - 96, - 0, - 25, - 4, - 130, - 17, - 21, - 97, - 138, - 133, - 87, - 97, - 138, - 133, - 97, - 136, - 60, - 86, - 91, - 2, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 97, - 17, - 147, - 131, - 131, - 97, - 137, - 236, - 86, - 91, - 96, - 0, - 96, - 1, - 96, - 1, - 96, - 255, - 27, - 3, - 129, - 132, - 19, - 130, - 132, - 19, - 128, - 130, - 22, - 134, - 132, - 4, - 134, - 17, - 22, - 21, - 97, - 138, - 191, - 87, - 97, - 138, - 191, - 97, - 136, - 60, - 86, - 91, - 96, - 1, - 96, - 255, - 27, - 96, - 0, - 135, - 18, - 130, - 129, - 22, - 135, - 131, - 5, - 137, - 18, - 22, - 21, - 97, - 138, - 222, - 87, - 97, - 138, - 222, - 97, - 136, - 60, - 86, - 91, - 96, - 0, - 135, - 18, - 146, - 80, - 135, - 130, - 5, - 135, - 18, - 132, - 132, - 22, - 22, - 21, - 97, - 138, - 250, - 87, - 97, - 138, - 250, - 97, - 136, - 60, - 86, - 91, - 135, - 133, - 5, - 135, - 18, - 129, - 132, - 22, - 22, - 21, - 97, - 139, - 16, - 87, - 97, - 139, - 16, - 97, - 136, - 60, - 86, - 91, - 80, - 80, - 80, - 146, - 144, - 147, - 2, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 18, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 96, - 0, - 130, - 97, - 139, - 67, - 87, - 97, - 139, - 67, - 97, - 139, - 30, - 86, - 91, - 96, - 1, - 96, - 255, - 27, - 130, - 20, - 96, - 0, - 25, - 132, - 20, - 22, - 21, - 97, - 139, - 93, - 87, - 97, - 139, - 93, - 97, - 136, - 60, - 86, - 91, - 80, - 5, - 144, - 86, - 91, - 96, - 0, - 130, - 97, - 139, - 113, - 87, - 97, - 139, - 113, - 97, - 139, - 30, - 86, - 91, - 80, - 4, - 144, - 86, - 91, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 1, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 96, - 0, - 96, - 1, - 96, - 255, - 27, - 130, - 1, - 97, - 139, - 161, - 87, - 97, - 139, - 161, - 97, - 136, - 60, - 86, - 91, - 80, - 96, - 0, - 3, - 144, - 86, - 91, - 96, - 0, - 99, - 255, - 255, - 255, - 255, - 128, - 131, - 22, - 129, - 129, - 3, - 97, - 139, - 193, - 87, - 97, - 139, - 193, - 97, - 136, - 60, - 86, - 91, - 96, - 1, - 1, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 96, - 32, - 130, - 132, - 3, - 18, - 21, - 97, - 139, - 221, - 87, - 96, - 0, - 128, - 253, - 91, - 129, - 81, - 96, - 255, - 129, - 22, - 129, - 20, - 97, - 17, - 147, - 87, - 96, - 0, - 128, - 253, - 91, - 96, - 0, - 98, - 255, - 255, - 255, - 128, - 131, - 22, - 129, - 129, - 3, - 97, - 139, - 193, - 87, - 97, - 139, - 193, - 97, - 136, - 60, - 86, - 91, - 96, - 0, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 131, - 129, - 22, - 144, - 131, - 22, - 129, - 129, - 16, - 21, - 97, - 140, - 38, - 87, - 97, - 140, - 38, - 97, - 136, - 60, - 86, - 91, - 3, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 130, - 18, - 128, - 21, - 96, - 1, - 96, - 1, - 96, - 255, - 27, - 3, - 132, - 144, - 3, - 133, - 19, - 22, - 21, - 97, - 140, - 80, - 87, - 97, - 140, - 80, - 97, - 136, - 60, - 86, - 91, - 96, - 1, - 96, - 255, - 27, - 131, - 144, - 3, - 132, - 18, - 129, - 22, - 21, - 97, - 140, - 105, - 87, - 97, - 140, - 105, - 97, - 136, - 60, - 86, - 91, - 80, - 80, - 1, - 144, - 86, - 91, - 96, - 0, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 128, - 131, - 22, - 129, - 133, - 22, - 128, - 131, - 3, - 130, - 17, - 21, - 97, - 140, - 145, - 87, - 97, - 140, - 145, - 97, - 136, - 60, - 86, - 91, - 1, - 148, - 147, - 80, - 80, - 80, - 80, - 86, - 254, - 162, - 100, - 105, - 112, - 102, - 115, - 88, - 34, - 18, - 32, - 6, - 40, - 123, - 95, - 202, - 66, - 166, - 114, - 199, - 70, - 37, - 241, - 101, - 39, - 188, - 9, - 174, - 5, - 137, - 237, - 35, - 203, - 7, - 15, - 41, - 242, - 234, - 5, - 25, - 223, - 159, - 17, - 100, - 115, - 111, - 108, - 99, - 67, - 0, - 8, - 13, - 0, - 51, - ]; - ///The bytecode of the contract. - pub static RMM01PORTFOLIO_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( - __BYTECODE, - ); - #[rustfmt::skip] - const __DEPLOYED_BYTECODE: &[u8] = &[ - 96, - 128, - 96, - 64, - 82, - 96, - 4, - 54, - 16, - 97, - 1, - 209, - 87, - 96, - 0, - 53, - 96, - 224, - 28, - 128, - 99, - 152, - 155, - 175, - 186, - 17, - 97, - 0, - 247, - 87, - 128, - 99, - 182, - 133, - 19, - 234, - 17, - 97, - 0, - 149, - 87, - 128, - 99, - 212, - 250, - 196, - 93, - 17, - 97, - 0, - 100, - 87, - 128, - 99, - 212, - 250, - 196, - 93, - 20, - 97, - 9, - 221, - 87, - 128, - 99, - 214, - 183, - 222, - 197, - 20, - 97, - 9, - 253, - 87, - 128, - 99, - 218, - 49, - 238, - 84, - 20, - 97, - 10, - 53, - 87, - 128, - 99, - 255, - 161, - 173, - 116, - 20, - 97, - 10, - 79, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 99, - 182, - 133, - 19, - 234, - 20, - 97, - 8, - 178, - 87, - 128, - 99, - 196, - 141, - 136, - 122, - 20, - 97, - 9, - 127, - 87, - 128, - 99, - 201, - 163, - 150, - 233, - 20, - 97, - 9, - 159, - 87, - 128, - 99, - 208, - 227, - 13, - 176, - 20, - 97, - 9, - 213, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 99, - 166, - 138, - 170, - 65, - 17, - 97, - 0, - 209, - 87, - 128, - 99, - 166, - 138, - 170, - 65, - 20, - 97, - 8, - 30, - 87, - 128, - 99, - 173, - 36, - 214, - 160, - 20, - 97, - 8, - 62, - 87, - 128, - 99, - 173, - 92, - 70, - 72, - 20, - 97, - 8, - 94, - 87, - 128, - 99, - 175, - 119, - 120, - 85, - 20, - 97, - 8, - 146, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 99, - 152, - 155, - 175, - 186, - 20, - 97, - 7, - 163, - 87, - 128, - 99, - 160, - 253, - 244, - 19, - 20, - 97, - 7, - 195, - 87, - 128, - 99, - 165, - 205, - 138, - 73, - 20, - 97, - 7, - 214, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 99, - 77, - 198, - 138, - 144, - 17, - 97, - 1, - 111, - 87, - 128, - 99, - 123, - 24, - 55, - 222, - 17, - 97, - 1, - 62, - 87, - 128, - 99, - 123, - 24, - 55, - 222, - 20, - 97, - 4, - 165, - 87, - 128, - 99, - 125, - 174, - 72, - 144, - 20, - 97, - 4, - 197, - 87, - 128, - 99, - 137, - 146, - 242, - 10, - 20, - 97, - 4, - 229, - 87, - 128, - 99, - 137, - 165, - 240, - 132, - 20, - 97, - 5, - 5, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 99, - 77, - 198, - 138, - 144, - 20, - 97, - 3, - 172, - 87, - 128, - 99, - 94, - 71, - 102, - 60, - 20, - 97, - 3, - 218, - 87, - 128, - 99, - 97, - 183, - 234, - 106, - 20, - 97, - 4, - 101, - 87, - 128, - 99, - 120, - 125, - 206, - 61, - 20, - 97, - 4, - 133, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 99, - 42, - 251, - 157, - 248, - 17, - 97, - 1, - 171, - 87, - 128, - 99, - 42, - 251, - 157, - 248, - 20, - 97, - 2, - 211, - 87, - 128, - 99, - 44, - 198, - 100, - 30, - 20, - 97, - 3, - 8, - 87, - 128, - 99, - 47, - 51, - 125, - 165, - 20, - 97, - 3, - 56, - 87, - 128, - 99, - 63, - 146, - 163, - 57, - 20, - 97, - 3, - 111, - 87, - 96, - 0, - 128, - 253, - 91, - 128, - 99, - 6, - 67, - 59, - 27, - 20, - 97, - 2, - 18, - 87, - 128, - 99, - 7, - 136, - 136, - 214, - 20, - 97, - 2, - 99, - 87, - 128, - 99, - 26, - 75, - 144, - 91, - 20, - 97, - 2, - 147, - 87, - 96, - 0, - 128, - 253, - 91, - 54, - 97, - 2, - 13, - 87, - 51, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 127, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22, - 20, - 97, - 2, - 11, - 87, - 96, - 0, - 128, - 253, - 91, - 0, - 91, - 96, - 0, - 128, - 253, - 91, - 52, - 128, - 21, - 97, - 2, - 30, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 2, - 70, - 127, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 129, - 86, - 91, - 96, - 64, - 81, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 144, - 145, - 22, - 129, - 82, - 96, - 32, - 1, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 243, - 91, - 52, - 128, - 21, - 97, - 2, - 111, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 96, - 5, - 84, - 97, - 2, - 127, - 144, - 98, - 255, - 255, - 255, - 22, - 129, - 86, - 91, - 96, - 64, - 81, - 98, - 255, - 255, - 255, - 144, - 145, - 22, - 129, - 82, - 96, - 32, - 1, - 97, - 2, - 90, - 86, - 91, - 52, - 128, - 21, - 97, - 2, - 159, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 2, - 179, - 97, - 2, - 174, - 54, - 96, - 4, - 97, - 130, - 213, - 86, - 91, - 97, - 10, - 113, - 86, - 91, - 96, - 64, - 128, - 81, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 147, - 132, - 22, - 129, - 82, - 146, - 144, - 145, - 22, - 96, - 32, - 131, - 1, - 82, - 1, - 97, - 2, - 90, - 86, - 91, - 52, - 128, - 21, - 97, - 2, - 223, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 2, - 243, - 97, - 2, - 238, - 54, - 96, - 4, - 97, - 130, - 213, - 86, - 91, - 97, - 13, - 135, - 86, - 91, - 96, - 64, - 128, - 81, - 146, - 131, - 82, - 96, - 32, - 131, - 1, - 145, - 144, - 145, - 82, - 1, - 97, - 2, - 90, - 86, - 91, - 52, - 128, - 21, - 97, - 3, - 20, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 3, - 40, - 97, - 3, - 35, - 54, - 96, - 4, - 97, - 131, - 5, - 86, - 91, - 97, - 16, - 169, - 86, - 91, - 96, - 64, - 81, - 144, - 21, - 21, - 129, - 82, - 96, - 32, - 1, - 97, - 2, - 90, - 86, - 91, - 52, - 128, - 21, - 97, - 3, - 68, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 3, - 88, - 97, - 3, - 83, - 54, - 96, - 4, - 97, - 131, - 68, - 86, - 91, - 97, - 17, - 154, - 86, - 91, - 96, - 64, - 128, - 81, - 146, - 21, - 21, - 131, - 82, - 96, - 32, - 131, - 1, - 145, - 144, - 145, - 82, - 1, - 97, - 2, - 90, - 86, - 91, - 52, - 128, - 21, - 97, - 3, - 123, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 2, - 127, - 97, - 3, - 138, - 54, - 96, - 4, - 97, - 131, - 134, - 86, - 91, - 96, - 9, - 96, - 32, - 144, - 129, - 82, - 96, - 0, - 146, - 131, - 82, - 96, - 64, - 128, - 132, - 32, - 144, - 145, - 82, - 144, - 130, - 82, - 144, - 32, - 84, - 98, - 255, - 255, - 255, - 22, - 129, - 86, - 91, - 52, - 128, - 21, - 97, - 3, - 184, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 3, - 204, - 97, - 3, - 199, - 54, - 96, - 4, - 97, - 131, - 191, - 86, - 91, - 97, - 24, - 63, - 86, - 91, - 96, - 64, - 81, - 144, - 129, - 82, - 96, - 32, - 1, - 97, - 2, - 90, - 86, - 91, - 52, - 128, - 21, - 97, - 3, - 230, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 4, - 49, - 97, - 3, - 245, - 54, - 96, - 4, - 97, - 131, - 220, - 86, - 91, - 96, - 7, - 96, - 32, - 82, - 96, - 0, - 144, - 129, - 82, - 96, - 64, - 144, - 32, - 128, - 84, - 96, - 1, - 144, - 145, - 1, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 128, - 131, - 22, - 146, - 96, - 255, - 96, - 1, - 96, - 160, - 27, - 145, - 130, - 144, - 4, - 129, - 22, - 147, - 146, - 131, - 22, - 146, - 145, - 144, - 145, - 4, - 22, - 132, - 86, - 91, - 96, - 64, - 128, - 81, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 149, - 134, - 22, - 129, - 82, - 96, - 255, - 148, - 133, - 22, - 96, - 32, - 130, - 1, - 82, - 148, - 144, - 146, - 22, - 145, - 132, - 1, - 145, - 144, - 145, - 82, - 22, - 96, - 96, - 130, - 1, - 82, - 96, - 128, - 1, - 97, - 2, - 90, - 86, - 91, - 52, - 128, - 21, - 97, - 4, - 113, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 3, - 204, - 97, - 4, - 128, - 54, - 96, - 4, - 97, - 130, - 213, - 86, - 91, - 97, - 24, - 82, - 86, - 91, - 52, - 128, - 21, - 97, - 4, - 145, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 2, - 11, - 97, - 4, - 160, - 54, - 96, - 4, - 97, - 132, - 1, - 86, - 91, - 97, - 24, - 102, - 86, - 91, - 52, - 128, - 21, - 97, - 4, - 177, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 2, - 11, - 97, - 4, - 192, - 54, - 96, - 4, - 97, - 132, - 26, - 86, - 91, - 97, - 25, - 236, - 86, - 91, - 52, - 128, - 21, - 97, - 4, - 209, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 3, - 204, - 97, - 4, - 224, - 54, - 96, - 4, - 97, - 132, - 86, - 86, - 91, - 97, - 26, - 109, - 86, - 91, - 52, - 128, - 21, - 97, - 4, - 241, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 2, - 179, - 97, - 5, - 0, - 54, - 96, - 4, - 97, - 132, - 146, - 86, - 91, - 97, - 29, - 148, - 86, - 91, - 52, - 128, - 21, - 97, - 5, - 17, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 7, - 141, - 97, - 5, - 32, - 54, - 96, - 4, - 97, - 130, - 213, - 86, - 91, - 96, - 8, - 96, - 32, - 82, - 128, - 96, - 0, - 82, - 96, - 64, - 96, - 0, - 32, - 96, - 0, - 145, - 80, - 144, - 80, - 128, - 96, - 0, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 144, - 128, - 96, - 0, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 144, - 128, - 96, - 1, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 144, - 128, - 96, - 1, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 144, - 128, - 96, - 2, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 144, - 128, - 96, - 3, - 1, - 84, - 144, - 128, - 96, - 4, - 1, - 84, - 144, - 128, - 96, - 5, - 1, - 84, - 144, - 128, - 96, - 6, - 1, - 96, - 64, - 81, - 128, - 97, - 1, - 0, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 18, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 22, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 24, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 26, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 30, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 21, - 21, - 21, - 21, - 129, - 82, - 80, - 80, - 144, - 128, - 96, - 7, - 1, - 96, - 64, - 81, - 128, - 96, - 128, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 80, - 80, - 144, - 80, - 138, - 86, - 91, - 96, - 64, - 81, - 97, - 2, - 90, - 154, - 153, - 152, - 151, - 150, - 149, - 148, - 147, - 146, - 145, - 144, - 97, - 132, - 196, - 86, - 91, - 52, - 128, - 21, - 97, - 7, - 175, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 3, - 204, - 97, - 7, - 190, - 54, - 96, - 4, - 97, - 133, - 225, - 86, - 91, - 97, - 32, - 183, - 86, - 91, - 97, - 2, - 11, - 97, - 7, - 209, - 54, - 96, - 4, - 97, - 134, - 35, - 86, - 91, - 97, - 33, - 39, - 86, - 91, - 52, - 128, - 21, - 97, - 7, - 226, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 8, - 9, - 97, - 7, - 241, - 54, - 96, - 4, - 97, - 131, - 220, - 86, - 91, - 96, - 6, - 96, - 32, - 82, - 96, - 0, - 144, - 129, - 82, - 96, - 64, - 144, - 32, - 84, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 86, - 91, - 96, - 64, - 81, - 99, - 255, - 255, - 255, - 255, - 144, - 145, - 22, - 129, - 82, - 96, - 32, - 1, - 97, - 2, - 90, - 86, - 91, - 52, - 128, - 21, - 97, - 8, - 42, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 3, - 40, - 97, - 8, - 57, - 54, - 96, - 4, - 97, - 130, - 213, - 86, - 91, - 97, - 33, - 165, - 86, - 91, - 52, - 128, - 21, - 97, - 8, - 74, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 2, - 11, - 97, - 8, - 89, - 54, - 96, - 4, - 97, - 134, - 148, - 86, - 91, - 97, - 36, - 187, - 86, - 91, - 52, - 128, - 21, - 97, - 8, - 106, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 2, - 70, - 127, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 129, - 86, - 91, - 52, - 128, - 21, - 97, - 8, - 158, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 2, - 11, - 97, - 8, - 173, - 54, - 96, - 4, - 97, - 134, - 232, - 86, - 91, - 97, - 38, - 9, - 86, - 91, - 52, - 128, - 21, - 97, - 8, - 190, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 9, - 43, - 97, - 8, - 205, - 54, - 96, - 4, - 97, - 135, - 60, - 86, - 91, - 96, - 10, - 96, - 32, - 144, - 129, - 82, - 96, - 0, - 146, - 131, - 82, - 96, - 64, - 128, - 132, - 32, - 144, - 145, - 82, - 144, - 130, - 82, - 144, - 32, - 128, - 84, - 96, - 1, - 130, - 1, - 84, - 96, - 2, - 131, - 1, - 84, - 96, - 3, - 132, - 1, - 84, - 96, - 4, - 133, - 1, - 84, - 96, - 5, - 144, - 149, - 1, - 84, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 128, - 134, - 22, - 150, - 99, - 255, - 255, - 255, - 255, - 96, - 1, - 96, - 128, - 27, - 151, - 136, - 144, - 4, - 22, - 150, - 129, - 131, - 22, - 147, - 145, - 4, - 130, - 22, - 145, - 22, - 136, - 86, - 91, - 96, - 64, - 128, - 81, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 153, - 138, - 22, - 129, - 82, - 99, - 255, - 255, - 255, - 255, - 144, - 152, - 22, - 96, - 32, - 137, - 1, - 82, - 135, - 1, - 149, - 144, - 149, - 82, - 96, - 96, - 134, - 1, - 147, - 144, - 147, - 82, - 96, - 128, - 133, - 1, - 145, - 144, - 145, - 82, - 132, - 22, - 96, - 160, - 132, - 1, - 82, - 131, - 22, - 96, - 192, - 131, - 1, - 82, - 145, - 144, - 145, - 22, - 96, - 224, - 130, - 1, - 82, - 97, - 1, - 0, - 1, - 97, - 2, - 90, - 86, - 91, - 52, - 128, - 21, - 97, - 9, - 139, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 2, - 243, - 97, - 9, - 154, - 54, - 96, - 4, - 97, - 135, - 113, - 86, - 91, - 97, - 40, - 9, - 86, - 91, - 52, - 128, - 21, - 97, - 9, - 171, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 3, - 204, - 97, - 9, - 186, - 54, - 96, - 4, - 97, - 131, - 191, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 1, - 96, - 32, - 82, - 96, - 64, - 144, - 32, - 84, - 144, - 86, - 91, - 97, - 2, - 11, - 97, - 43, - 36, - 86, - 91, - 52, - 128, - 21, - 97, - 9, - 233, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 3, - 204, - 97, - 9, - 248, - 54, - 96, - 4, - 97, - 131, - 134, - 86, - 91, - 97, - 43, - 170, - 86, - 91, - 52, - 128, - 21, - 97, - 10, - 9, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 10, - 29, - 97, - 10, - 24, - 54, - 96, - 4, - 97, - 135, - 141, - 86, - 91, - 97, - 43, - 211, - 86, - 91, - 96, - 64, - 81, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 144, - 145, - 22, - 129, - 82, - 96, - 32, - 1, - 97, - 2, - 90, - 86, - 91, - 52, - 128, - 21, - 97, - 10, - 65, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 96, - 4, - 84, - 97, - 3, - 40, - 144, - 96, - 255, - 22, - 129, - 86, - 91, - 52, - 128, - 21, - 97, - 10, - 91, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 10, - 100, - 97, - 46, - 235, - 86, - 91, - 96, - 64, - 81, - 97, - 2, - 90, - 145, - 144, - 97, - 135, - 236, - 86, - 91, - 96, - 0, - 128, - 97, - 13, - 126, - 96, - 8, - 96, - 0, - 133, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 144, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 32, - 96, - 64, - 81, - 128, - 97, - 1, - 64, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 2, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 3, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 4, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 5, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 6, - 130, - 1, - 96, - 64, - 81, - 128, - 97, - 1, - 0, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 18, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 22, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 24, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 26, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 30, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 21, - 21, - 21, - 21, - 129, - 82, - 80, - 80, - 129, - 82, - 96, - 32, - 1, - 96, - 7, - 130, - 1, - 96, - 64, - 81, - 128, - 96, - 128, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 80, - 80, - 129, - 82, - 80, - 80, - 97, - 47, - 8, - 86, - 91, - 145, - 80, - 145, - 80, - 145, - 80, - 145, - 86, - 91, - 96, - 0, - 128, - 97, - 16, - 148, - 96, - 8, - 96, - 0, - 133, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 144, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 32, - 96, - 64, - 81, - 128, - 97, - 1, - 64, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 2, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 3, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 4, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 5, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 6, - 130, - 1, - 96, - 64, - 81, - 128, - 97, - 1, - 0, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 18, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 22, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 24, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 26, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 30, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 21, - 21, - 21, - 21, - 129, - 82, - 80, - 80, - 129, - 82, - 96, - 32, - 1, - 96, - 7, - 130, - 1, - 96, - 64, - 81, - 128, - 96, - 128, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 80, - 80, - 129, - 82, - 80, - 80, - 97, - 47, - 136, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 145, - 130, - 22, - 149, - 145, - 22, - 147, - 80, - 145, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 130, - 18, - 21, - 97, - 17, - 143, - 87, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 131, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 10, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 136, - 22, - 132, - 82, - 130, - 82, - 128, - 131, - 32, - 129, - 81, - 97, - 1, - 0, - 129, - 1, - 131, - 82, - 129, - 84, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 128, - 130, - 22, - 131, - 82, - 99, - 255, - 255, - 255, - 255, - 96, - 1, - 96, - 128, - 27, - 146, - 131, - 144, - 4, - 129, - 22, - 150, - 132, - 1, - 150, - 144, - 150, - 82, - 96, - 1, - 132, - 1, - 84, - 148, - 131, - 1, - 148, - 144, - 148, - 82, - 96, - 2, - 131, - 1, - 84, - 96, - 96, - 131, - 1, - 82, - 96, - 3, - 131, - 1, - 84, - 96, - 128, - 131, - 1, - 82, - 96, - 4, - 131, - 1, - 84, - 128, - 133, - 22, - 96, - 160, - 132, - 1, - 82, - 4, - 131, - 22, - 96, - 192, - 130, - 1, - 82, - 96, - 5, - 144, - 145, - 1, - 84, - 144, - 145, - 22, - 96, - 224, - 130, - 1, - 82, - 97, - 17, - 93, - 145, - 66, - 144, - 97, - 47, - 163, - 22, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 134, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 8, - 96, - 32, - 82, - 96, - 64, - 144, - 32, - 96, - 6, - 1, - 84, - 96, - 1, - 96, - 128, - 27, - 144, - 4, - 97, - 255, - 255, - 22, - 17, - 21, - 145, - 80, - 97, - 17, - 147, - 144, - 80, - 86, - 91, - 80, - 96, - 1, - 91, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 97, - 20, - 179, - 132, - 96, - 8, - 96, - 0, - 139, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 144, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 32, - 96, - 64, - 81, - 128, - 97, - 1, - 64, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 2, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 3, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 4, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 5, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 6, - 130, - 1, - 96, - 64, - 81, - 128, - 97, - 1, - 0, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 18, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 22, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 24, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 26, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 30, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 21, - 21, - 21, - 21, - 129, - 82, - 80, - 80, - 129, - 82, - 96, - 32, - 1, - 96, - 7, - 130, - 1, - 96, - 64, - 81, - 128, - 96, - 128, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 80, - 80, - 129, - 82, - 80, - 80, - 97, - 47, - 187, - 144, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 144, - 80, - 97, - 23, - 194, - 96, - 8, - 96, - 0, - 138, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 144, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 32, - 96, - 64, - 81, - 128, - 97, - 1, - 64, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 2, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 3, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 4, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 5, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 6, - 130, - 1, - 96, - 64, - 81, - 128, - 97, - 1, - 0, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 18, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 22, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 24, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 26, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 30, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 21, - 21, - 21, - 21, - 129, - 82, - 80, - 80, - 129, - 82, - 96, - 32, - 1, - 96, - 7, - 130, - 1, - 96, - 64, - 81, - 128, - 96, - 128, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 80, - 80, - 129, - 82, - 80, - 80, - 135, - 135, - 132, - 97, - 48, - 1, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 137, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 8, - 96, - 32, - 129, - 144, - 82, - 96, - 64, - 130, - 32, - 1, - 84, - 145, - 147, - 80, - 144, - 97, - 23, - 247, - 144, - 137, - 144, - 96, - 1, - 96, - 160, - 27, - 144, - 4, - 96, - 255, - 22, - 97, - 48, - 70, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 138, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 8, - 96, - 32, - 129, - 144, - 82, - 96, - 64, - 130, - 32, - 1, - 84, - 145, - 146, - 80, - 144, - 97, - 24, - 44, - 144, - 133, - 144, - 96, - 1, - 96, - 160, - 27, - 144, - 4, - 96, - 255, - 22, - 97, - 48, - 70, - 86, - 91, - 145, - 144, - 145, - 18, - 21, - 147, - 80, - 80, - 80, - 149, - 80, - 149, - 147, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 97, - 24, - 76, - 129, - 131, - 48, - 97, - 48, - 92, - 86, - 91, - 146, - 145, - 80, - 80, - 86, - 91, - 96, - 0, - 97, - 24, - 93, - 130, - 97, - 48, - 152, - 86, - 91, - 80, - 144, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 11, - 84, - 96, - 1, - 20, - 97, - 24, - 140, - 87, - 96, - 64, - 81, - 96, - 1, - 98, - 56, - 221, - 247, - 96, - 224, - 27, - 3, - 25, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 2, - 96, - 11, - 129, - 144, - 85, - 80, - 127, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 99, - 247, - 124, - 71, - 145, - 96, - 64, - 81, - 129, - 99, - 255, - 255, - 255, - 255, - 22, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 32, - 96, - 64, - 81, - 128, - 131, - 3, - 129, - 134, - 90, - 250, - 21, - 128, - 21, - 97, - 24, - 242, - 87, - 61, - 96, - 0, - 128, - 62, - 61, - 96, - 0, - 253, - 91, - 80, - 80, - 80, - 80, - 96, - 64, - 81, - 61, - 96, - 31, - 25, - 96, - 31, - 130, - 1, - 22, - 130, - 1, - 128, - 96, - 64, - 82, - 80, - 129, - 1, - 144, - 97, - 25, - 22, - 145, - 144, - 97, - 136, - 31, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 51, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 20, - 97, - 25, - 71, - 87, - 96, - 64, - 81, - 99, - 35, - 1, - 158, - 103, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 20, - 129, - 17, - 128, - 97, - 25, - 86, - 87, - 80, - 96, - 4, - 129, - 16, - 91, - 21, - 97, - 25, - 127, - 87, - 96, - 64, - 81, - 99, - 246, - 244, - 163, - 143, - 96, - 224, - 27, - 129, - 82, - 97, - 255, - 255, - 130, - 22, - 96, - 4, - 130, - 1, - 82, - 96, - 36, - 1, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 13, - 128, - 84, - 144, - 130, - 144, - 85, - 96, - 64, - 128, - 81, - 130, - 129, - 82, - 96, - 32, - 129, - 1, - 132, - 144, - 82, - 127, - 129, - 201, - 57, - 20, - 72, - 0, - 40, - 118, - 3, - 71, - 155, - 151, - 187, - 169, - 193, - 18, - 136, - 206, - 122, - 188, - 90, - 203, - 72, - 144, - 121, - 225, - 89, - 243, - 92, - 249, - 139, - 209, - 145, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 161, - 80, - 96, - 1, - 96, - 11, - 85, - 96, - 4, - 84, - 96, - 255, - 22, - 97, - 25, - 233, - 87, - 96, - 64, - 81, - 99, - 4, - 86, - 76, - 113, - 96, - 226, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 80, - 86, - 91, - 96, - 11, - 84, - 96, - 1, - 20, - 97, - 26, - 18, - 87, - 96, - 64, - 81, - 96, - 1, - 98, - 56, - 221, - 247, - 96, - 224, - 27, - 3, - 25, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 2, - 96, - 11, - 85, - 96, - 1, - 129, - 1, - 97, - 26, - 44, - 87, - 97, - 26, - 41, - 130, - 51, - 97, - 57, - 236, - 86, - 91, - 144, - 80, - 91, - 97, - 26, - 57, - 96, - 0, - 131, - 48, - 132, - 97, - 58, - 204, - 86, - 91, - 97, - 26, - 65, - 97, - 58, - 225, - 86, - 91, - 96, - 1, - 96, - 11, - 85, - 96, - 4, - 84, - 96, - 255, - 22, - 97, - 26, - 105, - 87, - 96, - 64, - 81, - 99, - 4, - 86, - 76, - 113, - 96, - 226, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 8, - 96, - 0, - 134, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 144, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 32, - 96, - 64, - 81, - 128, - 97, - 1, - 64, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 2, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 3, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 4, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 5, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 6, - 130, - 1, - 96, - 64, - 81, - 128, - 97, - 1, - 0, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 18, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 22, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 24, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 26, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 30, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 21, - 21, - 21, - 21, - 129, - 82, - 80, - 80, - 129, - 82, - 96, - 32, - 1, - 96, - 7, - 130, - 1, - 96, - 64, - 81, - 128, - 96, - 128, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 80, - 80, - 129, - 82, - 80, - 80, - 144, - 80, - 97, - 29, - 139, - 132, - 132, - 66, - 132, - 97, - 63, - 115, - 144, - 147, - 146, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 149, - 148, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 97, - 32, - 171, - 131, - 96, - 8, - 96, - 0, - 135, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 144, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 32, - 96, - 64, - 81, - 128, - 97, - 1, - 64, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 2, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 3, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 4, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 5, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 6, - 130, - 1, - 96, - 64, - 81, - 128, - 97, - 1, - 0, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 18, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 22, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 24, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 26, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 30, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 21, - 21, - 21, - 21, - 129, - 82, - 80, - 80, - 129, - 82, - 96, - 32, - 1, - 96, - 7, - 130, - 1, - 96, - 64, - 81, - 128, - 96, - 128, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 80, - 80, - 129, - 82, - 80, - 80, - 97, - 64, - 48, - 144, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 145, - 80, - 145, - 80, - 91, - 146, - 80, - 146, - 144, - 80, - 86, - 91, - 96, - 0, - 128, - 132, - 21, - 97, - 32, - 227, - 87, - 97, - 32, - 220, - 131, - 97, - 32, - 214, - 134, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 97, - 136, - 82, - 86, - 91, - 144, - 97, - 65, - 53, - 86, - 91, - 144, - 80, - 97, - 33, - 28, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 134, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 8, - 96, - 32, - 82, - 96, - 64, - 144, - 32, - 96, - 6, - 1, - 84, - 97, - 33, - 25, - 144, - 132, - 144, - 97, - 32, - 214, - 144, - 135, - 144, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 97, - 136, - 82, - 86, - 91, - 144, - 80, - 91, - 144, - 80, - 91, - 148, - 147, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 11, - 84, - 96, - 1, - 20, - 97, - 33, - 77, - 87, - 96, - 64, - 81, - 96, - 1, - 98, - 56, - 221, - 247, - 96, - 224, - 27, - 3, - 25, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 2, - 96, - 11, - 85, - 97, - 33, - 90, - 97, - 65, - 74, - 86, - 91, - 96, - 85, - 96, - 249, - 27, - 130, - 130, - 96, - 0, - 129, - 97, - 33, - 112, - 87, - 97, - 33, - 112, - 97, - 136, - 105, - 86, - 91, - 144, - 80, - 1, - 53, - 96, - 248, - 28, - 96, - 248, - 27, - 96, - 1, - 96, - 1, - 96, - 248, - 27, - 3, - 25, - 22, - 20, - 97, - 33, - 152, - 87, - 97, - 33, - 147, - 130, - 130, - 97, - 65, - 178, - 86, - 91, - 97, - 26, - 57, - 86, - 91, - 97, - 26, - 57, - 130, - 130, - 97, - 65, - 178, - 97, - 69, - 10, - 86, - 91, - 96, - 0, - 97, - 24, - 76, - 96, - 8, - 96, - 0, - 132, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 144, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 32, - 96, - 64, - 81, - 128, - 97, - 1, - 64, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 2, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 3, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 4, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 5, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 6, - 130, - 1, - 96, - 64, - 81, - 128, - 97, - 1, - 0, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 18, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 22, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 24, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 26, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 30, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 21, - 21, - 21, - 21, - 129, - 82, - 80, - 80, - 129, - 82, - 96, - 32, - 1, - 96, - 7, - 130, - 1, - 96, - 64, - 81, - 128, - 96, - 128, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 80, - 80, - 129, - 82, - 80, - 80, - 96, - 96, - 1, - 81, - 99, - 255, - 255, - 255, - 255, - 22, - 21, - 21, - 144, - 86, - 91, - 96, - 11, - 84, - 96, - 1, - 20, - 97, - 36, - 225, - 87, - 96, - 64, - 81, - 96, - 1, - 98, - 56, - 221, - 247, - 96, - 224, - 27, - 3, - 25, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 2, - 96, - 11, - 85, - 48, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 130, - 22, - 3, - 97, - 37, - 15, - 87, - 96, - 64, - 81, - 99, - 47, - 53, - 37, - 49, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 0, - 97, - 37, - 27, - 51, - 133, - 97, - 43, - 170, - 86, - 91, - 144, - 80, - 96, - 0, - 25, - 131, - 3, - 97, - 37, - 42, - 87, - 128, - 146, - 80, - 91, - 128, - 131, - 17, - 21, - 97, - 37, - 75, - 87, - 96, - 64, - 81, - 99, - 50, - 124, - 188, - 155, - 96, - 226, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 97, - 37, - 85, - 132, - 132, - 97, - 69, - 216, - 86, - 91, - 97, - 37, - 95, - 132, - 132, - 97, - 70, - 43, - 86, - 91, - 127, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 132, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 3, - 97, - 37, - 200, - 87, - 97, - 37, - 195, - 127, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 131, - 133, - 97, - 70, - 126, - 86, - 91, - 97, - 37, - 211, - 86, - 91, - 97, - 37, - 211, - 132, - 131, - 133, - 97, - 71, - 101, - 86, - 91, - 97, - 37, - 219, - 97, - 58, - 225, - 86, - 91, - 80, - 96, - 1, - 96, - 11, - 85, - 96, - 4, - 84, - 96, - 255, - 22, - 97, - 38, - 4, - 87, - 96, - 64, - 81, - 99, - 4, - 86, - 76, - 113, - 96, - 226, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 80, - 80, - 80, - 86, - 91, - 96, - 11, - 84, - 96, - 1, - 20, - 97, - 38, - 47, - 87, - 96, - 64, - 81, - 96, - 1, - 98, - 56, - 221, - 247, - 96, - 224, - 27, - 3, - 25, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 2, - 96, - 11, - 129, - 144, - 85, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 133, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 8, - 96, - 32, - 82, - 96, - 64, - 144, - 32, - 144, - 129, - 1, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 51, - 20, - 97, - 38, - 122, - 87, - 96, - 64, - 81, - 99, - 35, - 1, - 158, - 103, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 64, - 128, - 81, - 97, - 1, - 0, - 129, - 1, - 130, - 82, - 96, - 0, - 128, - 130, - 82, - 96, - 32, - 130, - 1, - 129, - 144, - 82, - 145, - 129, - 1, - 130, - 144, - 82, - 96, - 96, - 129, - 1, - 130, - 144, - 82, - 96, - 128, - 129, - 1, - 130, - 144, - 82, - 96, - 160, - 129, - 1, - 130, - 144, - 82, - 96, - 192, - 129, - 1, - 130, - 144, - 82, - 96, - 224, - 129, - 1, - 145, - 144, - 145, - 82, - 80, - 96, - 64, - 128, - 81, - 97, - 1, - 0, - 129, - 1, - 130, - 82, - 96, - 6, - 131, - 1, - 84, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 129, - 22, - 130, - 82, - 97, - 255, - 255, - 96, - 1, - 96, - 128, - 27, - 130, - 4, - 129, - 22, - 96, - 32, - 132, - 1, - 82, - 96, - 1, - 96, - 144, - 27, - 130, - 4, - 129, - 22, - 147, - 131, - 1, - 147, - 144, - 147, - 82, - 96, - 1, - 96, - 160, - 27, - 129, - 4, - 131, - 22, - 96, - 96, - 131, - 1, - 82, - 96, - 1, - 96, - 176, - 27, - 129, - 4, - 131, - 22, - 96, - 128, - 131, - 1, - 82, - 96, - 1, - 96, - 192, - 27, - 129, - 4, - 131, - 22, - 96, - 160, - 131, - 1, - 82, - 99, - 255, - 255, - 255, - 255, - 96, - 1, - 96, - 208, - 27, - 130, - 4, - 22, - 96, - 192, - 131, - 1, - 82, - 96, - 255, - 96, - 1, - 96, - 240, - 27, - 144, - 145, - 4, - 22, - 21, - 21, - 96, - 224, - 130, - 1, - 82, - 144, - 131, - 22, - 21, - 97, - 39, - 90, - 87, - 97, - 255, - 255, - 131, - 22, - 96, - 32, - 130, - 1, - 82, - 91, - 97, - 255, - 255, - 132, - 22, - 21, - 97, - 39, - 111, - 87, - 97, - 255, - 255, - 132, - 22, - 96, - 64, - 130, - 1, - 82, - 91, - 97, - 255, - 255, - 133, - 22, - 21, - 97, - 39, - 132, - 87, - 97, - 255, - 255, - 133, - 22, - 96, - 160, - 130, - 1, - 82, - 91, - 97, - 39, - 142, - 130, - 130, - 97, - 71, - 227, - 86, - 91, - 96, - 64, - 81, - 97, - 255, - 255, - 132, - 129, - 22, - 130, - 82, - 128, - 134, - 22, - 145, - 144, - 135, - 22, - 144, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 137, - 22, - 144, - 127, - 99, - 136, - 150, - 84, - 253, - 163, - 215, - 78, - 149, - 252, - 123, - 230, - 211, - 16, - 196, - 83, - 198, - 136, - 59, - 108, - 205, - 232, - 64, - 12, - 71, - 103, - 39, - 35, - 126, - 99, - 42, - 194, - 144, - 96, - 32, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 164, - 80, - 80, - 96, - 1, - 96, - 11, - 85, - 96, - 4, - 84, - 96, - 255, - 22, - 97, - 40, - 3, - 87, - 96, - 64, - 81, - 99, - 4, - 86, - 76, - 113, - 96, - 226, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 97, - 43, - 25, - 96, - 8, - 96, - 0, - 134, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 144, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 32, - 96, - 64, - 81, - 128, - 97, - 1, - 64, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 2, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 3, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 4, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 5, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 6, - 130, - 1, - 96, - 64, - 81, - 128, - 97, - 1, - 0, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 18, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 22, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 24, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 26, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 30, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 21, - 21, - 21, - 21, - 129, - 82, - 80, - 80, - 129, - 82, - 96, - 32, - 1, - 96, - 7, - 130, - 1, - 96, - 64, - 81, - 128, - 96, - 128, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 80, - 80, - 129, - 82, - 80, - 80, - 132, - 96, - 0, - 97, - 72, - 225, - 86, - 91, - 144, - 149, - 144, - 148, - 80, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 11, - 84, - 96, - 1, - 20, - 97, - 43, - 74, - 87, - 96, - 64, - 81, - 96, - 1, - 98, - 56, - 221, - 247, - 96, - 224, - 27, - 3, - 25, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 2, - 96, - 11, - 85, - 52, - 96, - 0, - 3, - 97, - 43, - 112, - 87, - 96, - 64, - 81, - 99, - 124, - 148, - 110, - 215, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 97, - 43, - 120, - 97, - 65, - 74, - 86, - 91, - 97, - 43, - 128, - 97, - 58, - 225, - 86, - 91, - 96, - 1, - 96, - 11, - 85, - 96, - 4, - 84, - 96, - 255, - 22, - 97, - 43, - 168, - 87, - 96, - 64, - 81, - 99, - 4, - 86, - 76, - 113, - 96, - 226, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 145, - 130, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 32, - 129, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 147, - 144, - 148, - 22, - 130, - 82, - 145, - 144, - 145, - 82, - 32, - 84, - 144, - 86, - 91, - 96, - 0, - 97, - 33, - 31, - 131, - 131, - 96, - 8, - 96, - 0, - 136, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 144, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 32, - 96, - 64, - 81, - 128, - 97, - 1, - 64, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 2, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 3, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 4, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 5, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 6, - 130, - 1, - 96, - 64, - 81, - 128, - 97, - 1, - 0, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 18, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 22, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 24, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 26, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 30, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 21, - 21, - 21, - 21, - 129, - 82, - 80, - 80, - 129, - 82, - 96, - 32, - 1, - 96, - 7, - 130, - 1, - 96, - 64, - 81, - 128, - 96, - 128, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 80, - 80, - 129, - 82, - 80, - 80, - 97, - 73, - 105, - 144, - 146, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 96, - 96, - 96, - 32, - 96, - 0, - 82, - 107, - 11, - 118, - 49, - 46, - 48, - 46, - 48, - 45, - 98, - 101, - 116, - 97, - 96, - 43, - 82, - 96, - 96, - 96, - 0, - 243, - 91, - 96, - 0, - 128, - 96, - 0, - 128, - 97, - 47, - 30, - 133, - 128, - 81, - 96, - 32, - 144, - 145, - 1, - 81, - 144, - 145, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 145, - 80, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 145, - 80, - 97, - 47, - 91, - 97, - 47, - 86, - 134, - 97, - 1, - 32, - 1, - 81, - 96, - 32, - 1, - 81, - 96, - 255, - 22, - 132, - 97, - 74, - 33, - 144, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 97, - 74, - 55, - 86, - 91, - 147, - 80, - 97, - 47, - 127, - 97, - 47, - 86, - 134, - 97, - 1, - 32, - 1, - 81, - 96, - 96, - 1, - 81, - 96, - 255, - 22, - 131, - 97, - 74, - 33, - 144, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 146, - 80, - 80, - 80, - 145, - 80, - 145, - 86, - 91, - 96, - 0, - 128, - 97, - 13, - 126, - 131, - 96, - 64, - 1, - 81, - 97, - 47, - 156, - 144, - 97, - 136, - 127, - 86, - 91, - 132, - 144, - 97, - 64, - 48, - 86, - 91, - 96, - 0, - 130, - 96, - 32, - 1, - 81, - 99, - 255, - 255, - 255, - 255, - 22, - 130, - 97, - 17, - 147, - 145, - 144, - 97, - 136, - 82, - 86, - 91, - 96, - 0, - 130, - 97, - 1, - 0, - 1, - 81, - 96, - 224, - 1, - 81, - 21, - 97, - 47, - 215, - 87, - 80, - 99, - 1, - 225, - 133, - 89, - 97, - 24, - 76, - 86, - 91, - 96, - 0, - 97, - 47, - 231, - 132, - 97, - 1, - 0, - 1, - 81, - 97, - 74, - 77, - 86, - 91, - 99, - 255, - 255, - 255, - 255, - 22, - 128, - 132, - 3, - 144, - 132, - 16, - 2, - 131, - 3, - 146, - 144, - 146, - 3, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 97, - 33, - 28, - 131, - 133, - 135, - 97, - 1, - 0, - 1, - 81, - 96, - 0, - 1, - 81, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 97, - 48, - 64, - 137, - 97, - 1, - 0, - 1, - 81, - 96, - 128, - 1, - 81, - 97, - 255, - 255, - 22, - 97, - 39, - 16, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 145, - 144, - 145, - 2, - 4, - 144, - 86, - 91, - 134, - 97, - 74, - 116, - 86, - 91, - 96, - 0, - 128, - 97, - 48, - 82, - 131, - 97, - 74, - 145, - 86, - 91, - 144, - 147, - 5, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 130, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 1, - 132, - 1, - 96, - 32, - 82, - 96, - 64, - 129, - 32, - 84, - 129, - 97, - 48, - 130, - 133, - 133, - 97, - 57, - 236, - 86, - 91, - 144, - 80, - 97, - 48, - 142, - 130, - 130, - 97, - 136, - 165, - 86, - 91, - 150, - 149, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 128, - 96, - 8, - 96, - 0, - 134, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 144, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 32, - 144, - 80, - 97, - 51, - 181, - 66, - 130, - 96, - 64, - 81, - 128, - 97, - 1, - 64, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 2, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 3, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 4, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 5, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 6, - 130, - 1, - 96, - 64, - 81, - 128, - 97, - 1, - 0, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 18, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 22, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 24, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 26, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 30, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 21, - 21, - 21, - 21, - 129, - 82, - 80, - 80, - 129, - 82, - 96, - 32, - 1, - 96, - 7, - 130, - 1, - 96, - 64, - 81, - 128, - 96, - 128, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 80, - 80, - 129, - 82, - 80, - 80, - 97, - 47, - 187, - 144, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 145, - 80, - 96, - 0, - 128, - 97, - 54, - 167, - 131, - 96, - 64, - 81, - 128, - 97, - 1, - 64, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 2, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 3, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 4, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 5, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 6, - 130, - 1, - 96, - 64, - 81, - 128, - 97, - 1, - 0, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 18, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 22, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 24, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 26, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 30, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 21, - 21, - 21, - 21, - 129, - 82, - 80, - 80, - 129, - 82, - 96, - 32, - 1, - 96, - 7, - 130, - 1, - 96, - 64, - 81, - 128, - 96, - 128, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 80, - 80, - 129, - 82, - 80, - 80, - 128, - 81, - 96, - 32, - 144, - 145, - 1, - 81, - 144, - 145, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 145, - 80, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 145, - 80, - 97, - 57, - 177, - 130, - 130, - 134, - 134, - 96, - 64, - 81, - 128, - 97, - 1, - 64, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 2, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 3, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 4, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 5, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 6, - 130, - 1, - 96, - 64, - 81, - 128, - 97, - 1, - 0, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 18, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 22, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 24, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 26, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 30, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 21, - 21, - 21, - 21, - 129, - 82, - 80, - 80, - 129, - 82, - 96, - 32, - 1, - 96, - 7, - 130, - 1, - 96, - 64, - 81, - 128, - 96, - 128, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 80, - 80, - 129, - 82, - 80, - 80, - 97, - 48, - 1, - 144, - 147, - 146, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 96, - 6, - 132, - 1, - 84, - 96, - 15, - 145, - 144, - 145, - 11, - 149, - 80, - 97, - 57, - 224, - 144, - 131, - 144, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 129, - 22, - 144, - 96, - 1, - 96, - 176, - 27, - 144, - 4, - 97, - 255, - 255, - 22, - 135, - 97, - 74, - 169, - 86, - 91, - 149, - 80, - 80, - 80, - 80, - 145, - 147, - 144, - 146, - 80, - 86, - 91, - 96, - 64, - 128, - 81, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 131, - 129, - 22, - 96, - 36, - 128, - 132, - 1, - 145, - 144, - 145, - 82, - 131, - 81, - 128, - 132, - 3, - 144, - 145, - 1, - 129, - 82, - 96, - 68, - 144, - 146, - 1, - 131, - 82, - 96, - 32, - 130, - 1, - 128, - 81, - 96, - 1, - 96, - 1, - 96, - 224, - 27, - 3, - 22, - 99, - 112, - 160, - 130, - 49, - 96, - 224, - 27, - 23, - 144, - 82, - 145, - 81, - 96, - 0, - 146, - 131, - 146, - 131, - 146, - 145, - 135, - 22, - 145, - 97, - 58, - 70, - 145, - 144, - 97, - 136, - 228, - 86, - 91, - 96, - 0, - 96, - 64, - 81, - 128, - 131, - 3, - 129, - 133, - 90, - 250, - 145, - 80, - 80, - 61, - 128, - 96, - 0, - 129, - 20, - 97, - 58, - 129, - 87, - 96, - 64, - 81, - 145, - 80, - 96, - 31, - 25, - 96, - 63, - 61, - 1, - 22, - 130, - 1, - 96, - 64, - 82, - 61, - 130, - 82, - 61, - 96, - 0, - 96, - 32, - 132, - 1, - 62, - 97, - 58, - 134, - 86, - 91, - 96, - 96, - 145, - 80, - 91, - 80, - 145, - 80, - 145, - 80, - 129, - 21, - 128, - 97, - 58, - 154, - 87, - 80, - 128, - 81, - 96, - 32, - 20, - 21, - 91, - 21, - 97, - 58, - 184, - 87, - 96, - 64, - 81, - 99, - 197, - 46, - 62, - 255, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 128, - 128, - 96, - 32, - 1, - 144, - 81, - 129, - 1, - 144, - 97, - 29, - 139, - 145, - 144, - 97, - 137, - 0, - 86, - 91, - 97, - 58, - 214, - 132, - 132, - 97, - 76, - 48, - 86, - 91, - 97, - 40, - 3, - 131, - 131, - 131, - 97, - 76, - 192, - 86, - 91, - 96, - 0, - 128, - 96, - 3, - 1, - 128, - 84, - 128, - 96, - 32, - 2, - 96, - 32, - 1, - 96, - 64, - 81, - 144, - 129, - 1, - 96, - 64, - 82, - 128, - 146, - 145, - 144, - 129, - 129, - 82, - 96, - 32, - 1, - 130, - 128, - 84, - 128, - 21, - 97, - 59, - 59, - 87, - 96, - 32, - 2, - 130, - 1, - 145, - 144, - 96, - 0, - 82, - 96, - 32, - 96, - 0, - 32, - 144, - 91, - 129, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 1, - 144, - 145, - 1, - 144, - 96, - 32, - 1, - 128, - 131, - 17, - 97, - 59, - 29, - 87, - 91, - 80, - 80, - 80, - 80, - 80, - 144, - 80, - 96, - 0, - 129, - 81, - 144, - 80, - 128, - 96, - 0, - 3, - 97, - 59, - 90, - 87, - 97, - 26, - 105, - 96, - 0, - 97, - 76, - 204, - 86, - 91, - 128, - 91, - 96, - 0, - 131, - 97, - 59, - 106, - 96, - 1, - 132, - 97, - 136, - 82, - 86, - 91, - 129, - 81, - 129, - 16, - 97, - 59, - 122, - 87, - 97, - 59, - 122, - 97, - 136, - 105, - 86, - 91, - 96, - 32, - 2, - 96, - 32, - 1, - 1, - 81, - 144, - 80, - 96, - 0, - 128, - 96, - 0, - 97, - 59, - 159, - 132, - 48, - 96, - 0, - 97, - 76, - 251, - 144, - 146, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 145, - 148, - 80, - 146, - 80, - 144, - 80, - 130, - 21, - 97, - 60, - 52, - 87, - 96, - 64, - 81, - 131, - 129, - 82, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 133, - 22, - 144, - 51, - 144, - 127, - 73, - 225, - 68, - 60, - 178, - 94, - 23, - 203, - 235, - 197, - 10, - 163, - 227, - 165, - 163, - 223, - 58, - 195, - 52, - 175, - 133, - 43, - 198, - 243, - 232, - 210, - 88, - 85, - 130, - 87, - 187, - 17, - 144, - 96, - 32, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 163, - 131, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 127, - 128, - 178, - 23, - 72, - 199, - 135, - 197, - 46, - 135, - 166, - 178, - 34, - 1, - 30, - 10, - 14, - 208, - 249, - 204, - 32, - 21, - 240, - 206, - 212, - 103, - 72, - 100, - 45, - 198, - 46, - 233, - 248, - 132, - 96, - 64, - 81, - 97, - 60, - 39, - 145, - 129, - 82, - 96, - 32, - 1, - 144, - 86, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 162, - 97, - 61, - 65, - 86, - 91, - 129, - 21, - 97, - 60, - 190, - 87, - 96, - 64, - 81, - 130, - 129, - 82, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 133, - 22, - 144, - 51, - 144, - 127, - 11, - 11, - 130, - 25, - 83, - 229, - 84, - 91, - 113, - 242, - 8, - 88, - 51, - 228, - 168, - 223, - 208, - 217, - 155, - 189, - 255, - 81, - 24, - 152, - 103, - 42, - 232, - 23, - 154, - 152, - 45, - 243, - 144, - 96, - 32, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 163, - 131, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 127, - 28, - 113, - 30, - 202, - 141, - 11, - 105, - 75, - 188, - 176, - 161, - 68, - 98, - 167, - 0, - 98, - 34, - 231, - 33, - 149, - 75, - 44, - 95, - 247, - 152, - 246, - 6, - 129, - 126, - 177, - 16, - 50, - 131, - 96, - 64, - 81, - 97, - 60, - 181, - 145, - 129, - 82, - 96, - 32, - 1, - 144, - 86, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 162, - 91, - 128, - 21, - 97, - 61, - 65, - 87, - 96, - 14, - 96, - 64, - 81, - 128, - 96, - 96, - 1, - 96, - 64, - 82, - 128, - 134, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 131, - 129, - 82, - 96, - 32, - 1, - 97, - 60, - 240, - 135, - 48, - 97, - 57, - 236, - 86, - 91, - 144, - 82, - 129, - 84, - 96, - 1, - 128, - 130, - 1, - 132, - 85, - 96, - 0, - 147, - 132, - 82, - 96, - 32, - 147, - 132, - 144, - 32, - 131, - 81, - 96, - 3, - 144, - 147, - 2, - 1, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 25, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 144, - 147, - 22, - 146, - 144, - 146, - 23, - 130, - 85, - 146, - 130, - 1, - 81, - 146, - 129, - 1, - 146, - 144, - 146, - 85, - 96, - 64, - 1, - 81, - 96, - 2, - 144, - 145, - 1, - 85, - 91, - 96, - 3, - 128, - 84, - 128, - 97, - 61, - 82, - 87, - 97, - 61, - 82, - 97, - 137, - 25, - 86, - 91, - 96, - 0, - 130, - 129, - 82, - 96, - 32, - 129, - 32, - 130, - 1, - 96, - 0, - 25, - 144, - 129, - 1, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 25, - 22, - 144, - 85, - 145, - 130, - 1, - 144, - 146, - 85, - 134, - 1, - 149, - 144, - 3, - 96, - 1, - 1, - 147, - 80, - 97, - 59, - 92, - 146, - 80, - 80, - 80, - 87, - 96, - 0, - 96, - 14, - 128, - 84, - 128, - 96, - 32, - 2, - 96, - 32, - 1, - 96, - 64, - 81, - 144, - 129, - 1, - 96, - 64, - 82, - 128, - 146, - 145, - 144, - 129, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 144, - 91, - 130, - 130, - 16, - 21, - 97, - 62, - 2, - 87, - 96, - 0, - 132, - 129, - 82, - 96, - 32, - 144, - 129, - 144, - 32, - 96, - 64, - 128, - 81, - 96, - 96, - 129, - 1, - 130, - 82, - 96, - 3, - 134, - 2, - 144, - 146, - 1, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 131, - 82, - 96, - 1, - 128, - 130, - 1, - 84, - 132, - 134, - 1, - 82, - 96, - 2, - 144, - 145, - 1, - 84, - 145, - 131, - 1, - 145, - 144, - 145, - 82, - 144, - 131, - 82, - 144, - 146, - 1, - 145, - 1, - 97, - 61, - 173, - 86, - 91, - 80, - 80, - 130, - 81, - 146, - 147, - 80, - 80, - 80, - 91, - 128, - 21, - 97, - 62, - 112, - 87, - 96, - 0, - 97, - 62, - 31, - 96, - 1, - 131, - 97, - 136, - 82, - 86, - 91, - 144, - 80, - 97, - 62, - 102, - 131, - 130, - 129, - 81, - 129, - 16, - 97, - 62, - 54, - 87, - 97, - 62, - 54, - 97, - 136, - 105, - 86, - 91, - 96, - 32, - 2, - 96, - 32, - 1, - 1, - 81, - 96, - 0, - 1, - 81, - 48, - 133, - 132, - 129, - 81, - 129, - 16, - 97, - 62, - 85, - 87, - 97, - 62, - 85, - 97, - 136, - 105, - 86, - 91, - 96, - 32, - 2, - 96, - 32, - 1, - 1, - 81, - 96, - 32, - 1, - 81, - 97, - 76, - 192, - 86, - 91, - 80, - 96, - 0, - 25, - 1, - 97, - 62, - 12, - 86, - 91, - 80, - 128, - 81, - 91, - 128, - 21, - 97, - 63, - 86, - 87, - 96, - 0, - 97, - 62, - 135, - 96, - 1, - 131, - 97, - 136, - 82, - 86, - 91, - 144, - 80, - 96, - 0, - 131, - 130, - 129, - 81, - 129, - 16, - 97, - 62, - 157, - 87, - 97, - 62, - 157, - 97, - 136, - 105, - 86, - 91, - 96, - 32, - 2, - 96, - 32, - 1, - 1, - 81, - 96, - 0, - 1, - 81, - 144, - 80, - 96, - 0, - 132, - 131, - 129, - 81, - 129, - 16, - 97, - 62, - 191, - 87, - 97, - 62, - 191, - 97, - 136, - 105, - 86, - 91, - 96, - 32, - 2, - 96, - 32, - 1, - 1, - 81, - 96, - 64, - 1, - 81, - 144, - 80, - 96, - 0, - 97, - 62, - 217, - 131, - 48, - 97, - 57, - 236, - 86, - 91, - 144, - 80, - 96, - 0, - 130, - 135, - 134, - 129, - 81, - 129, - 16, - 97, - 62, - 240, - 87, - 97, - 62, - 240, - 97, - 136, - 105, - 86, - 91, - 96, - 32, - 2, - 96, - 32, - 1, - 1, - 81, - 96, - 32, - 1, - 81, - 97, - 63, - 6, - 145, - 144, - 97, - 137, - 47, - 86, - 91, - 144, - 80, - 128, - 130, - 16, - 21, - 97, - 63, - 69, - 87, - 131, - 97, - 63, - 27, - 130, - 132, - 97, - 136, - 165, - 86, - 91, - 96, - 64, - 81, - 99, - 127, - 17, - 205, - 213, - 96, - 225, - 27, - 129, - 82, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 144, - 146, - 22, - 96, - 4, - 131, - 1, - 82, - 96, - 36, - 130, - 1, - 82, - 96, - 68, - 1, - 97, - 25, - 118, - 86, - 91, - 133, - 96, - 1, - 144, - 3, - 149, - 80, - 80, - 80, - 80, - 80, - 80, - 97, - 62, - 116, - 86, - 91, - 97, - 63, - 96, - 96, - 0, - 97, - 76, - 204, - 86, - 91, - 97, - 63, - 108, - 96, - 14, - 96, - 0, - 97, - 129, - 241, - 86, - 91, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 97, - 63, - 132, - 135, - 135, - 135, - 135, - 97, - 77, - 224, - 86, - 91, - 145, - 80, - 145, - 80, - 96, - 0, - 128, - 97, - 63, - 151, - 137, - 133, - 138, - 134, - 97, - 78, - 223, - 86, - 91, - 145, - 80, - 145, - 80, - 129, - 129, - 17, - 21, - 97, - 63, - 188, - 87, - 96, - 64, - 81, - 99, - 1, - 0, - 7, - 39, - 96, - 229, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 192, - 132, - 1, - 81, - 97, - 63, - 207, - 144, - 97, - 32, - 214, - 131, - 133, - 97, - 136, - 82, - 86, - 91, - 132, - 97, - 1, - 0, - 1, - 129, - 129, - 81, - 97, - 63, - 225, - 145, - 144, - 97, - 137, - 47, - 86, - 91, - 144, - 82, - 80, - 96, - 0, - 136, - 97, - 63, - 250, - 87, - 137, - 97, - 1, - 32, - 1, - 81, - 96, - 32, - 1, - 81, - 97, - 64, - 5, - 86, - 91, - 137, - 97, - 1, - 32, - 1, - 81, - 96, - 96, - 1, - 81, - 91, - 96, - 255, - 22, - 144, - 80, - 97, - 64, - 34, - 129, - 134, - 97, - 1, - 0, - 1, - 81, - 97, - 74, - 33, - 144, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 154, - 153, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 15, - 131, - 144, - 11, - 21, - 97, - 32, - 176, - 87, - 131, - 81, - 96, - 32, - 133, - 1, - 81, - 96, - 0, - 145, - 130, - 145, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 145, - 80, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 145, - 80, - 96, - 0, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 97, - 64, - 127, - 136, - 97, - 1, - 32, - 1, - 81, - 96, - 32, - 1, - 81, - 96, - 255, - 22, - 97, - 74, - 145, - 86, - 91, - 97, - 64, - 137, - 145, - 144, - 97, - 137, - 71, - 86, - 91, - 144, - 80, - 96, - 0, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 97, - 64, - 171, - 137, - 97, - 1, - 32, - 1, - 81, - 96, - 96, - 1, - 81, - 96, - 255, - 22, - 97, - 74, - 145, - 86, - 91, - 97, - 64, - 181, - 145, - 144, - 97, - 137, - 71, - 86, - 91, - 144, - 80, - 96, - 0, - 128, - 136, - 96, - 15, - 11, - 19, - 21, - 97, - 64, - 244, - 87, - 80, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 135, - 22, - 97, - 64, - 221, - 97, - 47, - 86, - 134, - 131, - 134, - 97, - 79, - 199, - 86, - 91, - 150, - 80, - 97, - 64, - 237, - 97, - 47, - 86, - 133, - 131, - 133, - 97, - 79, - 199, - 86, - 91, - 149, - 80, - 97, - 65, - 41, - 86, - 91, - 97, - 64, - 253, - 136, - 97, - 136, - 127, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 144, - 80, - 97, - 65, - 22, - 97, - 47, - 86, - 134, - 131, - 134, - 97, - 79, - 245, - 86, - 91, - 150, - 80, - 97, - 65, - 38, - 97, - 47, - 86, - 133, - 131, - 133, - 97, - 79, - 245, - 86, - 91, - 149, - 80, - 91, - 80, - 80, - 80, - 80, - 80, - 146, - 80, - 146, - 144, - 80, - 86, - 91, - 96, - 0, - 97, - 17, - 147, - 131, - 131, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 97, - 79, - 245, - 86, - 91, - 52, - 21, - 97, - 43, - 168, - 87, - 97, - 65, - 123, - 96, - 0, - 127, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 97, - 80, - 20, - 86, - 91, - 96, - 64, - 81, - 52, - 129, - 82, - 51, - 144, - 127, - 225, - 255, - 252, - 196, - 146, - 61, - 4, - 181, - 89, - 244, - 210, - 154, - 139, - 252, - 108, - 218, - 4, - 235, - 91, - 13, - 60, - 70, - 7, - 81, - 194, - 64, - 44, - 92, - 92, - 201, - 16, - 156, - 144, - 96, - 32, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 162, - 86, - 91, - 96, - 0, - 97, - 65, - 231, - 131, - 131, - 96, - 0, - 129, - 129, - 16, - 97, - 65, - 202, - 87, - 97, - 65, - 202, - 97, - 136, - 105, - 86, - 91, - 145, - 144, - 145, - 1, - 53, - 96, - 4, - 129, - 144, - 28, - 96, - 255, - 96, - 244, - 27, - 22, - 146, - 96, - 15, - 96, - 248, - 27, - 144, - 145, - 22, - 145, - 80, - 86, - 91, - 145, - 80, - 80, - 96, - 1, - 96, - 1, - 96, - 248, - 27, - 3, - 25, - 128, - 130, - 22, - 1, - 97, - 66, - 43, - 87, - 96, - 0, - 128, - 96, - 0, - 97, - 66, - 10, - 134, - 134, - 97, - 80, - 115, - 86, - 91, - 146, - 80, - 146, - 80, - 146, - 80, - 97, - 66, - 33, - 131, - 96, - 255, - 22, - 96, - 1, - 20, - 131, - 131, - 97, - 80, - 227, - 86, - 91, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 253, - 96, - 248, - 27, - 96, - 1, - 96, - 1, - 96, - 248, - 27, - 3, - 25, - 130, - 22, - 1, - 97, - 66, - 102, - 87, - 96, - 0, - 128, - 96, - 0, - 97, - 66, - 79, - 134, - 134, - 97, - 80, - 115, - 86, - 91, - 146, - 80, - 146, - 80, - 146, - 80, - 97, - 66, - 33, - 131, - 96, - 255, - 22, - 96, - 1, - 20, - 131, - 131, - 97, - 82, - 206, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 248, - 27, - 3, - 25, - 129, - 22, - 96, - 3, - 96, - 249, - 27, - 20, - 128, - 97, - 66, - 143, - 87, - 80, - 96, - 1, - 96, - 1, - 96, - 248, - 27, - 3, - 25, - 129, - 22, - 96, - 5, - 96, - 248, - 27, - 20, - 91, - 21, - 97, - 67, - 74, - 87, - 96, - 64, - 128, - 81, - 96, - 160, - 129, - 1, - 130, - 82, - 132, - 53, - 96, - 0, - 144, - 129, - 26, - 96, - 15, - 129, - 22, - 96, - 6, - 20, - 96, - 255, - 144, - 129, - 22, - 96, - 128, - 133, - 1, - 82, - 96, - 1, - 96, - 9, - 137, - 1, - 53, - 132, - 26, - 128, - 138, - 1, - 130, - 129, - 1, - 53, - 96, - 8, - 131, - 140, - 3, - 96, - 0, - 25, - 1, - 129, - 2, - 97, - 1, - 0, - 144, - 129, - 3, - 146, - 144, - 146, - 28, - 146, - 53, - 136, - 26, - 96, - 10, - 144, - 129, - 10, - 147, - 144, - 147, - 2, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 144, - 129, - 22, - 96, - 96, - 139, - 1, - 82, - 96, - 11, - 142, - 1, - 53, - 96, - 10, - 25, - 144, - 149, - 1, - 144, - 145, - 2, - 144, - 145, - 3, - 146, - 144, - 146, - 28, - 129, - 140, - 1, - 53, - 144, - 150, - 26, - 144, - 10, - 148, - 144, - 148, - 2, - 144, - 147, - 22, - 148, - 132, - 1, - 148, - 144, - 148, - 82, - 144, - 134, - 1, - 53, - 96, - 192, - 28, - 96, - 32, - 131, - 1, - 82, - 96, - 4, - 28, - 144, - 145, - 22, - 129, - 82, - 97, - 67, - 65, - 129, - 97, - 84, - 180, - 86, - 91, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 245, - 96, - 248, - 27, - 96, - 1, - 96, - 1, - 96, - 248, - 27, - 3, - 25, - 130, - 22, - 1, - 97, - 68, - 59, - 87, - 96, - 0, - 128, - 96, - 0, - 128, - 96, - 0, - 128, - 96, - 0, - 128, - 96, - 0, - 97, - 68, - 9, - 140, - 140, - 96, - 1, - 128, - 131, - 1, - 53, - 96, - 232, - 28, - 147, - 96, - 4, - 132, - 1, - 53, - 96, - 96, - 28, - 147, - 96, - 24, - 129, - 1, - 53, - 96, - 240, - 144, - 129, - 28, - 148, - 96, - 26, - 131, - 1, - 53, - 130, - 28, - 148, - 96, - 28, - 132, - 1, - 53, - 131, - 28, - 148, - 96, - 30, - 133, - 1, - 53, - 132, - 28, - 148, - 96, - 32, - 129, - 1, - 53, - 144, - 148, - 28, - 147, - 96, - 35, - 129, - 1, - 53, - 96, - 0, - 144, - 129, - 26, - 96, - 10, - 144, - 129, - 10, - 96, - 36, - 132, - 1, - 53, - 96, - 8, - 96, - 35, - 25, - 96, - 34, - 135, - 1, - 53, - 134, - 26, - 144, - 129, - 1, - 130, - 2, - 97, - 1, - 0, - 144, - 129, - 3, - 147, - 144, - 147, - 28, - 147, - 144, - 147, - 2, - 152, - 149, - 131, - 1, - 128, - 53, - 144, - 149, - 26, - 144, - 147, - 10, - 147, - 144, - 150, - 1, - 53, - 96, - 0, - 25, - 145, - 144, - 148, - 3, - 1, - 2, - 144, - 147, - 3, - 28, - 145, - 144, - 145, - 2, - 144, - 86, - 91, - 152, - 80, - 152, - 80, - 152, - 80, - 152, - 80, - 152, - 80, - 152, - 80, - 152, - 80, - 152, - 80, - 152, - 80, - 97, - 68, - 44, - 137, - 137, - 137, - 137, - 137, - 137, - 137, - 137, - 137, - 97, - 92, - 89, - 86, - 91, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 61, - 96, - 250, - 27, - 96, - 1, - 96, - 1, - 96, - 248, - 27, - 3, - 25, - 130, - 22, - 1, - 97, - 68, - 115, - 87, - 96, - 0, - 128, - 97, - 68, - 93, - 133, - 133, - 97, - 95, - 236, - 86, - 91, - 145, - 80, - 145, - 80, - 97, - 68, - 107, - 130, - 130, - 97, - 96, - 51, - 86, - 91, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 63, - 96, - 250, - 27, - 96, - 1, - 96, - 1, - 96, - 248, - 27, - 3, - 25, - 130, - 22, - 1, - 97, - 68, - 241, - 87, - 96, - 0, - 128, - 128, - 133, - 53, - 96, - 184, - 129, - 144, - 28, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 144, - 96, - 10, - 129, - 129, - 26, - 129, - 10, - 96, - 11, - 138, - 1, - 53, - 96, - 8, - 96, - 9, - 133, - 144, - 26, - 96, - 10, - 25, - 129, - 1, - 130, - 2, - 97, - 1, - 0, - 144, - 129, - 3, - 147, - 144, - 147, - 28, - 147, - 144, - 147, - 2, - 148, - 131, - 26, - 144, - 147, - 10, - 96, - 1, - 131, - 141, - 1, - 1, - 53, - 146, - 139, - 3, - 96, - 0, - 25, - 1, - 144, - 147, - 2, - 144, - 3, - 28, - 2, - 146, - 80, - 146, - 80, - 146, - 80, - 97, - 68, - 107, - 131, - 131, - 131, - 97, - 99, - 52, - 86, - 91, - 96, - 64, - 81, - 99, - 27, - 24, - 145, - 237, - 96, - 227, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 0, - 131, - 131, - 96, - 1, - 129, - 129, - 16, - 97, - 69, - 31, - 87, - 97, - 69, - 31, - 97, - 136, - 105, - 86, - 91, - 145, - 144, - 145, - 1, - 53, - 96, - 248, - 28, - 145, - 80, - 96, - 2, - 144, - 80, - 96, - 0, - 128, - 128, - 91, - 132, - 96, - 255, - 22, - 129, - 20, - 97, - 66, - 33, - 87, - 131, - 146, - 80, - 135, - 135, - 132, - 129, - 129, - 16, - 97, - 69, - 81, - 87, - 97, - 69, - 81, - 97, - 136, - 105, - 86, - 91, - 97, - 69, - 98, - 146, - 1, - 53, - 96, - 248, - 28, - 144, - 80, - 132, - 97, - 137, - 47, - 86, - 91, - 97, - 69, - 109, - 144, - 96, - 1, - 97, - 137, - 47, - 86, - 91, - 145, - 80, - 134, - 130, - 17, - 21, - 97, - 69, - 147, - 87, - 96, - 64, - 81, - 99, - 128, - 246, - 59, - 209, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 129, - 1, - 131, - 144, - 82, - 96, - 36, - 1, - 97, - 25, - 118, - 86, - 91, - 54, - 96, - 0, - 97, - 69, - 162, - 132, - 134, - 139, - 141, - 97, - 137, - 102, - 86, - 91, - 148, - 150, - 80, - 134, - 148, - 144, - 146, - 80, - 144, - 80, - 97, - 69, - 197, - 97, - 69, - 188, - 130, - 96, - 1, - 129, - 134, - 97, - 137, - 102, - 86, - 91, - 138, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 80, - 80, - 128, - 97, - 69, - 209, - 144, - 97, - 137, - 144, - 86, - 91, - 144, - 80, - 97, - 69, - 50, - 86, - 91, - 97, - 69, - 229, - 96, - 0, - 51, - 132, - 132, - 97, - 101, - 143, - 86, - 91, - 80, - 80, - 96, - 64, - 81, - 129, - 129, - 82, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 131, - 22, - 144, - 51, - 144, - 127, - 11, - 11, - 130, - 25, - 83, - 229, - 84, - 91, - 113, - 242, - 8, - 88, - 51, - 228, - 168, - 223, - 208, - 217, - 155, - 189, - 255, - 81, - 24, - 152, - 103, - 42, - 232, - 23, - 154, - 152, - 45, - 243, - 144, - 96, - 32, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 163, - 80, - 80, - 86, - 91, - 97, - 70, - 55, - 96, - 0, - 131, - 131, - 97, - 101, - 221, - 86, - 91, - 129, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 127, - 28, - 113, - 30, - 202, - 141, - 11, - 105, - 75, - 188, - 176, - 161, - 68, - 98, - 167, - 0, - 98, - 34, - 231, - 33, - 149, - 75, - 44, - 95, - 247, - 152, - 246, - 6, - 129, - 126, - 177, - 16, - 50, - 130, - 96, - 64, - 81, - 97, - 70, - 114, - 145, - 129, - 82, - 96, - 32, - 1, - 144, - 86, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 162, - 80, - 80, - 86, - 91, - 96, - 64, - 81, - 99, - 46, - 26, - 125, - 77, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 129, - 1, - 130, - 144, - 82, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 132, - 22, - 144, - 99, - 46, - 26, - 125, - 77, - 144, - 96, - 36, - 1, - 96, - 0, - 96, - 64, - 81, - 128, - 131, - 3, - 129, - 96, - 0, - 135, - 128, - 59, - 21, - 128, - 21, - 97, - 70, - 192, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 90, - 241, - 21, - 128, - 21, - 97, - 70, - 212, - 87, - 61, - 96, - 0, - 128, - 62, - 61, - 96, - 0, - 253, - 91, - 80, - 80, - 96, - 64, - 128, - 81, - 96, - 0, - 128, - 130, - 82, - 96, - 32, - 130, - 1, - 146, - 131, - 144, - 82, - 147, - 80, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 134, - 22, - 146, - 80, - 132, - 145, - 97, - 71, - 1, - 145, - 144, - 97, - 136, - 228, - 86, - 91, - 96, - 0, - 96, - 64, - 81, - 128, - 131, - 3, - 129, - 133, - 135, - 90, - 241, - 146, - 80, - 80, - 80, - 61, - 128, - 96, - 0, - 129, - 20, - 97, - 71, - 62, - 87, - 96, - 64, - 81, - 145, - 80, - 96, - 31, - 25, - 96, - 63, - 61, - 1, - 22, - 130, - 1, - 96, - 64, - 82, - 61, - 130, - 82, - 61, - 96, - 0, - 96, - 32, - 132, - 1, - 62, - 97, - 71, - 67, - 86, - 91, - 96, - 96, - 145, - 80, - 91, - 80, - 80, - 144, - 80, - 128, - 97, - 40, - 3, - 87, - 96, - 64, - 81, - 99, - 117, - 244, - 38, - 131, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 0, - 96, - 64, - 81, - 99, - 169, - 5, - 156, - 187, - 96, - 224, - 27, - 96, - 0, - 82, - 131, - 96, - 4, - 82, - 130, - 96, - 36, - 82, - 96, - 32, - 96, - 0, - 96, - 68, - 96, - 0, - 128, - 137, - 90, - 241, - 61, - 21, - 96, - 31, - 61, - 17, - 96, - 1, - 96, - 0, - 81, - 20, - 22, - 23, - 22, - 145, - 80, - 96, - 0, - 96, - 96, - 82, - 128, - 96, - 64, - 82, - 80, - 128, - 97, - 40, - 3, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 15, - 96, - 36, - 130, - 1, - 82, - 110, - 21, - 20, - 144, - 83, - 148, - 209, - 145, - 84, - 151, - 209, - 144, - 82, - 83, - 17, - 81, - 96, - 138, - 27, - 96, - 68, - 130, - 1, - 82, - 96, - 100, - 1, - 97, - 25, - 118, - 86, - 91, - 97, - 71, - 236, - 129, - 97, - 102, - 98, - 86, - 91, - 128, - 81, - 96, - 6, - 146, - 144, - 146, - 1, - 128, - 84, - 96, - 32, - 131, - 1, - 81, - 96, - 64, - 132, - 1, - 81, - 96, - 96, - 133, - 1, - 81, - 96, - 128, - 134, - 1, - 81, - 96, - 160, - 135, - 1, - 81, - 96, - 192, - 136, - 1, - 81, - 96, - 224, - 144, - 152, - 1, - 81, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 144, - 153, - 22, - 113, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 25, - 144, - 150, - 22, - 149, - 144, - 149, - 23, - 96, - 1, - 96, - 128, - 27, - 97, - 255, - 255, - 149, - 134, - 22, - 2, - 23, - 99, - 255, - 255, - 255, - 255, - 96, - 144, - 27, - 25, - 22, - 96, - 1, - 96, - 144, - 27, - 147, - 133, - 22, - 147, - 144, - 147, - 2, - 97, - 255, - 255, - 96, - 160, - 27, - 25, - 22, - 146, - 144, - 146, - 23, - 96, - 1, - 96, - 160, - 27, - 145, - 132, - 22, - 145, - 144, - 145, - 2, - 23, - 99, - 255, - 255, - 255, - 255, - 96, - 176, - 27, - 25, - 22, - 96, - 1, - 96, - 176, - 27, - 145, - 131, - 22, - 145, - 144, - 145, - 2, - 97, - 255, - 255, - 96, - 192, - 27, - 25, - 22, - 23, - 96, - 1, - 96, - 192, - 27, - 145, - 144, - 146, - 22, - 2, - 23, - 100, - 255, - 255, - 255, - 255, - 255, - 96, - 208, - 27, - 25, - 22, - 96, - 1, - 96, - 208, - 27, - 99, - 255, - 255, - 255, - 255, - 144, - 147, - 22, - 146, - 144, - 146, - 2, - 96, - 255, - 96, - 240, - 27, - 25, - 22, - 145, - 144, - 145, - 23, - 96, - 1, - 96, - 240, - 27, - 146, - 21, - 21, - 146, - 144, - 146, - 2, - 145, - 144, - 145, - 23, - 144, - 85, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 133, - 97, - 1, - 0, - 1, - 81, - 96, - 0, - 1, - 81, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 144, - 80, - 96, - 0, - 97, - 73, - 34, - 135, - 97, - 1, - 0, - 1, - 81, - 96, - 128, - 1, - 81, - 97, - 255, - 255, - 22, - 97, - 39, - 16, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 145, - 144, - 145, - 2, - 4, - 144, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 73, - 47, - 136, - 97, - 102, - 127, - 86, - 91, - 144, - 80, - 97, - 73, - 74, - 135, - 132, - 138, - 97, - 1, - 0, - 1, - 81, - 96, - 128, - 1, - 81, - 97, - 255, - 255, - 22, - 132, - 97, - 102, - 158, - 86, - 91, - 148, - 80, - 97, - 73, - 92, - 133, - 132, - 132, - 132, - 138, - 96, - 15, - 11, - 97, - 103, - 173, - 86, - 91, - 147, - 80, - 80, - 80, - 80, - 147, - 80, - 147, - 145, - 80, - 80, - 86, - 91, - 96, - 0, - 97, - 73, - 141, - 97, - 47, - 86, - 133, - 97, - 1, - 32, - 1, - 81, - 96, - 32, - 1, - 81, - 96, - 255, - 22, - 133, - 97, - 104, - 200, - 144, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 146, - 80, - 97, - 73, - 186, - 97, - 47, - 86, - 133, - 97, - 1, - 32, - 1, - 81, - 96, - 96, - 1, - 81, - 96, - 255, - 22, - 132, - 97, - 104, - 200, - 144, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 145, - 80, - 96, - 0, - 128, - 97, - 73, - 216, - 134, - 128, - 81, - 96, - 32, - 144, - 145, - 1, - 81, - 144, - 145, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 145, - 130, - 22, - 147, - 80, - 22, - 144, - 80, - 96, - 0, - 97, - 73, - 244, - 134, - 132, - 97, - 104, - 223, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 74, - 2, - 134, - 132, - 97, - 104, - 223, - 86, - 91, - 144, - 80, - 97, - 74, - 21, - 129, - 131, - 17, - 130, - 132, - 3, - 2, - 131, - 3, - 97, - 74, - 55, - 86, - 91, - 152, - 151, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 97, - 74, - 45, - 131, - 97, - 74, - 145, - 86, - 91, - 144, - 147, - 4, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 96, - 1, - 96, - 128, - 27, - 130, - 16, - 97, - 74, - 73, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 144, - 86, - 91, - 96, - 0, - 97, - 24, - 76, - 130, - 96, - 192, - 1, - 81, - 99, - 255, - 255, - 255, - 255, - 22, - 97, - 74, - 110, - 132, - 96, - 96, - 1, - 81, - 97, - 255, - 255, - 22, - 97, - 104, - 244, - 86, - 91, - 1, - 97, - 105, - 65, - 86, - 91, - 96, - 0, - 128, - 97, - 74, - 132, - 134, - 134, - 134, - 134, - 134, - 97, - 103, - 173, - 86, - 91, - 144, - 150, - 3, - 150, - 149, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 97, - 74, - 158, - 130, - 96, - 18, - 97, - 136, - 82, - 86, - 91, - 97, - 24, - 76, - 144, - 96, - 10, - 97, - 138, - 141, - 86, - 91, - 96, - 0, - 128, - 99, - 1, - 225, - 133, - 89, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 132, - 2, - 4, - 144, - 80, - 96, - 0, - 97, - 39, - 16, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 134, - 2, - 4, - 144, - 80, - 134, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 16, - 21, - 97, - 74, - 254, - 87, - 96, - 64, - 81, - 99, - 177, - 21, - 88, - 223, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 129, - 1, - 136, - 144, - 82, - 96, - 36, - 1, - 97, - 25, - 118, - 86, - 91, - 134, - 96, - 0, - 3, - 97, - 75, - 31, - 87, - 96, - 64, - 81, - 99, - 34, - 5, - 51, - 99, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 129, - 21, - 128, - 97, - 75, - 42, - 87, - 80, - 128, - 21, - 91, - 21, - 97, - 75, - 57, - 87, - 133, - 146, - 80, - 80, - 80, - 97, - 33, - 31, - 86, - 91, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 135, - 3, - 97, - 75, - 82, - 87, - 133, - 146, - 80, - 80, - 80, - 97, - 33, - 31, - 86, - 91, - 96, - 0, - 97, - 75, - 102, - 136, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 97, - 136, - 165, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 75, - 115, - 130, - 97, - 105, - 84, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 75, - 147, - 132, - 99, - 59, - 154, - 202, - 0, - 97, - 75, - 137, - 136, - 97, - 105, - 241, - 86, - 91, - 97, - 32, - 214, - 145, - 144, - 97, - 137, - 71, - 86, - 91, - 144, - 80, - 96, - 0, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 97, - 75, - 170, - 131, - 133, - 97, - 138, - 153, - 86, - 91, - 97, - 75, - 180, - 145, - 144, - 97, - 139, - 52, - 86, - 91, - 144, - 80, - 96, - 0, - 103, - 27, - 193, - 109, - 103, - 78, - 200, - 0, - 0, - 97, - 75, - 203, - 135, - 128, - 97, - 137, - 71, - 86, - 91, - 97, - 75, - 213, - 145, - 144, - 97, - 139, - 98, - 86, - 91, - 144, - 80, - 96, - 0, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 97, - 75, - 236, - 137, - 132, - 97, - 137, - 71, - 86, - 91, - 97, - 75, - 246, - 145, - 144, - 97, - 139, - 52, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 76, - 4, - 130, - 133, - 97, - 136, - 165, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 76, - 17, - 130, - 97, - 106, - 149, - 86, - 91, - 144, - 80, - 97, - 76, - 29, - 129, - 143, - 97, - 65, - 53, - 86, - 91, - 159, - 158, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 4, - 130, - 1, - 84, - 96, - 255, - 22, - 21, - 97, - 76, - 74, - 87, - 96, - 4, - 130, - 1, - 128, - 84, - 96, - 255, - 25, - 22, - 144, - 85, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 129, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 2, - 131, - 1, - 96, - 32, - 82, - 96, - 64, - 144, - 32, - 84, - 96, - 255, - 22, - 97, - 26, - 105, - 87, - 96, - 3, - 130, - 1, - 128, - 84, - 96, - 1, - 128, - 130, - 1, - 131, - 85, - 96, - 0, - 146, - 131, - 82, - 96, - 32, - 128, - 132, - 32, - 144, - 146, - 1, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 134, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 25, - 144, - 145, - 22, - 129, - 23, - 144, - 145, - 85, - 131, - 82, - 96, - 2, - 133, - 1, - 144, - 145, - 82, - 96, - 64, - 144, - 145, - 32, - 128, - 84, - 96, - 255, - 25, - 22, - 144, - 145, - 23, - 144, - 85, - 80, - 80, - 86, - 91, - 97, - 38, - 4, - 131, - 51, - 132, - 132, - 97, - 108, - 62, - 86, - 91, - 96, - 3, - 129, - 1, - 84, - 21, - 97, - 76, - 222, - 87, - 97, - 76, - 222, - 97, - 139, - 118, - 86, - 91, - 96, - 4, - 129, - 1, - 128, - 84, - 96, - 255, - 25, - 22, - 96, - 1, - 23, - 144, - 85, - 97, - 25, - 233, - 96, - 3, - 130, - 1, - 96, - 0, - 97, - 130, - 18, - 86, - 91, - 96, - 0, - 128, - 128, - 128, - 97, - 77, - 11, - 135, - 135, - 135, - 97, - 48, - 92, - 86, - 91, - 144, - 80, - 96, - 0, - 129, - 19, - 21, - 97, - 77, - 90, - 87, - 146, - 80, - 130, - 97, - 77, - 37, - 135, - 51, - 136, - 132, - 97, - 108, - 197, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 134, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 1, - 136, - 1, - 96, - 32, - 82, - 96, - 64, - 129, - 32, - 128, - 84, - 131, - 146, - 144, - 97, - 77, - 79, - 144, - 132, - 144, - 97, - 137, - 47, - 86, - 91, - 144, - 145, - 85, - 80, - 97, - 77, - 181, - 144, - 80, - 86, - 91, - 96, - 0, - 129, - 18, - 21, - 97, - 77, - 181, - 87, - 97, - 77, - 108, - 129, - 97, - 139, - 140, - 86, - 91, - 145, - 80, - 97, - 77, - 122, - 135, - 51, - 136, - 133, - 97, - 101, - 143, - 86, - 91, - 144, - 147, - 80, - 145, - 80, - 130, - 21, - 97, - 77, - 181, - 87, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 134, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 1, - 136, - 1, - 96, - 32, - 82, - 96, - 64, - 129, - 32, - 128, - 84, - 133, - 146, - 144, - 97, - 77, - 175, - 144, - 132, - 144, - 97, - 136, - 82, - 86, - 91, - 144, - 145, - 85, - 80, - 80, - 91, - 80, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 144, - 148, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 2, - 144, - 149, - 1, - 96, - 32, - 82, - 96, - 64, - 144, - 148, - 32, - 128, - 84, - 96, - 255, - 25, - 22, - 144, - 85, - 147, - 144, - 80, - 86, - 91, - 97, - 77, - 232, - 97, - 130, - 48, - 86, - 91, - 96, - 0, - 97, - 77, - 242, - 97, - 130, - 48, - 86, - 91, - 96, - 128, - 135, - 1, - 81, - 96, - 0, - 144, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 97, - 78, - 22, - 87, - 135, - 97, - 1, - 0, - 1, - 81, - 96, - 64, - 1, - 81, - 97, - 78, - 33, - 86, - 91, - 135, - 97, - 1, - 0, - 1, - 81, - 96, - 160, - 1, - 81, - 91, - 97, - 255, - 255, - 22, - 144, - 80, - 97, - 78, - 55, - 136, - 128, - 81, - 96, - 32, - 144, - 145, - 1, - 81, - 144, - 145, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 144, - 129, - 22, - 96, - 96, - 133, - 1, - 82, - 22, - 96, - 64, - 131, - 1, - 82, - 97, - 78, - 87, - 136, - 134, - 97, - 47, - 187, - 86, - 91, - 146, - 80, - 97, - 78, - 109, - 136, - 131, - 96, - 64, - 1, - 81, - 132, - 96, - 96, - 1, - 81, - 134, - 97, - 48, - 1, - 86, - 91, - 130, - 82, - 97, - 78, - 155, - 135, - 97, - 78, - 134, - 87, - 136, - 97, - 1, - 32, - 1, - 81, - 96, - 96, - 1, - 81, - 97, - 78, - 145, - 86, - 91, - 136, - 97, - 1, - 32, - 1, - 81, - 96, - 32, - 1, - 81, - 91, - 135, - 144, - 96, - 255, - 22, - 97, - 104, - 200, - 86, - 91, - 96, - 128, - 131, - 1, - 129, - 144, - 82, - 96, - 64, - 137, - 1, - 81, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 192, - 132, - 1, - 82, - 97, - 39, - 16, - 144, - 97, - 78, - 196, - 144, - 131, - 144, - 97, - 137, - 71, - 86, - 91, - 97, - 78, - 206, - 145, - 144, - 97, - 139, - 98, - 86, - 91, - 96, - 160, - 131, - 1, - 82, - 80, - 145, - 80, - 148, - 80, - 148, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 128, - 96, - 0, - 97, - 79, - 12, - 137, - 97, - 1, - 0, - 1, - 81, - 96, - 128, - 1, - 81, - 97, - 255, - 255, - 22, - 97, - 39, - 16, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 145, - 144, - 145, - 2, - 4, - 144, - 86, - 91, - 144, - 80, - 134, - 21, - 97, - 79, - 39, - 87, - 96, - 64, - 136, - 1, - 81, - 96, - 96, - 137, - 1, - 81, - 149, - 80, - 146, - 80, - 97, - 79, - 55, - 86, - 91, - 96, - 64, - 136, - 1, - 81, - 96, - 96, - 137, - 1, - 81, - 144, - 149, - 80, - 146, - 80, - 91, - 97, - 79, - 89, - 136, - 96, - 192, - 1, - 81, - 137, - 96, - 160, - 1, - 81, - 138, - 96, - 128, - 1, - 81, - 97, - 79, - 83, - 145, - 144, - 97, - 136, - 82, - 86, - 91, - 144, - 97, - 104, - 223, - 86, - 91, - 97, - 79, - 99, - 144, - 132, - 97, - 137, - 47, - 86, - 91, - 145, - 80, - 134, - 21, - 97, - 79, - 149, - 87, - 97, - 79, - 142, - 130, - 138, - 97, - 1, - 0, - 1, - 81, - 96, - 0, - 1, - 81, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 131, - 137, - 140, - 96, - 0, - 1, - 81, - 97, - 103, - 173, - 86, - 91, - 147, - 80, - 97, - 79, - 187, - 86, - 91, - 97, - 79, - 184, - 130, - 138, - 97, - 1, - 0, - 1, - 81, - 96, - 0, - 1, - 81, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 131, - 137, - 140, - 96, - 0, - 1, - 81, - 97, - 109, - 4, - 86, - 91, - 147, - 80, - 91, - 80, - 80, - 80, - 148, - 80, - 148, - 146, - 80, - 80, - 80, - 86, - 91, - 130, - 130, - 2, - 129, - 21, - 21, - 132, - 21, - 133, - 131, - 4, - 133, - 20, - 23, - 22, - 97, - 79, - 223, - 87, - 96, - 0, - 128, - 253, - 91, - 96, - 1, - 130, - 96, - 1, - 131, - 3, - 4, - 1, - 129, - 21, - 21, - 2, - 144, - 80, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 130, - 130, - 2, - 129, - 21, - 21, - 132, - 21, - 133, - 131, - 4, - 133, - 20, - 23, - 22, - 97, - 80, - 13, - 87, - 96, - 0, - 128, - 253, - 91, - 4, - 146, - 145, - 80, - 80, - 86, - 91, - 52, - 21, - 97, - 26, - 105, - 87, - 97, - 80, - 36, - 130, - 130, - 97, - 76, - 48, - 86, - 91, - 128, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 99, - 208, - 227, - 13, - 176, - 52, - 96, - 64, - 81, - 130, - 99, - 255, - 255, - 255, - 255, - 22, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 0, - 96, - 64, - 81, - 128, - 131, - 3, - 129, - 133, - 136, - 128, - 59, - 21, - 128, - 21, - 97, - 80, - 95, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 90, - 241, - 21, - 128, - 21, - 97, - 67, - 65, - 87, - 61, - 96, - 0, - 128, - 62, - 61, - 96, - 0, - 253, - 91, - 96, - 0, - 128, - 128, - 96, - 11, - 132, - 16, - 21, - 97, - 80, - 163, - 87, - 96, - 64, - 81, - 99, - 112, - 206, - 228, - 175, - 96, - 225, - 27, - 129, - 82, - 96, - 11, - 96, - 4, - 130, - 1, - 82, - 96, - 36, - 129, - 1, - 133, - 144, - 82, - 96, - 68, - 1, - 97, - 25, - 118, - 86, - 91, - 80, - 80, - 80, - 144, - 53, - 96, - 252, - 129, - 144, - 28, - 146, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 96, - 184, - 131, - 144, - 28, - 22, - 146, - 96, - 255, - 96, - 176, - 132, - 144, - 28, - 22, - 96, - 10, - 10, - 96, - 80, - 147, - 144, - 147, - 27, - 96, - 9, - 25, - 144, - 145, - 1, - 96, - 8, - 2, - 97, - 1, - 0, - 3, - 28, - 145, - 144, - 145, - 2, - 144, - 86, - 91, - 96, - 0, - 128, - 97, - 80, - 239, - 132, - 97, - 33, - 165, - 86, - 91, - 97, - 81, - 23, - 87, - 96, - 64, - 81, - 99, - 106, - 36, - 6, - 163, - 96, - 225, - 27, - 129, - 82, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 133, - 22, - 96, - 4, - 130, - 1, - 82, - 96, - 36, - 1, - 97, - 25, - 118, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 132, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 8, - 96, - 32, - 129, - 144, - 82, - 96, - 64, - 144, - 145, - 32, - 96, - 7, - 129, - 1, - 84, - 145, - 1, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 145, - 130, - 22, - 145, - 22, - 134, - 21, - 97, - 81, - 104, - 87, - 97, - 81, - 101, - 134, - 97, - 81, - 91, - 51, - 133, - 97, - 43, - 170, - 86, - 91, - 97, - 10, - 24, - 51, - 133, - 97, - 43, - 170, - 86, - 91, - 148, - 80, - 91, - 132, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 0, - 3, - 97, - 81, - 146, - 87, - 96, - 64, - 81, - 99, - 2, - 0, - 232, - 169, - 96, - 227, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 97, - 81, - 159, - 134, - 97, - 5, - 0, - 135, - 97, - 110, - 64, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 145, - 130, - 22, - 149, - 80, - 22, - 146, - 80, - 131, - 21, - 128, - 97, - 81, - 186, - 87, - 80, - 130, - 21, - 91, - 21, - 97, - 81, - 216, - 87, - 96, - 64, - 81, - 99, - 33, - 60, - 124, - 197, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 0, - 96, - 64, - 81, - 128, - 97, - 1, - 0, - 1, - 96, - 64, - 82, - 128, - 51, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 136, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 66, - 129, - 82, - 96, - 32, - 1, - 134, - 129, - 82, - 96, - 32, - 1, - 133, - 129, - 82, - 96, - 32, - 1, - 132, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 131, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 97, - 82, - 61, - 136, - 97, - 110, - 64, - 86, - 91, - 96, - 15, - 11, - 144, - 82, - 144, - 80, - 97, - 82, - 77, - 129, - 97, - 110, - 86, - 86, - 91, - 80, - 80, - 80, - 129, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 131, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 136, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 127, - 253, - 255, - 236, - 167, - 81, - 240, - 220, - 170, - 183, - 85, - 49, - 203, - 129, - 60, - 18, - 187, - 253, - 86, - 238, - 62, - 150, - 76, - 196, - 113, - 215, - 239, - 67, - 147, - 36, - 2, - 238, - 24, - 136, - 136, - 139, - 96, - 64, - 81, - 97, - 82, - 187, - 147, - 146, - 145, - 144, - 146, - 131, - 82, - 96, - 32, - 131, - 1, - 145, - 144, - 145, - 82, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 64, - 130, - 1, - 82, - 96, - 96, - 1, - 144, - 86, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 164, - 80, - 80, - 80, - 147, - 80, - 147, - 145, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 97, - 82, - 218, - 132, - 97, - 33, - 165, - 86, - 91, - 97, - 83, - 2, - 87, - 96, - 64, - 81, - 99, - 106, - 36, - 6, - 163, - 96, - 225, - 27, - 129, - 82, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 133, - 22, - 96, - 4, - 130, - 1, - 82, - 96, - 36, - 1, - 97, - 25, - 118, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 132, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 8, - 96, - 32, - 129, - 144, - 82, - 96, - 64, - 144, - 145, - 32, - 96, - 7, - 129, - 1, - 84, - 145, - 1, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 145, - 130, - 22, - 145, - 22, - 134, - 21, - 97, - 83, - 104, - 87, - 51, - 96, - 0, - 144, - 129, - 82, - 96, - 10, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 138, - 22, - 132, - 82, - 144, - 145, - 82, - 144, - 32, - 84, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 148, - 80, - 91, - 132, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 0, - 3, - 97, - 83, - 146, - 87, - 96, - 64, - 81, - 99, - 2, - 0, - 232, - 169, - 96, - 227, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 97, - 83, - 168, - 134, - 97, - 83, - 159, - 135, - 97, - 110, - 64, - 86, - 91, - 97, - 5, - 0, - 144, - 97, - 136, - 127, - 86, - 91, - 129, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 145, - 80, - 128, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 144, - 80, - 128, - 148, - 80, - 129, - 149, - 80, - 80, - 80, - 96, - 0, - 96, - 64, - 81, - 128, - 97, - 1, - 0, - 1, - 96, - 64, - 82, - 128, - 51, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 136, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 66, - 129, - 82, - 96, - 32, - 1, - 134, - 129, - 82, - 96, - 32, - 1, - 133, - 129, - 82, - 96, - 32, - 1, - 132, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 131, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 97, - 84, - 45, - 136, - 97, - 110, - 64, - 86, - 91, - 97, - 84, - 54, - 144, - 97, - 136, - 127, - 86, - 91, - 96, - 15, - 11, - 144, - 82, - 144, - 80, - 97, - 84, - 70, - 129, - 97, - 110, - 86, - 86, - 91, - 80, - 80, - 80, - 129, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 131, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 136, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 127, - 48, - 132, - 202, - 244, - 137, - 102, - 92, - 171, - 7, - 69, - 44, - 254, - 79, - 61, - 14, - 181, - 224, - 220, - 21, - 234, - 198, - 252, - 101, - 128, - 152, - 133, - 142, - 99, - 158, - 112, - 229, - 58, - 136, - 136, - 139, - 96, - 64, - 81, - 97, - 82, - 187, - 147, - 146, - 145, - 144, - 146, - 131, - 82, - 96, - 32, - 131, - 1, - 145, - 144, - 145, - 82, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 64, - 130, - 1, - 82, - 96, - 96, - 1, - 144, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 131, - 96, - 64, - 1, - 81, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 0, - 3, - 97, - 84, - 231, - 87, - 96, - 64, - 81, - 99, - 175, - 69, - 140, - 7, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 32, - 128, - 133, - 1, - 128, - 81, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 8, - 144, - 146, - 82, - 96, - 64, - 144, - 145, - 32, - 144, - 81, - 97, - 85, - 17, - 144, - 97, - 33, - 165, - 86, - 91, - 97, - 85, - 63, - 87, - 96, - 32, - 133, - 1, - 81, - 96, - 64, - 81, - 99, - 106, - 36, - 6, - 163, - 96, - 225, - 27, - 129, - 82, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 144, - 145, - 22, - 96, - 4, - 130, - 1, - 82, - 96, - 36, - 1, - 97, - 25, - 118, - 86, - 91, - 96, - 128, - 133, - 1, - 81, - 96, - 15, - 128, - 84, - 96, - 255, - 144, - 146, - 22, - 96, - 1, - 20, - 96, - 255, - 25, - 144, - 146, - 22, - 145, - 144, - 145, - 23, - 144, - 85, - 96, - 2, - 129, - 1, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 51, - 20, - 97, - 85, - 133, - 87, - 96, - 6, - 129, - 1, - 84, - 96, - 1, - 96, - 144, - 27, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 85, - 150, - 86, - 91, - 96, - 6, - 129, - 1, - 84, - 96, - 1, - 96, - 192, - 27, - 144, - 4, - 97, - 255, - 255, - 22, - 91, - 96, - 15, - 128, - 84, - 97, - 255, - 255, - 146, - 144, - 146, - 22, - 96, - 1, - 96, - 168, - 27, - 2, - 97, - 255, - 255, - 96, - 168, - 27, - 25, - 131, - 22, - 129, - 23, - 144, - 145, - 85, - 96, - 255, - 144, - 129, - 22, - 145, - 22, - 23, - 21, - 97, - 86, - 17, - 87, - 96, - 4, - 129, - 1, - 84, - 96, - 17, - 85, - 96, - 7, - 129, - 1, - 84, - 96, - 15, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 146, - 131, - 22, - 97, - 1, - 0, - 2, - 97, - 1, - 0, - 96, - 1, - 96, - 168, - 27, - 3, - 25, - 144, - 145, - 22, - 23, - 144, - 85, - 96, - 8, - 130, - 1, - 84, - 96, - 16, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 25, - 22, - 145, - 144, - 146, - 22, - 23, - 144, - 85, - 97, - 86, - 92, - 86, - 91, - 96, - 5, - 129, - 1, - 84, - 96, - 17, - 85, - 96, - 8, - 129, - 1, - 84, - 96, - 15, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 146, - 131, - 22, - 97, - 1, - 0, - 2, - 97, - 1, - 0, - 96, - 1, - 96, - 168, - 27, - 3, - 25, - 144, - 145, - 22, - 23, - 144, - 85, - 96, - 7, - 130, - 1, - 84, - 96, - 16, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 25, - 22, - 145, - 144, - 146, - 22, - 23, - 144, - 85, - 91, - 97, - 86, - 100, - 97, - 130, - 48, - 86, - 91, - 96, - 0, - 128, - 97, - 86, - 116, - 136, - 96, - 32, - 1, - 81, - 97, - 111, - 185, - 86, - 91, - 145, - 80, - 145, - 80, - 129, - 97, - 86, - 150, - 87, - 96, - 64, - 81, - 99, - 57, - 139, - 54, - 219, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 15, - 84, - 96, - 0, - 144, - 97, - 86, - 207, - 144, - 51, - 144, - 96, - 255, - 22, - 97, - 86, - 188, - 87, - 96, - 8, - 135, - 1, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 97, - 43, - 170, - 86, - 91, - 96, - 7, - 135, - 1, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 97, - 43, - 170, - 86, - 91, - 144, - 80, - 136, - 96, - 0, - 1, - 81, - 96, - 255, - 22, - 96, - 1, - 20, - 97, - 86, - 243, - 87, - 136, - 96, - 64, - 1, - 81, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 97, - 86, - 245, - 86, - 91, - 128, - 91, - 96, - 15, - 84, - 144, - 151, - 80, - 97, - 87, - 52, - 144, - 96, - 255, - 22, - 97, - 87, - 26, - 87, - 96, - 8, - 134, - 1, - 84, - 96, - 1, - 96, - 160, - 27, - 144, - 4, - 96, - 255, - 22, - 97, - 87, - 42, - 86, - 91, - 96, - 7, - 134, - 1, - 84, - 96, - 1, - 96, - 160, - 27, - 144, - 4, - 96, - 255, - 22, - 91, - 136, - 144, - 96, - 255, - 22, - 97, - 104, - 200, - 86, - 91, - 96, - 96, - 138, - 1, - 81, - 96, - 15, - 84, - 145, - 152, - 80, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 150, - 80, - 97, - 87, - 127, - 144, - 96, - 255, - 22, - 97, - 87, - 105, - 87, - 96, - 7, - 134, - 1, - 84, - 96, - 1, - 96, - 160, - 27, - 144, - 4, - 96, - 255, - 22, - 97, - 78, - 145, - 86, - 91, - 96, - 8, - 134, - 1, - 84, - 135, - 144, - 96, - 1, - 96, - 160, - 27, - 144, - 4, - 96, - 255, - 22, - 97, - 104, - 200, - 86, - 91, - 145, - 132, - 82, - 80, - 96, - 224, - 131, - 1, - 134, - 144, - 82, - 96, - 1, - 132, - 1, - 84, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 144, - 129, - 22, - 96, - 192, - 133, - 1, - 82, - 97, - 1, - 0, - 132, - 1, - 130, - 144, - 82, - 132, - 84, - 96, - 1, - 96, - 128, - 27, - 129, - 4, - 130, - 22, - 96, - 96, - 134, - 1, - 82, - 22, - 96, - 64, - 132, - 1, - 82, - 147, - 80, - 80, - 96, - 0, - 131, - 144, - 3, - 97, - 87, - 226, - 87, - 96, - 64, - 81, - 99, - 115, - 12, - 49, - 191, - 96, - 225, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 128, - 96, - 224, - 1, - 81, - 96, - 0, - 3, - 97, - 88, - 7, - 87, - 96, - 64, - 81, - 99, - 175, - 69, - 140, - 7, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 128, - 96, - 192, - 1, - 81, - 96, - 0, - 3, - 97, - 88, - 44, - 87, - 96, - 64, - 81, - 99, - 2, - 0, - 232, - 169, - 96, - 227, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 97, - 1, - 0, - 129, - 1, - 81, - 96, - 15, - 84, - 96, - 0, - 145, - 130, - 145, - 130, - 145, - 130, - 145, - 130, - 145, - 130, - 145, - 130, - 145, - 144, - 96, - 255, - 22, - 21, - 97, - 88, - 97, - 87, - 96, - 64, - 137, - 1, - 81, - 96, - 96, - 138, - 1, - 81, - 144, - 152, - 80, - 148, - 80, - 97, - 88, - 112, - 86, - 91, - 96, - 64, - 137, - 1, - 81, - 96, - 96, - 138, - 1, - 81, - 152, - 80, - 148, - 80, - 91, - 96, - 224, - 137, - 1, - 81, - 96, - 15, - 84, - 144, - 147, - 80, - 97, - 39, - 16, - 144, - 97, - 88, - 148, - 144, - 96, - 1, - 96, - 168, - 27, - 144, - 4, - 97, - 255, - 255, - 22, - 133, - 97, - 137, - 71, - 86, - 91, - 97, - 88, - 158, - 145, - 144, - 97, - 139, - 98, - 86, - 91, - 96, - 160, - 138, - 1, - 82, - 96, - 13, - 84, - 21, - 97, - 89, - 21, - 87, - 96, - 0, - 96, - 13, - 84, - 138, - 96, - 160, - 1, - 81, - 97, - 88, - 191, - 145, - 144, - 97, - 139, - 98, - 86, - 91, - 144, - 80, - 128, - 138, - 96, - 160, - 1, - 129, - 129, - 81, - 97, - 88, - 211, - 145, - 144, - 97, - 136, - 82, - 86, - 91, - 144, - 82, - 80, - 96, - 15, - 84, - 97, - 89, - 19, - 144, - 127, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 144, - 97, - 1, - 0, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 131, - 97, - 115, - 21, - 86, - 91, - 80, - 91, - 96, - 160, - 137, - 1, - 81, - 97, - 89, - 36, - 144, - 132, - 97, - 136, - 82, - 86, - 91, - 145, - 80, - 97, - 89, - 61, - 137, - 96, - 192, - 1, - 81, - 132, - 97, - 104, - 223, - 144, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 97, - 89, - 71, - 144, - 137, - 97, - 137, - 47, - 86, - 91, - 150, - 80, - 97, - 89, - 96, - 137, - 96, - 192, - 1, - 81, - 131, - 97, - 104, - 223, - 144, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 97, - 89, - 106, - 144, - 137, - 97, - 137, - 47, - 86, - 91, - 149, - 80, - 97, - 89, - 131, - 137, - 96, - 192, - 1, - 81, - 130, - 97, - 104, - 223, - 144, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 97, - 89, - 141, - 144, - 134, - 97, - 136, - 82, - 86, - 91, - 96, - 15, - 84, - 144, - 148, - 80, - 96, - 0, - 147, - 80, - 131, - 146, - 80, - 96, - 255, - 22, - 21, - 144, - 80, - 97, - 89, - 183, - 87, - 96, - 96, - 136, - 1, - 131, - 144, - 82, - 96, - 64, - 136, - 1, - 133, - 144, - 82, - 97, - 89, - 198, - 86, - 91, - 96, - 96, - 136, - 1, - 133, - 144, - 82, - 96, - 64, - 136, - 1, - 131, - 144, - 82, - 91, - 97, - 89, - 227, - 141, - 96, - 32, - 1, - 81, - 137, - 96, - 0, - 1, - 81, - 138, - 96, - 64, - 1, - 81, - 139, - 96, - 96, - 1, - 81, - 66, - 97, - 17, - 154, - 86, - 91, - 144, - 146, - 80, - 144, - 80, - 129, - 97, - 90, - 19, - 87, - 135, - 81, - 96, - 64, - 81, - 99, - 4, - 36, - 180, - 45, - 96, - 227, - 27, - 129, - 82, - 96, - 4, - 129, - 1, - 145, - 144, - 145, - 82, - 96, - 36, - 129, - 1, - 130, - 144, - 82, - 96, - 68, - 1, - 97, - 25, - 118, - 86, - 91, - 96, - 15, - 11, - 96, - 32, - 128, - 137, - 1, - 145, - 144, - 145, - 82, - 140, - 1, - 81, - 96, - 0, - 145, - 80, - 97, - 90, - 48, - 144, - 136, - 97, - 115, - 116, - 86, - 91, - 144, - 80, - 128, - 97, - 90, - 86, - 87, - 96, - 15, - 84, - 96, - 255, - 22, - 21, - 97, - 90, - 78, - 87, - 96, - 64, - 135, - 1, - 133, - 144, - 82, - 97, - 90, - 86, - 86, - 91, - 96, - 96, - 135, - 1, - 133, - 144, - 82, - 91, - 80, - 96, - 32, - 139, - 1, - 81, - 96, - 64, - 135, - 1, - 81, - 96, - 96, - 136, - 1, - 81, - 96, - 192, - 137, - 1, - 81, - 96, - 15, - 84, - 97, - 90, - 165, - 148, - 147, - 146, - 145, - 144, - 96, - 255, - 22, - 97, - 90, - 132, - 87, - 96, - 0, - 97, - 90, - 136, - 86, - 91, - 96, - 17, - 84, - 91, - 96, - 15, - 84, - 96, - 255, - 22, - 97, - 90, - 154, - 87, - 96, - 17, - 84, - 97, - 90, - 157, - 86, - 91, - 96, - 0, - 91, - 96, - 18, - 84, - 97, - 116, - 46, - 86, - 91, - 96, - 15, - 84, - 96, - 0, - 144, - 129, - 144, - 96, - 255, - 22, - 21, - 97, - 90, - 216, - 87, - 80, - 80, - 96, - 7, - 135, - 1, - 84, - 96, - 8, - 136, - 1, - 84, - 96, - 255, - 96, - 1, - 96, - 160, - 27, - 146, - 131, - 144, - 4, - 129, - 22, - 146, - 144, - 145, - 4, - 22, - 97, - 90, - 247, - 86, - 91, - 80, - 80, - 96, - 8, - 135, - 1, - 84, - 96, - 7, - 136, - 1, - 84, - 96, - 255, - 96, - 1, - 96, - 160, - 27, - 146, - 131, - 144, - 4, - 129, - 22, - 146, - 144, - 145, - 4, - 22, - 91, - 96, - 224, - 136, - 1, - 81, - 97, - 91, - 6, - 144, - 131, - 97, - 74, - 33, - 86, - 91, - 96, - 224, - 137, - 1, - 82, - 97, - 1, - 0, - 136, - 1, - 81, - 97, - 91, - 27, - 144, - 130, - 97, - 74, - 33, - 86, - 91, - 136, - 97, - 1, - 0, - 1, - 129, - 129, - 82, - 80, - 80, - 80, - 80, - 97, - 91, - 77, - 96, - 15, - 96, - 0, - 1, - 96, - 1, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 135, - 96, - 224, - 1, - 81, - 97, - 116, - 238, - 86, - 91, - 96, - 16, - 84, - 97, - 1, - 0, - 135, - 1, - 81, - 97, - 91, - 105, - 145, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 144, - 97, - 70, - 43, - 86, - 91, - 96, - 16, - 84, - 96, - 15, - 84, - 96, - 32, - 141, - 1, - 81, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 146, - 131, - 22, - 146, - 97, - 1, - 0, - 144, - 146, - 4, - 144, - 145, - 22, - 144, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 129, - 22, - 144, - 127, - 97, - 126, - 155, - 20, - 125, - 3, - 180, - 78, - 28, - 201, - 66, - 120, - 47, - 118, - 32, - 200, - 150, - 51, - 38, - 149, - 107, - 101, - 163, - 96, - 8, - 242, - 129, - 202, - 97, - 147, - 2, - 50, - 144, - 97, - 91, - 192, - 144, - 97, - 24, - 82, - 86, - 91, - 138, - 96, - 224, - 1, - 81, - 139, - 97, - 1, - 0, - 1, - 81, - 140, - 96, - 160, - 1, - 81, - 141, - 96, - 32, - 1, - 81, - 96, - 64, - 81, - 97, - 92, - 4, - 149, - 148, - 147, - 146, - 145, - 144, - 148, - 133, - 82, - 96, - 32, - 133, - 1, - 147, - 144, - 147, - 82, - 96, - 64, - 132, - 1, - 145, - 144, - 145, - 82, - 96, - 96, - 131, - 1, - 82, - 96, - 128, - 130, - 1, - 82, - 96, - 160, - 1, - 144, - 86, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 164, - 80, - 80, - 96, - 15, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 184, - 27, - 3, - 25, - 22, - 144, - 85, - 80, - 80, - 96, - 16, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 25, - 22, - 144, - 85, - 80, - 96, - 0, - 96, - 17, - 129, - 144, - 85, - 96, - 18, - 85, - 96, - 32, - 149, - 144, - 149, - 1, - 81, - 96, - 224, - 134, - 1, - 81, - 97, - 1, - 0, - 144, - 150, - 1, - 81, - 144, - 150, - 144, - 148, - 80, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 129, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 0, - 3, - 97, - 92, - 133, - 87, - 96, - 64, - 81, - 99, - 77, - 251, - 160, - 35, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 0, - 98, - 255, - 255, - 255, - 139, - 22, - 21, - 97, - 92, - 152, - 87, - 138, - 97, - 92, - 161, - 86, - 91, - 96, - 5, - 84, - 98, - 255, - 255, - 255, - 22, - 91, - 144, - 80, - 128, - 98, - 255, - 255, - 255, - 22, - 96, - 0, - 3, - 97, - 92, - 201, - 87, - 96, - 64, - 81, - 99, - 7, - 147, - 223, - 99, - 96, - 226, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 98, - 255, - 255, - 255, - 129, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 6, - 96, - 32, - 82, - 96, - 64, - 129, - 32, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 141, - 22, - 21, - 21, - 146, - 145, - 144, - 130, - 144, - 97, - 92, - 255, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 97, - 139, - 168, - 86, - 91, - 145, - 144, - 97, - 1, - 0, - 10, - 129, - 84, - 129, - 99, - 255, - 255, - 255, - 255, - 2, - 25, - 22, - 144, - 131, - 99, - 255, - 255, - 255, - 255, - 22, - 2, - 23, - 144, - 85, - 144, - 80, - 97, - 93, - 53, - 131, - 131, - 131, - 96, - 40, - 146, - 144, - 146, - 27, - 96, - 32, - 145, - 144, - 145, - 27, - 23, - 23, - 144, - 86, - 91, - 147, - 80, - 80, - 96, - 0, - 96, - 8, - 96, - 0, - 133, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 144, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 32, - 144, - 80, - 139, - 129, - 96, - 2, - 1, - 96, - 0, - 97, - 1, - 0, - 10, - 129, - 84, - 129, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 2, - 25, - 22, - 144, - 131, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 2, - 23, - 144, - 85, - 80, - 129, - 128, - 21, - 97, - 93, - 153, - 87, - 80, - 97, - 255, - 255, - 139, - 22, - 21, - 91, - 21, - 97, - 93, - 189, - 87, - 96, - 64, - 81, - 99, - 246, - 244, - 163, - 143, - 96, - 224, - 27, - 129, - 82, - 97, - 255, - 255, - 140, - 22, - 96, - 4, - 130, - 1, - 82, - 96, - 36, - 1, - 97, - 25, - 118, - 86, - 91, - 96, - 0, - 97, - 93, - 200, - 66, - 97, - 105, - 65, - 86, - 91, - 96, - 1, - 131, - 129, - 1, - 128, - 84, - 99, - 255, - 255, - 255, - 255, - 96, - 128, - 27, - 25, - 22, - 96, - 1, - 96, - 128, - 27, - 99, - 255, - 255, - 255, - 255, - 133, - 22, - 2, - 23, - 144, - 85, - 98, - 255, - 255, - 255, - 134, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 7, - 96, - 32, - 129, - 144, - 82, - 96, - 64, - 130, - 32, - 128, - 84, - 145, - 135, - 1, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 147, - 132, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 25, - 128, - 131, - 22, - 130, - 23, - 132, - 85, - 132, - 84, - 96, - 1, - 96, - 1, - 96, - 168, - 27, - 3, - 25, - 147, - 132, - 22, - 144, - 146, - 23, - 96, - 1, - 96, - 160, - 27, - 146, - 131, - 144, - 4, - 96, - 255, - 144, - 129, - 22, - 132, - 2, - 145, - 144, - 145, - 23, - 144, - 148, - 85, - 147, - 144, - 150, - 1, - 128, - 84, - 96, - 8, - 139, - 1, - 128, - 84, - 145, - 144, - 150, - 22, - 148, - 129, - 22, - 133, - 23, - 134, - 85, - 144, - 84, - 145, - 22, - 144, - 146, - 23, - 145, - 133, - 144, - 4, - 22, - 144, - 147, - 2, - 146, - 144, - 146, - 23, - 144, - 145, - 85, - 144, - 145, - 80, - 97, - 255, - 255, - 138, - 129, - 22, - 20, - 97, - 94, - 139, - 87, - 96, - 0, - 97, - 94, - 142, - 86, - 91, - 96, - 1, - 91, - 144, - 80, - 96, - 0, - 96, - 64, - 81, - 128, - 97, - 1, - 0, - 1, - 96, - 64, - 82, - 128, - 138, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 134, - 97, - 94, - 189, - 87, - 96, - 12, - 84, - 96, - 255, - 22, - 97, - 94, - 191, - 86, - 91, - 139, - 91, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 142, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 131, - 97, - 94, - 221, - 87, - 140, - 97, - 94, - 225, - 86, - 91, - 97, - 1, - 244, - 91, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 141, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 134, - 97, - 95, - 0, - 87, - 96, - 0, - 97, - 95, - 2, - 86, - 91, - 143, - 91, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 132, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 131, - 21, - 21, - 129, - 82, - 80, - 144, - 80, - 97, - 95, - 50, - 129, - 133, - 97, - 71, - 227, - 144, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 96, - 0, - 128, - 97, - 95, - 72, - 137, - 139, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 97, - 40, - 9, - 86, - 91, - 145, - 80, - 145, - 80, - 97, - 95, - 85, - 129, - 97, - 74, - 55, - 86, - 91, - 97, - 95, - 94, - 131, - 97, - 74, - 55, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 145, - 130, - 22, - 96, - 1, - 96, - 128, - 27, - 2, - 144, - 130, - 22, - 23, - 135, - 85, - 96, - 8, - 135, - 1, - 84, - 96, - 7, - 136, - 1, - 84, - 96, - 64, - 128, - 81, - 139, - 21, - 21, - 129, - 82, - 147, - 142, - 22, - 96, - 32, - 133, - 1, - 82, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 146, - 131, - 22, - 147, - 145, - 144, - 146, - 22, - 145, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 141, - 22, - 145, - 127, - 118, - 9, - 244, - 94, - 22, - 55, - 139, - 176, - 120, - 40, - 132, - 113, - 155, - 162, - 77, - 59, - 188, - 90, - 182, - 163, - 115, - 185, - 234, - 202, - 204, - 37, - 198, - 20, - 59, - 135, - 207, - 119, - 145, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 164, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 153, - 152, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 41, - 131, - 20, - 97, - 96, - 26, - 87, - 96, - 64, - 81, - 99, - 112, - 206, - 228, - 175, - 96, - 225, - 27, - 129, - 82, - 96, - 41, - 96, - 4, - 130, - 1, - 82, - 96, - 36, - 129, - 1, - 132, - 144, - 82, - 96, - 68, - 1, - 97, - 25, - 118, - 86, - 91, - 80, - 80, - 80, - 96, - 1, - 129, - 1, - 53, - 96, - 96, - 144, - 129, - 28, - 146, - 96, - 21, - 144, - 146, - 1, - 53, - 144, - 28, - 144, - 86, - 91, - 96, - 0, - 129, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 131, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 3, - 97, - 96, - 103, - 87, - 96, - 64, - 81, - 99, - 59, - 14, - 45, - 229, - 96, - 226, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 80, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 128, - 131, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 9, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 147, - 133, - 22, - 131, - 82, - 146, - 144, - 82, - 32, - 84, - 98, - 255, - 255, - 255, - 22, - 128, - 21, - 97, - 96, - 185, - 87, - 96, - 64, - 81, - 99, - 51, - 37, - 250, - 119, - 96, - 224, - 27, - 129, - 82, - 98, - 255, - 255, - 255, - 130, - 22, - 96, - 4, - 130, - 1, - 82, - 96, - 36, - 1, - 97, - 25, - 118, - 86, - 91, - 96, - 0, - 128, - 132, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 99, - 49, - 60, - 229, - 103, - 96, - 64, - 81, - 129, - 99, - 255, - 255, - 255, - 255, - 22, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 32, - 96, - 64, - 81, - 128, - 131, - 3, - 129, - 134, - 90, - 250, - 21, - 128, - 21, - 97, - 96, - 250, - 87, - 61, - 96, - 0, - 128, - 62, - 61, - 96, - 0, - 253, - 91, - 80, - 80, - 80, - 80, - 96, - 64, - 81, - 61, - 96, - 31, - 25, - 96, - 31, - 130, - 1, - 22, - 130, - 1, - 128, - 96, - 64, - 82, - 80, - 129, - 1, - 144, - 97, - 97, - 30, - 145, - 144, - 97, - 139, - 203, - 86, - 91, - 132, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 99, - 49, - 60, - 229, - 103, - 96, - 64, - 81, - 129, - 99, - 255, - 255, - 255, - 255, - 22, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 32, - 96, - 64, - 81, - 128, - 131, - 3, - 129, - 134, - 90, - 250, - 21, - 128, - 21, - 97, - 97, - 92, - 87, - 61, - 96, - 0, - 128, - 62, - 61, - 96, - 0, - 253, - 91, - 80, - 80, - 80, - 80, - 96, - 64, - 81, - 61, - 96, - 31, - 25, - 96, - 31, - 130, - 1, - 22, - 130, - 1, - 128, - 96, - 64, - 82, - 80, - 129, - 1, - 144, - 97, - 97, - 128, - 145, - 144, - 97, - 139, - 203, - 86, - 91, - 144, - 146, - 80, - 144, - 80, - 97, - 97, - 166, - 96, - 255, - 131, - 22, - 96, - 6, - 96, - 18, - 129, - 131, - 20, - 145, - 131, - 17, - 145, - 144, - 145, - 23, - 130, - 130, - 20, - 145, - 144, - 146, - 16, - 23, - 22, - 144, - 86, - 91, - 97, - 97, - 200, - 87, - 96, - 64, - 81, - 99, - 202, - 149, - 3, - 145, - 96, - 224, - 27, - 129, - 82, - 96, - 255, - 131, - 22, - 96, - 4, - 130, - 1, - 82, - 96, - 36, - 1, - 97, - 25, - 118, - 86, - 91, - 97, - 97, - 233, - 96, - 255, - 130, - 22, - 96, - 6, - 96, - 18, - 129, - 131, - 20, - 145, - 131, - 17, - 145, - 144, - 145, - 23, - 130, - 130, - 20, - 145, - 144, - 146, - 16, - 23, - 22, - 144, - 86, - 91, - 97, - 98, - 11, - 87, - 96, - 64, - 81, - 99, - 202, - 149, - 3, - 145, - 96, - 224, - 27, - 129, - 82, - 96, - 255, - 130, - 22, - 96, - 4, - 130, - 1, - 82, - 96, - 36, - 1, - 97, - 25, - 118, - 86, - 91, - 96, - 5, - 128, - 84, - 96, - 0, - 144, - 97, - 98, - 32, - 144, - 98, - 255, - 255, - 255, - 22, - 97, - 139, - 238, - 86, - 91, - 130, - 84, - 97, - 1, - 0, - 146, - 144, - 146, - 10, - 98, - 255, - 255, - 255, - 129, - 129, - 2, - 25, - 144, - 147, - 22, - 146, - 130, - 22, - 144, - 129, - 2, - 146, - 144, - 146, - 23, - 144, - 146, - 85, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 135, - 129, - 22, - 96, - 0, - 129, - 129, - 82, - 96, - 9, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 139, - 134, - 22, - 128, - 133, - 82, - 144, - 131, - 82, - 129, - 132, - 32, - 128, - 84, - 98, - 255, - 255, - 255, - 25, - 22, - 136, - 23, - 144, - 85, - 129, - 81, - 96, - 128, - 129, - 1, - 131, - 82, - 133, - 129, - 82, - 96, - 255, - 139, - 129, - 22, - 130, - 134, - 1, - 129, - 129, - 82, - 131, - 134, - 1, - 133, - 129, - 82, - 141, - 132, - 22, - 96, - 96, - 134, - 1, - 129, - 129, - 82, - 141, - 139, - 82, - 96, - 7, - 138, - 82, - 153, - 136, - 144, - 32, - 149, - 81, - 134, - 84, - 147, - 81, - 144, - 141, - 22, - 96, - 1, - 96, - 1, - 96, - 168, - 27, - 3, - 25, - 148, - 133, - 22, - 23, - 96, - 1, - 96, - 160, - 27, - 145, - 135, - 22, - 130, - 2, - 23, - 135, - 85, - 145, - 81, - 96, - 1, - 150, - 144, - 150, - 1, - 128, - 84, - 154, - 81, - 150, - 144, - 156, - 22, - 153, - 144, - 146, - 22, - 152, - 144, - 152, - 23, - 147, - 144, - 146, - 22, - 144, - 150, - 2, - 145, - 144, - 145, - 23, - 144, - 150, - 85, - 129, - 81, - 147, - 132, - 82, - 145, - 131, - 1, - 148, - 144, - 148, - 82, - 148, - 151, - 80, - 144, - 146, - 145, - 127, - 192, - 197, - 223, - 152, - 164, - 202, - 135, - 163, - 33, - 163, - 59, - 241, - 39, - 124, - 243, - 45, - 49, - 169, - 123, - 108, - 225, - 75, - 151, - 71, - 56, - 33, - 73, - 185, - 226, - 99, - 30, - 163, - 145, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 164, - 80, - 80, - 146, - 145, - 80, - 80, - 86, - 91, - 51, - 96, - 0, - 144, - 129, - 82, - 96, - 10, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 135, - 22, - 132, - 82, - 144, - 145, - 82, - 129, - 32, - 128, - 84, - 144, - 145, - 96, - 1, - 96, - 128, - 27, - 144, - 145, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 144, - 3, - 97, - 99, - 153, - 87, - 96, - 64, - 81, - 99, - 47, - 155, - 2, - 219, - 96, - 225, - 27, - 129, - 82, - 51, - 96, - 4, - 130, - 1, - 82, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 133, - 22, - 96, - 36, - 130, - 1, - 82, - 96, - 68, - 1, - 97, - 25, - 118, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 132, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 8, - 96, - 32, - 129, - 144, - 82, - 96, - 64, - 144, - 145, - 32, - 96, - 4, - 129, - 1, - 84, - 96, - 5, - 130, - 1, - 84, - 96, - 3, - 131, - 1, - 84, - 96, - 7, - 132, - 1, - 84, - 148, - 132, - 1, - 84, - 147, - 148, - 146, - 147, - 145, - 146, - 144, - 145, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 145, - 130, - 22, - 145, - 22, - 97, - 99, - 237, - 135, - 134, - 134, - 134, - 97, - 117, - 53, - 86, - 91, - 80, - 96, - 0, - 145, - 80, - 80, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 138, - 129, - 22, - 20, - 97, - 100, - 9, - 87, - 137, - 97, - 100, - 24, - 86, - 91, - 96, - 4, - 136, - 1, - 84, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 91, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 144, - 80, - 96, - 0, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 128, - 22, - 138, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 20, - 97, - 100, - 68, - 87, - 137, - 97, - 100, - 90, - 86, - 91, - 96, - 4, - 137, - 1, - 84, - 96, - 1, - 96, - 128, - 27, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 91, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 144, - 80, - 97, - 100, - 110, - 130, - 97, - 74, - 55, - 86, - 91, - 96, - 4, - 138, - 1, - 128, - 84, - 96, - 0, - 144, - 97, - 100, - 139, - 144, - 132, - 144, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 97, - 140, - 6, - 86, - 91, - 146, - 80, - 97, - 1, - 0, - 10, - 129, - 84, - 129, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 2, - 25, - 22, - 144, - 131, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 2, - 23, - 144, - 85, - 80, - 97, - 100, - 184, - 129, - 97, - 74, - 55, - 86, - 91, - 96, - 4, - 138, - 1, - 128, - 84, - 96, - 16, - 144, - 97, - 100, - 220, - 144, - 132, - 144, - 96, - 1, - 96, - 128, - 27, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 97, - 140, - 6, - 86, - 91, - 146, - 80, - 97, - 1, - 0, - 10, - 129, - 84, - 129, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 2, - 25, - 22, - 144, - 131, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 2, - 23, - 144, - 85, - 80, - 96, - 0, - 130, - 17, - 21, - 97, - 101, - 20, - 87, - 97, - 101, - 20, - 51, - 133, - 132, - 97, - 115, - 21, - 86, - 91, - 128, - 21, - 97, - 101, - 37, - 87, - 97, - 101, - 37, - 51, - 132, - 131, - 97, - 115, - 21, - 86, - 91, - 96, - 64, - 128, - 81, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 142, - 22, - 129, - 82, - 96, - 32, - 129, - 1, - 132, - 144, - 82, - 144, - 129, - 1, - 130, - 144, - 82, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 128, - 133, - 22, - 145, - 144, - 134, - 22, - 144, - 51, - 144, - 127, - 61, - 77, - 68, - 65, - 44, - 245, - 221, - 218, - 92, - 53, - 136, - 92, - 203, - 130, - 210, - 76, - 94, - 57, - 133, - 24, - 235, - 124, - 251, - 17, - 109, - 70, - 235, - 126, - 75, - 190, - 14, - 123, - 144, - 96, - 96, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 164, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 97, - 101, - 156, - 134, - 133, - 97, - 76, - 48, - 86, - 91, - 80, - 80, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 146, - 131, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 32, - 148, - 133, - 82, - 96, - 64, - 128, - 130, - 32, - 147, - 144, - 148, - 22, - 129, - 82, - 145, - 144, - 147, - 82, - 32, - 128, - 84, - 130, - 129, - 17, - 131, - 130, - 3, - 2, - 129, - 3, - 144, - 129, - 144, - 3, - 144, - 145, - 85, - 145, - 144, - 130, - 144, - 3, - 144, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 130, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 1, - 132, - 1, - 96, - 32, - 82, - 96, - 64, - 144, - 32, - 84, - 128, - 130, - 17, - 21, - 97, - 102, - 35, - 87, - 96, - 64, - 81, - 99, - 49, - 82, - 118, - 201, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 129, - 1, - 130, - 144, - 82, - 96, - 36, - 129, - 1, - 131, - 144, - 82, - 96, - 68, - 1, - 97, - 25, - 118, - 86, - 91, - 97, - 102, - 45, - 132, - 132, - 97, - 76, - 48, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 131, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 1, - 133, - 1, - 96, - 32, - 82, - 96, - 64, - 129, - 32, - 128, - 84, - 132, - 146, - 144, - 97, - 102, - 87, - 144, - 132, - 144, - 97, - 136, - 82, - 86, - 91, - 144, - 145, - 85, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 97, - 102, - 110, - 131, - 97, - 118, - 193, - 86, - 91, - 145, - 80, - 145, - 80, - 129, - 97, - 38, - 4, - 87, - 128, - 81, - 129, - 96, - 32, - 1, - 253, - 91, - 96, - 0, - 97, - 24, - 76, - 130, - 96, - 96, - 1, - 81, - 99, - 255, - 255, - 255, - 255, - 22, - 131, - 97, - 47, - 187, - 144, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 96, - 0, - 128, - 97, - 102, - 171, - 134, - 134, - 97, - 104, - 223, - 86, - 91, - 144, - 80, - 128, - 21, - 97, - 103, - 164, - 87, - 96, - 0, - 97, - 102, - 190, - 130, - 97, - 120, - 224, - 86, - 91, - 144, - 80, - 99, - 1, - 225, - 133, - 89, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 133, - 129, - 2, - 145, - 144, - 145, - 4, - 144, - 97, - 39, - 16, - 144, - 135, - 2, - 4, - 96, - 0, - 103, - 27, - 193, - 109, - 103, - 78, - 200, - 0, - 0, - 97, - 102, - 242, - 131, - 128, - 97, - 137, - 71, - 86, - 91, - 97, - 102, - 252, - 145, - 144, - 97, - 139, - 98, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 103, - 10, - 132, - 131, - 97, - 137, - 71, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 103, - 32, - 132, - 99, - 59, - 154, - 202, - 0, - 97, - 75, - 137, - 136, - 97, - 105, - 241, - 86, - 91, - 144, - 80, - 96, - 0, - 129, - 131, - 97, - 103, - 56, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 138, - 97, - 138, - 153, - 86, - 91, - 97, - 103, - 66, - 145, - 144, - 97, - 140, - 46, - 86, - 91, - 97, - 103, - 76, - 145, - 144, - 97, - 139, - 52, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 103, - 89, - 130, - 97, - 122, - 187, - 86, - 91, - 144, - 80, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 129, - 19, - 21, - 97, - 103, - 135, - 87, - 96, - 64, - 81, - 99, - 177, - 21, - 88, - 223, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 129, - 1, - 130, - 144, - 82, - 96, - 36, - 1, - 97, - 25, - 118, - 86, - 91, - 97, - 103, - 153, - 129, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 97, - 136, - 165, - 86, - 91, - 153, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 91, - 80, - 148, - 147, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 134, - 17, - 21, - 97, - 103, - 216, - 87, - 96, - 64, - 81, - 99, - 170, - 243, - 149, - 111, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 134, - 3, - 97, - 103, - 238, - 87, - 80, - 128, - 97, - 29, - 139, - 86, - 91, - 133, - 96, - 0, - 3, - 97, - 104, - 7, - 87, - 97, - 104, - 0, - 130, - 134, - 97, - 140, - 46, - 86, - 91, - 144, - 80, - 97, - 29, - 139, - 86, - 91, - 130, - 21, - 97, - 104, - 162, - 87, - 96, - 0, - 97, - 104, - 29, - 132, - 99, - 1, - 225, - 133, - 88, - 97, - 104, - 223, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 104, - 42, - 130, - 97, - 105, - 241, - 86, - 91, - 144, - 80, - 97, - 104, - 58, - 99, - 59, - 154, - 202, - 0, - 130, - 97, - 137, - 71, - 86, - 91, - 144, - 80, - 97, - 104, - 70, - 134, - 130, - 97, - 65, - 53, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 104, - 92, - 137, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 97, - 136, - 165, - 86, - 91, - 144, - 80, - 97, - 104, - 103, - 129, - 97, - 105, - 84, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 104, - 117, - 131, - 131, - 97, - 136, - 165, - 86, - 91, - 144, - 80, - 97, - 104, - 128, - 129, - 97, - 122, - 187, - 86, - 91, - 144, - 80, - 133, - 97, - 104, - 141, - 138, - 131, - 97, - 123, - 36, - 86, - 91, - 97, - 104, - 151, - 145, - 144, - 97, - 140, - 46, - 86, - 91, - 148, - 80, - 80, - 80, - 80, - 80, - 97, - 29, - 139, - 86, - 91, - 129, - 97, - 104, - 190, - 134, - 97, - 104, - 185, - 137, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 97, - 136, - 165, - 86, - 91, - 97, - 123, - 36, - 86, - 91, - 97, - 48, - 142, - 145, - 144, - 97, - 140, - 46, - 86, - 91, - 96, - 0, - 128, - 97, - 104, - 212, - 131, - 97, - 74, - 145, - 86, - 91, - 147, - 144, - 147, - 2, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 97, - 17, - 147, - 131, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 132, - 97, - 79, - 245, - 86, - 91, - 96, - 64, - 128, - 81, - 96, - 4, - 129, - 82, - 96, - 36, - 129, - 1, - 144, - 145, - 82, - 96, - 32, - 129, - 1, - 128, - 81, - 96, - 1, - 96, - 1, - 96, - 224, - 27, - 3, - 22, - 99, - 11, - 190, - 187, - 51, - 96, - 227, - 27, - 23, - 144, - 82, - 98, - 1, - 81, - 128, - 130, - 2, - 144, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 130, - 17, - 21, - 97, - 105, - 59, - 87, - 128, - 81, - 129, - 96, - 32, - 1, - 253, - 91, - 80, - 145, - 144, - 80, - 86, - 91, - 96, - 0, - 100, - 1, - 0, - 0, - 0, - 0, - 130, - 16, - 97, - 74, - 73, - 87, - 96, - 0, - 128, - 253, - 91, - 96, - 0, - 103, - 6, - 240, - 91, - 89, - 211, - 178, - 0, - 0, - 130, - 3, - 97, - 105, - 109, - 87, - 80, - 96, - 0, - 145, - 144, - 80, - 86, - 91, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 130, - 18, - 97, - 105, - 149, - 87, - 96, - 64, - 81, - 99, - 7, - 160, - 33, - 39, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 129, - 96, - 0, - 3, - 97, - 105, - 182, - 87, - 96, - 64, - 81, - 99, - 34, - 237, - 89, - 133, - 96, - 226, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 0, - 97, - 105, - 195, - 131, - 96, - 2, - 97, - 138, - 153, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 105, - 208, - 130, - 97, - 123, - 57, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 105, - 230, - 103, - 19, - 160, - 75, - 189, - 253, - 201, - 190, - 136, - 131, - 97, - 123, - 36, - 86, - 91, - 144, - 80, - 97, - 29, - 139, - 129, - 97, - 139, - 140, - 86, - 91, - 96, - 181, - 129, - 96, - 1, - 96, - 136, - 27, - 129, - 16, - 97, - 106, - 10, - 87, - 96, - 64, - 145, - 144, - 145, - 27, - 144, - 96, - 128, - 28, - 91, - 105, - 1, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 129, - 16, - 97, - 106, - 38, - 87, - 96, - 32, - 145, - 144, - 145, - 27, - 144, - 96, - 64, - 28, - 91, - 101, - 1, - 0, - 0, - 0, - 0, - 0, - 129, - 16, - 97, - 106, - 62, - 87, - 96, - 16, - 145, - 144, - 145, - 27, - 144, - 96, - 32, - 28, - 91, - 99, - 1, - 0, - 0, - 0, - 129, - 16, - 97, - 106, - 84, - 87, - 96, - 8, - 145, - 144, - 145, - 27, - 144, - 96, - 16, - 28, - 91, - 98, - 1, - 0, - 0, - 1, - 2, - 96, - 18, - 28, - 128, - 130, - 4, - 1, - 96, - 1, - 144, - 129, - 28, - 128, - 131, - 4, - 1, - 129, - 28, - 128, - 131, - 4, - 1, - 129, - 28, - 128, - 131, - 4, - 1, - 129, - 28, - 128, - 131, - 4, - 1, - 129, - 28, - 128, - 131, - 4, - 1, - 129, - 28, - 128, - 131, - 4, - 1, - 144, - 28, - 144, - 129, - 144, - 4, - 129, - 17, - 144, - 3, - 144, - 86, - 91, - 96, - 0, - 104, - 2, - 72, - 206, - 54, - 167, - 12, - 178, - 107, - 62, - 25, - 130, - 19, - 97, - 106, - 176, - 87, - 80, - 96, - 0, - 145, - 144, - 80, - 86, - 91, - 104, - 7, - 85, - 191, - 121, - 139, - 74, - 27, - 241, - 229, - 130, - 18, - 97, - 106, - 247, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 12, - 96, - 36, - 130, - 1, - 82, - 107, - 69, - 88, - 80, - 95, - 79, - 86, - 69, - 82, - 70, - 76, - 79, - 87, - 96, - 160, - 27, - 96, - 68, - 130, - 1, - 82, - 96, - 100, - 1, - 97, - 25, - 118, - 86, - 91, - 101, - 3, - 120, - 45, - 172, - 233, - 217, - 96, - 78, - 131, - 144, - 27, - 5, - 145, - 80, - 96, - 0, - 96, - 96, - 107, - 177, - 114, - 23, - 247, - 209, - 207, - 121, - 171, - 201, - 227, - 179, - 152, - 132, - 130, - 27, - 5, - 96, - 1, - 96, - 95, - 27, - 1, - 144, - 29, - 107, - 177, - 114, - 23, - 247, - 209, - 207, - 121, - 171, - 201, - 227, - 179, - 152, - 129, - 2, - 144, - 147, - 3, - 108, - 36, - 12, - 51, - 14, - 159, - 178, - 217, - 203, - 175, - 15, - 213, - 170, - 251, - 25, - 129, - 1, - 129, - 2, - 96, - 96, - 144, - 129, - 29, - 109, - 2, - 119, - 89, - 73, - 145, - 207, - 200, - 95, - 110, - 36, - 97, - 131, - 124, - 217, - 1, - 130, - 2, - 129, - 29, - 109, - 26, - 82, - 18, - 85, - 227, - 79, - 106, - 80, - 97, - 178, - 94, - 241, - 201, - 195, - 25, - 1, - 130, - 2, - 129, - 29, - 109, - 177, - 187, - 178, - 1, - 244, - 67, - 207, - 150, - 47, - 26, - 29, - 61, - 180, - 165, - 1, - 130, - 2, - 129, - 29, - 110, - 2, - 199, - 35, - 136, - 217, - 247, - 79, - 81, - 169, - 51, - 31, - 237, - 105, - 63, - 20, - 25, - 1, - 130, - 2, - 129, - 29, - 110, - 5, - 24, - 11, - 177, - 71, - 153, - 171, - 71, - 168, - 168, - 203, - 42, - 82, - 125, - 87, - 1, - 109, - 2, - 209, - 103, - 32, - 87, - 123, - 209, - 155, - 246, - 20, - 23, - 111, - 233, - 234, - 108, - 16, - 254, - 104, - 231, - 253, - 55, - 208, - 0, - 123, - 113, - 63, - 118, - 80, - 132, - 1, - 132, - 2, - 131, - 29, - 144, - 129, - 1, - 144, - 132, - 1, - 109, - 1, - 211, - 150, - 126, - 211, - 15, - 196, - 248, - 156, - 2, - 186, - 181, - 112, - 129, - 25, - 1, - 2, - 144, - 145, - 29, - 110, - 5, - 135, - 245, - 3, - 187, - 110, - 162, - 157, - 37, - 252, - 183, - 64, - 25, - 100, - 80, - 1, - 144, - 145, - 2, - 109, - 54, - 13, - 122, - 238, - 160, - 147, - 38, - 62, - 204, - 110, - 14, - 203, - 41, - 23, - 96, - 98, - 27, - 1, - 5, - 116, - 2, - 157, - 157, - 195, - 133, - 99, - 195, - 46, - 92, - 47, - 109, - 193, - 146, - 238, - 112, - 239, - 101, - 249, - 151, - 138, - 243, - 2, - 96, - 195, - 147, - 144, - 147, - 3, - 146, - 144, - 146, - 28, - 146, - 145, - 80, - 80, - 86, - 91, - 96, - 0, - 96, - 64, - 81, - 99, - 35, - 184, - 114, - 221, - 96, - 224, - 27, - 96, - 0, - 82, - 132, - 96, - 4, - 82, - 131, - 96, - 36, - 82, - 130, - 96, - 68, - 82, - 96, - 32, - 96, - 0, - 96, - 100, - 96, - 0, - 128, - 138, - 90, - 241, - 61, - 21, - 96, - 31, - 61, - 17, - 96, - 1, - 96, - 0, - 81, - 20, - 22, - 23, - 22, - 145, - 80, - 96, - 0, - 96, - 96, - 82, - 128, - 96, - 64, - 82, - 80, - 128, - 97, - 63, - 108, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 20, - 96, - 36, - 130, - 1, - 82, - 115, - 21, - 20, - 144, - 83, - 148, - 209, - 145, - 84, - 151, - 209, - 148, - 147, - 211, - 87, - 209, - 144, - 82, - 83, - 17, - 81, - 96, - 98, - 27, - 96, - 68, - 130, - 1, - 82, - 96, - 100, - 1, - 97, - 25, - 118, - 86, - 91, - 97, - 108, - 207, - 132, - 131, - 97, - 76, - 48, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 128, - 132, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 32, - 134, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 147, - 134, - 22, - 131, - 82, - 146, - 144, - 82, - 144, - 129, - 32, - 128, - 84, - 131, - 146, - 144, - 97, - 102, - 87, - 144, - 132, - 144, - 97, - 137, - 47, - 86, - 91, - 96, - 0, - 130, - 21, - 97, - 110, - 21, - 87, - 96, - 0, - 97, - 109, - 28, - 132, - 99, - 1, - 225, - 133, - 88, - 97, - 104, - 223, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 109, - 41, - 130, - 97, - 105, - 241, - 86, - 91, - 144, - 80, - 97, - 109, - 57, - 99, - 59, - 154, - 202, - 0, - 130, - 97, - 137, - 71, - 86, - 91, - 144, - 80, - 97, - 109, - 69, - 134, - 130, - 97, - 65, - 53, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 109, - 92, - 97, - 109, - 86, - 134, - 139, - 97, - 140, - 46, - 86, - 91, - 137, - 97, - 125, - 178, - 86, - 91, - 144, - 80, - 96, - 0, - 129, - 18, - 21, - 97, - 109, - 128, - 87, - 96, - 64, - 81, - 99, - 170, - 243, - 149, - 111, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 129, - 19, - 21, - 97, - 109, - 169, - 87, - 96, - 64, - 81, - 99, - 170, - 243, - 149, - 111, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 129, - 3, - 97, - 109, - 196, - 87, - 96, - 0, - 147, - 80, - 80, - 80, - 80, - 97, - 29, - 139, - 86, - 91, - 128, - 96, - 0, - 3, - 97, - 109, - 223, - 87, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 147, - 80, - 80, - 80, - 80, - 97, - 29, - 139, - 86, - 91, - 97, - 109, - 232, - 129, - 97, - 105, - 84, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 109, - 246, - 131, - 131, - 97, - 140, - 46, - 86, - 91, - 144, - 80, - 97, - 110, - 1, - 129, - 97, - 122, - 187, - 86, - 91, - 144, - 80, - 97, - 104, - 151, - 129, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 97, - 136, - 165, - 86, - 91, - 96, - 0, - 97, - 110, - 33, - 131, - 136, - 97, - 140, - 46, - 86, - 91, - 144, - 80, - 133, - 97, - 110, - 46, - 130, - 130, - 97, - 125, - 178, - 86, - 91, - 97, - 74, - 21, - 144, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 97, - 136, - 165, - 86, - 91, - 96, - 0, - 96, - 1, - 96, - 1, - 96, - 127, - 27, - 3, - 130, - 17, - 21, - 97, - 74, - 73, - 87, - 96, - 0, - 128, - 253, - 91, - 96, - 32, - 128, - 130, - 1, - 128, - 81, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 144, - 129, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 8, - 132, - 82, - 96, - 64, - 128, - 130, - 32, - 134, - 81, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 131, - 82, - 96, - 10, - 134, - 82, - 129, - 131, - 32, - 148, - 81, - 144, - 147, - 22, - 130, - 82, - 146, - 144, - 147, - 82, - 144, - 130, - 32, - 96, - 4, - 130, - 1, - 84, - 96, - 5, - 131, - 1, - 84, - 96, - 3, - 132, - 1, - 84, - 133, - 148, - 133, - 148, - 144, - 147, - 144, - 146, - 97, - 110, - 188, - 146, - 132, - 146, - 145, - 144, - 97, - 117, - 53, - 86, - 91, - 96, - 32, - 137, - 1, - 81, - 137, - 81, - 96, - 224, - 139, - 1, - 81, - 148, - 153, - 80, - 146, - 151, - 80, - 144, - 149, - 80, - 96, - 0, - 146, - 97, - 110, - 225, - 146, - 144, - 96, - 15, - 11, - 97, - 16, - 169, - 86, - 91, - 144, - 80, - 128, - 97, - 111, - 19, - 87, - 96, - 6, - 131, - 1, - 84, - 96, - 64, - 81, - 99, - 38, - 136, - 198, - 203, - 96, - 226, - 27, - 129, - 82, - 96, - 1, - 96, - 128, - 27, - 144, - 145, - 4, - 97, - 255, - 255, - 22, - 96, - 4, - 130, - 1, - 82, - 96, - 36, - 1, - 97, - 25, - 118, - 86, - 91, - 96, - 64, - 135, - 1, - 81, - 96, - 224, - 136, - 1, - 81, - 97, - 111, - 40, - 145, - 132, - 145, - 97, - 125, - 199, - 86, - 91, - 96, - 224, - 135, - 1, - 81, - 96, - 32, - 128, - 137, - 1, - 81, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 8, - 144, - 145, - 82, - 96, - 64, - 144, - 32, - 97, - 111, - 83, - 145, - 97, - 126, - 29, - 86, - 91, - 96, - 160, - 135, - 1, - 81, - 96, - 192, - 136, - 1, - 81, - 96, - 224, - 137, - 1, - 81, - 96, - 0, - 96, - 15, - 145, - 144, - 145, - 11, - 18, - 21, - 97, - 111, - 145, - 87, - 97, - 111, - 126, - 130, - 138, - 96, - 96, - 1, - 81, - 97, - 70, - 43, - 86, - 91, - 97, - 111, - 140, - 129, - 138, - 96, - 128, - 1, - 81, - 97, - 70, - 43, - 86, - 91, - 97, - 111, - 173, - 86, - 91, - 97, - 111, - 159, - 130, - 138, - 96, - 96, - 1, - 81, - 97, - 116, - 238, - 86, - 91, - 97, - 111, - 173, - 129, - 138, - 96, - 128, - 1, - 81, - 97, - 116, - 238, - 86, - 91, - 80, - 80, - 80, - 80, - 80, - 145, - 147, - 144, - 146, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 97, - 111, - 199, - 132, - 97, - 48, - 152, - 86, - 91, - 80, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 134, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 8, - 96, - 32, - 82, - 96, - 64, - 144, - 32, - 144, - 146, - 80, - 97, - 111, - 238, - 145, - 80, - 66, - 97, - 126, - 92, - 86, - 91, - 97, - 114, - 248, - 96, - 8, - 96, - 0, - 134, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 144, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 32, - 96, - 64, - 81, - 128, - 97, - 1, - 64, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 2, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 3, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 4, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 5, - 130, - 1, - 84, - 129, - 82, - 96, - 32, - 1, - 96, - 6, - 130, - 1, - 96, - 64, - 81, - 128, - 97, - 1, - 0, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 16, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 18, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 22, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 24, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 97, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 26, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 99, - 255, - 255, - 255, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 30, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 21, - 21, - 21, - 21, - 129, - 82, - 80, - 80, - 129, - 82, - 96, - 32, - 1, - 96, - 7, - 130, - 1, - 96, - 64, - 81, - 128, - 96, - 128, - 1, - 96, - 64, - 82, - 144, - 129, - 96, - 0, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 0, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 1, - 130, - 1, - 96, - 20, - 144, - 84, - 144, - 97, - 1, - 0, - 10, - 144, - 4, - 96, - 255, - 22, - 96, - 255, - 22, - 96, - 255, - 22, - 129, - 82, - 80, - 80, - 129, - 82, - 80, - 80, - 97, - 102, - 127, - 86, - 91, - 96, - 0, - 3, - 97, - 115, - 10, - 87, - 96, - 0, - 148, - 144, - 147, - 80, - 145, - 80, - 80, - 86, - 91, - 96, - 1, - 148, - 144, - 147, - 80, - 145, - 80, - 80, - 86, - 91, - 97, - 115, - 34, - 96, - 0, - 132, - 132, - 132, - 97, - 108, - 197, - 86, - 91, - 129, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 131, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 127, - 73, - 225, - 68, - 60, - 178, - 94, - 23, - 203, - 235, - 197, - 10, - 163, - 227, - 165, - 163, - 223, - 58, - 195, - 52, - 175, - 133, - 43, - 198, - 243, - 232, - 210, - 88, - 85, - 130, - 87, - 187, - 17, - 131, - 96, - 64, - 81, - 97, - 115, - 103, - 145, - 129, - 82, - 96, - 32, - 1, - 144, - 86, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 163, - 80, - 80, - 80, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 130, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 8, - 96, - 32, - 82, - 96, - 64, - 129, - 32, - 96, - 2, - 1, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 51, - 3, - 97, - 115, - 246, - 87, - 129, - 81, - 96, - 32, - 131, - 1, - 81, - 96, - 0, - 145, - 97, - 115, - 178, - 145, - 97, - 136, - 165, - 86, - 91, - 144, - 80, - 96, - 0, - 128, - 130, - 18, - 97, - 115, - 195, - 87, - 129, - 97, - 115, - 204, - 86, - 91, - 97, - 115, - 204, - 130, - 97, - 139, - 140, - 86, - 91, - 144, - 80, - 128, - 21, - 97, - 115, - 243, - 87, - 97, - 115, - 243, - 97, - 115, - 238, - 133, - 96, - 192, - 1, - 81, - 131, - 97, - 104, - 223, - 144, - 145, - 144, - 99, - 255, - 255, - 255, - 255, - 22, - 86, - 91, - 96, - 18, - 85, - 86, - 91, - 80, - 80, - 91, - 96, - 0, - 130, - 96, - 32, - 1, - 81, - 19, - 21, - 97, - 116, - 37, - 87, - 97, - 116, - 29, - 97, - 116, - 24, - 131, - 96, - 160, - 1, - 81, - 132, - 96, - 192, - 1, - 81, - 97, - 104, - 223, - 86, - 91, - 96, - 17, - 85, - 86, - 91, - 80, - 96, - 1, - 97, - 24, - 76, - 86, - 91, - 80, - 96, - 0, - 146, - 145, - 80, - 80, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 135, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 8, - 96, - 32, - 82, - 96, - 64, - 144, - 32, - 97, - 116, - 79, - 135, - 97, - 74, - 55, - 86, - 91, - 129, - 84, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 25, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 145, - 144, - 145, - 22, - 23, - 129, - 85, - 97, - 116, - 115, - 134, - 97, - 74, - 55, - 86, - 91, - 129, - 84, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 145, - 130, - 22, - 96, - 1, - 96, - 128, - 27, - 2, - 145, - 22, - 23, - 129, - 85, - 97, - 116, - 148, - 133, - 97, - 74, - 55, - 86, - 91, - 96, - 1, - 130, - 1, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 25, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 146, - 144, - 146, - 22, - 145, - 144, - 145, - 23, - 144, - 85, - 97, - 116, - 192, - 129, - 66, - 97, - 126, - 92, - 86, - 91, - 96, - 4, - 129, - 1, - 84, - 132, - 1, - 96, - 4, - 130, - 1, - 85, - 96, - 5, - 129, - 1, - 84, - 131, - 1, - 96, - 5, - 130, - 1, - 85, - 96, - 3, - 129, - 1, - 84, - 130, - 1, - 96, - 3, - 144, - 145, - 1, - 85, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 97, - 116, - 250, - 96, - 0, - 131, - 131, - 97, - 126, - 139, - 86, - 91, - 129, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 127, - 128, - 178, - 23, - 72, - 199, - 135, - 197, - 46, - 135, - 166, - 178, - 34, - 1, - 30, - 10, - 14, - 208, - 249, - 204, - 32, - 21, - 240, - 206, - 212, - 103, - 72, - 100, - 45, - 198, - 46, - 233, - 248, - 130, - 96, - 64, - 81, - 97, - 70, - 114, - 145, - 129, - 82, - 96, - 32, - 1, - 144, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 128, - 97, - 117, - 73, - 135, - 137, - 96, - 2, - 1, - 84, - 144, - 3, - 144, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 117, - 91, - 135, - 138, - 96, - 3, - 1, - 84, - 144, - 3, - 144, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 117, - 109, - 135, - 139, - 96, - 1, - 1, - 84, - 144, - 3, - 144, - 86, - 91, - 138, - 84, - 144, - 145, - 80, - 97, - 117, - 134, - 144, - 132, - 144, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 97, - 65, - 53, - 86, - 91, - 138, - 84, - 144, - 150, - 80, - 97, - 117, - 159, - 144, - 131, - 144, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 97, - 65, - 53, - 86, - 91, - 138, - 84, - 144, - 149, - 80, - 97, - 117, - 184, - 144, - 130, - 144, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 97, - 65, - 53, - 86, - 91, - 96, - 2, - 139, - 1, - 138, - 144, - 85, - 96, - 3, - 139, - 1, - 137, - 144, - 85, - 96, - 1, - 139, - 1, - 136, - 144, - 85, - 147, - 80, - 97, - 117, - 216, - 134, - 97, - 74, - 55, - 86, - 91, - 96, - 4, - 139, - 1, - 128, - 84, - 96, - 0, - 144, - 97, - 117, - 245, - 144, - 132, - 144, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 97, - 140, - 111, - 86, - 91, - 146, - 80, - 97, - 1, - 0, - 10, - 129, - 84, - 129, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 2, - 25, - 22, - 144, - 131, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 2, - 23, - 144, - 85, - 80, - 97, - 118, - 34, - 133, - 97, - 74, - 55, - 86, - 91, - 96, - 4, - 139, - 1, - 128, - 84, - 96, - 16, - 144, - 97, - 118, - 70, - 144, - 132, - 144, - 96, - 1, - 96, - 128, - 27, - 144, - 4, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 97, - 140, - 111, - 86, - 91, - 146, - 80, - 97, - 1, - 0, - 10, - 129, - 84, - 129, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 2, - 25, - 22, - 144, - 131, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 2, - 23, - 144, - 85, - 80, - 97, - 118, - 115, - 132, - 97, - 74, - 55, - 86, - 91, - 96, - 5, - 139, - 1, - 128, - 84, - 96, - 0, - 144, - 97, - 118, - 144, - 144, - 132, - 144, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 97, - 140, - 111, - 86, - 91, - 146, - 80, - 97, - 1, - 0, - 10, - 129, - 84, - 129, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 2, - 25, - 22, - 144, - 131, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 2, - 23, - 144, - 85, - 80, - 80, - 80, - 80, - 148, - 80, - 148, - 80, - 148, - 145, - 80, - 80, - 86, - 91, - 96, - 0, - 96, - 96, - 97, - 2, - 88, - 131, - 96, - 32, - 1, - 81, - 97, - 255, - 255, - 22, - 17, - 21, - 97, - 119, - 54, - 87, - 96, - 32, - 131, - 1, - 81, - 96, - 64, - 81, - 97, - 255, - 255, - 144, - 145, - 22, - 96, - 36, - 130, - 1, - 82, - 96, - 0, - 144, - 99, - 122, - 127, - 16, - 65, - 96, - 225, - 27, - 144, - 96, - 68, - 1, - 91, - 96, - 64, - 128, - 81, - 96, - 31, - 25, - 129, - 132, - 3, - 1, - 129, - 82, - 145, - 144, - 82, - 96, - 32, - 129, - 1, - 128, - 81, - 96, - 1, - 96, - 1, - 96, - 224, - 27, - 3, - 22, - 96, - 1, - 96, - 1, - 96, - 224, - 27, - 3, - 25, - 144, - 147, - 22, - 146, - 144, - 146, - 23, - 144, - 145, - 82, - 144, - 148, - 144, - 147, - 80, - 145, - 80, - 80, - 86, - 91, - 97, - 119, - 93, - 131, - 96, - 128, - 1, - 81, - 97, - 255, - 255, - 22, - 96, - 100, - 97, - 97, - 168, - 129, - 131, - 20, - 145, - 131, - 17, - 145, - 144, - 145, - 23, - 130, - 130, - 20, - 145, - 144, - 146, - 16, - 23, - 22, - 144, - 86, - 91, - 97, - 119, - 136, - 87, - 96, - 128, - 131, - 1, - 81, - 96, - 64, - 81, - 97, - 255, - 255, - 144, - 145, - 22, - 96, - 36, - 130, - 1, - 82, - 96, - 0, - 144, - 99, - 9, - 98, - 43, - 49, - 96, - 225, - 27, - 144, - 96, - 68, - 1, - 97, - 118, - 250, - 86, - 91, - 97, - 119, - 175, - 131, - 96, - 96, - 1, - 81, - 97, - 255, - 255, - 22, - 96, - 1, - 97, - 1, - 244, - 129, - 131, - 20, - 145, - 131, - 17, - 145, - 144, - 145, - 23, - 130, - 130, - 20, - 145, - 144, - 146, - 16, - 23, - 22, - 144, - 86, - 91, - 97, - 119, - 218, - 87, - 96, - 96, - 131, - 1, - 81, - 96, - 64, - 81, - 97, - 255, - 255, - 144, - 145, - 22, - 96, - 36, - 130, - 1, - 82, - 96, - 0, - 144, - 99, - 174, - 145, - 144, - 39, - 96, - 224, - 27, - 144, - 96, - 68, - 1, - 97, - 118, - 250, - 86, - 91, - 130, - 81, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 144, - 129, - 22, - 129, - 129, - 16, - 145, - 129, - 20, - 145, - 144, - 145, - 23, - 96, - 1, - 128, - 131, - 17, - 146, - 20, - 145, - 144, - 145, - 23, - 22, - 97, - 120, - 42, - 87, - 130, - 81, - 96, - 64, - 81, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 144, - 145, - 22, - 96, - 36, - 130, - 1, - 82, - 96, - 0, - 144, - 99, - 139, - 191, - 136, - 181, - 96, - 224, - 27, - 144, - 96, - 68, - 1, - 97, - 118, - 250, - 86, - 91, - 97, - 120, - 81, - 131, - 96, - 64, - 1, - 81, - 97, - 255, - 255, - 22, - 96, - 1, - 97, - 3, - 232, - 129, - 131, - 20, - 145, - 131, - 17, - 145, - 144, - 145, - 23, - 130, - 130, - 20, - 145, - 144, - 146, - 16, - 23, - 22, - 144, - 86, - 91, - 97, - 120, - 124, - 87, - 96, - 64, - 128, - 132, - 1, - 81, - 144, - 81, - 97, - 255, - 255, - 144, - 145, - 22, - 96, - 36, - 130, - 1, - 82, - 96, - 0, - 144, - 99, - 246, - 244, - 163, - 143, - 96, - 224, - 27, - 144, - 96, - 68, - 1, - 97, - 118, - 250, - 86, - 91, - 96, - 160, - 131, - 1, - 81, - 96, - 64, - 132, - 1, - 81, - 97, - 255, - 255, - 145, - 130, - 22, - 128, - 21, - 128, - 21, - 23, - 146, - 144, - 145, - 22, - 129, - 129, - 20, - 145, - 16, - 23, - 22, - 97, - 120, - 199, - 87, - 96, - 160, - 131, - 1, - 81, - 96, - 64, - 81, - 97, - 255, - 255, - 144, - 145, - 22, - 96, - 36, - 130, - 1, - 82, - 96, - 0, - 144, - 99, - 246, - 244, - 163, - 143, - 96, - 224, - 27, - 144, - 96, - 68, - 1, - 97, - 118, - 250, - 86, - 91, - 80, - 80, - 96, - 64, - 128, - 81, - 96, - 32, - 129, - 1, - 144, - 145, - 82, - 96, - 0, - 129, - 82, - 96, - 1, - 146, - 144, - 145, - 80, - 86, - 91, - 96, - 0, - 128, - 130, - 19, - 97, - 121, - 29, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 9, - 96, - 36, - 130, - 1, - 82, - 104, - 21, - 83, - 145, - 17, - 81, - 146, - 83, - 145, - 81, - 96, - 186, - 27, - 96, - 68, - 130, - 1, - 82, - 96, - 100, - 1, - 97, - 25, - 118, - 86, - 91, - 96, - 0, - 96, - 96, - 97, - 121, - 42, - 132, - 97, - 126, - 201, - 86, - 91, - 3, - 96, - 159, - 129, - 129, - 3, - 148, - 144, - 148, - 27, - 144, - 147, - 28, - 108, - 70, - 87, - 114, - 178, - 187, - 187, - 95, - 130, - 75, - 21, - 32, - 122, - 48, - 129, - 1, - 129, - 2, - 96, - 96, - 144, - 129, - 29, - 109, - 3, - 136, - 234, - 162, - 116, - 18, - 213, - 172, - 160, - 38, - 129, - 93, - 99, - 110, - 1, - 130, - 2, - 129, - 29, - 109, - 13, - 249, - 154, - 197, - 2, - 3, - 27, - 249, - 83, - 239, - 244, - 114, - 253, - 204, - 1, - 130, - 2, - 129, - 29, - 109, - 19, - 205, - 255, - 178, - 157, - 81, - 217, - 147, - 34, - 189, - 255, - 95, - 34, - 17, - 1, - 130, - 2, - 129, - 29, - 109, - 10, - 15, - 116, - 32, - 35, - 222, - 247, - 131, - 163, - 7, - 169, - 134, - 145, - 46, - 1, - 130, - 2, - 129, - 29, - 109, - 1, - 146, - 13, - 128, - 67, - 202, - 137, - 181, - 35, - 146, - 83, - 40, - 78, - 66, - 1, - 130, - 2, - 129, - 29, - 108, - 11, - 122, - 134, - 215, - 55, - 84, - 104, - 250, - 198, - 103, - 160, - 165, - 39, - 1, - 108, - 41, - 80, - 142, - 69, - 133, - 67, - 216, - 170, - 77, - 242, - 171, - 238, - 120, - 131, - 1, - 131, - 2, - 130, - 29, - 109, - 1, - 57, - 96, - 26, - 46, - 250, - 190, - 113, - 126, - 96, - 76, - 187, - 72, - 148, - 1, - 131, - 2, - 130, - 29, - 109, - 2, - 36, - 127, - 122, - 123, - 101, - 148, - 50, - 6, - 73, - 170, - 3, - 171, - 161, - 1, - 131, - 2, - 130, - 29, - 108, - 140, - 63, - 56, - 233, - 90, - 107, - 31, - 242, - 171, - 28, - 59, - 52, - 54, - 25, - 1, - 131, - 2, - 130, - 29, - 109, - 2, - 56, - 71, - 115, - 189, - 241, - 172, - 86, - 118, - 250, - 204, - 237, - 96, - 144, - 25, - 1, - 131, - 2, - 144, - 145, - 29, - 108, - 185, - 160, - 37, - 216, - 20, - 178, - 156, - 33, - 43, - 139, - 26, - 7, - 205, - 25, - 1, - 144, - 145, - 2, - 120, - 10, - 9, - 80, - 112, - 132, - 204, - 105, - 155, - 176, - 231, - 30, - 168, - 105, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 25, - 1, - 5, - 113, - 19, - 64, - 218, - 160, - 213, - 247, - 105, - 219, - 161, - 145, - 92, - 239, - 89, - 240, - 129, - 90, - 85, - 6, - 2, - 125, - 2, - 103, - 163, - 108, - 12, - 149, - 179, - 151, - 90, - 179, - 238, - 91, - 32, - 58, - 118, - 20, - 163, - 247, - 83, - 115, - 240, - 71, - 216, - 3, - 174, - 123, - 102, - 135, - 242, - 179, - 147, - 144, - 147, - 2, - 146, - 144, - 146, - 1, - 125, - 87, - 17, - 94, - 71, - 1, - 140, - 113, - 119, - 238, - 191, - 124, - 211, - 112, - 163, - 53, - 106, - 27, - 120, - 99, - 0, - 138, - 90, - 232, - 2, - 140, - 114, - 184, - 134, - 66, - 132, - 1, - 96, - 174, - 29, - 146, - 145, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 103, - 19, - 160, - 75, - 189, - 253, - 201, - 190, - 136, - 97, - 122, - 217, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 133, - 97, - 138, - 153, - 86, - 91, - 97, - 122, - 227, - 145, - 144, - 97, - 139, - 52, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 122, - 240, - 130, - 97, - 139, - 140, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 122, - 253, - 130, - 97, - 127, - 103, - 86, - 91, - 144, - 80, - 103, - 27, - 193, - 109, - 103, - 78, - 200, - 0, - 0, - 97, - 123, - 26, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 131, - 97, - 138, - 153, - 86, - 91, - 97, - 29, - 139, - 145, - 144, - 97, - 139, - 52, - 86, - 91, - 96, - 0, - 97, - 17, - 147, - 131, - 131, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 97, - 129, - 75, - 86, - 91, - 96, - 0, - 128, - 130, - 18, - 128, - 97, - 123, - 80, - 87, - 80, - 103, - 27, - 193, - 109, - 103, - 78, - 200, - 0, - 0, - 130, - 19, - 91, - 21, - 97, - 123, - 110, - 87, - 96, - 64, - 81, - 99, - 45, - 4, - 131, - 197, - 96, - 226, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 129, - 96, - 0, - 3, - 97, - 123, - 143, - 87, - 96, - 64, - 81, - 99, - 7, - 160, - 33, - 39, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 129, - 103, - 27, - 193, - 109, - 103, - 78, - 200, - 0, - 0, - 3, - 97, - 123, - 183, - 87, - 96, - 64, - 81, - 99, - 34, - 237, - 89, - 133, - 96, - 226, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 128, - 21, - 97, - 123, - 194, - 87, - 145, - 144, - 80, - 86, - 91, - 96, - 0, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 131, - 18, - 97, - 123, - 234, - 87, - 97, - 123, - 229, - 131, - 103, - 27, - 193, - 109, - 103, - 78, - 200, - 0, - 0, - 97, - 136, - 165, - 86, - 91, - 97, - 123, - 236, - 86, - 91, - 130, - 91, - 144, - 80, - 96, - 0, - 97, - 124, - 2, - 130, - 103, - 27, - 193, - 109, - 103, - 78, - 200, - 0, - 0, - 97, - 125, - 178, - 86, - 91, - 144, - 80, - 128, - 96, - 0, - 3, - 97, - 124, - 37, - 87, - 96, - 64, - 81, - 99, - 7, - 160, - 33, - 39, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 0, - 97, - 124, - 48, - 130, - 97, - 120, - 224, - 86, - 91, - 144, - 80, - 96, - 0, - 99, - 59, - 154, - 202, - 0, - 97, - 124, - 91, - 97, - 124, - 86, - 97, - 124, - 80, - 103, - 27, - 193, - 109, - 103, - 78, - 200, - 0, - 0, - 97, - 139, - 140, - 86, - 91, - 133, - 97, - 123, - 36, - 86, - 91, - 97, - 105, - 241, - 86, - 91, - 97, - 124, - 101, - 145, - 144, - 97, - 138, - 153, - 86, - 91, - 144, - 80, - 96, - 0, - 128, - 97, - 124, - 124, - 131, - 103, - 3, - 193, - 102, - 92, - 122, - 171, - 32, - 0, - 97, - 123, - 36, - 86, - 91, - 97, - 124, - 142, - 144, - 103, - 32, - 5, - 254, - 79, - 38, - 142, - 160, - 0, - 97, - 140, - 46, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 124, - 185, - 132, - 97, - 124, - 167, - 134, - 102, - 159, - 50, - 117, - 36, - 98, - 160, - 0, - 97, - 123, - 36, - 86, - 91, - 97, - 104, - 185, - 144, - 103, - 13, - 197, - 82, - 127, - 100, - 44, - 32, - 0, - 97, - 140, - 46, - 86, - 91, - 97, - 124, - 203, - 144, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 97, - 140, - 46, - 86, - 91, - 144, - 80, - 97, - 124, - 239, - 103, - 9, - 208, - 40, - 204, - 111, - 32, - 95, - 255, - 25, - 133, - 97, - 124, - 229, - 133, - 133, - 97, - 125, - 178, - 86, - 91, - 97, - 104, - 185, - 145, - 144, - 97, - 136, - 165, - 86, - 91, - 146, - 80, - 80, - 80, - 96, - 0, - 91, - 96, - 2, - 129, - 16, - 21, - 97, - 125, - 138, - 87, - 96, - 0, - 134, - 97, - 125, - 11, - 132, - 97, - 127, - 103, - 86, - 91, - 97, - 125, - 21, - 145, - 144, - 97, - 136, - 165, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 125, - 35, - 132, - 133, - 97, - 123, - 36, - 86, - 91, - 97, - 125, - 44, - 144, - 97, - 139, - 140, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 125, - 57, - 130, - 97, - 106, - 149, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 125, - 71, - 134, - 133, - 97, - 123, - 36, - 86, - 91, - 97, - 125, - 89, - 103, - 15, - 168, - 206, - 223, - 194, - 173, - 221, - 250, - 132, - 97, - 123, - 36, - 86, - 91, - 97, - 125, - 99, - 145, - 144, - 97, - 136, - 165, - 86, - 91, - 144, - 80, - 97, - 125, - 111, - 132, - 130, - 97, - 125, - 178, - 86, - 91, - 97, - 125, - 121, - 144, - 135, - 97, - 140, - 46, - 86, - 91, - 149, - 80, - 132, - 96, - 1, - 1, - 148, - 80, - 80, - 80, - 80, - 80, - 97, - 124, - 246, - 86, - 91, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 136, - 18, - 97, - 125, - 167, - 87, - 97, - 125, - 162, - 130, - 97, - 139, - 140, - 86, - 91, - 97, - 74, - 21, - 86, - 91, - 80, - 150, - 149, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 97, - 17, - 147, - 131, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 132, - 97, - 129, - 75, - 86, - 91, - 130, - 84, - 99, - 255, - 255, - 255, - 255, - 131, - 22, - 96, - 1, - 96, - 128, - 27, - 2, - 99, - 255, - 255, - 255, - 255, - 96, - 128, - 27, - 25, - 130, - 22, - 129, - 23, - 133, - 85, - 97, - 125, - 253, - 145, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 145, - 130, - 22, - 145, - 22, - 23, - 130, - 97, - 129, - 106, - 86, - 91, - 131, - 84, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 25, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 145, - 144, - 145, - 22, - 23, - 144, - 146, - 85, - 80, - 80, - 86, - 91, - 96, - 1, - 130, - 1, - 84, - 97, - 126, - 53, - 144, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 22, - 130, - 97, - 129, - 106, - 86, - 91, - 96, - 1, - 146, - 144, - 146, - 1, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 25, - 22, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 144, - 147, - 22, - 146, - 144, - 146, - 23, - 144, - 145, - 85, - 80, - 86, - 91, - 97, - 126, - 101, - 129, - 97, - 105, - 65, - 86, - 91, - 130, - 96, - 1, - 1, - 96, - 16, - 97, - 1, - 0, - 10, - 129, - 84, - 129, - 99, - 255, - 255, - 255, - 255, - 2, - 25, - 22, - 144, - 131, - 99, - 255, - 255, - 255, - 255, - 22, - 2, - 23, - 144, - 85, - 80, - 80, - 80, - 86, - 91, - 97, - 126, - 149, - 131, - 131, - 97, - 76, - 48, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 130, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 1, - 132, - 1, - 96, - 32, - 82, - 96, - 64, - 129, - 32, - 128, - 84, - 131, - 146, - 144, - 97, - 126, - 191, - 144, - 132, - 144, - 97, - 137, - 47, - 86, - 91, - 144, - 145, - 85, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 130, - 17, - 97, - 127, - 6, - 87, - 96, - 64, - 81, - 98, - 70, - 27, - 205, - 96, - 229, - 27, - 129, - 82, - 96, - 32, - 96, - 4, - 130, - 1, - 82, - 96, - 9, - 96, - 36, - 130, - 1, - 82, - 104, - 21, - 83, - 145, - 17, - 81, - 146, - 83, - 145, - 81, - 96, - 186, - 27, - 96, - 68, - 130, - 1, - 82, - 96, - 100, - 1, - 97, - 25, - 118, - 86, - 91, - 80, - 96, - 1, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 130, - 17, - 96, - 7, - 27, - 130, - 129, - 28, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 16, - 96, - 6, - 27, - 23, - 130, - 129, - 28, - 99, - 255, - 255, - 255, - 255, - 16, - 96, - 5, - 27, - 23, - 130, - 129, - 28, - 97, - 255, - 255, - 16, - 96, - 4, - 27, - 23, - 130, - 129, - 28, - 96, - 255, - 16, - 96, - 3, - 144, - 129, - 27, - 144, - 145, - 23, - 131, - 129, - 28, - 96, - 15, - 16, - 96, - 2, - 27, - 23, - 131, - 129, - 28, - 144, - 145, - 16, - 130, - 27, - 23, - 145, - 130, - 28, - 17, - 23, - 144, - 86, - 91, - 96, - 0, - 129, - 96, - 0, - 3, - 97, - 127, - 128, - 87, - 80, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 145, - 144, - 80, - 86, - 91, - 103, - 86, - 152, - 238, - 240, - 102, - 112, - 0, - 0, - 130, - 18, - 97, - 127, - 151, - 87, - 80, - 96, - 0, - 145, - 144, - 80, - 86, - 91, - 97, - 127, - 168, - 103, - 86, - 152, - 238, - 240, - 102, - 112, - 0, - 0, - 97, - 139, - 140, - 86, - 91, - 130, - 19, - 97, - 127, - 189, - 87, - 80, - 103, - 27, - 193, - 109, - 103, - 78, - 200, - 0, - 0, - 145, - 144, - 80, - 86, - 91, - 96, - 0, - 97, - 127, - 200, - 131, - 97, - 129, - 181, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 128, - 1, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 97, - 127, - 234, - 132, - 103, - 27, - 193, - 109, - 103, - 78, - 200, - 0, - 0, - 97, - 104, - 223, - 86, - 91, - 97, - 127, - 252, - 144, - 103, - 13, - 224, - 182, - 179, - 167, - 100, - 0, - 0, - 97, - 140, - 46, - 86, - 91, - 97, - 125, - 178, - 86, - 91, - 144, - 80, - 96, - 0, - 128, - 130, - 97, - 128, - 93, - 129, - 97, - 128, - 74, - 129, - 97, - 128, - 56, - 129, - 97, - 128, - 37, - 129, - 103, - 2, - 95, - 15, - 225, - 5, - 163, - 20, - 0, - 97, - 123, - 36, - 86, - 91, - 97, - 104, - 185, - 144, - 103, - 11, - 104, - 223, - 24, - 228, - 113, - 251, - 255, - 25, - 97, - 140, - 46, - 86, - 91, - 97, - 104, - 185, - 144, - 103, - 20, - 168, - 69, - 76, - 25, - 225, - 172, - 0, - 97, - 140, - 46, - 86, - 91, - 97, - 104, - 185, - 144, - 103, - 15, - 193, - 14, - 1, - 87, - 130, - 119, - 255, - 25, - 97, - 140, - 46, - 86, - 91, - 97, - 128, - 111, - 144, - 103, - 3, - 222, - 189, - 8, - 59, - 140, - 124, - 0, - 97, - 140, - 46, - 86, - 91, - 145, - 80, - 131, - 144, - 80, - 97, - 128, - 215, - 129, - 97, - 128, - 197, - 129, - 97, - 128, - 179, - 129, - 97, - 128, - 161, - 129, - 97, - 128, - 142, - 129, - 139, - 97, - 123, - 36, - 86, - 91, - 97, - 104, - 185, - 144, - 103, - 2, - 149, - 212, - 0, - 234, - 50, - 87, - 255, - 25, - 97, - 140, - 46, - 86, - 91, - 97, - 104, - 185, - 144, - 103, - 1, - 87, - 216, - 178, - 236, - 199, - 8, - 0, - 97, - 140, - 46, - 86, - 91, - 97, - 104, - 185, - 144, - 103, - 5, - 49, - 10, - 167, - 213, - 33, - 48, - 0, - 97, - 140, - 46, - 86, - 91, - 97, - 104, - 185, - 144, - 103, - 13, - 224, - 204, - 61, - 21, - 97, - 0, - 0, - 97, - 140, - 46, - 86, - 91, - 145, - 80, - 129, - 103, - 17, - 144, - 0, - 171, - 16, - 15, - 252, - 0, - 97, - 128, - 237, - 135, - 136, - 97, - 123, - 36, - 86, - 91, - 97, - 128, - 249, - 144, - 96, - 0, - 25, - 97, - 138, - 153, - 86, - 91, - 97, - 129, - 3, - 145, - 144, - 97, - 136, - 165, - 86, - 91, - 97, - 129, - 13, - 145, - 144, - 97, - 140, - 46, - 86, - 91, - 146, - 80, - 80, - 96, - 0, - 97, - 129, - 27, - 131, - 97, - 106, - 149, - 86, - 91, - 144, - 80, - 96, - 0, - 97, - 129, - 41, - 133, - 131, - 97, - 123, - 36, - 86, - 91, - 144, - 80, - 96, - 0, - 136, - 18, - 97, - 129, - 57, - 87, - 128, - 97, - 74, - 21, - 86, - 91, - 97, - 74, - 21, - 129, - 103, - 27, - 193, - 109, - 103, - 78, - 200, - 0, - 0, - 97, - 136, - 165, - 86, - 91, - 130, - 130, - 2, - 129, - 21, - 21, - 132, - 21, - 133, - 131, - 5, - 133, - 20, - 23, - 22, - 97, - 129, - 99, - 87, - 96, - 0, - 128, - 253, - 91, - 5, - 146, - 145, - 80, - 80, - 86, - 91, - 96, - 64, - 128, - 81, - 96, - 4, - 129, - 82, - 96, - 36, - 129, - 1, - 144, - 145, - 82, - 96, - 32, - 129, - 1, - 128, - 81, - 96, - 1, - 96, - 1, - 96, - 224, - 27, - 3, - 22, - 99, - 31, - 255, - 150, - 129, - 96, - 224, - 27, - 23, - 144, - 82, - 130, - 130, - 1, - 144, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 130, - 17, - 21, - 97, - 129, - 174, - 87, - 128, - 81, - 129, - 96, - 32, - 1, - 253, - 91, - 80, - 146, - 145, - 80, - 80, - 86, - 91, - 96, - 0, - 96, - 1, - 96, - 255, - 27, - 130, - 3, - 97, - 129, - 219, - 87, - 96, - 64, - 81, - 99, - 77, - 45, - 117, - 177, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 253, - 91, - 96, - 0, - 130, - 18, - 21, - 97, - 74, - 73, - 87, - 80, - 25, - 96, - 1, - 1, - 144, - 86, - 91, - 145, - 144, - 80, - 86, - 91, - 80, - 128, - 84, - 96, - 0, - 130, - 85, - 96, - 3, - 2, - 144, - 96, - 0, - 82, - 96, - 32, - 96, - 0, - 32, - 144, - 129, - 1, - 144, - 97, - 25, - 233, - 145, - 144, - 97, - 130, - 124, - 86, - 91, - 80, - 128, - 84, - 96, - 0, - 130, - 85, - 144, - 96, - 0, - 82, - 96, - 32, - 96, - 0, - 32, - 144, - 129, - 1, - 144, - 97, - 25, - 233, - 145, - 144, - 97, - 130, - 169, - 86, - 91, - 96, - 64, - 81, - 128, - 97, - 1, - 32, - 1, - 96, - 64, - 82, - 128, - 96, - 0, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 129, - 82, - 96, - 32, - 1, - 96, - 0, - 129, - 82, - 80, - 144, - 86, - 91, - 91, - 128, - 130, - 17, - 21, - 97, - 74, - 73, - 87, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 25, - 22, - 129, - 85, - 96, - 0, - 96, - 1, - 130, - 1, - 129, - 144, - 85, - 96, - 2, - 130, - 1, - 85, - 96, - 3, - 1, - 97, - 130, - 125, - 86, - 91, - 91, - 128, - 130, - 17, - 21, - 97, - 74, - 73, - 87, - 96, - 0, - 129, - 85, - 96, - 1, - 1, - 97, - 130, - 170, - 86, - 91, - 128, - 53, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 129, - 22, - 129, - 20, - 97, - 129, - 236, - 87, - 96, - 0, - 128, - 253, - 91, - 96, - 0, - 96, - 32, - 130, - 132, - 3, - 18, - 21, - 97, - 130, - 231, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 17, - 147, - 130, - 97, - 130, - 190, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 129, - 22, - 129, - 20, - 97, - 25, - 233, - 87, - 96, - 0, - 128, - 253, - 91, - 96, - 0, - 128, - 96, - 0, - 96, - 96, - 132, - 134, - 3, - 18, - 21, - 97, - 131, - 26, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 131, - 35, - 132, - 97, - 130, - 190, - 86, - 91, - 146, - 80, - 96, - 32, - 132, - 1, - 53, - 97, - 131, - 51, - 129, - 97, - 130, - 240, - 86, - 91, - 146, - 149, - 146, - 148, - 80, - 80, - 80, - 96, - 64, - 145, - 144, - 145, - 1, - 53, - 144, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 128, - 96, - 0, - 96, - 160, - 134, - 136, - 3, - 18, - 21, - 97, - 131, - 92, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 131, - 101, - 134, - 97, - 130, - 190, - 86, - 91, - 151, - 96, - 32, - 135, - 1, - 53, - 151, - 80, - 96, - 64, - 135, - 1, - 53, - 150, - 96, - 96, - 129, - 1, - 53, - 150, - 80, - 96, - 128, - 1, - 53, - 148, - 80, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 64, - 131, - 133, - 3, - 18, - 21, - 97, - 131, - 153, - 87, - 96, - 0, - 128, - 253, - 91, - 130, - 53, - 97, - 131, - 164, - 129, - 97, - 130, - 240, - 86, - 91, - 145, - 80, - 96, - 32, - 131, - 1, - 53, - 97, - 131, - 180, - 129, - 97, - 130, - 240, - 86, - 91, - 128, - 145, - 80, - 80, - 146, - 80, - 146, - 144, - 80, - 86, - 91, - 96, - 0, - 96, - 32, - 130, - 132, - 3, - 18, - 21, - 97, - 131, - 209, - 87, - 96, - 0, - 128, - 253, - 91, - 129, - 53, - 97, - 17, - 147, - 129, - 97, - 130, - 240, - 86, - 91, - 96, - 0, - 96, - 32, - 130, - 132, - 3, - 18, - 21, - 97, - 131, - 238, - 87, - 96, - 0, - 128, - 253, - 91, - 129, - 53, - 98, - 255, - 255, - 255, - 129, - 22, - 129, - 20, - 97, - 17, - 147, - 87, - 96, - 0, - 128, - 253, - 91, - 96, - 0, - 96, - 32, - 130, - 132, - 3, - 18, - 21, - 97, - 132, - 19, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 53, - 145, - 144, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 64, - 131, - 133, - 3, - 18, - 21, - 97, - 132, - 45, - 87, - 96, - 0, - 128, - 253, - 91, - 130, - 53, - 97, - 132, - 56, - 129, - 97, - 130, - 240, - 86, - 91, - 148, - 96, - 32, - 147, - 144, - 147, - 1, - 53, - 147, - 80, - 80, - 80, - 86, - 91, - 128, - 53, - 128, - 21, - 21, - 129, - 20, - 97, - 129, - 236, - 87, - 96, - 0, - 128, - 253, - 91, - 96, - 0, - 128, - 96, - 0, - 96, - 96, - 132, - 134, - 3, - 18, - 21, - 97, - 132, - 107, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 132, - 116, - 132, - 97, - 130, - 190, - 86, - 91, - 146, - 80, - 97, - 132, - 130, - 96, - 32, - 133, - 1, - 97, - 132, - 70, - 86, - 91, - 145, - 80, - 96, - 64, - 132, - 1, - 53, - 144, - 80, - 146, - 80, - 146, - 80, - 146, - 86, - 91, - 96, - 0, - 128, - 96, - 64, - 131, - 133, - 3, - 18, - 21, - 97, - 132, - 165, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 132, - 174, - 131, - 97, - 130, - 190, - 86, - 91, - 145, - 80, - 96, - 32, - 131, - 1, - 53, - 128, - 96, - 15, - 11, - 129, - 20, - 97, - 131, - 180, - 87, - 96, - 0, - 128, - 253, - 91, - 96, - 0, - 97, - 2, - 128, - 130, - 1, - 144, - 80, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 128, - 141, - 22, - 131, - 82, - 128, - 140, - 22, - 96, - 32, - 132, - 1, - 82, - 128, - 139, - 22, - 96, - 64, - 132, - 1, - 82, - 99, - 255, - 255, - 255, - 255, - 138, - 22, - 96, - 96, - 132, - 1, - 82, - 96, - 1, - 128, - 96, - 160, - 27, - 3, - 137, - 22, - 96, - 128, - 132, - 1, - 82, - 135, - 96, - 160, - 132, - 1, - 82, - 134, - 96, - 192, - 132, - 1, - 82, - 133, - 96, - 224, - 132, - 1, - 82, - 128, - 133, - 81, - 22, - 97, - 1, - 0, - 132, - 1, - 82, - 80, - 96, - 32, - 132, - 1, - 81, - 97, - 255, - 255, - 128, - 130, - 22, - 97, - 1, - 32, - 133, - 1, - 82, - 128, - 96, - 64, - 135, - 1, - 81, - 22, - 97, - 1, - 64, - 133, - 1, - 82, - 80, - 80, - 96, - 96, - 132, - 1, - 81, - 97, - 133, - 87, - 97, - 1, - 96, - 132, - 1, - 130, - 97, - 255, - 255, - 22, - 144, - 82, - 86, - 91, - 80, - 96, - 128, - 132, - 1, - 81, - 97, - 255, - 255, - 144, - 129, - 22, - 97, - 1, - 128, - 132, - 1, - 82, - 96, - 160, - 133, - 1, - 81, - 22, - 97, - 1, - 160, - 131, - 1, - 82, - 96, - 192, - 132, - 1, - 81, - 99, - 255, - 255, - 255, - 255, - 22, - 97, - 1, - 192, - 131, - 1, - 82, - 96, - 224, - 144, - 147, - 1, - 81, - 21, - 21, - 97, - 1, - 224, - 130, - 1, - 82, - 129, - 81, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 144, - 129, - 22, - 97, - 2, - 0, - 131, - 1, - 82, - 96, - 32, - 131, - 1, - 81, - 96, - 255, - 144, - 129, - 22, - 97, - 2, - 32, - 132, - 1, - 82, - 96, - 64, - 132, - 1, - 81, - 144, - 145, - 22, - 97, - 2, - 64, - 131, - 1, - 82, - 96, - 96, - 144, - 146, - 1, - 81, - 144, - 145, - 22, - 97, - 2, - 96, - 144, - 145, - 1, - 82, - 152, - 151, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 128, - 96, - 128, - 133, - 135, - 3, - 18, - 21, - 97, - 133, - 247, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 134, - 0, - 133, - 97, - 130, - 190, - 86, - 91, - 147, - 80, - 97, - 134, - 14, - 96, - 32, - 134, - 1, - 97, - 132, - 70, - 86, - 91, - 147, - 150, - 147, - 149, - 80, - 80, - 80, - 80, - 96, - 64, - 130, - 1, - 53, - 145, - 96, - 96, - 1, - 53, - 144, - 86, - 91, - 96, - 0, - 128, - 96, - 32, - 131, - 133, - 3, - 18, - 21, - 97, - 134, - 54, - 87, - 96, - 0, - 128, - 253, - 91, - 130, - 53, - 96, - 1, - 96, - 1, - 96, - 64, - 27, - 3, - 128, - 130, - 17, - 21, - 97, - 134, - 77, - 87, - 96, - 0, - 128, - 253, - 91, - 129, - 133, - 1, - 145, - 80, - 133, - 96, - 31, - 131, - 1, - 18, - 97, - 134, - 97, - 87, - 96, - 0, - 128, - 253, - 91, - 129, - 53, - 129, - 129, - 17, - 21, - 97, - 134, - 112, - 87, - 96, - 0, - 128, - 253, - 91, - 134, - 96, - 32, - 130, - 133, - 1, - 1, - 17, - 21, - 97, - 134, - 130, - 87, - 96, - 0, - 128, - 253, - 91, - 96, - 32, - 146, - 144, - 146, - 1, - 150, - 145, - 149, - 80, - 144, - 147, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 96, - 96, - 132, - 134, - 3, - 18, - 21, - 97, - 134, - 169, - 87, - 96, - 0, - 128, - 253, - 91, - 131, - 53, - 97, - 134, - 180, - 129, - 97, - 130, - 240, - 86, - 91, - 146, - 80, - 96, - 32, - 132, - 1, - 53, - 145, - 80, - 96, - 64, - 132, - 1, - 53, - 97, - 134, - 203, - 129, - 97, - 130, - 240, - 86, - 91, - 128, - 145, - 80, - 80, - 146, - 80, - 146, - 80, - 146, - 86, - 91, - 128, - 53, - 97, - 255, - 255, - 129, - 22, - 129, - 20, - 97, - 129, - 236, - 87, - 96, - 0, - 128, - 253, - 91, - 96, - 0, - 128, - 96, - 0, - 128, - 96, - 128, - 133, - 135, - 3, - 18, - 21, - 97, - 134, - 254, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 135, - 7, - 133, - 97, - 130, - 190, - 86, - 91, - 147, - 80, - 97, - 135, - 21, - 96, - 32, - 134, - 1, - 97, - 134, - 214, - 86, - 91, - 146, - 80, - 97, - 135, - 35, - 96, - 64, - 134, - 1, - 97, - 134, - 214, - 86, - 91, - 145, - 80, - 97, - 135, - 49, - 96, - 96, - 134, - 1, - 97, - 134, - 214, - 86, - 91, - 144, - 80, - 146, - 149, - 145, - 148, - 80, - 146, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 64, - 131, - 133, - 3, - 18, - 21, - 97, - 135, - 79, - 87, - 96, - 0, - 128, - 253, - 91, - 130, - 53, - 97, - 135, - 90, - 129, - 97, - 130, - 240, - 86, - 91, - 145, - 80, - 97, - 135, - 104, - 96, - 32, - 132, - 1, - 97, - 130, - 190, - 86, - 91, - 144, - 80, - 146, - 80, - 146, - 144, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 64, - 131, - 133, - 3, - 18, - 21, - 97, - 135, - 132, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 132, - 56, - 131, - 97, - 130, - 190, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 96, - 96, - 132, - 134, - 3, - 18, - 21, - 97, - 135, - 162, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 135, - 171, - 132, - 97, - 130, - 190, - 86, - 91, - 149, - 96, - 32, - 133, - 1, - 53, - 149, - 80, - 96, - 64, - 144, - 148, - 1, - 53, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 91, - 131, - 129, - 16, - 21, - 97, - 135, - 219, - 87, - 129, - 129, - 1, - 81, - 131, - 130, - 1, - 82, - 96, - 32, - 1, - 97, - 135, - 195, - 86, - 91, - 131, - 129, - 17, - 21, - 97, - 40, - 3, - 87, - 80, - 80, - 96, - 0, - 145, - 1, - 82, - 86, - 91, - 96, - 32, - 129, - 82, - 96, - 0, - 130, - 81, - 128, - 96, - 32, - 132, - 1, - 82, - 97, - 136, - 11, - 129, - 96, - 64, - 133, - 1, - 96, - 32, - 135, - 1, - 97, - 135, - 192, - 86, - 91, - 96, - 31, - 1, - 96, - 31, - 25, - 22, - 145, - 144, - 145, - 1, - 96, - 64, - 1, - 146, - 145, - 80, - 80, - 86, - 91, - 96, - 0, - 96, - 32, - 130, - 132, - 3, - 18, - 21, - 97, - 136, - 49, - 87, - 96, - 0, - 128, - 253, - 91, - 129, - 81, - 97, - 17, - 147, - 129, - 97, - 130, - 240, - 86, - 91, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 17, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 96, - 0, - 130, - 130, - 16, - 21, - 97, - 136, - 100, - 87, - 97, - 136, - 100, - 97, - 136, - 60, - 86, - 91, - 80, - 3, - 144, - 86, - 91, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 50, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 96, - 0, - 129, - 96, - 15, - 11, - 96, - 1, - 96, - 1, - 96, - 127, - 27, - 3, - 25, - 129, - 3, - 97, - 136, - 156, - 87, - 97, - 136, - 156, - 97, - 136, - 60, - 86, - 91, - 96, - 0, - 3, - 146, - 145, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 131, - 18, - 128, - 21, - 96, - 1, - 96, - 255, - 27, - 133, - 1, - 132, - 18, - 22, - 21, - 97, - 136, - 195, - 87, - 97, - 136, - 195, - 97, - 136, - 60, - 86, - 91, - 96, - 1, - 96, - 1, - 96, - 255, - 27, - 3, - 132, - 1, - 131, - 19, - 129, - 22, - 21, - 97, - 136, - 222, - 87, - 97, - 136, - 222, - 97, - 136, - 60, - 86, - 91, - 80, - 80, - 3, - 144, - 86, - 91, - 96, - 0, - 130, - 81, - 97, - 136, - 246, - 129, - 132, - 96, - 32, - 135, - 1, - 97, - 135, - 192, - 86, - 91, - 145, - 144, - 145, - 1, - 146, - 145, - 80, - 80, - 86, - 91, - 96, - 0, - 96, - 32, - 130, - 132, - 3, - 18, - 21, - 97, - 137, - 18, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 81, - 145, - 144, - 80, - 86, - 91, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 49, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 96, - 0, - 130, - 25, - 130, - 17, - 21, - 97, - 137, - 66, - 87, - 97, - 137, - 66, - 97, - 136, - 60, - 86, - 91, - 80, - 1, - 144, - 86, - 91, - 96, - 0, - 129, - 96, - 0, - 25, - 4, - 131, - 17, - 130, - 21, - 21, - 22, - 21, - 97, - 137, - 97, - 87, - 97, - 137, - 97, - 97, - 136, - 60, - 86, - 91, - 80, - 2, - 144, - 86, - 91, - 96, - 0, - 128, - 133, - 133, - 17, - 21, - 97, - 137, - 118, - 87, - 96, - 0, - 128, - 253, - 91, - 131, - 134, - 17, - 21, - 97, - 137, - 131, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 80, - 130, - 1, - 147, - 145, - 144, - 146, - 3, - 145, - 80, - 86, - 91, - 96, - 0, - 96, - 1, - 130, - 1, - 97, - 137, - 162, - 87, - 97, - 137, - 162, - 97, - 136, - 60, - 86, - 91, - 80, - 96, - 1, - 1, - 144, - 86, - 91, - 96, - 1, - 129, - 129, - 91, - 128, - 133, - 17, - 21, - 97, - 137, - 228, - 87, - 129, - 96, - 0, - 25, - 4, - 130, - 17, - 21, - 97, - 137, - 202, - 87, - 97, - 137, - 202, - 97, - 136, - 60, - 86, - 91, - 128, - 133, - 22, - 21, - 97, - 137, - 215, - 87, - 145, - 129, - 2, - 145, - 91, - 147, - 132, - 28, - 147, - 144, - 128, - 2, - 144, - 97, - 137, - 174, - 86, - 91, - 80, - 146, - 80, - 146, - 144, - 80, - 86, - 91, - 96, - 0, - 130, - 97, - 137, - 251, - 87, - 80, - 96, - 1, - 97, - 24, - 76, - 86, - 91, - 129, - 97, - 138, - 8, - 87, - 80, - 96, - 0, - 97, - 24, - 76, - 86, - 91, - 129, - 96, - 1, - 129, - 20, - 97, - 138, - 30, - 87, - 96, - 2, - 129, - 20, - 97, - 138, - 40, - 87, - 97, - 138, - 68, - 86, - 91, - 96, - 1, - 145, - 80, - 80, - 97, - 24, - 76, - 86, - 91, - 96, - 255, - 132, - 17, - 21, - 97, - 138, - 57, - 87, - 97, - 138, - 57, - 97, - 136, - 60, - 86, - 91, - 80, - 80, - 96, - 1, - 130, - 27, - 97, - 24, - 76, - 86, - 91, - 80, - 96, - 32, - 131, - 16, - 97, - 1, - 51, - 131, - 16, - 22, - 96, - 78, - 132, - 16, - 96, - 11, - 132, - 16, - 22, - 23, - 21, - 97, - 138, - 103, - 87, - 80, - 129, - 129, - 10, - 97, - 24, - 76, - 86, - 91, - 97, - 138, - 113, - 131, - 131, - 97, - 137, - 169, - 86, - 91, - 128, - 96, - 0, - 25, - 4, - 130, - 17, - 21, - 97, - 138, - 133, - 87, - 97, - 138, - 133, - 97, - 136, - 60, - 86, - 91, - 2, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 97, - 17, - 147, - 131, - 131, - 97, - 137, - 236, - 86, - 91, - 96, - 0, - 96, - 1, - 96, - 1, - 96, - 255, - 27, - 3, - 129, - 132, - 19, - 130, - 132, - 19, - 128, - 130, - 22, - 134, - 132, - 4, - 134, - 17, - 22, - 21, - 97, - 138, - 191, - 87, - 97, - 138, - 191, - 97, - 136, - 60, - 86, - 91, - 96, - 1, - 96, - 255, - 27, - 96, - 0, - 135, - 18, - 130, - 129, - 22, - 135, - 131, - 5, - 137, - 18, - 22, - 21, - 97, - 138, - 222, - 87, - 97, - 138, - 222, - 97, - 136, - 60, - 86, - 91, - 96, - 0, - 135, - 18, - 146, - 80, - 135, - 130, - 5, - 135, - 18, - 132, - 132, - 22, - 22, - 21, - 97, - 138, - 250, - 87, - 97, - 138, - 250, - 97, - 136, - 60, - 86, - 91, - 135, - 133, - 5, - 135, - 18, - 129, - 132, - 22, - 22, - 21, - 97, - 139, - 16, - 87, - 97, - 139, - 16, - 97, - 136, - 60, - 86, - 91, - 80, - 80, - 80, - 146, - 144, - 147, - 2, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 18, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 96, - 0, - 130, - 97, - 139, - 67, - 87, - 97, - 139, - 67, - 97, - 139, - 30, - 86, - 91, - 96, - 1, - 96, - 255, - 27, - 130, - 20, - 96, - 0, - 25, - 132, - 20, - 22, - 21, - 97, - 139, - 93, - 87, - 97, - 139, - 93, - 97, - 136, - 60, - 86, - 91, - 80, - 5, - 144, - 86, - 91, - 96, - 0, - 130, - 97, - 139, - 113, - 87, - 97, - 139, - 113, - 97, - 139, - 30, - 86, - 91, - 80, - 4, - 144, - 86, - 91, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 1, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 96, - 0, - 96, - 1, - 96, - 255, - 27, - 130, - 1, - 97, - 139, - 161, - 87, - 97, - 139, - 161, - 97, - 136, - 60, - 86, - 91, - 80, - 96, - 0, - 3, - 144, - 86, - 91, - 96, - 0, - 99, - 255, - 255, - 255, - 255, - 128, - 131, - 22, - 129, - 129, - 3, - 97, - 139, - 193, - 87, - 97, - 139, - 193, - 97, - 136, - 60, - 86, - 91, - 96, - 1, - 1, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 96, - 32, - 130, - 132, - 3, - 18, - 21, - 97, - 139, - 221, - 87, - 96, - 0, - 128, - 253, - 91, - 129, - 81, - 96, - 255, - 129, - 22, - 129, - 20, - 97, - 17, - 147, - 87, - 96, - 0, - 128, - 253, - 91, - 96, - 0, - 98, - 255, - 255, - 255, - 128, - 131, - 22, - 129, - 129, - 3, - 97, - 139, - 193, - 87, - 97, - 139, - 193, - 97, - 136, - 60, - 86, - 91, - 96, - 0, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 131, - 129, - 22, - 144, - 131, - 22, - 129, - 129, - 16, - 21, - 97, - 140, - 38, - 87, - 97, - 140, - 38, - 97, - 136, - 60, - 86, - 91, - 3, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 130, - 18, - 128, - 21, - 96, - 1, - 96, - 1, - 96, - 255, - 27, - 3, - 132, - 144, - 3, - 133, - 19, - 22, - 21, - 97, - 140, - 80, - 87, - 97, - 140, - 80, - 97, - 136, - 60, - 86, - 91, - 96, - 1, - 96, - 255, - 27, - 131, - 144, - 3, - 132, - 18, - 129, - 22, - 21, - 97, - 140, - 105, - 87, - 97, - 140, - 105, - 97, - 136, - 60, - 86, - 91, - 80, - 80, - 1, - 144, - 86, - 91, - 96, - 0, - 96, - 1, - 96, - 1, - 96, - 128, - 27, - 3, - 128, - 131, - 22, - 129, - 133, - 22, - 128, - 131, - 3, - 130, - 17, - 21, - 97, - 140, - 145, - 87, - 97, - 140, - 145, - 97, - 136, - 60, - 86, - 91, - 1, - 148, - 147, - 80, - 80, - 80, - 80, - 86, - 254, - 162, - 100, - 105, - 112, - 102, - 115, - 88, - 34, - 18, - 32, - 6, - 40, - 123, - 95, - 202, - 66, - 166, - 114, - 199, - 70, - 37, - 241, - 101, - 39, - 188, - 9, - 174, - 5, - 137, - 237, - 35, - 203, - 7, - 15, - 41, - 242, - 234, - 5, - 25, - 223, - 159, - 17, - 100, - 115, - 111, - 108, - 99, - 67, - 0, - 8, - 13, - 0, - 51, - ]; - ///The deployed bytecode of the contract. - pub static RMM01PORTFOLIO_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( - __DEPLOYED_BYTECODE, - ); - pub struct RMM01Portfolio(::ethers::contract::Contract); - impl ::core::clone::Clone for RMM01Portfolio { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for RMM01Portfolio { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for RMM01Portfolio { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for RMM01Portfolio { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(stringify!(RMM01Portfolio)).field(&self.address()).finish() - } - } - impl RMM01Portfolio { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self( - ::ethers::contract::Contract::new( - address.into(), - RMM01PORTFOLIO_ABI.clone(), - client, - ), - ) - } - /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. - /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction - /// - /// Notes: - /// - If there are no constructor arguments, you should pass `()` as the argument. - /// - The default poll duration is 7 seconds. - /// - The default number of confirmations is 1 block. - /// - /// - /// # Example - /// - /// Generate contract bindings with `abigen!` and deploy a new contract instance. - /// - /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. - /// - /// ```ignore - /// # async fn deploy(client: ::std::sync::Arc) { - /// abigen!(Greeter, "../greeter.json"); - /// - /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); - /// let msg = greeter_contract.greet().call().await.unwrap(); - /// # } - /// ``` - pub fn deploy( - client: ::std::sync::Arc, - constructor_args: T, - ) -> ::core::result::Result< - ::ethers::contract::builders::ContractDeployer, - ::ethers::contract::ContractError, - > { - let factory = ::ethers::contract::ContractFactory::new( - RMM01PORTFOLIO_ABI.clone(), - RMM01PORTFOLIO_BYTECODE.clone().into(), - client, - ); - let deployer = factory.deploy(constructor_args)?; - let deployer = ::ethers::contract::ContractDeployer::new(deployer); - Ok(deployer) - } - ///Calls the contract's `REGISTRY` (0x06433b1b) function - pub fn registry( - &self, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::ethers::core::types::Address, - > { - self.0 - .method_hash([6, 67, 59, 27], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `VERSION` (0xffa1ad74) function - pub fn version( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([255, 161, 173, 116], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `WETH` (0xad5c4648) function - pub fn weth( - &self, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::ethers::core::types::Address, - > { - self.0 - .method_hash([173, 92, 70, 72], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `__account__` (0xda31ee54) function - pub fn account(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([218, 49, 238, 84], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `changeParameters` (0xaf777855) function - pub fn change_parameters( - &self, - pool_id: u64, - priority_fee: u16, - fee: u16, - jit: u16, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([175, 119, 120, 85], (pool_id, priority_fee, fee, jit)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `checkInvariant` (0x2f337da5) function - pub fn check_invariant( - &self, - pool_id: u64, - invariant: ::ethers::core::types::I256, - reserve_x: ::ethers::core::types::U256, - reserve_y: ::ethers::core::types::U256, - timestamp: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall< - M, - (bool, ::ethers::core::types::I256), - > { - self.0 - .method_hash( - [47, 51, 125, 165], - (pool_id, invariant, reserve_x, reserve_y, timestamp), - ) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `checkPool` (0xa68aaa41) function - pub fn check_pool( - &self, - pool_id: u64, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([166, 138, 170, 65], pool_id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `checkPosition` (0x2cc6641e) function - pub fn check_position( - &self, - pool_id: u64, - owner: ::ethers::core::types::Address, - delta: ::ethers::core::types::I256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([44, 198, 100, 30], (pool_id, owner, delta)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `computeMaxInput` (0x989bafba) function - pub fn compute_max_input( - &self, - pool_id: u64, - sell_asset: bool, - reserve_in: ::ethers::core::types::U256, - liquidity: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash( - [152, 155, 175, 186], - (pool_id, sell_asset, reserve_in, liquidity), - ) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `computeReservesFromPrice` (0xc48d887a) function - pub fn compute_reserves_from_price( - &self, - pool_id: u64, - price: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall< - M, - (::ethers::core::types::U256, ::ethers::core::types::U256), - > { - self.0 - .method_hash([196, 141, 136, 122], (pool_id, price)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `deposit` (0xd0e30db0) function - pub fn deposit(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([208, 227, 13, 176], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `draw` (0xad24d6a0) function - pub fn draw( - &self, - token: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - to: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([173, 36, 214, 160], (token, amount, to)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `fund` (0x7b1837de) function - pub fn fund( - &self, - token: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([123, 24, 55, 222], (token, amount)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getAmountOut` (0x7dae4890) function - pub fn get_amount_out( - &self, - pool_id: u64, - sell_asset: bool, - amount_in: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([125, 174, 72, 144], (pool_id, sell_asset, amount_in)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getBalance` (0xd4fac45d) function - pub fn get_balance( - &self, - owner: ::ethers::core::types::Address, - token: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([212, 250, 196, 93], (owner, token)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getLiquidityDeltas` (0x8992f20a) function - pub fn get_liquidity_deltas( - &self, - pool_id: u64, - delta_liquidity: i128, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([137, 146, 242, 10], (pool_id, delta_liquidity)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getMaxLiquidity` (0xd6b7dec5) function - pub fn get_max_liquidity( - &self, - pool_id: u64, - amount_0: ::ethers::core::types::U256, - amount_1: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([214, 183, 222, 197], (pool_id, amount_0, amount_1)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getNetBalance` (0x4dc68a90) function - pub fn get_net_balance( - &self, - token: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([77, 198, 138, 144], token) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getPairId` (0x3f92a339) function - pub fn get_pair_id( - &self, - p0: ::ethers::core::types::Address, - p1: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([63, 146, 163, 57], (p0, p1)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getPairNonce` (0x078888d6) function - pub fn get_pair_nonce( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([7, 136, 136, 214], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getPoolNonce` (0xa5cd8a49) function - pub fn get_pool_nonce( - &self, - p0: u32, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([165, 205, 138, 73], p0) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getPoolReserves` (0x2afb9df8) function - pub fn get_pool_reserves( - &self, - pool_id: u64, - ) -> ::ethers::contract::builders::ContractCall< - M, - (::ethers::core::types::U256, ::ethers::core::types::U256), - > { - self.0 - .method_hash([42, 251, 157, 248], pool_id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getReserve` (0xc9a396e9) function - pub fn get_reserve( - &self, - token: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([201, 163, 150, 233], token) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getVirtualPrice` (0x61b7ea6a) function - pub fn get_virtual_price( - &self, - pool_id: u64, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([97, 183, 234, 106], pool_id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getVirtualReservesPerLiquidity` (0x1a4b905b) function - pub fn get_virtual_reserves_per_liquidity( - &self, - pool_id: u64, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([26, 75, 144, 91], pool_id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `multiprocess` (0xa0fdf413) function - pub fn multiprocess( - &self, - data: ::ethers::core::types::Bytes, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([160, 253, 244, 19], data) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `pairs` (0x5e47663c) function - pub fn pairs( - &self, - p0: u32, - ) -> ::ethers::contract::builders::ContractCall< - M, - (::ethers::core::types::Address, u8, ::ethers::core::types::Address, u8), - > { - self.0 - .method_hash([94, 71, 102, 60], p0) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `pools` (0x89a5f084) function - pub fn pools( - &self, - p0: u64, - ) -> ::ethers::contract::builders::ContractCall< - M, - ( - u128, - u128, - u128, - u32, - ::ethers::core::types::Address, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - PortfolioCurve, - PortfolioPair, - ), - > { - self.0 - .method_hash([137, 165, 240, 132], p0) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `positions` (0xb68513ea) function - pub fn positions( - &self, - p0: ::ethers::core::types::Address, - p1: u64, - ) -> ::ethers::contract::builders::ContractCall< - M, - ( - u128, - u32, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - ::ethers::core::types::U256, - u128, - u128, - u128, - ), - > { - self.0 - .method_hash([182, 133, 19, 234], (p0, p1)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `setProtocolFee` (0x787dce3d) function - pub fn set_protocol_fee( - &self, - fee: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([120, 125, 206, 61], fee) - .expect("method not found (this should never happen)") - } - ///Gets the contract's `Allocate` event - pub fn allocate_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - AllocateFilter, - > { - self.0.event() - } - ///Gets the contract's `ChangeParameters` event - pub fn change_parameters_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - ChangeParametersFilter, - > { - self.0.event() - } - ///Gets the contract's `Collect` event - pub fn collect_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, CollectFilter> { - self.0.event() - } - ///Gets the contract's `CreatePair` event - pub fn create_pair_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - CreatePairFilter, - > { - self.0.event() - } - ///Gets the contract's `CreatePool` event - pub fn create_pool_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - CreatePoolFilter, - > { - self.0.event() - } - ///Gets the contract's `Deallocate` event - pub fn deallocate_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - DeallocateFilter, - > { - self.0.event() - } - ///Gets the contract's `DecreaseReserveBalance` event - pub fn decrease_reserve_balance_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - DecreaseReserveBalanceFilter, - > { - self.0.event() - } - ///Gets the contract's `DecreaseUserBalance` event - pub fn decrease_user_balance_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - DecreaseUserBalanceFilter, - > { - self.0.event() - } - ///Gets the contract's `Deposit` event - pub fn deposit_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, DepositFilter> { - self.0.event() - } - ///Gets the contract's `IncreaseReserveBalance` event - pub fn increase_reserve_balance_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - IncreaseReserveBalanceFilter, - > { - self.0.event() - } - ///Gets the contract's `IncreaseUserBalance` event - pub fn increase_user_balance_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - IncreaseUserBalanceFilter, - > { - self.0.event() - } - ///Gets the contract's `Swap` event - pub fn swap_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, SwapFilter> { - self.0.event() - } - ///Gets the contract's `UpdateProtocolFee` event - pub fn update_protocol_fee_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - UpdateProtocolFeeFilter, - > { - self.0.event() - } - /// Returns an `Event` builder for all the events of this contract. - pub fn events( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - RMM01PortfolioEvents, - > { - self.0.event_with_filter(::core::default::Default::default()) - } - } - impl From<::ethers::contract::Contract> - for RMM01Portfolio { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - ///Custom Error type `DrawBalance` with signature `DrawBalance()` and selector `0xc9f2f26c` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "DrawBalance", abi = "DrawBalance()")] - pub struct DrawBalance; - ///Custom Error type `EtherTransferFail` with signature `EtherTransferFail()` and selector `0x75f42683` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "EtherTransferFail", abi = "EtherTransferFail()")] - pub struct EtherTransferFail; - ///Custom Error type `Infinity` with signature `Infinity()` and selector `0x07a02127` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "Infinity", abi = "Infinity()")] - pub struct Infinity; - ///Custom Error type `InsufficientReserve` with signature `InsufficientReserve(uint256,uint256)` and selector `0x315276c9` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror( - name = "InsufficientReserve", - abi = "InsufficientReserve(uint256,uint256)" - )] - pub struct InsufficientReserve { - pub amount: ::ethers::core::types::U256, - pub delta: ::ethers::core::types::U256, - } - ///Custom Error type `InvalidBalance` with signature `InvalidBalance()` and selector `0xc52e3eff` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "InvalidBalance", abi = "InvalidBalance()")] - pub struct InvalidBalance; - ///Custom Error type `InvalidBytesLength` with signature `InvalidBytesLength(uint256,uint256)` and selector `0xe19dc95e` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "InvalidBytesLength", abi = "InvalidBytesLength(uint256,uint256)")] - pub struct InvalidBytesLength { - pub expected: ::ethers::core::types::U256, - pub length: ::ethers::core::types::U256, - } - ///Custom Error type `InvalidDecimals` with signature `InvalidDecimals(uint8)` and selector `0xca950391` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "InvalidDecimals", abi = "InvalidDecimals(uint8)")] - pub struct InvalidDecimals { - pub decimals: u8, - } - ///Custom Error type `InvalidFee` with signature `InvalidFee(uint16)` and selector `0xf6f4a38f` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "InvalidFee", abi = "InvalidFee(uint16)")] - pub struct InvalidFee { - pub fee: u16, - } - ///Custom Error type `InvalidInstruction` with signature `InvalidInstruction()` and selector `0xd8c48f68` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "InvalidInstruction", abi = "InvalidInstruction()")] - pub struct InvalidInstruction; - ///Custom Error type `InvalidInvariant` with signature `InvalidInvariant(int256,int256)` and selector `0x2125a168` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "InvalidInvariant", abi = "InvalidInvariant(int256,int256)")] - pub struct InvalidInvariant { - pub prev: ::ethers::core::types::I256, - pub next: ::ethers::core::types::I256, - } - ///Custom Error type `InvalidJump` with signature `InvalidJump(uint256)` and selector `0x80f63bd1` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "InvalidJump", abi = "InvalidJump(uint256)")] - pub struct InvalidJump { - pub pointer: ::ethers::core::types::U256, - } - ///Custom Error type `InvalidPair` with signature `InvalidPair()` and selector `0x1e4f7d8c` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "InvalidPair", abi = "InvalidPair()")] - pub struct InvalidPair; - ///Custom Error type `InvalidReentrancy` with signature `InvalidReentrancy()` and selector `0xffc72209` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "InvalidReentrancy", abi = "InvalidReentrancy()")] - pub struct InvalidReentrancy; - ///Custom Error type `InvalidSettlement` with signature `InvalidSettlement()` and selector `0x115931c4` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "InvalidSettlement", abi = "InvalidSettlement()")] - pub struct InvalidSettlement; - ///Custom Error type `InvalidTransfer` with signature `InvalidTransfer()` and selector `0x2f352531` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "InvalidTransfer", abi = "InvalidTransfer()")] - pub struct InvalidTransfer; - ///Custom Error type `JitLiquidity` with signature `JitLiquidity(uint256)` and selector `0x9a231b2c` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "JitLiquidity", abi = "JitLiquidity(uint256)")] - pub struct JitLiquidity { - pub distance: ::ethers::core::types::U256, - } - ///Custom Error type `Min` with signature `Min()` and selector `0x4d2d75b1` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "Min", abi = "Min()")] - pub struct Min; - ///Custom Error type `NegativeBalance` with signature `NegativeBalance(address,int256)` and selector `0xfe239baa` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "NegativeBalance", abi = "NegativeBalance(address,int256)")] - pub struct NegativeBalance { - pub token: ::ethers::core::types::Address, - pub net: ::ethers::core::types::I256, - } - ///Custom Error type `NegativeInfinity` with signature `NegativeInfinity()` and selector `0x8bb56614` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "NegativeInfinity", abi = "NegativeInfinity()")] - pub struct NegativeInfinity; - ///Custom Error type `NonExistentPool` with signature `NonExistentPool(uint64)` and selector `0xd4480d46` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "NonExistentPool", abi = "NonExistentPool(uint64)")] - pub struct NonExistentPool { - pub pool_id: u64, - } - ///Custom Error type `NonExistentPosition` with signature `NonExistentPosition(address,uint64)` and selector `0x5f3605b6` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror( - name = "NonExistentPosition", - abi = "NonExistentPosition(address,uint64)" - )] - pub struct NonExistentPosition { - pub owner: ::ethers::core::types::Address, - pub pool_id: u64, - } - ///Custom Error type `NotController` with signature `NotController()` and selector `0x23019e67` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "NotController", abi = "NotController()")] - pub struct NotController; - ///Custom Error type `OOB` with signature `OOB()` and selector `0xaaf3956f` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "OOB", abi = "OOB()")] - pub struct OOB; - ///Custom Error type `OutOfBounds` with signature `OutOfBounds()` and selector `0xb4120f14` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "OutOfBounds", abi = "OutOfBounds()")] - pub struct OutOfBounds; - ///Custom Error type `OverflowWad` with signature `OverflowWad(int256)` and selector `0xb11558df` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "OverflowWad", abi = "OverflowWad(int256)")] - pub struct OverflowWad { - pub wad: ::ethers::core::types::I256, - } - ///Custom Error type `PairExists` with signature `PairExists(uint24)` and selector `0x3325fa77` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "PairExists", abi = "PairExists(uint24)")] - pub struct PairExists { - pub pair_id: u32, - } - ///Custom Error type `PoolExpired` with signature `PoolExpired()` and selector `0x398b36db` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "PoolExpired", abi = "PoolExpired()")] - pub struct PoolExpired; - ///Custom Error type `SameTokenError` with signature `SameTokenError()` and selector `0xec38b794` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "SameTokenError", abi = "SameTokenError()")] - pub struct SameTokenError; - ///Custom Error type `SwapInputTooSmall` with signature `SwapInputTooSmall()` and selector `0x2000e4e0` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "SwapInputTooSmall", abi = "SwapInputTooSmall()")] - pub struct SwapInputTooSmall; - ///Custom Error type `UndefinedPrice` with signature `UndefinedPrice()` and selector `0x22053363` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "UndefinedPrice", abi = "UndefinedPrice()")] - pub struct UndefinedPrice; - ///Custom Error type `ZeroAmounts` with signature `ZeroAmounts()` and selector `0x213c7cc5` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "ZeroAmounts", abi = "ZeroAmounts()")] - pub struct ZeroAmounts; - ///Custom Error type `ZeroInput` with signature `ZeroInput()` and selector `0xaf458c07` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "ZeroInput", abi = "ZeroInput()")] - pub struct ZeroInput; - ///Custom Error type `ZeroLiquidity` with signature `ZeroLiquidity()` and selector `0x10074548` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "ZeroLiquidity", abi = "ZeroLiquidity()")] - pub struct ZeroLiquidity; - ///Custom Error type `ZeroOutput` with signature `ZeroOutput()` and selector `0xe618637e` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "ZeroOutput", abi = "ZeroOutput()")] - pub struct ZeroOutput; - ///Custom Error type `ZeroPrice` with signature `ZeroPrice()` and selector `0x4dfba023` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "ZeroPrice", abi = "ZeroPrice()")] - pub struct ZeroPrice; - ///Custom Error type `ZeroValue` with signature `ZeroValue()` and selector `0x7c946ed7` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "ZeroValue", abi = "ZeroValue()")] - pub struct ZeroValue; - ///Container type for all of the contract's custom errors - #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] - pub enum RMM01PortfolioErrors { - DrawBalance(DrawBalance), - EtherTransferFail(EtherTransferFail), - Infinity(Infinity), - InsufficientReserve(InsufficientReserve), - InvalidBalance(InvalidBalance), - InvalidBytesLength(InvalidBytesLength), - InvalidDecimals(InvalidDecimals), - InvalidFee(InvalidFee), - InvalidInstruction(InvalidInstruction), - InvalidInvariant(InvalidInvariant), - InvalidJump(InvalidJump), - InvalidPair(InvalidPair), - InvalidReentrancy(InvalidReentrancy), - InvalidSettlement(InvalidSettlement), - InvalidTransfer(InvalidTransfer), - JitLiquidity(JitLiquidity), - Min(Min), - NegativeBalance(NegativeBalance), - NegativeInfinity(NegativeInfinity), - NonExistentPool(NonExistentPool), - NonExistentPosition(NonExistentPosition), - NotController(NotController), - OOB(OOB), - OutOfBounds(OutOfBounds), - OverflowWad(OverflowWad), - PairExists(PairExists), - PoolExpired(PoolExpired), - SameTokenError(SameTokenError), - SwapInputTooSmall(SwapInputTooSmall), - UndefinedPrice(UndefinedPrice), - ZeroAmounts(ZeroAmounts), - ZeroInput(ZeroInput), - ZeroLiquidity(ZeroLiquidity), - ZeroOutput(ZeroOutput), - ZeroPrice(ZeroPrice), - ZeroValue(ZeroValue), - /// The standard solidity revert string, with selector - /// Error(string) -- 0x08c379a0 - RevertString(::std::string::String), - } - impl ::ethers::core::abi::AbiDecode for RMM01PortfolioErrors { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) - = <::std::string::String as ::ethers::core::abi::AbiDecode>::decode( - data, - ) { - return Ok(Self::RevertString(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::DrawBalance(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::EtherTransferFail(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Infinity(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::InsufficientReserve(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::InvalidBalance(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::InvalidBytesLength(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::InvalidDecimals(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::InvalidFee(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::InvalidInstruction(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::InvalidInvariant(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::InvalidJump(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::InvalidPair(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::InvalidReentrancy(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::InvalidSettlement(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::InvalidTransfer(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::JitLiquidity(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Min(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::NegativeBalance(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::NegativeInfinity(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::NonExistentPool(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::NonExistentPosition(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::NotController(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::OOB(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::OutOfBounds(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::OverflowWad(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::PairExists(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::PoolExpired(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::SameTokenError(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::SwapInputTooSmall(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::UndefinedPrice(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::ZeroAmounts(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::ZeroInput(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::ZeroLiquidity(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::ZeroOutput(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::ZeroPrice(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::ZeroValue(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for RMM01PortfolioErrors { - fn encode(self) -> ::std::vec::Vec { - match self { - Self::DrawBalance(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::EtherTransferFail(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Infinity(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::InsufficientReserve(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::InvalidBalance(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::InvalidBytesLength(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::InvalidDecimals(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::InvalidFee(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::InvalidInstruction(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::InvalidInvariant(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::InvalidJump(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::InvalidPair(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::InvalidReentrancy(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::InvalidSettlement(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::InvalidTransfer(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::JitLiquidity(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Min(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::NegativeBalance(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::NegativeInfinity(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::NonExistentPool(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::NonExistentPosition(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::NotController(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::OOB(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::OutOfBounds(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::OverflowWad(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::PairExists(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::PoolExpired(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::SameTokenError(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::SwapInputTooSmall(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::UndefinedPrice(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::ZeroAmounts(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::ZeroInput(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::ZeroLiquidity(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::ZeroOutput(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::ZeroPrice(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::ZeroValue(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::RevertString(s) => ::ethers::core::abi::AbiEncode::encode(s), - } - } - } - impl ::ethers::contract::ContractRevert for RMM01PortfolioErrors { - fn valid_selector(selector: [u8; 4]) -> bool { - match selector { - [0x08, 0xc3, 0x79, 0xa0] => true, - _ if selector - == ::selector() => true, - _ if selector - == ::selector() => { - true - } - _ if selector - == ::selector() => true, - _ if selector - == ::selector() => { - true - } - _ if selector - == ::selector() => { - true - } - _ if selector - == ::selector() => { - true - } - _ if selector - == ::selector() => { - true - } - _ if selector - == ::selector() => true, - _ if selector - == ::selector() => { - true - } - _ if selector - == ::selector() => { - true - } - _ if selector - == ::selector() => true, - _ if selector - == ::selector() => true, - _ if selector - == ::selector() => { - true - } - _ if selector - == ::selector() => { - true - } - _ if selector - == ::selector() => { - true - } - _ if selector - == ::selector() => true, - _ if selector == ::selector() => { - true - } - _ if selector - == ::selector() => { - true - } - _ if selector - == ::selector() => { - true - } - _ if selector - == ::selector() => { - true - } - _ if selector - == ::selector() => { - true - } - _ if selector - == ::selector() => { - true - } - _ if selector == ::selector() => { - true - } - _ if selector - == ::selector() => true, - _ if selector - == ::selector() => true, - _ if selector - == ::selector() => true, - _ if selector - == ::selector() => true, - _ if selector - == ::selector() => { - true - } - _ if selector - == ::selector() => { - true - } - _ if selector - == ::selector() => { - true - } - _ if selector - == ::selector() => true, - _ if selector - == ::selector() => true, - _ if selector - == ::selector() => { - true - } - _ if selector - == ::selector() => true, - _ if selector - == ::selector() => true, - _ if selector - == ::selector() => true, - _ => false, - } - } - } - impl ::core::fmt::Display for RMM01PortfolioErrors { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::DrawBalance(element) => ::core::fmt::Display::fmt(element, f), - Self::EtherTransferFail(element) => ::core::fmt::Display::fmt(element, f), - Self::Infinity(element) => ::core::fmt::Display::fmt(element, f), - Self::InsufficientReserve(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::InvalidBalance(element) => ::core::fmt::Display::fmt(element, f), - Self::InvalidBytesLength(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::InvalidDecimals(element) => ::core::fmt::Display::fmt(element, f), - Self::InvalidFee(element) => ::core::fmt::Display::fmt(element, f), - Self::InvalidInstruction(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::InvalidInvariant(element) => ::core::fmt::Display::fmt(element, f), - Self::InvalidJump(element) => ::core::fmt::Display::fmt(element, f), - Self::InvalidPair(element) => ::core::fmt::Display::fmt(element, f), - Self::InvalidReentrancy(element) => ::core::fmt::Display::fmt(element, f), - Self::InvalidSettlement(element) => ::core::fmt::Display::fmt(element, f), - Self::InvalidTransfer(element) => ::core::fmt::Display::fmt(element, f), - Self::JitLiquidity(element) => ::core::fmt::Display::fmt(element, f), - Self::Min(element) => ::core::fmt::Display::fmt(element, f), - Self::NegativeBalance(element) => ::core::fmt::Display::fmt(element, f), - Self::NegativeInfinity(element) => ::core::fmt::Display::fmt(element, f), - Self::NonExistentPool(element) => ::core::fmt::Display::fmt(element, f), - Self::NonExistentPosition(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::NotController(element) => ::core::fmt::Display::fmt(element, f), - Self::OOB(element) => ::core::fmt::Display::fmt(element, f), - Self::OutOfBounds(element) => ::core::fmt::Display::fmt(element, f), - Self::OverflowWad(element) => ::core::fmt::Display::fmt(element, f), - Self::PairExists(element) => ::core::fmt::Display::fmt(element, f), - Self::PoolExpired(element) => ::core::fmt::Display::fmt(element, f), - Self::SameTokenError(element) => ::core::fmt::Display::fmt(element, f), - Self::SwapInputTooSmall(element) => ::core::fmt::Display::fmt(element, f), - Self::UndefinedPrice(element) => ::core::fmt::Display::fmt(element, f), - Self::ZeroAmounts(element) => ::core::fmt::Display::fmt(element, f), - Self::ZeroInput(element) => ::core::fmt::Display::fmt(element, f), - Self::ZeroLiquidity(element) => ::core::fmt::Display::fmt(element, f), - Self::ZeroOutput(element) => ::core::fmt::Display::fmt(element, f), - Self::ZeroPrice(element) => ::core::fmt::Display::fmt(element, f), - Self::ZeroValue(element) => ::core::fmt::Display::fmt(element, f), - Self::RevertString(s) => ::core::fmt::Display::fmt(s, f), - } - } - } - impl ::core::convert::From<::std::string::String> for RMM01PortfolioErrors { - fn from(value: String) -> Self { - Self::RevertString(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: DrawBalance) -> Self { - Self::DrawBalance(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: EtherTransferFail) -> Self { - Self::EtherTransferFail(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: Infinity) -> Self { - Self::Infinity(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: InsufficientReserve) -> Self { - Self::InsufficientReserve(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: InvalidBalance) -> Self { - Self::InvalidBalance(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: InvalidBytesLength) -> Self { - Self::InvalidBytesLength(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: InvalidDecimals) -> Self { - Self::InvalidDecimals(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: InvalidFee) -> Self { - Self::InvalidFee(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: InvalidInstruction) -> Self { - Self::InvalidInstruction(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: InvalidInvariant) -> Self { - Self::InvalidInvariant(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: InvalidJump) -> Self { - Self::InvalidJump(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: InvalidPair) -> Self { - Self::InvalidPair(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: InvalidReentrancy) -> Self { - Self::InvalidReentrancy(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: InvalidSettlement) -> Self { - Self::InvalidSettlement(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: InvalidTransfer) -> Self { - Self::InvalidTransfer(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: JitLiquidity) -> Self { - Self::JitLiquidity(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: Min) -> Self { - Self::Min(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: NegativeBalance) -> Self { - Self::NegativeBalance(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: NegativeInfinity) -> Self { - Self::NegativeInfinity(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: NonExistentPool) -> Self { - Self::NonExistentPool(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: NonExistentPosition) -> Self { - Self::NonExistentPosition(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: NotController) -> Self { - Self::NotController(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: OOB) -> Self { - Self::OOB(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: OutOfBounds) -> Self { - Self::OutOfBounds(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: OverflowWad) -> Self { - Self::OverflowWad(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: PairExists) -> Self { - Self::PairExists(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: PoolExpired) -> Self { - Self::PoolExpired(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: SameTokenError) -> Self { - Self::SameTokenError(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: SwapInputTooSmall) -> Self { - Self::SwapInputTooSmall(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: UndefinedPrice) -> Self { - Self::UndefinedPrice(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: ZeroAmounts) -> Self { - Self::ZeroAmounts(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: ZeroInput) -> Self { - Self::ZeroInput(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: ZeroLiquidity) -> Self { - Self::ZeroLiquidity(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: ZeroOutput) -> Self { - Self::ZeroOutput(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: ZeroPrice) -> Self { - Self::ZeroPrice(value) - } - } - impl ::core::convert::From for RMM01PortfolioErrors { - fn from(value: ZeroValue) -> Self { - Self::ZeroValue(value) - } - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent( - name = "Allocate", - abi = "Allocate(uint64,address,address,uint256,uint256,uint256)" - )] - pub struct AllocateFilter { - #[ethevent(indexed)] - pub pool_id: u64, - #[ethevent(indexed)] - pub asset: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub quote: ::ethers::core::types::Address, - pub delta_asset: ::ethers::core::types::U256, - pub delta_quote: ::ethers::core::types::U256, - pub delta_liquidity: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent( - name = "ChangeParameters", - abi = "ChangeParameters(uint64,uint16,uint16,uint16)" - )] - pub struct ChangeParametersFilter { - #[ethevent(indexed)] - pub pool_id: u64, - #[ethevent(indexed)] - pub priority_fee: u16, - #[ethevent(indexed)] - pub fee: u16, - pub jit: u16, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent( - name = "Collect", - abi = "Collect(uint64,address,uint256,address,uint256,address)" - )] - pub struct CollectFilter { - pub pool_id: u64, - #[ethevent(indexed)] - pub account: ::ethers::core::types::Address, - pub fee_asset_dec: ::ethers::core::types::U256, - #[ethevent(indexed)] - pub asset: ::ethers::core::types::Address, - pub fee_quote_dec: ::ethers::core::types::U256, - #[ethevent(indexed)] - pub quote: ::ethers::core::types::Address, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent( - name = "CreatePair", - abi = "CreatePair(uint24,address,address,uint8,uint8)" - )] - pub struct CreatePairFilter { - #[ethevent(indexed)] - pub pair_id: u32, - #[ethevent(indexed)] - pub asset: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub quote: ::ethers::core::types::Address, - pub decimals_asset: u8, - pub decimals_quote: u8, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent( - name = "CreatePool", - abi = "CreatePool(uint64,bool,address,address,uint256)" - )] - pub struct CreatePoolFilter { - #[ethevent(indexed)] - pub pool_id: u64, - pub is_mutable: bool, - #[ethevent(indexed)] - pub asset: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub quote: ::ethers::core::types::Address, - pub price: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent( - name = "Deallocate", - abi = "Deallocate(uint64,address,address,uint256,uint256,uint256)" - )] - pub struct DeallocateFilter { - #[ethevent(indexed)] - pub pool_id: u64, - #[ethevent(indexed)] - pub asset: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub quote: ::ethers::core::types::Address, - pub delta_asset: ::ethers::core::types::U256, - pub delta_quote: ::ethers::core::types::U256, - pub delta_liquidity: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent( - name = "DecreaseReserveBalance", - abi = "DecreaseReserveBalance(address,uint256)" - )] - pub struct DecreaseReserveBalanceFilter { - #[ethevent(indexed)] - pub token: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent( - name = "DecreaseUserBalance", - abi = "DecreaseUserBalance(address,address,uint256)" - )] - pub struct DecreaseUserBalanceFilter { - #[ethevent(indexed)] - pub account: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub token: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "Deposit", abi = "Deposit(address,uint256)")] - pub struct DepositFilter { - #[ethevent(indexed)] - pub account: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent( - name = "IncreaseReserveBalance", - abi = "IncreaseReserveBalance(address,uint256)" - )] - pub struct IncreaseReserveBalanceFilter { - #[ethevent(indexed)] - pub token: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent( - name = "IncreaseUserBalance", - abi = "IncreaseUserBalance(address,address,uint256)" - )] - pub struct IncreaseUserBalanceFilter { - #[ethevent(indexed)] - pub account: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub token: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent( - name = "Swap", - abi = "Swap(uint64,uint256,address,uint256,address,uint256,uint256,int256)" - )] - pub struct SwapFilter { - #[ethevent(indexed)] - pub pool_id: u64, - pub price: ::ethers::core::types::U256, - #[ethevent(indexed)] - pub sell_asset: ::ethers::core::types::Address, - pub input: ::ethers::core::types::U256, - #[ethevent(indexed)] - pub token_out: ::ethers::core::types::Address, - pub output: ::ethers::core::types::U256, - pub fee_amount_dec: ::ethers::core::types::U256, - pub invariant_wad: ::ethers::core::types::I256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "UpdateProtocolFee", abi = "UpdateProtocolFee(uint256,uint256)")] - pub struct UpdateProtocolFeeFilter { - pub prev_fee: ::ethers::core::types::U256, - pub next_fee: ::ethers::core::types::U256, - } - ///Container type for all of the contract's events - #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] - pub enum RMM01PortfolioEvents { - AllocateFilter(AllocateFilter), - ChangeParametersFilter(ChangeParametersFilter), - CollectFilter(CollectFilter), - CreatePairFilter(CreatePairFilter), - CreatePoolFilter(CreatePoolFilter), - DeallocateFilter(DeallocateFilter), - DecreaseReserveBalanceFilter(DecreaseReserveBalanceFilter), - DecreaseUserBalanceFilter(DecreaseUserBalanceFilter), - DepositFilter(DepositFilter), - IncreaseReserveBalanceFilter(IncreaseReserveBalanceFilter), - IncreaseUserBalanceFilter(IncreaseUserBalanceFilter), - SwapFilter(SwapFilter), - UpdateProtocolFeeFilter(UpdateProtocolFeeFilter), - } - impl ::ethers::contract::EthLogDecode for RMM01PortfolioEvents { - fn decode_log( - log: &::ethers::core::abi::RawLog, - ) -> ::core::result::Result { - if let Ok(decoded) = AllocateFilter::decode_log(log) { - return Ok(RMM01PortfolioEvents::AllocateFilter(decoded)); - } - if let Ok(decoded) = ChangeParametersFilter::decode_log(log) { - return Ok(RMM01PortfolioEvents::ChangeParametersFilter(decoded)); - } - if let Ok(decoded) = CollectFilter::decode_log(log) { - return Ok(RMM01PortfolioEvents::CollectFilter(decoded)); - } - if let Ok(decoded) = CreatePairFilter::decode_log(log) { - return Ok(RMM01PortfolioEvents::CreatePairFilter(decoded)); - } - if let Ok(decoded) = CreatePoolFilter::decode_log(log) { - return Ok(RMM01PortfolioEvents::CreatePoolFilter(decoded)); - } - if let Ok(decoded) = DeallocateFilter::decode_log(log) { - return Ok(RMM01PortfolioEvents::DeallocateFilter(decoded)); - } - if let Ok(decoded) = DecreaseReserveBalanceFilter::decode_log(log) { - return Ok(RMM01PortfolioEvents::DecreaseReserveBalanceFilter(decoded)); - } - if let Ok(decoded) = DecreaseUserBalanceFilter::decode_log(log) { - return Ok(RMM01PortfolioEvents::DecreaseUserBalanceFilter(decoded)); - } - if let Ok(decoded) = DepositFilter::decode_log(log) { - return Ok(RMM01PortfolioEvents::DepositFilter(decoded)); - } - if let Ok(decoded) = IncreaseReserveBalanceFilter::decode_log(log) { - return Ok(RMM01PortfolioEvents::IncreaseReserveBalanceFilter(decoded)); - } - if let Ok(decoded) = IncreaseUserBalanceFilter::decode_log(log) { - return Ok(RMM01PortfolioEvents::IncreaseUserBalanceFilter(decoded)); - } - if let Ok(decoded) = SwapFilter::decode_log(log) { - return Ok(RMM01PortfolioEvents::SwapFilter(decoded)); - } - if let Ok(decoded) = UpdateProtocolFeeFilter::decode_log(log) { - return Ok(RMM01PortfolioEvents::UpdateProtocolFeeFilter(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData) - } - } - impl ::core::fmt::Display for RMM01PortfolioEvents { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::AllocateFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::ChangeParametersFilter(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::CollectFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::CreatePairFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::CreatePoolFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::DeallocateFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::DecreaseReserveBalanceFilter(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::DecreaseUserBalanceFilter(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::DepositFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::IncreaseReserveBalanceFilter(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::IncreaseUserBalanceFilter(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::SwapFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::UpdateProtocolFeeFilter(element) => { - ::core::fmt::Display::fmt(element, f) - } - } - } - } - impl ::core::convert::From for RMM01PortfolioEvents { - fn from(value: AllocateFilter) -> Self { - Self::AllocateFilter(value) - } - } - impl ::core::convert::From for RMM01PortfolioEvents { - fn from(value: ChangeParametersFilter) -> Self { - Self::ChangeParametersFilter(value) - } - } - impl ::core::convert::From for RMM01PortfolioEvents { - fn from(value: CollectFilter) -> Self { - Self::CollectFilter(value) - } - } - impl ::core::convert::From for RMM01PortfolioEvents { - fn from(value: CreatePairFilter) -> Self { - Self::CreatePairFilter(value) - } - } - impl ::core::convert::From for RMM01PortfolioEvents { - fn from(value: CreatePoolFilter) -> Self { - Self::CreatePoolFilter(value) - } - } - impl ::core::convert::From for RMM01PortfolioEvents { - fn from(value: DeallocateFilter) -> Self { - Self::DeallocateFilter(value) - } - } - impl ::core::convert::From for RMM01PortfolioEvents { - fn from(value: DecreaseReserveBalanceFilter) -> Self { - Self::DecreaseReserveBalanceFilter(value) - } - } - impl ::core::convert::From for RMM01PortfolioEvents { - fn from(value: DecreaseUserBalanceFilter) -> Self { - Self::DecreaseUserBalanceFilter(value) - } - } - impl ::core::convert::From for RMM01PortfolioEvents { - fn from(value: DepositFilter) -> Self { - Self::DepositFilter(value) - } - } - impl ::core::convert::From for RMM01PortfolioEvents { - fn from(value: IncreaseReserveBalanceFilter) -> Self { - Self::IncreaseReserveBalanceFilter(value) - } - } - impl ::core::convert::From for RMM01PortfolioEvents { - fn from(value: IncreaseUserBalanceFilter) -> Self { - Self::IncreaseUserBalanceFilter(value) - } - } - impl ::core::convert::From for RMM01PortfolioEvents { - fn from(value: SwapFilter) -> Self { - Self::SwapFilter(value) - } - } - impl ::core::convert::From for RMM01PortfolioEvents { - fn from(value: UpdateProtocolFeeFilter) -> Self { - Self::UpdateProtocolFeeFilter(value) - } - } - ///Container type for all input parameters for the `REGISTRY` function with signature `REGISTRY()` and selector `0x06433b1b` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "REGISTRY", abi = "REGISTRY()")] - pub struct RegistryCall; - ///Container type for all input parameters for the `VERSION` function with signature `VERSION()` and selector `0xffa1ad74` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "VERSION", abi = "VERSION()")] - pub struct VersionCall; - ///Container type for all input parameters for the `WETH` function with signature `WETH()` and selector `0xad5c4648` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "WETH", abi = "WETH()")] - pub struct WethCall; - ///Container type for all input parameters for the `__account__` function with signature `__account__()` and selector `0xda31ee54` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "__account__", abi = "__account__()")] - pub struct AccountCall; - ///Container type for all input parameters for the `changeParameters` function with signature `changeParameters(uint64,uint16,uint16,uint16)` and selector `0xaf777855` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall( - name = "changeParameters", - abi = "changeParameters(uint64,uint16,uint16,uint16)" - )] - pub struct ChangeParametersCall { - pub pool_id: u64, - pub priority_fee: u16, - pub fee: u16, - pub jit: u16, - } - ///Container type for all input parameters for the `checkInvariant` function with signature `checkInvariant(uint64,int256,uint256,uint256,uint256)` and selector `0x2f337da5` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall( - name = "checkInvariant", - abi = "checkInvariant(uint64,int256,uint256,uint256,uint256)" - )] - pub struct CheckInvariantCall { - pub pool_id: u64, - pub invariant: ::ethers::core::types::I256, - pub reserve_x: ::ethers::core::types::U256, - pub reserve_y: ::ethers::core::types::U256, - pub timestamp: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `checkPool` function with signature `checkPool(uint64)` and selector `0xa68aaa41` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "checkPool", abi = "checkPool(uint64)")] - pub struct CheckPoolCall { - pub pool_id: u64, - } - ///Container type for all input parameters for the `checkPosition` function with signature `checkPosition(uint64,address,int256)` and selector `0x2cc6641e` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "checkPosition", abi = "checkPosition(uint64,address,int256)")] - pub struct CheckPositionCall { - pub pool_id: u64, - pub owner: ::ethers::core::types::Address, - pub delta: ::ethers::core::types::I256, - } - ///Container type for all input parameters for the `computeMaxInput` function with signature `computeMaxInput(uint64,bool,uint256,uint256)` and selector `0x989bafba` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall( - name = "computeMaxInput", - abi = "computeMaxInput(uint64,bool,uint256,uint256)" - )] - pub struct ComputeMaxInputCall { - pub pool_id: u64, - pub sell_asset: bool, - pub reserve_in: ::ethers::core::types::U256, - pub liquidity: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `computeReservesFromPrice` function with signature `computeReservesFromPrice(uint64,uint256)` and selector `0xc48d887a` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall( - name = "computeReservesFromPrice", - abi = "computeReservesFromPrice(uint64,uint256)" - )] - pub struct ComputeReservesFromPriceCall { - pub pool_id: u64, - pub price: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `deposit` function with signature `deposit()` and selector `0xd0e30db0` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "deposit", abi = "deposit()")] - pub struct DepositCall; - ///Container type for all input parameters for the `draw` function with signature `draw(address,uint256,address)` and selector `0xad24d6a0` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "draw", abi = "draw(address,uint256,address)")] - pub struct DrawCall { - pub token: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - pub to: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `fund` function with signature `fund(address,uint256)` and selector `0x7b1837de` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "fund", abi = "fund(address,uint256)")] - pub struct FundCall { - pub token: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `getAmountOut` function with signature `getAmountOut(uint64,bool,uint256)` and selector `0x7dae4890` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "getAmountOut", abi = "getAmountOut(uint64,bool,uint256)")] - pub struct GetAmountOutCall { - pub pool_id: u64, - pub sell_asset: bool, - pub amount_in: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `getBalance` function with signature `getBalance(address,address)` and selector `0xd4fac45d` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "getBalance", abi = "getBalance(address,address)")] - pub struct GetBalanceCall { - pub owner: ::ethers::core::types::Address, - pub token: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `getLiquidityDeltas` function with signature `getLiquidityDeltas(uint64,int128)` and selector `0x8992f20a` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "getLiquidityDeltas", abi = "getLiquidityDeltas(uint64,int128)")] - pub struct GetLiquidityDeltasCall { - pub pool_id: u64, - pub delta_liquidity: i128, - } - ///Container type for all input parameters for the `getMaxLiquidity` function with signature `getMaxLiquidity(uint64,uint256,uint256)` and selector `0xd6b7dec5` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "getMaxLiquidity", abi = "getMaxLiquidity(uint64,uint256,uint256)")] - pub struct GetMaxLiquidityCall { - pub pool_id: u64, - pub amount_0: ::ethers::core::types::U256, - pub amount_1: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `getNetBalance` function with signature `getNetBalance(address)` and selector `0x4dc68a90` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "getNetBalance", abi = "getNetBalance(address)")] - pub struct GetNetBalanceCall { - pub token: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `getPairId` function with signature `getPairId(address,address)` and selector `0x3f92a339` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "getPairId", abi = "getPairId(address,address)")] - pub struct GetPairIdCall( - pub ::ethers::core::types::Address, - pub ::ethers::core::types::Address, - ); - ///Container type for all input parameters for the `getPairNonce` function with signature `getPairNonce()` and selector `0x078888d6` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "getPairNonce", abi = "getPairNonce()")] - pub struct GetPairNonceCall; - ///Container type for all input parameters for the `getPoolNonce` function with signature `getPoolNonce(uint24)` and selector `0xa5cd8a49` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "getPoolNonce", abi = "getPoolNonce(uint24)")] - pub struct GetPoolNonceCall(pub u32); - ///Container type for all input parameters for the `getPoolReserves` function with signature `getPoolReserves(uint64)` and selector `0x2afb9df8` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "getPoolReserves", abi = "getPoolReserves(uint64)")] - pub struct GetPoolReservesCall { - pub pool_id: u64, - } - ///Container type for all input parameters for the `getReserve` function with signature `getReserve(address)` and selector `0xc9a396e9` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "getReserve", abi = "getReserve(address)")] - pub struct GetReserveCall { - pub token: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `getVirtualPrice` function with signature `getVirtualPrice(uint64)` and selector `0x61b7ea6a` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "getVirtualPrice", abi = "getVirtualPrice(uint64)")] - pub struct GetVirtualPriceCall { - pub pool_id: u64, - } - ///Container type for all input parameters for the `getVirtualReservesPerLiquidity` function with signature `getVirtualReservesPerLiquidity(uint64)` and selector `0x1a4b905b` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall( - name = "getVirtualReservesPerLiquidity", - abi = "getVirtualReservesPerLiquidity(uint64)" - )] - pub struct GetVirtualReservesPerLiquidityCall { - pub pool_id: u64, - } - ///Container type for all input parameters for the `multiprocess` function with signature `multiprocess(bytes)` and selector `0xa0fdf413` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "multiprocess", abi = "multiprocess(bytes)")] - pub struct MultiprocessCall { - pub data: ::ethers::core::types::Bytes, - } - ///Container type for all input parameters for the `pairs` function with signature `pairs(uint24)` and selector `0x5e47663c` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "pairs", abi = "pairs(uint24)")] - pub struct PairsCall(pub u32); - ///Container type for all input parameters for the `pools` function with signature `pools(uint64)` and selector `0x89a5f084` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "pools", abi = "pools(uint64)")] - pub struct PoolsCall(pub u64); - ///Container type for all input parameters for the `positions` function with signature `positions(address,uint64)` and selector `0xb68513ea` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "positions", abi = "positions(address,uint64)")] - pub struct PositionsCall(pub ::ethers::core::types::Address, pub u64); - ///Container type for all input parameters for the `setProtocolFee` function with signature `setProtocolFee(uint256)` and selector `0x787dce3d` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "setProtocolFee", abi = "setProtocolFee(uint256)")] - pub struct SetProtocolFeeCall { - pub fee: ::ethers::core::types::U256, - } - ///Container type for all of the contract's call - #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] - pub enum RMM01PortfolioCalls { - Registry(RegistryCall), - Version(VersionCall), - Weth(WethCall), - Account(AccountCall), - ChangeParameters(ChangeParametersCall), - CheckInvariant(CheckInvariantCall), - CheckPool(CheckPoolCall), - CheckPosition(CheckPositionCall), - ComputeMaxInput(ComputeMaxInputCall), - ComputeReservesFromPrice(ComputeReservesFromPriceCall), - Deposit(DepositCall), - Draw(DrawCall), - Fund(FundCall), - GetAmountOut(GetAmountOutCall), - GetBalance(GetBalanceCall), - GetLiquidityDeltas(GetLiquidityDeltasCall), - GetMaxLiquidity(GetMaxLiquidityCall), - GetNetBalance(GetNetBalanceCall), - GetPairId(GetPairIdCall), - GetPairNonce(GetPairNonceCall), - GetPoolNonce(GetPoolNonceCall), - GetPoolReserves(GetPoolReservesCall), - GetReserve(GetReserveCall), - GetVirtualPrice(GetVirtualPriceCall), - GetVirtualReservesPerLiquidity(GetVirtualReservesPerLiquidityCall), - Multiprocess(MultiprocessCall), - Pairs(PairsCall), - Pools(PoolsCall), - Positions(PositionsCall), - SetProtocolFee(SetProtocolFeeCall), - } - impl ::ethers::core::abi::AbiDecode for RMM01PortfolioCalls { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Registry(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Version(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Weth(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Account(decoded)); - } - if let Ok(decoded) - = ::decode( - data, - ) { - return Ok(Self::ChangeParameters(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::CheckInvariant(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::CheckPool(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::CheckPosition(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::ComputeMaxInput(decoded)); - } - if let Ok(decoded) - = ::decode( - data, - ) { - return Ok(Self::ComputeReservesFromPrice(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Deposit(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Draw(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Fund(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::GetAmountOut(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::GetBalance(decoded)); - } - if let Ok(decoded) - = ::decode( - data, - ) { - return Ok(Self::GetLiquidityDeltas(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::GetMaxLiquidity(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::GetNetBalance(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::GetPairId(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::GetPairNonce(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::GetPoolNonce(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::GetPoolReserves(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::GetReserve(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::GetVirtualPrice(decoded)); - } - if let Ok(decoded) - = ::decode( - data, - ) { - return Ok(Self::GetVirtualReservesPerLiquidity(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Multiprocess(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Pairs(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Pools(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Positions(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::SetProtocolFee(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for RMM01PortfolioCalls { - fn encode(self) -> Vec { - match self { - Self::Registry(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Version(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Weth(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Account(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::ChangeParameters(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::CheckInvariant(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::CheckPool(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::CheckPosition(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::ComputeMaxInput(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::ComputeReservesFromPrice(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Deposit(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Draw(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Fund(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetAmountOut(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::GetBalance(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::GetLiquidityDeltas(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::GetMaxLiquidity(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::GetNetBalance(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::GetPairId(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::GetPairNonce(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::GetPoolNonce(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::GetPoolReserves(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::GetReserve(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::GetVirtualPrice(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::GetVirtualReservesPerLiquidity(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Multiprocess(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Pairs(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Pools(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Positions(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::SetProtocolFee(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - } - } - } - impl ::core::fmt::Display for RMM01PortfolioCalls { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::Registry(element) => ::core::fmt::Display::fmt(element, f), - Self::Version(element) => ::core::fmt::Display::fmt(element, f), - Self::Weth(element) => ::core::fmt::Display::fmt(element, f), - Self::Account(element) => ::core::fmt::Display::fmt(element, f), - Self::ChangeParameters(element) => ::core::fmt::Display::fmt(element, f), - Self::CheckInvariant(element) => ::core::fmt::Display::fmt(element, f), - Self::CheckPool(element) => ::core::fmt::Display::fmt(element, f), - Self::CheckPosition(element) => ::core::fmt::Display::fmt(element, f), - Self::ComputeMaxInput(element) => ::core::fmt::Display::fmt(element, f), - Self::ComputeReservesFromPrice(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::Deposit(element) => ::core::fmt::Display::fmt(element, f), - Self::Draw(element) => ::core::fmt::Display::fmt(element, f), - Self::Fund(element) => ::core::fmt::Display::fmt(element, f), - Self::GetAmountOut(element) => ::core::fmt::Display::fmt(element, f), - Self::GetBalance(element) => ::core::fmt::Display::fmt(element, f), - Self::GetLiquidityDeltas(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::GetMaxLiquidity(element) => ::core::fmt::Display::fmt(element, f), - Self::GetNetBalance(element) => ::core::fmt::Display::fmt(element, f), - Self::GetPairId(element) => ::core::fmt::Display::fmt(element, f), - Self::GetPairNonce(element) => ::core::fmt::Display::fmt(element, f), - Self::GetPoolNonce(element) => ::core::fmt::Display::fmt(element, f), - Self::GetPoolReserves(element) => ::core::fmt::Display::fmt(element, f), - Self::GetReserve(element) => ::core::fmt::Display::fmt(element, f), - Self::GetVirtualPrice(element) => ::core::fmt::Display::fmt(element, f), - Self::GetVirtualReservesPerLiquidity(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::Multiprocess(element) => ::core::fmt::Display::fmt(element, f), - Self::Pairs(element) => ::core::fmt::Display::fmt(element, f), - Self::Pools(element) => ::core::fmt::Display::fmt(element, f), - Self::Positions(element) => ::core::fmt::Display::fmt(element, f), - Self::SetProtocolFee(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for RMM01PortfolioCalls { - fn from(value: RegistryCall) -> Self { - Self::Registry(value) - } - } - impl ::core::convert::From for RMM01PortfolioCalls { - fn from(value: VersionCall) -> Self { - Self::Version(value) - } - } - impl ::core::convert::From for RMM01PortfolioCalls { - fn from(value: WethCall) -> Self { - Self::Weth(value) - } - } - impl ::core::convert::From for RMM01PortfolioCalls { - fn from(value: AccountCall) -> Self { - Self::Account(value) - } - } - impl ::core::convert::From for RMM01PortfolioCalls { - fn from(value: ChangeParametersCall) -> Self { - Self::ChangeParameters(value) - } - } - impl ::core::convert::From for RMM01PortfolioCalls { - fn from(value: CheckInvariantCall) -> Self { - Self::CheckInvariant(value) - } - } - impl ::core::convert::From for RMM01PortfolioCalls { - fn from(value: CheckPoolCall) -> Self { - Self::CheckPool(value) - } - } - impl ::core::convert::From for RMM01PortfolioCalls { - fn from(value: CheckPositionCall) -> Self { - Self::CheckPosition(value) - } - } - impl ::core::convert::From for RMM01PortfolioCalls { - fn from(value: ComputeMaxInputCall) -> Self { - Self::ComputeMaxInput(value) - } - } - impl ::core::convert::From for RMM01PortfolioCalls { - fn from(value: ComputeReservesFromPriceCall) -> Self { - Self::ComputeReservesFromPrice(value) - } - } - impl ::core::convert::From for RMM01PortfolioCalls { - fn from(value: DepositCall) -> Self { - Self::Deposit(value) - } - } - impl ::core::convert::From for RMM01PortfolioCalls { - fn from(value: DrawCall) -> Self { - Self::Draw(value) - } - } - impl ::core::convert::From for RMM01PortfolioCalls { - fn from(value: FundCall) -> Self { - Self::Fund(value) - } - } - impl ::core::convert::From for RMM01PortfolioCalls { - fn from(value: GetAmountOutCall) -> Self { - Self::GetAmountOut(value) - } - } - impl ::core::convert::From for RMM01PortfolioCalls { - fn from(value: GetBalanceCall) -> Self { - Self::GetBalance(value) - } - } - impl ::core::convert::From for RMM01PortfolioCalls { - fn from(value: GetLiquidityDeltasCall) -> Self { - Self::GetLiquidityDeltas(value) - } - } - impl ::core::convert::From for RMM01PortfolioCalls { - fn from(value: GetMaxLiquidityCall) -> Self { - Self::GetMaxLiquidity(value) - } - } - impl ::core::convert::From for RMM01PortfolioCalls { - fn from(value: GetNetBalanceCall) -> Self { - Self::GetNetBalance(value) - } - } - impl ::core::convert::From for RMM01PortfolioCalls { - fn from(value: GetPairIdCall) -> Self { - Self::GetPairId(value) - } - } - impl ::core::convert::From for RMM01PortfolioCalls { - fn from(value: GetPairNonceCall) -> Self { - Self::GetPairNonce(value) - } - } - impl ::core::convert::From for RMM01PortfolioCalls { - fn from(value: GetPoolNonceCall) -> Self { - Self::GetPoolNonce(value) - } - } - impl ::core::convert::From for RMM01PortfolioCalls { - fn from(value: GetPoolReservesCall) -> Self { - Self::GetPoolReserves(value) - } - } - impl ::core::convert::From for RMM01PortfolioCalls { - fn from(value: GetReserveCall) -> Self { - Self::GetReserve(value) - } - } - impl ::core::convert::From for RMM01PortfolioCalls { - fn from(value: GetVirtualPriceCall) -> Self { - Self::GetVirtualPrice(value) - } - } - impl ::core::convert::From - for RMM01PortfolioCalls { - fn from(value: GetVirtualReservesPerLiquidityCall) -> Self { - Self::GetVirtualReservesPerLiquidity(value) - } - } - impl ::core::convert::From for RMM01PortfolioCalls { - fn from(value: MultiprocessCall) -> Self { - Self::Multiprocess(value) - } - } - impl ::core::convert::From for RMM01PortfolioCalls { - fn from(value: PairsCall) -> Self { - Self::Pairs(value) - } - } - impl ::core::convert::From for RMM01PortfolioCalls { - fn from(value: PoolsCall) -> Self { - Self::Pools(value) - } - } - impl ::core::convert::From for RMM01PortfolioCalls { - fn from(value: PositionsCall) -> Self { - Self::Positions(value) - } - } - impl ::core::convert::From for RMM01PortfolioCalls { - fn from(value: SetProtocolFeeCall) -> Self { - Self::SetProtocolFee(value) - } - } - ///Container type for all return fields from the `REGISTRY` function with signature `REGISTRY()` and selector `0x06433b1b` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct RegistryReturn(pub ::ethers::core::types::Address); - ///Container type for all return fields from the `VERSION` function with signature `VERSION()` and selector `0xffa1ad74` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct VersionReturn(pub ::std::string::String); - ///Container type for all return fields from the `WETH` function with signature `WETH()` and selector `0xad5c4648` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct WethReturn(pub ::ethers::core::types::Address); - ///Container type for all return fields from the `__account__` function with signature `__account__()` and selector `0xda31ee54` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct AccountReturn { - pub settled: bool, - } - ///Container type for all return fields from the `checkInvariant` function with signature `checkInvariant(uint64,int256,uint256,uint256,uint256)` and selector `0x2f337da5` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct CheckInvariantReturn { - pub p0: bool, - pub next_invariant: ::ethers::core::types::I256, - } - ///Container type for all return fields from the `checkPool` function with signature `checkPool(uint64)` and selector `0xa68aaa41` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct CheckPoolReturn(pub bool); - ///Container type for all return fields from the `checkPosition` function with signature `checkPosition(uint64,address,int256)` and selector `0x2cc6641e` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct CheckPositionReturn(pub bool); - ///Container type for all return fields from the `computeMaxInput` function with signature `computeMaxInput(uint64,bool,uint256,uint256)` and selector `0x989bafba` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct ComputeMaxInputReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `computeReservesFromPrice` function with signature `computeReservesFromPrice(uint64,uint256)` and selector `0xc48d887a` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct ComputeReservesFromPriceReturn { - pub reserve_x: ::ethers::core::types::U256, - pub reserve_y: ::ethers::core::types::U256, - } - ///Container type for all return fields from the `getAmountOut` function with signature `getAmountOut(uint64,bool,uint256)` and selector `0x7dae4890` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct GetAmountOutReturn { - pub output: ::ethers::core::types::U256, - } - ///Container type for all return fields from the `getBalance` function with signature `getBalance(address,address)` and selector `0xd4fac45d` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct GetBalanceReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `getLiquidityDeltas` function with signature `getLiquidityDeltas(uint64,int128)` and selector `0x8992f20a` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct GetLiquidityDeltasReturn { - pub delta_asset: u128, - pub delta_quote: u128, - } - ///Container type for all return fields from the `getMaxLiquidity` function with signature `getMaxLiquidity(uint64,uint256,uint256)` and selector `0xd6b7dec5` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct GetMaxLiquidityReturn { - pub delta_liquidity: u128, - } - ///Container type for all return fields from the `getNetBalance` function with signature `getNetBalance(address)` and selector `0x4dc68a90` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct GetNetBalanceReturn(pub ::ethers::core::types::I256); - ///Container type for all return fields from the `getPairId` function with signature `getPairId(address,address)` and selector `0x3f92a339` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct GetPairIdReturn(pub u32); - ///Container type for all return fields from the `getPairNonce` function with signature `getPairNonce()` and selector `0x078888d6` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct GetPairNonceReturn(pub u32); - ///Container type for all return fields from the `getPoolNonce` function with signature `getPoolNonce(uint24)` and selector `0xa5cd8a49` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct GetPoolNonceReturn(pub u32); - ///Container type for all return fields from the `getPoolReserves` function with signature `getPoolReserves(uint64)` and selector `0x2afb9df8` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct GetPoolReservesReturn { - pub delta_asset: ::ethers::core::types::U256, - pub delta_quote: ::ethers::core::types::U256, - } - ///Container type for all return fields from the `getReserve` function with signature `getReserve(address)` and selector `0xc9a396e9` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct GetReserveReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `getVirtualPrice` function with signature `getVirtualPrice(uint64)` and selector `0x61b7ea6a` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct GetVirtualPriceReturn { - pub price: ::ethers::core::types::U256, - } - ///Container type for all return fields from the `getVirtualReservesPerLiquidity` function with signature `getVirtualReservesPerLiquidity(uint64)` and selector `0x1a4b905b` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct GetVirtualReservesPerLiquidityReturn { - pub delta_asset: u128, - pub delta_quote: u128, - } - ///Container type for all return fields from the `pairs` function with signature `pairs(uint24)` and selector `0x5e47663c` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct PairsReturn { - pub token_asset: ::ethers::core::types::Address, - pub decimals_asset: u8, - pub token_quote: ::ethers::core::types::Address, - pub decimals_quote: u8, - } - ///Container type for all return fields from the `pools` function with signature `pools(uint64)` and selector `0x89a5f084` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct PoolsReturn { - pub virtual_x: u128, - pub virtual_y: u128, - pub liquidity: u128, - pub last_timestamp: u32, - pub controller: ::ethers::core::types::Address, - pub invariant_growth_global: ::ethers::core::types::U256, - pub fee_growth_global_asset: ::ethers::core::types::U256, - pub fee_growth_global_quote: ::ethers::core::types::U256, - pub params: PortfolioCurve, - pub pair: PortfolioPair, - } - ///Container type for all return fields from the `positions` function with signature `positions(address,uint64)` and selector `0xb68513ea` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct PositionsReturn { - pub free_liquidity: u128, - pub last_timestamp: u32, - pub invariant_growth_last: ::ethers::core::types::U256, - pub fee_growth_asset_last: ::ethers::core::types::U256, - pub fee_growth_quote_last: ::ethers::core::types::U256, - pub tokens_owed_asset: u128, - pub tokens_owed_quote: u128, - pub invariant_owed: u128, - } -} diff --git a/crates/bindings/src/safe_cast_lib.rs b/crates/bindings/src/safe_cast_lib.rs deleted file mode 100644 index 70213f75..00000000 --- a/crates/bindings/src/safe_cast_lib.rs +++ /dev/null @@ -1,342 +0,0 @@ -pub use safe_cast_lib::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types, -)] -pub mod safe_cast_lib { - #[rustfmt::skip] - const __ABI: &str = "[]"; - ///The parsed JSON ABI of the contract. - pub static SAFECASTLIB_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| - ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); - #[rustfmt::skip] - const __BYTECODE: &[u8] = &[ - 96, - 86, - 96, - 55, - 96, - 11, - 130, - 130, - 130, - 57, - 128, - 81, - 96, - 0, - 26, - 96, - 115, - 20, - 96, - 42, - 87, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 0, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 48, - 96, - 0, - 82, - 96, - 115, - 129, - 83, - 130, - 129, - 243, - 254, - 115, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 48, - 20, - 96, - 128, - 96, - 64, - 82, - 96, - 0, - 128, - 253, - 254, - 162, - 100, - 105, - 112, - 102, - 115, - 88, - 34, - 18, - 32, - 144, - 241, - 46, - 211, - 193, - 142, - 242, - 140, - 191, - 246, - 54, - 108, - 169, - 239, - 100, - 3, - 225, - 42, - 159, - 55, - 100, - 129, - 107, - 129, - 229, - 84, - 107, - 126, - 180, - 210, - 176, - 21, - 100, - 115, - 111, - 108, - 99, - 67, - 0, - 8, - 13, - 0, - 51, - ]; - ///The bytecode of the contract. - pub static SAFECASTLIB_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( - __BYTECODE, - ); - #[rustfmt::skip] - const __DEPLOYED_BYTECODE: &[u8] = &[ - 115, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 48, - 20, - 96, - 128, - 96, - 64, - 82, - 96, - 0, - 128, - 253, - 254, - 162, - 100, - 105, - 112, - 102, - 115, - 88, - 34, - 18, - 32, - 144, - 241, - 46, - 211, - 193, - 142, - 242, - 140, - 191, - 246, - 54, - 108, - 169, - 239, - 100, - 3, - 225, - 42, - 159, - 55, - 100, - 129, - 107, - 129, - 229, - 84, - 107, - 126, - 180, - 210, - 176, - 21, - 100, - 115, - 111, - 108, - 99, - 67, - 0, - 8, - 13, - 0, - 51, - ]; - ///The deployed bytecode of the contract. - pub static SAFECASTLIB_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( - __DEPLOYED_BYTECODE, - ); - pub struct SafeCastLib(::ethers::contract::Contract); - impl ::core::clone::Clone for SafeCastLib { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for SafeCastLib { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for SafeCastLib { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for SafeCastLib { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(stringify!(SafeCastLib)).field(&self.address()).finish() - } - } - impl SafeCastLib { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self( - ::ethers::contract::Contract::new( - address.into(), - SAFECASTLIB_ABI.clone(), - client, - ), - ) - } - /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. - /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction - /// - /// Notes: - /// - If there are no constructor arguments, you should pass `()` as the argument. - /// - The default poll duration is 7 seconds. - /// - The default number of confirmations is 1 block. - /// - /// - /// # Example - /// - /// Generate contract bindings with `abigen!` and deploy a new contract instance. - /// - /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. - /// - /// ```ignore - /// # async fn deploy(client: ::std::sync::Arc) { - /// abigen!(Greeter, "../greeter.json"); - /// - /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); - /// let msg = greeter_contract.greet().call().await.unwrap(); - /// # } - /// ``` - pub fn deploy( - client: ::std::sync::Arc, - constructor_args: T, - ) -> ::core::result::Result< - ::ethers::contract::builders::ContractDeployer, - ::ethers::contract::ContractError, - > { - let factory = ::ethers::contract::ContractFactory::new( - SAFECASTLIB_ABI.clone(), - SAFECASTLIB_BYTECODE.clone().into(), - client, - ); - let deployer = factory.deploy(constructor_args)?; - let deployer = ::ethers::contract::ContractDeployer::new(deployer); - Ok(deployer) - } - } - impl From<::ethers::contract::Contract> - for SafeCastLib { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } -} diff --git a/crates/bindings/src/safe_transfer_lib.rs b/crates/bindings/src/safe_transfer_lib.rs deleted file mode 100644 index 588893c4..00000000 --- a/crates/bindings/src/safe_transfer_lib.rs +++ /dev/null @@ -1,342 +0,0 @@ -pub use safe_transfer_lib::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types, -)] -pub mod safe_transfer_lib { - #[rustfmt::skip] - const __ABI: &str = "[]"; - ///The parsed JSON ABI of the contract. - pub static SAFETRANSFERLIB_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| - ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); - #[rustfmt::skip] - const __BYTECODE: &[u8] = &[ - 96, - 86, - 96, - 55, - 96, - 11, - 130, - 130, - 130, - 57, - 128, - 81, - 96, - 0, - 26, - 96, - 115, - 20, - 96, - 42, - 87, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 0, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 48, - 96, - 0, - 82, - 96, - 115, - 129, - 83, - 130, - 129, - 243, - 254, - 115, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 48, - 20, - 96, - 128, - 96, - 64, - 82, - 96, - 0, - 128, - 253, - 254, - 162, - 100, - 105, - 112, - 102, - 115, - 88, - 34, - 18, - 32, - 218, - 171, - 27, - 243, - 76, - 51, - 176, - 35, - 130, - 133, - 83, - 89, - 119, - 241, - 222, - 130, - 95, - 14, - 31, - 82, - 35, - 227, - 53, - 188, - 244, - 129, - 119, - 126, - 163, - 0, - 126, - 59, - 100, - 115, - 111, - 108, - 99, - 67, - 0, - 8, - 13, - 0, - 51, - ]; - ///The bytecode of the contract. - pub static SAFETRANSFERLIB_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( - __BYTECODE, - ); - #[rustfmt::skip] - const __DEPLOYED_BYTECODE: &[u8] = &[ - 115, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 48, - 20, - 96, - 128, - 96, - 64, - 82, - 96, - 0, - 128, - 253, - 254, - 162, - 100, - 105, - 112, - 102, - 115, - 88, - 34, - 18, - 32, - 218, - 171, - 27, - 243, - 76, - 51, - 176, - 35, - 130, - 133, - 83, - 89, - 119, - 241, - 222, - 130, - 95, - 14, - 31, - 82, - 35, - 227, - 53, - 188, - 244, - 129, - 119, - 126, - 163, - 0, - 126, - 59, - 100, - 115, - 111, - 108, - 99, - 67, - 0, - 8, - 13, - 0, - 51, - ]; - ///The deployed bytecode of the contract. - pub static SAFETRANSFERLIB_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( - __DEPLOYED_BYTECODE, - ); - pub struct SafeTransferLib(::ethers::contract::Contract); - impl ::core::clone::Clone for SafeTransferLib { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for SafeTransferLib { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for SafeTransferLib { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for SafeTransferLib { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(stringify!(SafeTransferLib)).field(&self.address()).finish() - } - } - impl SafeTransferLib { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self( - ::ethers::contract::Contract::new( - address.into(), - SAFETRANSFERLIB_ABI.clone(), - client, - ), - ) - } - /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. - /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction - /// - /// Notes: - /// - If there are no constructor arguments, you should pass `()` as the argument. - /// - The default poll duration is 7 seconds. - /// - The default number of confirmations is 1 block. - /// - /// - /// # Example - /// - /// Generate contract bindings with `abigen!` and deploy a new contract instance. - /// - /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. - /// - /// ```ignore - /// # async fn deploy(client: ::std::sync::Arc) { - /// abigen!(Greeter, "../greeter.json"); - /// - /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); - /// let msg = greeter_contract.greet().call().await.unwrap(); - /// # } - /// ``` - pub fn deploy( - client: ::std::sync::Arc, - constructor_args: T, - ) -> ::core::result::Result< - ::ethers::contract::builders::ContractDeployer, - ::ethers::contract::ContractError, - > { - let factory = ::ethers::contract::ContractFactory::new( - SAFETRANSFERLIB_ABI.clone(), - SAFETRANSFERLIB_BYTECODE.clone().into(), - client, - ); - let deployer = factory.deploy(constructor_args)?; - let deployer = ::ethers::contract::ContractDeployer::new(deployer); - Ok(deployer) - } - } - impl From<::ethers::contract::Contract> - for SafeTransferLib { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } -} diff --git a/crates/bindings/src/shared_types.rs b/crates/bindings/src/shared_types.rs deleted file mode 100644 index 5d252557..00000000 --- a/crates/bindings/src/shared_types.rs +++ /dev/null @@ -1,38 +0,0 @@ -///`PortfolioCurve(uint128,uint16,uint16,uint16,uint16,uint16,uint32,bool)` -#[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash -)] -pub struct PortfolioCurve { - pub max_price: u128, - pub jit: u16, - pub fee: u16, - pub duration: u16, - pub volatility: u16, - pub priority_fee: u16, - pub created_at: u32, - pub perpetual: bool, -} -///`PortfolioPair(address,uint8,address,uint8)` -#[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash -)] -pub struct PortfolioPair { - pub token_asset: ::ethers::core::types::Address, - pub decimals_asset: u8, - pub token_quote: ::ethers::core::types::Address, - pub decimals_quote: u8, -} diff --git a/crates/bindings/src/simple_registry.rs b/crates/bindings/src/simple_registry.rs deleted file mode 100644 index 629c0624..00000000 --- a/crates/bindings/src/simple_registry.rs +++ /dev/null @@ -1,1677 +0,0 @@ -pub use simple_registry::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types, -)] -pub mod simple_registry { - #[rustfmt::skip] - const __ABI: &str = "[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"portfolio\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"claimFee\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"controller\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"portfolio\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"setFee\",\"outputs\":[]}]"; - ///The parsed JSON ABI of the contract. - pub static SIMPLEREGISTRY_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| - ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); - #[rustfmt::skip] - const __BYTECODE: &[u8] = &[ - 96, - 128, - 96, - 64, - 82, - 52, - 128, - 21, - 97, - 0, - 16, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 96, - 0, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 25, - 22, - 51, - 23, - 144, - 85, - 97, - 2, - 166, - 128, - 97, - 0, - 50, - 96, - 0, - 57, - 96, - 0, - 243, - 254, - 96, - 128, - 96, - 64, - 82, - 52, - 128, - 21, - 97, - 0, - 16, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 96, - 4, - 54, - 16, - 97, - 0, - 65, - 87, - 96, - 0, - 53, - 96, - 224, - 28, - 128, - 99, - 44, - 252, - 244, - 35, - 20, - 97, - 0, - 70, - 87, - 128, - 99, - 229, - 81, - 86, - 181, - 20, - 97, - 0, - 91, - 87, - 128, - 99, - 247, - 124, - 71, - 145, - 20, - 97, - 0, - 110, - 87, - 91, - 96, - 0, - 128, - 253, - 91, - 97, - 0, - 89, - 97, - 0, - 84, - 54, - 96, - 4, - 97, - 1, - 249, - 86, - 91, - 97, - 0, - 157, - 86, - 91, - 0, - 91, - 97, - 0, - 89, - 97, - 0, - 105, - 54, - 96, - 4, - 97, - 2, - 70, - 86, - 91, - 97, - 1, - 70, - 86, - 91, - 96, - 0, - 84, - 97, - 0, - 129, - 144, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 86, - 91, - 96, - 64, - 81, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 144, - 145, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 243, - 91, - 96, - 0, - 128, - 84, - 48, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 25, - 130, - 22, - 23, - 144, - 145, - 85, - 96, - 64, - 81, - 99, - 5, - 105, - 38, - 181, - 96, - 229, - 27, - 129, - 82, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 133, - 129, - 22, - 96, - 4, - 131, - 1, - 82, - 96, - 36, - 130, - 1, - 133, - 144, - 82, - 131, - 129, - 22, - 96, - 68, - 131, - 1, - 82, - 145, - 130, - 22, - 145, - 134, - 22, - 144, - 99, - 173, - 36, - 214, - 160, - 144, - 96, - 100, - 1, - 96, - 0, - 96, - 64, - 81, - 128, - 131, - 3, - 129, - 96, - 0, - 135, - 128, - 59, - 21, - 128, - 21, - 97, - 1, - 7, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 90, - 241, - 21, - 128, - 21, - 97, - 1, - 27, - 87, - 61, - 96, - 0, - 128, - 62, - 61, - 96, - 0, - 253, - 91, - 80, - 80, - 96, - 0, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 25, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 148, - 144, - 148, - 22, - 147, - 144, - 147, - 23, - 144, - 146, - 85, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 84, - 48, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 25, - 130, - 22, - 23, - 144, - 145, - 85, - 96, - 64, - 81, - 99, - 120, - 125, - 206, - 61, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 129, - 1, - 131, - 144, - 82, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 145, - 130, - 22, - 145, - 132, - 22, - 144, - 99, - 120, - 125, - 206, - 61, - 144, - 96, - 36, - 1, - 96, - 0, - 96, - 64, - 81, - 128, - 131, - 3, - 129, - 96, - 0, - 135, - 128, - 59, - 21, - 128, - 21, - 97, - 1, - 160, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 90, - 241, - 21, - 128, - 21, - 97, - 1, - 180, - 87, - 61, - 96, - 0, - 128, - 62, - 61, - 96, - 0, - 253, - 91, - 80, - 80, - 96, - 0, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 25, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 148, - 144, - 148, - 22, - 147, - 144, - 147, - 23, - 144, - 146, - 85, - 80, - 80, - 80, - 80, - 86, - 91, - 128, - 53, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 129, - 22, - 129, - 20, - 97, - 1, - 244, - 87, - 96, - 0, - 128, - 253, - 91, - 145, - 144, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 128, - 96, - 128, - 133, - 135, - 3, - 18, - 21, - 97, - 2, - 15, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 2, - 24, - 133, - 97, - 1, - 221, - 86, - 91, - 147, - 80, - 97, - 2, - 38, - 96, - 32, - 134, - 1, - 97, - 1, - 221, - 86, - 91, - 146, - 80, - 96, - 64, - 133, - 1, - 53, - 145, - 80, - 97, - 2, - 59, - 96, - 96, - 134, - 1, - 97, - 1, - 221, - 86, - 91, - 144, - 80, - 146, - 149, - 145, - 148, - 80, - 146, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 64, - 131, - 133, - 3, - 18, - 21, - 97, - 2, - 89, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 2, - 98, - 131, - 97, - 1, - 221, - 86, - 91, - 148, - 96, - 32, - 147, - 144, - 147, - 1, - 53, - 147, - 80, - 80, - 80, - 86, - 254, - 162, - 100, - 105, - 112, - 102, - 115, - 88, - 34, - 18, - 32, - 21, - 217, - 237, - 218, - 27, - 174, - 172, - 172, - 165, - 161, - 199, - 237, - 35, - 147, - 16, - 93, - 94, - 69, - 86, - 16, - 255, - 152, - 130, - 13, - 101, - 197, - 27, - 148, - 90, - 35, - 181, - 179, - 100, - 115, - 111, - 108, - 99, - 67, - 0, - 8, - 13, - 0, - 51, - ]; - ///The bytecode of the contract. - pub static SIMPLEREGISTRY_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( - __BYTECODE, - ); - #[rustfmt::skip] - const __DEPLOYED_BYTECODE: &[u8] = &[ - 96, - 128, - 96, - 64, - 82, - 52, - 128, - 21, - 97, - 0, - 16, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 96, - 4, - 54, - 16, - 97, - 0, - 65, - 87, - 96, - 0, - 53, - 96, - 224, - 28, - 128, - 99, - 44, - 252, - 244, - 35, - 20, - 97, - 0, - 70, - 87, - 128, - 99, - 229, - 81, - 86, - 181, - 20, - 97, - 0, - 91, - 87, - 128, - 99, - 247, - 124, - 71, - 145, - 20, - 97, - 0, - 110, - 87, - 91, - 96, - 0, - 128, - 253, - 91, - 97, - 0, - 89, - 97, - 0, - 84, - 54, - 96, - 4, - 97, - 1, - 249, - 86, - 91, - 97, - 0, - 157, - 86, - 91, - 0, - 91, - 97, - 0, - 89, - 97, - 0, - 105, - 54, - 96, - 4, - 97, - 2, - 70, - 86, - 91, - 97, - 1, - 70, - 86, - 91, - 96, - 0, - 84, - 97, - 0, - 129, - 144, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 22, - 129, - 86, - 91, - 96, - 64, - 81, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 144, - 145, - 22, - 129, - 82, - 96, - 32, - 1, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 243, - 91, - 96, - 0, - 128, - 84, - 48, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 25, - 130, - 22, - 23, - 144, - 145, - 85, - 96, - 64, - 81, - 99, - 5, - 105, - 38, - 181, - 96, - 229, - 27, - 129, - 82, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 133, - 129, - 22, - 96, - 4, - 131, - 1, - 82, - 96, - 36, - 130, - 1, - 133, - 144, - 82, - 131, - 129, - 22, - 96, - 68, - 131, - 1, - 82, - 145, - 130, - 22, - 145, - 134, - 22, - 144, - 99, - 173, - 36, - 214, - 160, - 144, - 96, - 100, - 1, - 96, - 0, - 96, - 64, - 81, - 128, - 131, - 3, - 129, - 96, - 0, - 135, - 128, - 59, - 21, - 128, - 21, - 97, - 1, - 7, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 90, - 241, - 21, - 128, - 21, - 97, - 1, - 27, - 87, - 61, - 96, - 0, - 128, - 62, - 61, - 96, - 0, - 253, - 91, - 80, - 80, - 96, - 0, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 25, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 148, - 144, - 148, - 22, - 147, - 144, - 147, - 23, - 144, - 146, - 85, - 80, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 128, - 84, - 48, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 25, - 130, - 22, - 23, - 144, - 145, - 85, - 96, - 64, - 81, - 99, - 120, - 125, - 206, - 61, - 96, - 224, - 27, - 129, - 82, - 96, - 4, - 129, - 1, - 131, - 144, - 82, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 145, - 130, - 22, - 145, - 132, - 22, - 144, - 99, - 120, - 125, - 206, - 61, - 144, - 96, - 36, - 1, - 96, - 0, - 96, - 64, - 81, - 128, - 131, - 3, - 129, - 96, - 0, - 135, - 128, - 59, - 21, - 128, - 21, - 97, - 1, - 160, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 90, - 241, - 21, - 128, - 21, - 97, - 1, - 180, - 87, - 61, - 96, - 0, - 128, - 62, - 61, - 96, - 0, - 253, - 91, - 80, - 80, - 96, - 0, - 128, - 84, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 25, - 22, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 148, - 144, - 148, - 22, - 147, - 144, - 147, - 23, - 144, - 146, - 85, - 80, - 80, - 80, - 80, - 86, - 91, - 128, - 53, - 96, - 1, - 96, - 1, - 96, - 160, - 27, - 3, - 129, - 22, - 129, - 20, - 97, - 1, - 244, - 87, - 96, - 0, - 128, - 253, - 91, - 145, - 144, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 0, - 128, - 96, - 128, - 133, - 135, - 3, - 18, - 21, - 97, - 2, - 15, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 2, - 24, - 133, - 97, - 1, - 221, - 86, - 91, - 147, - 80, - 97, - 2, - 38, - 96, - 32, - 134, - 1, - 97, - 1, - 221, - 86, - 91, - 146, - 80, - 96, - 64, - 133, - 1, - 53, - 145, - 80, - 97, - 2, - 59, - 96, - 96, - 134, - 1, - 97, - 1, - 221, - 86, - 91, - 144, - 80, - 146, - 149, - 145, - 148, - 80, - 146, - 80, - 86, - 91, - 96, - 0, - 128, - 96, - 64, - 131, - 133, - 3, - 18, - 21, - 97, - 2, - 89, - 87, - 96, - 0, - 128, - 253, - 91, - 97, - 2, - 98, - 131, - 97, - 1, - 221, - 86, - 91, - 148, - 96, - 32, - 147, - 144, - 147, - 1, - 53, - 147, - 80, - 80, - 80, - 86, - 254, - 162, - 100, - 105, - 112, - 102, - 115, - 88, - 34, - 18, - 32, - 21, - 217, - 237, - 218, - 27, - 174, - 172, - 172, - 165, - 161, - 199, - 237, - 35, - 147, - 16, - 93, - 94, - 69, - 86, - 16, - 255, - 152, - 130, - 13, - 101, - 197, - 27, - 148, - 90, - 35, - 181, - 179, - 100, - 115, - 111, - 108, - 99, - 67, - 0, - 8, - 13, - 0, - 51, - ]; - ///The deployed bytecode of the contract. - pub static SIMPLEREGISTRY_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( - __DEPLOYED_BYTECODE, - ); - pub struct SimpleRegistry(::ethers::contract::Contract); - impl ::core::clone::Clone for SimpleRegistry { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for SimpleRegistry { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for SimpleRegistry { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for SimpleRegistry { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(stringify!(SimpleRegistry)).field(&self.address()).finish() - } - } - impl SimpleRegistry { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self( - ::ethers::contract::Contract::new( - address.into(), - SIMPLEREGISTRY_ABI.clone(), - client, - ), - ) - } - /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. - /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction - /// - /// Notes: - /// - If there are no constructor arguments, you should pass `()` as the argument. - /// - The default poll duration is 7 seconds. - /// - The default number of confirmations is 1 block. - /// - /// - /// # Example - /// - /// Generate contract bindings with `abigen!` and deploy a new contract instance. - /// - /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. - /// - /// ```ignore - /// # async fn deploy(client: ::std::sync::Arc) { - /// abigen!(Greeter, "../greeter.json"); - /// - /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); - /// let msg = greeter_contract.greet().call().await.unwrap(); - /// # } - /// ``` - pub fn deploy( - client: ::std::sync::Arc, - constructor_args: T, - ) -> ::core::result::Result< - ::ethers::contract::builders::ContractDeployer, - ::ethers::contract::ContractError, - > { - let factory = ::ethers::contract::ContractFactory::new( - SIMPLEREGISTRY_ABI.clone(), - SIMPLEREGISTRY_BYTECODE.clone().into(), - client, - ); - let deployer = factory.deploy(constructor_args)?; - let deployer = ::ethers::contract::ContractDeployer::new(deployer); - Ok(deployer) - } - ///Calls the contract's `claimFee` (0x2cfcf423) function - pub fn claim_fee( - &self, - portfolio: ::ethers::core::types::Address, - token: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - to: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([44, 252, 244, 35], (portfolio, token, amount, to)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `controller` (0xf77c4791) function - pub fn controller( - &self, - ) -> ::ethers::contract::builders::ContractCall< - M, - ::ethers::core::types::Address, - > { - self.0 - .method_hash([247, 124, 71, 145], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `setFee` (0xe55156b5) function - pub fn set_fee( - &self, - portfolio: ::ethers::core::types::Address, - fee: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([229, 81, 86, 181], (portfolio, fee)) - .expect("method not found (this should never happen)") - } - } - impl From<::ethers::contract::Contract> - for SimpleRegistry { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - ///Container type for all input parameters for the `claimFee` function with signature `claimFee(address,address,uint256,address)` and selector `0x2cfcf423` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "claimFee", abi = "claimFee(address,address,uint256,address)")] - pub struct ClaimFeeCall { - pub portfolio: ::ethers::core::types::Address, - pub token: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - pub to: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `controller` function with signature `controller()` and selector `0xf77c4791` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "controller", abi = "controller()")] - pub struct ControllerCall; - ///Container type for all input parameters for the `setFee` function with signature `setFee(address,uint256)` and selector `0xe55156b5` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "setFee", abi = "setFee(address,uint256)")] - pub struct SetFeeCall { - pub portfolio: ::ethers::core::types::Address, - pub fee: ::ethers::core::types::U256, - } - ///Container type for all of the contract's call - #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] - pub enum SimpleRegistryCalls { - ClaimFee(ClaimFeeCall), - Controller(ControllerCall), - SetFee(SetFeeCall), - } - impl ::ethers::core::abi::AbiDecode for SimpleRegistryCalls { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::ClaimFee(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Controller(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::SetFee(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for SimpleRegistryCalls { - fn encode(self) -> Vec { - match self { - Self::ClaimFee(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Controller(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::SetFee(element) => ::ethers::core::abi::AbiEncode::encode(element), - } - } - } - impl ::core::fmt::Display for SimpleRegistryCalls { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::ClaimFee(element) => ::core::fmt::Display::fmt(element, f), - Self::Controller(element) => ::core::fmt::Display::fmt(element, f), - Self::SetFee(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for SimpleRegistryCalls { - fn from(value: ClaimFeeCall) -> Self { - Self::ClaimFee(value) - } - } - impl ::core::convert::From for SimpleRegistryCalls { - fn from(value: ControllerCall) -> Self { - Self::Controller(value) - } - } - impl ::core::convert::From for SimpleRegistryCalls { - fn from(value: SetFeeCall) -> Self { - Self::SetFee(value) - } - } - ///Container type for all return fields from the `controller` function with signature `controller()` and selector `0xf77c4791` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct ControllerReturn(pub ::ethers::core::types::Address); -} diff --git a/crates/bindings/src/units.rs b/crates/bindings/src/units.rs deleted file mode 100644 index ea06bc56..00000000 --- a/crates/bindings/src/units.rs +++ /dev/null @@ -1,62 +0,0 @@ -pub use units::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types, -)] -pub mod units { - #[rustfmt::skip] - const __ABI: &str = "[]"; - ///The parsed JSON ABI of the contract. - pub static UNITS_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| - ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); - pub struct Units(::ethers::contract::Contract); - impl ::core::clone::Clone for Units { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for Units { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for Units { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for Units { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(stringify!(Units)).field(&self.address()).finish() - } - } - impl Units { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self( - ::ethers::contract::Contract::new( - address.into(), - UNITS_ABI.clone(), - client, - ), - ) - } - } - impl From<::ethers::contract::Contract> - for Units { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } -} diff --git a/crates/bindings/src/weth9.rs b/crates/bindings/src/weth9.rs deleted file mode 100644 index 8218098e..00000000 --- a/crates/bindings/src/weth9.rs +++ /dev/null @@ -1,4390 +0,0 @@ -pub use weth9::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types, -)] -pub mod weth9 { - #[rustfmt::skip] - const __ABI: &str = "[{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"name\",\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[{\"name\":\"guy\",\"type\":\"address\",\"components\":[]},{\"name\":\"wad\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"approve\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"totalSupply\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"name\":\"src\",\"type\":\"address\",\"components\":[]},{\"name\":\"dst\",\"type\":\"address\",\"components\":[]},{\"name\":\"wad\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transferFrom\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"name\":\"wad\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"withdraw\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"decimals\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"components\":[]}]},{\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"symbol\",\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[{\"name\":\"dst\",\"type\":\"address\",\"components\":[]},{\"name\":\"wad\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transfer\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"deposit\",\"outputs\":[]},{\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"components\":[]},{\"name\":\"\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"allowance\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"payable\",\"type\":\"fallback\",\"outputs\":[]},{\"inputs\":[{\"name\":\"src\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"name\":\"guy\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"name\":\"wad\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Approval\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"name\":\"src\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"name\":\"dst\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"name\":\"wad\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Transfer\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"name\":\"dst\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"name\":\"wad\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Deposit\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"name\":\"src\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"name\":\"wad\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Withdrawal\",\"outputs\":[],\"anonymous\":false}]"; - ///The parsed JSON ABI of the contract. - pub static WETH9_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| - ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); - #[rustfmt::skip] - const __BYTECODE: &[u8] = &[ - 96, - 192, - 96, - 64, - 82, - 96, - 13, - 96, - 128, - 129, - 144, - 82, - 127, - 87, - 114, - 97, - 112, - 112, - 101, - 100, - 32, - 69, - 116, - 104, - 101, - 114, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 96, - 160, - 144, - 129, - 82, - 97, - 0, - 62, - 145, - 96, - 0, - 145, - 144, - 97, - 0, - 163, - 86, - 91, - 80, - 96, - 64, - 128, - 81, - 128, - 130, - 1, - 144, - 145, - 82, - 96, - 4, - 128, - 130, - 82, - 127, - 87, - 69, - 84, - 72, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 96, - 32, - 144, - 146, - 1, - 145, - 130, - 82, - 97, - 0, - 131, - 145, - 96, - 1, - 145, - 97, - 0, - 163, - 86, - 91, - 80, - 96, - 2, - 128, - 84, - 96, - 255, - 25, - 22, - 96, - 18, - 23, - 144, - 85, - 52, - 128, - 21, - 97, - 0, - 157, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 1, - 62, - 86, - 91, - 130, - 128, - 84, - 96, - 1, - 129, - 96, - 1, - 22, - 21, - 97, - 1, - 0, - 2, - 3, - 22, - 96, - 2, - 144, - 4, - 144, - 96, - 0, - 82, - 96, - 32, - 96, - 0, - 32, - 144, - 96, - 31, - 1, - 96, - 32, - 144, - 4, - 129, - 1, - 146, - 130, - 96, - 31, - 16, - 97, - 0, - 228, - 87, - 128, - 81, - 96, - 255, - 25, - 22, - 131, - 128, - 1, - 23, - 133, - 85, - 97, - 1, - 17, - 86, - 91, - 130, - 128, - 1, - 96, - 1, - 1, - 133, - 85, - 130, - 21, - 97, - 1, - 17, - 87, - 145, - 130, - 1, - 91, - 130, - 129, - 17, - 21, - 97, - 1, - 17, - 87, - 130, - 81, - 130, - 85, - 145, - 96, - 32, - 1, - 145, - 144, - 96, - 1, - 1, - 144, - 97, - 0, - 246, - 86, - 91, - 80, - 97, - 1, - 29, - 146, - 145, - 80, - 97, - 1, - 33, - 86, - 91, - 80, - 144, - 86, - 91, - 97, - 1, - 59, - 145, - 144, - 91, - 128, - 130, - 17, - 21, - 97, - 1, - 29, - 87, - 96, - 0, - 129, - 85, - 96, - 1, - 1, - 97, - 1, - 39, - 86, - 91, - 144, - 86, - 91, - 97, - 6, - 86, - 128, - 97, - 1, - 77, - 96, - 0, - 57, - 96, - 0, - 243, - 0, - 96, - 128, - 96, - 64, - 82, - 96, - 4, - 54, - 16, - 97, - 0, - 146, - 87, - 96, - 0, - 53, - 96, - 224, - 28, - 99, - 255, - 255, - 255, - 255, - 22, - 128, - 99, - 6, - 253, - 222, - 3, - 20, - 97, - 0, - 156, - 87, - 128, - 99, - 9, - 94, - 167, - 179, - 20, - 97, - 1, - 38, - 87, - 128, - 99, - 24, - 22, - 13, - 221, - 20, - 97, - 1, - 94, - 87, - 128, - 99, - 35, - 184, - 114, - 221, - 20, - 97, - 1, - 133, - 87, - 128, - 99, - 46, - 26, - 125, - 77, - 20, - 97, - 1, - 175, - 87, - 128, - 99, - 49, - 60, - 229, - 103, - 20, - 97, - 1, - 199, - 87, - 128, - 99, - 112, - 160, - 130, - 49, - 20, - 97, - 1, - 242, - 87, - 128, - 99, - 149, - 216, - 155, - 65, - 20, - 97, - 2, - 19, - 87, - 128, - 99, - 169, - 5, - 156, - 187, - 20, - 97, - 2, - 40, - 87, - 128, - 99, - 208, - 227, - 13, - 176, - 20, - 97, - 0, - 146, - 87, - 128, - 99, - 221, - 98, - 237, - 62, - 20, - 97, - 2, - 76, - 87, - 91, - 97, - 0, - 154, - 97, - 2, - 115, - 86, - 91, - 0, - 91, - 52, - 128, - 21, - 97, - 0, - 168, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 0, - 177, - 97, - 2, - 194, - 86, - 91, - 96, - 64, - 128, - 81, - 96, - 32, - 128, - 130, - 82, - 131, - 81, - 129, - 131, - 1, - 82, - 131, - 81, - 145, - 146, - 131, - 146, - 144, - 131, - 1, - 145, - 133, - 1, - 144, - 128, - 131, - 131, - 96, - 0, - 91, - 131, - 129, - 16, - 21, - 97, - 0, - 235, - 87, - 129, - 129, - 1, - 81, - 131, - 130, - 1, - 82, - 96, - 32, - 1, - 97, - 0, - 211, - 86, - 91, - 80, - 80, - 80, - 80, - 144, - 80, - 144, - 129, - 1, - 144, - 96, - 31, - 22, - 128, - 21, - 97, - 1, - 24, - 87, - 128, - 130, - 3, - 128, - 81, - 96, - 1, - 131, - 96, - 32, - 3, - 97, - 1, - 0, - 10, - 3, - 25, - 22, - 129, - 82, - 96, - 32, - 1, - 145, - 80, - 91, - 80, - 146, - 80, - 80, - 80, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 243, - 91, - 52, - 128, - 21, - 97, - 1, - 50, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 1, - 74, - 96, - 1, - 96, - 160, - 96, - 2, - 10, - 3, - 96, - 4, - 53, - 22, - 96, - 36, - 53, - 97, - 3, - 80, - 86, - 91, - 96, - 64, - 128, - 81, - 145, - 21, - 21, - 130, - 82, - 81, - 144, - 129, - 144, - 3, - 96, - 32, - 1, - 144, - 243, - 91, - 52, - 128, - 21, - 97, - 1, - 106, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 1, - 115, - 97, - 3, - 182, - 86, - 91, - 96, - 64, - 128, - 81, - 145, - 130, - 82, - 81, - 144, - 129, - 144, - 3, - 96, - 32, - 1, - 144, - 243, - 91, - 52, - 128, - 21, - 97, - 1, - 145, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 1, - 74, - 96, - 1, - 96, - 160, - 96, - 2, - 10, - 3, - 96, - 4, - 53, - 129, - 22, - 144, - 96, - 36, - 53, - 22, - 96, - 68, - 53, - 97, - 3, - 187, - 86, - 91, - 52, - 128, - 21, - 97, - 1, - 187, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 0, - 154, - 96, - 4, - 53, - 97, - 4, - 239, - 86, - 91, - 52, - 128, - 21, - 97, - 1, - 211, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 1, - 220, - 97, - 5, - 132, - 86, - 91, - 96, - 64, - 128, - 81, - 96, - 255, - 144, - 146, - 22, - 130, - 82, - 81, - 144, - 129, - 144, - 3, - 96, - 32, - 1, - 144, - 243, - 91, - 52, - 128, - 21, - 97, - 1, - 254, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 1, - 115, - 96, - 1, - 96, - 160, - 96, - 2, - 10, - 3, - 96, - 4, - 53, - 22, - 97, - 5, - 141, - 86, - 91, - 52, - 128, - 21, - 97, - 2, - 31, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 0, - 177, - 97, - 5, - 159, - 86, - 91, - 52, - 128, - 21, - 97, - 2, - 52, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 1, - 74, - 96, - 1, - 96, - 160, - 96, - 2, - 10, - 3, - 96, - 4, - 53, - 22, - 96, - 36, - 53, - 97, - 5, - 249, - 86, - 91, - 52, - 128, - 21, - 97, - 2, - 88, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 1, - 115, - 96, - 1, - 96, - 160, - 96, - 2, - 10, - 3, - 96, - 4, - 53, - 129, - 22, - 144, - 96, - 36, - 53, - 22, - 97, - 6, - 13, - 86, - 91, - 51, - 96, - 0, - 129, - 129, - 82, - 96, - 3, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 145, - 130, - 144, - 32, - 128, - 84, - 52, - 144, - 129, - 1, - 144, - 145, - 85, - 130, - 81, - 144, - 129, - 82, - 145, - 81, - 127, - 225, - 255, - 252, - 196, - 146, - 61, - 4, - 181, - 89, - 244, - 210, - 154, - 139, - 252, - 108, - 218, - 4, - 235, - 91, - 13, - 60, - 70, - 7, - 81, - 194, - 64, - 44, - 92, - 92, - 201, - 16, - 156, - 146, - 129, - 144, - 3, - 144, - 145, - 1, - 144, - 162, - 86, - 91, - 96, - 0, - 128, - 84, - 96, - 64, - 128, - 81, - 96, - 32, - 96, - 2, - 96, - 1, - 133, - 22, - 21, - 97, - 1, - 0, - 2, - 96, - 0, - 25, - 1, - 144, - 148, - 22, - 147, - 144, - 147, - 4, - 96, - 31, - 129, - 1, - 132, - 144, - 4, - 132, - 2, - 130, - 1, - 132, - 1, - 144, - 146, - 82, - 129, - 129, - 82, - 146, - 145, - 131, - 1, - 130, - 130, - 128, - 21, - 97, - 3, - 72, - 87, - 128, - 96, - 31, - 16, - 97, - 3, - 29, - 87, - 97, - 1, - 0, - 128, - 131, - 84, - 4, - 2, - 131, - 82, - 145, - 96, - 32, - 1, - 145, - 97, - 3, - 72, - 86, - 91, - 130, - 1, - 145, - 144, - 96, - 0, - 82, - 96, - 32, - 96, - 0, - 32, - 144, - 91, - 129, - 84, - 129, - 82, - 144, - 96, - 1, - 1, - 144, - 96, - 32, - 1, - 128, - 131, - 17, - 97, - 3, - 43, - 87, - 130, - 144, - 3, - 96, - 31, - 22, - 130, - 1, - 145, - 91, - 80, - 80, - 80, - 80, - 80, - 129, - 86, - 91, - 51, - 96, - 0, - 129, - 129, - 82, - 96, - 4, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 96, - 1, - 96, - 160, - 96, - 2, - 10, - 3, - 135, - 22, - 128, - 133, - 82, - 144, - 131, - 82, - 129, - 132, - 32, - 134, - 144, - 85, - 129, - 81, - 134, - 129, - 82, - 145, - 81, - 147, - 148, - 144, - 147, - 144, - 146, - 127, - 140, - 91, - 225, - 229, - 235, - 236, - 125, - 91, - 209, - 79, - 113, - 66, - 125, - 30, - 132, - 243, - 221, - 3, - 20, - 192, - 247, - 178, - 41, - 30, - 91, - 32, - 10, - 200, - 199, - 195, - 185, - 37, - 146, - 130, - 144, - 3, - 1, - 144, - 163, - 80, - 96, - 1, - 146, - 145, - 80, - 80, - 86, - 91, - 48, - 49, - 144, - 86, - 91, - 96, - 1, - 96, - 160, - 96, - 2, - 10, - 3, - 131, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 3, - 96, - 32, - 82, - 96, - 64, - 129, - 32, - 84, - 130, - 17, - 21, - 97, - 3, - 224, - 87, - 96, - 0, - 128, - 253, - 91, - 96, - 1, - 96, - 160, - 96, - 2, - 10, - 3, - 132, - 22, - 51, - 20, - 128, - 21, - 144, - 97, - 4, - 30, - 87, - 80, - 96, - 1, - 96, - 160, - 96, - 2, - 10, - 3, - 132, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 4, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 51, - 132, - 82, - 144, - 145, - 82, - 144, - 32, - 84, - 96, - 0, - 25, - 20, - 21, - 91, - 21, - 97, - 4, - 126, - 87, - 96, - 1, - 96, - 160, - 96, - 2, - 10, - 3, - 132, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 4, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 51, - 132, - 82, - 144, - 145, - 82, - 144, - 32, - 84, - 130, - 17, - 21, - 97, - 4, - 83, - 87, - 96, - 0, - 128, - 253, - 91, - 96, - 1, - 96, - 160, - 96, - 2, - 10, - 3, - 132, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 4, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 51, - 132, - 82, - 144, - 145, - 82, - 144, - 32, - 128, - 84, - 131, - 144, - 3, - 144, - 85, - 91, - 96, - 1, - 96, - 160, - 96, - 2, - 10, - 3, - 128, - 133, - 22, - 96, - 0, - 129, - 129, - 82, - 96, - 3, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 128, - 84, - 136, - 144, - 3, - 144, - 85, - 147, - 135, - 22, - 128, - 131, - 82, - 145, - 132, - 144, - 32, - 128, - 84, - 135, - 1, - 144, - 85, - 131, - 81, - 134, - 129, - 82, - 147, - 81, - 145, - 147, - 127, - 221, - 242, - 82, - 173, - 27, - 226, - 200, - 155, - 105, - 194, - 176, - 104, - 252, - 55, - 141, - 170, - 149, - 43, - 167, - 241, - 99, - 196, - 161, - 22, - 40, - 245, - 90, - 77, - 245, - 35, - 179, - 239, - 146, - 144, - 129, - 144, - 3, - 144, - 145, - 1, - 144, - 163, - 80, - 96, - 1, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 51, - 96, - 0, - 144, - 129, - 82, - 96, - 3, - 96, - 32, - 82, - 96, - 64, - 144, - 32, - 84, - 129, - 17, - 21, - 97, - 5, - 11, - 87, - 96, - 0, - 128, - 253, - 91, - 51, - 96, - 0, - 129, - 129, - 82, - 96, - 3, - 96, - 32, - 82, - 96, - 64, - 128, - 130, - 32, - 128, - 84, - 133, - 144, - 3, - 144, - 85, - 81, - 131, - 21, - 97, - 8, - 252, - 2, - 145, - 132, - 145, - 144, - 129, - 129, - 129, - 133, - 136, - 136, - 241, - 147, - 80, - 80, - 80, - 80, - 21, - 128, - 21, - 97, - 5, - 74, - 87, - 61, - 96, - 0, - 128, - 62, - 61, - 96, - 0, - 253, - 91, - 80, - 96, - 64, - 128, - 81, - 130, - 129, - 82, - 144, - 81, - 51, - 145, - 127, - 127, - 207, - 83, - 44, - 21, - 240, - 166, - 219, - 11, - 214, - 208, - 224, - 56, - 190, - 167, - 29, - 48, - 216, - 8, - 199, - 217, - 140, - 179, - 191, - 114, - 104, - 169, - 91, - 245, - 8, - 27, - 101, - 145, - 144, - 129, - 144, - 3, - 96, - 32, - 1, - 144, - 162, - 80, - 86, - 91, - 96, - 2, - 84, - 96, - 255, - 22, - 129, - 86, - 91, - 96, - 3, - 96, - 32, - 82, - 96, - 0, - 144, - 129, - 82, - 96, - 64, - 144, - 32, - 84, - 129, - 86, - 91, - 96, - 1, - 128, - 84, - 96, - 64, - 128, - 81, - 96, - 32, - 96, - 2, - 132, - 134, - 22, - 21, - 97, - 1, - 0, - 2, - 96, - 0, - 25, - 1, - 144, - 148, - 22, - 147, - 144, - 147, - 4, - 96, - 31, - 129, - 1, - 132, - 144, - 4, - 132, - 2, - 130, - 1, - 132, - 1, - 144, - 146, - 82, - 129, - 129, - 82, - 146, - 145, - 131, - 1, - 130, - 130, - 128, - 21, - 97, - 3, - 72, - 87, - 128, - 96, - 31, - 16, - 97, - 3, - 29, - 87, - 97, - 1, - 0, - 128, - 131, - 84, - 4, - 2, - 131, - 82, - 145, - 96, - 32, - 1, - 145, - 97, - 3, - 72, - 86, - 91, - 96, - 0, - 97, - 6, - 6, - 51, - 132, - 132, - 97, - 3, - 187, - 86, - 91, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 4, - 96, - 32, - 144, - 129, - 82, - 96, - 0, - 146, - 131, - 82, - 96, - 64, - 128, - 132, - 32, - 144, - 145, - 82, - 144, - 130, - 82, - 144, - 32, - 84, - 129, - 86, - 0, - 161, - 101, - 98, - 122, - 122, - 114, - 48, - 88, - 32, - 60, - 46, - 146, - 190, - 116, - 6, - 160, - 156, - 52, - 115, - 108, - 122, - 120, - 184, - 200, - 161, - 216, - 167, - 247, - 240, - 156, - 223, - 222, - 21, - 139, - 255, - 106, - 149, - 47, - 17, - 226, - 119, - 0, - 41, - ]; - ///The bytecode of the contract. - pub static WETH9_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( - __BYTECODE, - ); - #[rustfmt::skip] - const __DEPLOYED_BYTECODE: &[u8] = &[ - 96, - 128, - 96, - 64, - 82, - 96, - 4, - 54, - 16, - 97, - 0, - 146, - 87, - 96, - 0, - 53, - 96, - 224, - 28, - 99, - 255, - 255, - 255, - 255, - 22, - 128, - 99, - 6, - 253, - 222, - 3, - 20, - 97, - 0, - 156, - 87, - 128, - 99, - 9, - 94, - 167, - 179, - 20, - 97, - 1, - 38, - 87, - 128, - 99, - 24, - 22, - 13, - 221, - 20, - 97, - 1, - 94, - 87, - 128, - 99, - 35, - 184, - 114, - 221, - 20, - 97, - 1, - 133, - 87, - 128, - 99, - 46, - 26, - 125, - 77, - 20, - 97, - 1, - 175, - 87, - 128, - 99, - 49, - 60, - 229, - 103, - 20, - 97, - 1, - 199, - 87, - 128, - 99, - 112, - 160, - 130, - 49, - 20, - 97, - 1, - 242, - 87, - 128, - 99, - 149, - 216, - 155, - 65, - 20, - 97, - 2, - 19, - 87, - 128, - 99, - 169, - 5, - 156, - 187, - 20, - 97, - 2, - 40, - 87, - 128, - 99, - 208, - 227, - 13, - 176, - 20, - 97, - 0, - 146, - 87, - 128, - 99, - 221, - 98, - 237, - 62, - 20, - 97, - 2, - 76, - 87, - 91, - 97, - 0, - 154, - 97, - 2, - 115, - 86, - 91, - 0, - 91, - 52, - 128, - 21, - 97, - 0, - 168, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 0, - 177, - 97, - 2, - 194, - 86, - 91, - 96, - 64, - 128, - 81, - 96, - 32, - 128, - 130, - 82, - 131, - 81, - 129, - 131, - 1, - 82, - 131, - 81, - 145, - 146, - 131, - 146, - 144, - 131, - 1, - 145, - 133, - 1, - 144, - 128, - 131, - 131, - 96, - 0, - 91, - 131, - 129, - 16, - 21, - 97, - 0, - 235, - 87, - 129, - 129, - 1, - 81, - 131, - 130, - 1, - 82, - 96, - 32, - 1, - 97, - 0, - 211, - 86, - 91, - 80, - 80, - 80, - 80, - 144, - 80, - 144, - 129, - 1, - 144, - 96, - 31, - 22, - 128, - 21, - 97, - 1, - 24, - 87, - 128, - 130, - 3, - 128, - 81, - 96, - 1, - 131, - 96, - 32, - 3, - 97, - 1, - 0, - 10, - 3, - 25, - 22, - 129, - 82, - 96, - 32, - 1, - 145, - 80, - 91, - 80, - 146, - 80, - 80, - 80, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 243, - 91, - 52, - 128, - 21, - 97, - 1, - 50, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 1, - 74, - 96, - 1, - 96, - 160, - 96, - 2, - 10, - 3, - 96, - 4, - 53, - 22, - 96, - 36, - 53, - 97, - 3, - 80, - 86, - 91, - 96, - 64, - 128, - 81, - 145, - 21, - 21, - 130, - 82, - 81, - 144, - 129, - 144, - 3, - 96, - 32, - 1, - 144, - 243, - 91, - 52, - 128, - 21, - 97, - 1, - 106, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 1, - 115, - 97, - 3, - 182, - 86, - 91, - 96, - 64, - 128, - 81, - 145, - 130, - 82, - 81, - 144, - 129, - 144, - 3, - 96, - 32, - 1, - 144, - 243, - 91, - 52, - 128, - 21, - 97, - 1, - 145, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 1, - 74, - 96, - 1, - 96, - 160, - 96, - 2, - 10, - 3, - 96, - 4, - 53, - 129, - 22, - 144, - 96, - 36, - 53, - 22, - 96, - 68, - 53, - 97, - 3, - 187, - 86, - 91, - 52, - 128, - 21, - 97, - 1, - 187, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 0, - 154, - 96, - 4, - 53, - 97, - 4, - 239, - 86, - 91, - 52, - 128, - 21, - 97, - 1, - 211, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 1, - 220, - 97, - 5, - 132, - 86, - 91, - 96, - 64, - 128, - 81, - 96, - 255, - 144, - 146, - 22, - 130, - 82, - 81, - 144, - 129, - 144, - 3, - 96, - 32, - 1, - 144, - 243, - 91, - 52, - 128, - 21, - 97, - 1, - 254, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 1, - 115, - 96, - 1, - 96, - 160, - 96, - 2, - 10, - 3, - 96, - 4, - 53, - 22, - 97, - 5, - 141, - 86, - 91, - 52, - 128, - 21, - 97, - 2, - 31, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 0, - 177, - 97, - 5, - 159, - 86, - 91, - 52, - 128, - 21, - 97, - 2, - 52, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 1, - 74, - 96, - 1, - 96, - 160, - 96, - 2, - 10, - 3, - 96, - 4, - 53, - 22, - 96, - 36, - 53, - 97, - 5, - 249, - 86, - 91, - 52, - 128, - 21, - 97, - 2, - 88, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 1, - 115, - 96, - 1, - 96, - 160, - 96, - 2, - 10, - 3, - 96, - 4, - 53, - 129, - 22, - 144, - 96, - 36, - 53, - 22, - 97, - 6, - 13, - 86, - 91, - 51, - 96, - 0, - 129, - 129, - 82, - 96, - 3, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 145, - 130, - 144, - 32, - 128, - 84, - 52, - 144, - 129, - 1, - 144, - 145, - 85, - 130, - 81, - 144, - 129, - 82, - 145, - 81, - 127, - 225, - 255, - 252, - 196, - 146, - 61, - 4, - 181, - 89, - 244, - 210, - 154, - 139, - 252, - 108, - 218, - 4, - 235, - 91, - 13, - 60, - 70, - 7, - 81, - 194, - 64, - 44, - 92, - 92, - 201, - 16, - 156, - 146, - 129, - 144, - 3, - 144, - 145, - 1, - 144, - 162, - 86, - 91, - 96, - 0, - 128, - 84, - 96, - 64, - 128, - 81, - 96, - 32, - 96, - 2, - 96, - 1, - 133, - 22, - 21, - 97, - 1, - 0, - 2, - 96, - 0, - 25, - 1, - 144, - 148, - 22, - 147, - 144, - 147, - 4, - 96, - 31, - 129, - 1, - 132, - 144, - 4, - 132, - 2, - 130, - 1, - 132, - 1, - 144, - 146, - 82, - 129, - 129, - 82, - 146, - 145, - 131, - 1, - 130, - 130, - 128, - 21, - 97, - 3, - 72, - 87, - 128, - 96, - 31, - 16, - 97, - 3, - 29, - 87, - 97, - 1, - 0, - 128, - 131, - 84, - 4, - 2, - 131, - 82, - 145, - 96, - 32, - 1, - 145, - 97, - 3, - 72, - 86, - 91, - 130, - 1, - 145, - 144, - 96, - 0, - 82, - 96, - 32, - 96, - 0, - 32, - 144, - 91, - 129, - 84, - 129, - 82, - 144, - 96, - 1, - 1, - 144, - 96, - 32, - 1, - 128, - 131, - 17, - 97, - 3, - 43, - 87, - 130, - 144, - 3, - 96, - 31, - 22, - 130, - 1, - 145, - 91, - 80, - 80, - 80, - 80, - 80, - 129, - 86, - 91, - 51, - 96, - 0, - 129, - 129, - 82, - 96, - 4, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 96, - 1, - 96, - 160, - 96, - 2, - 10, - 3, - 135, - 22, - 128, - 133, - 82, - 144, - 131, - 82, - 129, - 132, - 32, - 134, - 144, - 85, - 129, - 81, - 134, - 129, - 82, - 145, - 81, - 147, - 148, - 144, - 147, - 144, - 146, - 127, - 140, - 91, - 225, - 229, - 235, - 236, - 125, - 91, - 209, - 79, - 113, - 66, - 125, - 30, - 132, - 243, - 221, - 3, - 20, - 192, - 247, - 178, - 41, - 30, - 91, - 32, - 10, - 200, - 199, - 195, - 185, - 37, - 146, - 130, - 144, - 3, - 1, - 144, - 163, - 80, - 96, - 1, - 146, - 145, - 80, - 80, - 86, - 91, - 48, - 49, - 144, - 86, - 91, - 96, - 1, - 96, - 160, - 96, - 2, - 10, - 3, - 131, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 3, - 96, - 32, - 82, - 96, - 64, - 129, - 32, - 84, - 130, - 17, - 21, - 97, - 3, - 224, - 87, - 96, - 0, - 128, - 253, - 91, - 96, - 1, - 96, - 160, - 96, - 2, - 10, - 3, - 132, - 22, - 51, - 20, - 128, - 21, - 144, - 97, - 4, - 30, - 87, - 80, - 96, - 1, - 96, - 160, - 96, - 2, - 10, - 3, - 132, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 4, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 51, - 132, - 82, - 144, - 145, - 82, - 144, - 32, - 84, - 96, - 0, - 25, - 20, - 21, - 91, - 21, - 97, - 4, - 126, - 87, - 96, - 1, - 96, - 160, - 96, - 2, - 10, - 3, - 132, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 4, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 51, - 132, - 82, - 144, - 145, - 82, - 144, - 32, - 84, - 130, - 17, - 21, - 97, - 4, - 83, - 87, - 96, - 0, - 128, - 253, - 91, - 96, - 1, - 96, - 160, - 96, - 2, - 10, - 3, - 132, - 22, - 96, - 0, - 144, - 129, - 82, - 96, - 4, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 51, - 132, - 82, - 144, - 145, - 82, - 144, - 32, - 128, - 84, - 131, - 144, - 3, - 144, - 85, - 91, - 96, - 1, - 96, - 160, - 96, - 2, - 10, - 3, - 128, - 133, - 22, - 96, - 0, - 129, - 129, - 82, - 96, - 3, - 96, - 32, - 144, - 129, - 82, - 96, - 64, - 128, - 131, - 32, - 128, - 84, - 136, - 144, - 3, - 144, - 85, - 147, - 135, - 22, - 128, - 131, - 82, - 145, - 132, - 144, - 32, - 128, - 84, - 135, - 1, - 144, - 85, - 131, - 81, - 134, - 129, - 82, - 147, - 81, - 145, - 147, - 127, - 221, - 242, - 82, - 173, - 27, - 226, - 200, - 155, - 105, - 194, - 176, - 104, - 252, - 55, - 141, - 170, - 149, - 43, - 167, - 241, - 99, - 196, - 161, - 22, - 40, - 245, - 90, - 77, - 245, - 35, - 179, - 239, - 146, - 144, - 129, - 144, - 3, - 144, - 145, - 1, - 144, - 163, - 80, - 96, - 1, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 51, - 96, - 0, - 144, - 129, - 82, - 96, - 3, - 96, - 32, - 82, - 96, - 64, - 144, - 32, - 84, - 129, - 17, - 21, - 97, - 5, - 11, - 87, - 96, - 0, - 128, - 253, - 91, - 51, - 96, - 0, - 129, - 129, - 82, - 96, - 3, - 96, - 32, - 82, - 96, - 64, - 128, - 130, - 32, - 128, - 84, - 133, - 144, - 3, - 144, - 85, - 81, - 131, - 21, - 97, - 8, - 252, - 2, - 145, - 132, - 145, - 144, - 129, - 129, - 129, - 133, - 136, - 136, - 241, - 147, - 80, - 80, - 80, - 80, - 21, - 128, - 21, - 97, - 5, - 74, - 87, - 61, - 96, - 0, - 128, - 62, - 61, - 96, - 0, - 253, - 91, - 80, - 96, - 64, - 128, - 81, - 130, - 129, - 82, - 144, - 81, - 51, - 145, - 127, - 127, - 207, - 83, - 44, - 21, - 240, - 166, - 219, - 11, - 214, - 208, - 224, - 56, - 190, - 167, - 29, - 48, - 216, - 8, - 199, - 217, - 140, - 179, - 191, - 114, - 104, - 169, - 91, - 245, - 8, - 27, - 101, - 145, - 144, - 129, - 144, - 3, - 96, - 32, - 1, - 144, - 162, - 80, - 86, - 91, - 96, - 2, - 84, - 96, - 255, - 22, - 129, - 86, - 91, - 96, - 3, - 96, - 32, - 82, - 96, - 0, - 144, - 129, - 82, - 96, - 64, - 144, - 32, - 84, - 129, - 86, - 91, - 96, - 1, - 128, - 84, - 96, - 64, - 128, - 81, - 96, - 32, - 96, - 2, - 132, - 134, - 22, - 21, - 97, - 1, - 0, - 2, - 96, - 0, - 25, - 1, - 144, - 148, - 22, - 147, - 144, - 147, - 4, - 96, - 31, - 129, - 1, - 132, - 144, - 4, - 132, - 2, - 130, - 1, - 132, - 1, - 144, - 146, - 82, - 129, - 129, - 82, - 146, - 145, - 131, - 1, - 130, - 130, - 128, - 21, - 97, - 3, - 72, - 87, - 128, - 96, - 31, - 16, - 97, - 3, - 29, - 87, - 97, - 1, - 0, - 128, - 131, - 84, - 4, - 2, - 131, - 82, - 145, - 96, - 32, - 1, - 145, - 97, - 3, - 72, - 86, - 91, - 96, - 0, - 97, - 6, - 6, - 51, - 132, - 132, - 97, - 3, - 187, - 86, - 91, - 147, - 146, - 80, - 80, - 80, - 86, - 91, - 96, - 4, - 96, - 32, - 144, - 129, - 82, - 96, - 0, - 146, - 131, - 82, - 96, - 64, - 128, - 132, - 32, - 144, - 145, - 82, - 144, - 130, - 82, - 144, - 32, - 84, - 129, - 86, - 0, - 161, - 101, - 98, - 122, - 122, - 114, - 48, - 88, - 32, - 60, - 46, - 146, - 190, - 116, - 6, - 160, - 156, - 52, - 115, - 108, - 122, - 120, - 184, - 200, - 161, - 216, - 167, - 247, - 240, - 156, - 223, - 222, - 21, - 139, - 255, - 106, - 149, - 47, - 17, - 226, - 119, - 0, - 41, - ]; - ///The deployed bytecode of the contract. - pub static WETH9_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( - __DEPLOYED_BYTECODE, - ); - pub struct WETH9(::ethers::contract::Contract); - impl ::core::clone::Clone for WETH9 { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for WETH9 { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for WETH9 { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for WETH9 { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(stringify!(WETH9)).field(&self.address()).finish() - } - } - impl WETH9 { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self( - ::ethers::contract::Contract::new( - address.into(), - WETH9_ABI.clone(), - client, - ), - ) - } - /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. - /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction - /// - /// Notes: - /// - If there are no constructor arguments, you should pass `()` as the argument. - /// - The default poll duration is 7 seconds. - /// - The default number of confirmations is 1 block. - /// - /// - /// # Example - /// - /// Generate contract bindings with `abigen!` and deploy a new contract instance. - /// - /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. - /// - /// ```ignore - /// # async fn deploy(client: ::std::sync::Arc) { - /// abigen!(Greeter, "../greeter.json"); - /// - /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); - /// let msg = greeter_contract.greet().call().await.unwrap(); - /// # } - /// ``` - pub fn deploy( - client: ::std::sync::Arc, - constructor_args: T, - ) -> ::core::result::Result< - ::ethers::contract::builders::ContractDeployer, - ::ethers::contract::ContractError, - > { - let factory = ::ethers::contract::ContractFactory::new( - WETH9_ABI.clone(), - WETH9_BYTECODE.clone().into(), - client, - ); - let deployer = factory.deploy(constructor_args)?; - let deployer = ::ethers::contract::ContractDeployer::new(deployer); - Ok(deployer) - } - ///Calls the contract's `allowance` (0xdd62ed3e) function - pub fn allowance( - &self, - p0: ::ethers::core::types::Address, - p1: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([221, 98, 237, 62], (p0, p1)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `approve` (0x095ea7b3) function - pub fn approve( - &self, - guy: ::ethers::core::types::Address, - wad: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([9, 94, 167, 179], (guy, wad)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `balanceOf` (0x70a08231) function - pub fn balance_of( - &self, - p0: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([112, 160, 130, 49], p0) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `decimals` (0x313ce567) function - pub fn decimals(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([49, 60, 229, 103], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `deposit` (0xd0e30db0) function - pub fn deposit(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([208, 227, 13, 176], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `name` (0x06fdde03) function - pub fn name( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([6, 253, 222, 3], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `symbol` (0x95d89b41) function - pub fn symbol( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([149, 216, 155, 65], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `totalSupply` (0x18160ddd) function - pub fn total_supply( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([24, 22, 13, 221], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `transfer` (0xa9059cbb) function - pub fn transfer( - &self, - dst: ::ethers::core::types::Address, - wad: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([169, 5, 156, 187], (dst, wad)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `transferFrom` (0x23b872dd) function - pub fn transfer_from( - &self, - src: ::ethers::core::types::Address, - dst: ::ethers::core::types::Address, - wad: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([35, 184, 114, 221], (src, dst, wad)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `withdraw` (0x2e1a7d4d) function - pub fn withdraw( - &self, - wad: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([46, 26, 125, 77], wad) - .expect("method not found (this should never happen)") - } - ///Gets the contract's `Approval` event - pub fn approval_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - ApprovalFilter, - > { - self.0.event() - } - ///Gets the contract's `Deposit` event - pub fn deposit_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, DepositFilter> { - self.0.event() - } - ///Gets the contract's `Transfer` event - pub fn transfer_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - TransferFilter, - > { - self.0.event() - } - ///Gets the contract's `Withdrawal` event - pub fn withdrawal_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - WithdrawalFilter, - > { - self.0.event() - } - /// Returns an `Event` builder for all the events of this contract. - pub fn events( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, WETH9Events> { - self.0.event_with_filter(::core::default::Default::default()) - } - } - impl From<::ethers::contract::Contract> - for WETH9 { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "Approval", abi = "Approval(address,address,uint256)")] - pub struct ApprovalFilter { - #[ethevent(indexed)] - pub src: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub guy: ::ethers::core::types::Address, - pub wad: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "Deposit", abi = "Deposit(address,uint256)")] - pub struct DepositFilter { - #[ethevent(indexed)] - pub dst: ::ethers::core::types::Address, - pub wad: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "Transfer", abi = "Transfer(address,address,uint256)")] - pub struct TransferFilter { - #[ethevent(indexed)] - pub src: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub dst: ::ethers::core::types::Address, - pub wad: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "Withdrawal", abi = "Withdrawal(address,uint256)")] - pub struct WithdrawalFilter { - #[ethevent(indexed)] - pub src: ::ethers::core::types::Address, - pub wad: ::ethers::core::types::U256, - } - ///Container type for all of the contract's events - #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] - pub enum WETH9Events { - ApprovalFilter(ApprovalFilter), - DepositFilter(DepositFilter), - TransferFilter(TransferFilter), - WithdrawalFilter(WithdrawalFilter), - } - impl ::ethers::contract::EthLogDecode for WETH9Events { - fn decode_log( - log: &::ethers::core::abi::RawLog, - ) -> ::core::result::Result { - if let Ok(decoded) = ApprovalFilter::decode_log(log) { - return Ok(WETH9Events::ApprovalFilter(decoded)); - } - if let Ok(decoded) = DepositFilter::decode_log(log) { - return Ok(WETH9Events::DepositFilter(decoded)); - } - if let Ok(decoded) = TransferFilter::decode_log(log) { - return Ok(WETH9Events::TransferFilter(decoded)); - } - if let Ok(decoded) = WithdrawalFilter::decode_log(log) { - return Ok(WETH9Events::WithdrawalFilter(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData) - } - } - impl ::core::fmt::Display for WETH9Events { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::ApprovalFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::DepositFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::TransferFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::WithdrawalFilter(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for WETH9Events { - fn from(value: ApprovalFilter) -> Self { - Self::ApprovalFilter(value) - } - } - impl ::core::convert::From for WETH9Events { - fn from(value: DepositFilter) -> Self { - Self::DepositFilter(value) - } - } - impl ::core::convert::From for WETH9Events { - fn from(value: TransferFilter) -> Self { - Self::TransferFilter(value) - } - } - impl ::core::convert::From for WETH9Events { - fn from(value: WithdrawalFilter) -> Self { - Self::WithdrawalFilter(value) - } - } - ///Container type for all input parameters for the `allowance` function with signature `allowance(address,address)` and selector `0xdd62ed3e` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "allowance", abi = "allowance(address,address)")] - pub struct AllowanceCall( - pub ::ethers::core::types::Address, - pub ::ethers::core::types::Address, - ); - ///Container type for all input parameters for the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "approve", abi = "approve(address,uint256)")] - pub struct ApproveCall { - pub guy: ::ethers::core::types::Address, - pub wad: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "balanceOf", abi = "balanceOf(address)")] - pub struct BalanceOfCall(pub ::ethers::core::types::Address); - ///Container type for all input parameters for the `decimals` function with signature `decimals()` and selector `0x313ce567` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "decimals", abi = "decimals()")] - pub struct DecimalsCall; - ///Container type for all input parameters for the `deposit` function with signature `deposit()` and selector `0xd0e30db0` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "deposit", abi = "deposit()")] - pub struct DepositCall; - ///Container type for all input parameters for the `name` function with signature `name()` and selector `0x06fdde03` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "name", abi = "name()")] - pub struct NameCall; - ///Container type for all input parameters for the `symbol` function with signature `symbol()` and selector `0x95d89b41` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "symbol", abi = "symbol()")] - pub struct SymbolCall; - ///Container type for all input parameters for the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "totalSupply", abi = "totalSupply()")] - pub struct TotalSupplyCall; - ///Container type for all input parameters for the `transfer` function with signature `transfer(address,uint256)` and selector `0xa9059cbb` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "transfer", abi = "transfer(address,uint256)")] - pub struct TransferCall { - pub dst: ::ethers::core::types::Address, - pub wad: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "transferFrom", abi = "transferFrom(address,address,uint256)")] - pub struct TransferFromCall { - pub src: ::ethers::core::types::Address, - pub dst: ::ethers::core::types::Address, - pub wad: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `withdraw` function with signature `withdraw(uint256)` and selector `0x2e1a7d4d` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "withdraw", abi = "withdraw(uint256)")] - pub struct WithdrawCall { - pub wad: ::ethers::core::types::U256, - } - ///Container type for all of the contract's call - #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] - pub enum WETH9Calls { - Allowance(AllowanceCall), - Approve(ApproveCall), - BalanceOf(BalanceOfCall), - Decimals(DecimalsCall), - Deposit(DepositCall), - Name(NameCall), - Symbol(SymbolCall), - TotalSupply(TotalSupplyCall), - Transfer(TransferCall), - TransferFrom(TransferFromCall), - Withdraw(WithdrawCall), - } - impl ::ethers::core::abi::AbiDecode for WETH9Calls { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Allowance(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Approve(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::BalanceOf(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Decimals(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Deposit(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Name(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Symbol(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::TotalSupply(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Transfer(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::TransferFrom(decoded)); - } - if let Ok(decoded) - = ::decode(data) { - return Ok(Self::Withdraw(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for WETH9Calls { - fn encode(self) -> Vec { - match self { - Self::Allowance(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Approve(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::BalanceOf(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Decimals(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Deposit(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Name(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Symbol(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::TotalSupply(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Transfer(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::TransferFrom(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Withdraw(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - } - } - } - impl ::core::fmt::Display for WETH9Calls { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::Allowance(element) => ::core::fmt::Display::fmt(element, f), - Self::Approve(element) => ::core::fmt::Display::fmt(element, f), - Self::BalanceOf(element) => ::core::fmt::Display::fmt(element, f), - Self::Decimals(element) => ::core::fmt::Display::fmt(element, f), - Self::Deposit(element) => ::core::fmt::Display::fmt(element, f), - Self::Name(element) => ::core::fmt::Display::fmt(element, f), - Self::Symbol(element) => ::core::fmt::Display::fmt(element, f), - Self::TotalSupply(element) => ::core::fmt::Display::fmt(element, f), - Self::Transfer(element) => ::core::fmt::Display::fmt(element, f), - Self::TransferFrom(element) => ::core::fmt::Display::fmt(element, f), - Self::Withdraw(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for WETH9Calls { - fn from(value: AllowanceCall) -> Self { - Self::Allowance(value) - } - } - impl ::core::convert::From for WETH9Calls { - fn from(value: ApproveCall) -> Self { - Self::Approve(value) - } - } - impl ::core::convert::From for WETH9Calls { - fn from(value: BalanceOfCall) -> Self { - Self::BalanceOf(value) - } - } - impl ::core::convert::From for WETH9Calls { - fn from(value: DecimalsCall) -> Self { - Self::Decimals(value) - } - } - impl ::core::convert::From for WETH9Calls { - fn from(value: DepositCall) -> Self { - Self::Deposit(value) - } - } - impl ::core::convert::From for WETH9Calls { - fn from(value: NameCall) -> Self { - Self::Name(value) - } - } - impl ::core::convert::From for WETH9Calls { - fn from(value: SymbolCall) -> Self { - Self::Symbol(value) - } - } - impl ::core::convert::From for WETH9Calls { - fn from(value: TotalSupplyCall) -> Self { - Self::TotalSupply(value) - } - } - impl ::core::convert::From for WETH9Calls { - fn from(value: TransferCall) -> Self { - Self::Transfer(value) - } - } - impl ::core::convert::From for WETH9Calls { - fn from(value: TransferFromCall) -> Self { - Self::TransferFrom(value) - } - } - impl ::core::convert::From for WETH9Calls { - fn from(value: WithdrawCall) -> Self { - Self::Withdraw(value) - } - } - ///Container type for all return fields from the `allowance` function with signature `allowance(address,address)` and selector `0xdd62ed3e` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct AllowanceReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct ApproveReturn(pub bool); - ///Container type for all return fields from the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct BalanceOfReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `decimals` function with signature `decimals()` and selector `0x313ce567` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct DecimalsReturn(pub u8); - ///Container type for all return fields from the `name` function with signature `name()` and selector `0x06fdde03` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct NameReturn(pub ::std::string::String); - ///Container type for all return fields from the `symbol` function with signature `symbol()` and selector `0x95d89b41` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct SymbolReturn(pub ::std::string::String); - ///Container type for all return fields from the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct TotalSupplyReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `transfer` function with signature `transfer(address,uint256)` and selector `0xa9059cbb` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct TransferReturn(pub bool); - ///Container type for all return fields from the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct TransferFromReturn(pub bool); -} diff --git a/crates/bindings/src/writer.rs b/crates/bindings/src/writer.rs deleted file mode 100644 index ef1b8c53..00000000 --- a/crates/bindings/src/writer.rs +++ /dev/null @@ -1,2147 +0,0 @@ -pub use writer::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types, -)] -pub mod writer { - #[rustfmt::skip] - const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"test_string\",\"type\":\"string\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"WasWritten\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"test_string\",\"type\":\"string\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"echoString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]}]"; - ///The parsed JSON ABI of the contract. - pub static WRITER_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(|| - ::ethers::core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid")); - #[rustfmt::skip] - const __BYTECODE: &[u8] = &[ - 96, - 128, - 96, - 64, - 82, - 52, - 128, - 21, - 97, - 0, - 16, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 97, - 3, - 197, - 128, - 97, - 0, - 32, - 96, - 0, - 57, - 96, - 0, - 243, - 254, - 96, - 128, - 96, - 64, - 82, - 52, - 128, - 21, - 97, - 0, - 16, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 96, - 4, - 54, - 16, - 97, - 0, - 43, - 87, - 96, - 0, - 53, - 96, - 224, - 28, - 128, - 99, - 13, - 126, - 47, - 206, - 20, - 97, - 0, - 48, - 87, - 91, - 96, - 0, - 128, - 253, - 91, - 97, - 0, - 67, - 97, - 0, - 62, - 54, - 96, - 4, - 97, - 1, - 71, - 86, - 91, - 97, - 0, - 89, - 86, - 91, - 96, - 64, - 81, - 97, - 0, - 80, - 145, - 144, - 97, - 1, - 248, - 86, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 243, - 91, - 96, - 96, - 96, - 0, - 97, - 0, - 103, - 131, - 130, - 97, - 2, - 207, - 86, - 91, - 80, - 127, - 150, - 111, - 235, - 127, - 22, - 48, - 252, - 188, - 148, - 154, - 121, - 101, - 185, - 139, - 203, - 203, - 152, - 35, - 112, - 159, - 116, - 217, - 236, - 10, - 84, - 130, - 176, - 195, - 48, - 148, - 139, - 148, - 130, - 96, - 64, - 81, - 97, - 0, - 151, - 145, - 144, - 97, - 1, - 248, - 86, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 161, - 96, - 0, - 128, - 84, - 97, - 0, - 172, - 144, - 97, - 2, - 70, - 86, - 91, - 128, - 96, - 31, - 1, - 96, - 32, - 128, - 145, - 4, - 2, - 96, - 32, - 1, - 96, - 64, - 81, - 144, - 129, - 1, - 96, - 64, - 82, - 128, - 146, - 145, - 144, - 129, - 129, - 82, - 96, - 32, - 1, - 130, - 128, - 84, - 97, - 0, - 216, - 144, - 97, - 2, - 70, - 86, - 91, - 128, - 21, - 97, - 1, - 37, - 87, - 128, - 96, - 31, - 16, - 97, - 0, - 250, - 87, - 97, - 1, - 0, - 128, - 131, - 84, - 4, - 2, - 131, - 82, - 145, - 96, - 32, - 1, - 145, - 97, - 1, - 37, - 86, - 91, - 130, - 1, - 145, - 144, - 96, - 0, - 82, - 96, - 32, - 96, - 0, - 32, - 144, - 91, - 129, - 84, - 129, - 82, - 144, - 96, - 1, - 1, - 144, - 96, - 32, - 1, - 128, - 131, - 17, - 97, - 1, - 8, - 87, - 130, - 144, - 3, - 96, - 31, - 22, - 130, - 1, - 145, - 91, - 80, - 80, - 80, - 80, - 80, - 144, - 80, - 145, - 144, - 80, - 86, - 91, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 65, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 96, - 0, - 96, - 32, - 130, - 132, - 3, - 18, - 21, - 97, - 1, - 89, - 87, - 96, - 0, - 128, - 253, - 91, - 129, - 53, - 103, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 128, - 130, - 17, - 21, - 97, - 1, - 113, - 87, - 96, - 0, - 128, - 253, - 91, - 129, - 132, - 1, - 145, - 80, - 132, - 96, - 31, - 131, - 1, - 18, - 97, - 1, - 133, - 87, - 96, - 0, - 128, - 253, - 91, - 129, - 53, - 129, - 129, - 17, - 21, - 97, - 1, - 151, - 87, - 97, - 1, - 151, - 97, - 1, - 49, - 86, - 91, - 96, - 64, - 81, - 96, - 31, - 130, - 1, - 96, - 31, - 25, - 144, - 129, - 22, - 96, - 63, - 1, - 22, - 129, - 1, - 144, - 131, - 130, - 17, - 129, - 131, - 16, - 23, - 21, - 97, - 1, - 191, - 87, - 97, - 1, - 191, - 97, - 1, - 49, - 86, - 91, - 129, - 96, - 64, - 82, - 130, - 129, - 82, - 135, - 96, - 32, - 132, - 135, - 1, - 1, - 17, - 21, - 97, - 1, - 216, - 87, - 96, - 0, - 128, - 253, - 91, - 130, - 96, - 32, - 134, - 1, - 96, - 32, - 131, - 1, - 55, - 96, - 0, - 146, - 129, - 1, - 96, - 32, - 1, - 146, - 144, - 146, - 82, - 80, - 149, - 148, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 96, - 32, - 128, - 131, - 82, - 131, - 81, - 128, - 130, - 133, - 1, - 82, - 96, - 0, - 91, - 129, - 129, - 16, - 21, - 97, - 2, - 37, - 87, - 133, - 129, - 1, - 131, - 1, - 81, - 133, - 130, - 1, - 96, - 64, - 1, - 82, - 130, - 1, - 97, - 2, - 9, - 86, - 91, - 80, - 96, - 0, - 96, - 64, - 130, - 134, - 1, - 1, - 82, - 96, - 64, - 96, - 31, - 25, - 96, - 31, - 131, - 1, - 22, - 133, - 1, - 1, - 146, - 80, - 80, - 80, - 146, - 145, - 80, - 80, - 86, - 91, - 96, - 1, - 129, - 129, - 28, - 144, - 130, - 22, - 128, - 97, - 2, - 90, - 87, - 96, - 127, - 130, - 22, - 145, - 80, - 91, - 96, - 32, - 130, - 16, - 129, - 3, - 97, - 2, - 122, - 87, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 34, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 80, - 145, - 144, - 80, - 86, - 91, - 96, - 31, - 130, - 17, - 21, - 97, - 2, - 202, - 87, - 96, - 0, - 129, - 129, - 82, - 96, - 32, - 129, - 32, - 96, - 31, - 133, - 1, - 96, - 5, - 28, - 129, - 1, - 96, - 32, - 134, - 16, - 21, - 97, - 2, - 167, - 87, - 80, - 128, - 91, - 96, - 31, - 133, - 1, - 96, - 5, - 28, - 130, - 1, - 145, - 80, - 91, - 129, - 129, - 16, - 21, - 97, - 2, - 198, - 87, - 130, - 129, - 85, - 96, - 1, - 1, - 97, - 2, - 179, - 86, - 91, - 80, - 80, - 80, - 91, - 80, - 80, - 80, - 86, - 91, - 129, - 81, - 103, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 129, - 17, - 21, - 97, - 2, - 233, - 87, - 97, - 2, - 233, - 97, - 1, - 49, - 86, - 91, - 97, - 2, - 253, - 129, - 97, - 2, - 247, - 132, - 84, - 97, - 2, - 70, - 86, - 91, - 132, - 97, - 2, - 128, - 86, - 91, - 96, - 32, - 128, - 96, - 31, - 131, - 17, - 96, - 1, - 129, - 20, - 97, - 3, - 50, - 87, - 96, - 0, - 132, - 21, - 97, - 3, - 26, - 87, - 80, - 133, - 131, - 1, - 81, - 91, - 96, - 0, - 25, - 96, - 3, - 134, - 144, - 27, - 28, - 25, - 22, - 96, - 1, - 133, - 144, - 27, - 23, - 133, - 85, - 97, - 2, - 198, - 86, - 91, - 96, - 0, - 133, - 129, - 82, - 96, - 32, - 129, - 32, - 96, - 31, - 25, - 134, - 22, - 145, - 91, - 130, - 129, - 16, - 21, - 97, - 3, - 97, - 87, - 136, - 134, - 1, - 81, - 130, - 85, - 148, - 132, - 1, - 148, - 96, - 1, - 144, - 145, - 1, - 144, - 132, - 1, - 97, - 3, - 66, - 86, - 91, - 80, - 133, - 130, - 16, - 21, - 97, - 3, - 127, - 87, - 135, - 133, - 1, - 81, - 96, - 0, - 25, - 96, - 3, - 136, - 144, - 27, - 96, - 248, - 22, - 28, - 25, - 22, - 129, - 85, - 91, - 80, - 80, - 80, - 80, - 80, - 96, - 1, - 144, - 129, - 27, - 1, - 144, - 85, - 80, - 86, - 254, - 162, - 100, - 105, - 112, - 102, - 115, - 88, - 34, - 18, - 32, - 135, - 202, - 33, - 89, - 219, - 68, - 250, - 4, - 86, - 98, - 55, - 188, - 62, - 64, - 208, - 74, - 53, - 108, - 137, - 147, - 3, - 67, - 235, - 235, - 220, - 21, - 238, - 255, - 122, - 231, - 29, - 1, - 100, - 115, - 111, - 108, - 99, - 67, - 0, - 8, - 19, - 0, - 51, - ]; - ///The bytecode of the contract. - pub static WRITER_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( - __BYTECODE, - ); - #[rustfmt::skip] - const __DEPLOYED_BYTECODE: &[u8] = &[ - 96, - 128, - 96, - 64, - 82, - 52, - 128, - 21, - 97, - 0, - 16, - 87, - 96, - 0, - 128, - 253, - 91, - 80, - 96, - 4, - 54, - 16, - 97, - 0, - 43, - 87, - 96, - 0, - 53, - 96, - 224, - 28, - 128, - 99, - 13, - 126, - 47, - 206, - 20, - 97, - 0, - 48, - 87, - 91, - 96, - 0, - 128, - 253, - 91, - 97, - 0, - 67, - 97, - 0, - 62, - 54, - 96, - 4, - 97, - 1, - 71, - 86, - 91, - 97, - 0, - 89, - 86, - 91, - 96, - 64, - 81, - 97, - 0, - 80, - 145, - 144, - 97, - 1, - 248, - 86, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 243, - 91, - 96, - 96, - 96, - 0, - 97, - 0, - 103, - 131, - 130, - 97, - 2, - 207, - 86, - 91, - 80, - 127, - 150, - 111, - 235, - 127, - 22, - 48, - 252, - 188, - 148, - 154, - 121, - 101, - 185, - 139, - 203, - 203, - 152, - 35, - 112, - 159, - 116, - 217, - 236, - 10, - 84, - 130, - 176, - 195, - 48, - 148, - 139, - 148, - 130, - 96, - 64, - 81, - 97, - 0, - 151, - 145, - 144, - 97, - 1, - 248, - 86, - 91, - 96, - 64, - 81, - 128, - 145, - 3, - 144, - 161, - 96, - 0, - 128, - 84, - 97, - 0, - 172, - 144, - 97, - 2, - 70, - 86, - 91, - 128, - 96, - 31, - 1, - 96, - 32, - 128, - 145, - 4, - 2, - 96, - 32, - 1, - 96, - 64, - 81, - 144, - 129, - 1, - 96, - 64, - 82, - 128, - 146, - 145, - 144, - 129, - 129, - 82, - 96, - 32, - 1, - 130, - 128, - 84, - 97, - 0, - 216, - 144, - 97, - 2, - 70, - 86, - 91, - 128, - 21, - 97, - 1, - 37, - 87, - 128, - 96, - 31, - 16, - 97, - 0, - 250, - 87, - 97, - 1, - 0, - 128, - 131, - 84, - 4, - 2, - 131, - 82, - 145, - 96, - 32, - 1, - 145, - 97, - 1, - 37, - 86, - 91, - 130, - 1, - 145, - 144, - 96, - 0, - 82, - 96, - 32, - 96, - 0, - 32, - 144, - 91, - 129, - 84, - 129, - 82, - 144, - 96, - 1, - 1, - 144, - 96, - 32, - 1, - 128, - 131, - 17, - 97, - 1, - 8, - 87, - 130, - 144, - 3, - 96, - 31, - 22, - 130, - 1, - 145, - 91, - 80, - 80, - 80, - 80, - 80, - 144, - 80, - 145, - 144, - 80, - 86, - 91, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 65, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 96, - 0, - 96, - 32, - 130, - 132, - 3, - 18, - 21, - 97, - 1, - 89, - 87, - 96, - 0, - 128, - 253, - 91, - 129, - 53, - 103, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 128, - 130, - 17, - 21, - 97, - 1, - 113, - 87, - 96, - 0, - 128, - 253, - 91, - 129, - 132, - 1, - 145, - 80, - 132, - 96, - 31, - 131, - 1, - 18, - 97, - 1, - 133, - 87, - 96, - 0, - 128, - 253, - 91, - 129, - 53, - 129, - 129, - 17, - 21, - 97, - 1, - 151, - 87, - 97, - 1, - 151, - 97, - 1, - 49, - 86, - 91, - 96, - 64, - 81, - 96, - 31, - 130, - 1, - 96, - 31, - 25, - 144, - 129, - 22, - 96, - 63, - 1, - 22, - 129, - 1, - 144, - 131, - 130, - 17, - 129, - 131, - 16, - 23, - 21, - 97, - 1, - 191, - 87, - 97, - 1, - 191, - 97, - 1, - 49, - 86, - 91, - 129, - 96, - 64, - 82, - 130, - 129, - 82, - 135, - 96, - 32, - 132, - 135, - 1, - 1, - 17, - 21, - 97, - 1, - 216, - 87, - 96, - 0, - 128, - 253, - 91, - 130, - 96, - 32, - 134, - 1, - 96, - 32, - 131, - 1, - 55, - 96, - 0, - 146, - 129, - 1, - 96, - 32, - 1, - 146, - 144, - 146, - 82, - 80, - 149, - 148, - 80, - 80, - 80, - 80, - 80, - 86, - 91, - 96, - 0, - 96, - 32, - 128, - 131, - 82, - 131, - 81, - 128, - 130, - 133, - 1, - 82, - 96, - 0, - 91, - 129, - 129, - 16, - 21, - 97, - 2, - 37, - 87, - 133, - 129, - 1, - 131, - 1, - 81, - 133, - 130, - 1, - 96, - 64, - 1, - 82, - 130, - 1, - 97, - 2, - 9, - 86, - 91, - 80, - 96, - 0, - 96, - 64, - 130, - 134, - 1, - 1, - 82, - 96, - 64, - 96, - 31, - 25, - 96, - 31, - 131, - 1, - 22, - 133, - 1, - 1, - 146, - 80, - 80, - 80, - 146, - 145, - 80, - 80, - 86, - 91, - 96, - 1, - 129, - 129, - 28, - 144, - 130, - 22, - 128, - 97, - 2, - 90, - 87, - 96, - 127, - 130, - 22, - 145, - 80, - 91, - 96, - 32, - 130, - 16, - 129, - 3, - 97, - 2, - 122, - 87, - 99, - 78, - 72, - 123, - 113, - 96, - 224, - 27, - 96, - 0, - 82, - 96, - 34, - 96, - 4, - 82, - 96, - 36, - 96, - 0, - 253, - 91, - 80, - 145, - 144, - 80, - 86, - 91, - 96, - 31, - 130, - 17, - 21, - 97, - 2, - 202, - 87, - 96, - 0, - 129, - 129, - 82, - 96, - 32, - 129, - 32, - 96, - 31, - 133, - 1, - 96, - 5, - 28, - 129, - 1, - 96, - 32, - 134, - 16, - 21, - 97, - 2, - 167, - 87, - 80, - 128, - 91, - 96, - 31, - 133, - 1, - 96, - 5, - 28, - 130, - 1, - 145, - 80, - 91, - 129, - 129, - 16, - 21, - 97, - 2, - 198, - 87, - 130, - 129, - 85, - 96, - 1, - 1, - 97, - 2, - 179, - 86, - 91, - 80, - 80, - 80, - 91, - 80, - 80, - 80, - 86, - 91, - 129, - 81, - 103, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 129, - 17, - 21, - 97, - 2, - 233, - 87, - 97, - 2, - 233, - 97, - 1, - 49, - 86, - 91, - 97, - 2, - 253, - 129, - 97, - 2, - 247, - 132, - 84, - 97, - 2, - 70, - 86, - 91, - 132, - 97, - 2, - 128, - 86, - 91, - 96, - 32, - 128, - 96, - 31, - 131, - 17, - 96, - 1, - 129, - 20, - 97, - 3, - 50, - 87, - 96, - 0, - 132, - 21, - 97, - 3, - 26, - 87, - 80, - 133, - 131, - 1, - 81, - 91, - 96, - 0, - 25, - 96, - 3, - 134, - 144, - 27, - 28, - 25, - 22, - 96, - 1, - 133, - 144, - 27, - 23, - 133, - 85, - 97, - 2, - 198, - 86, - 91, - 96, - 0, - 133, - 129, - 82, - 96, - 32, - 129, - 32, - 96, - 31, - 25, - 134, - 22, - 145, - 91, - 130, - 129, - 16, - 21, - 97, - 3, - 97, - 87, - 136, - 134, - 1, - 81, - 130, - 85, - 148, - 132, - 1, - 148, - 96, - 1, - 144, - 145, - 1, - 144, - 132, - 1, - 97, - 3, - 66, - 86, - 91, - 80, - 133, - 130, - 16, - 21, - 97, - 3, - 127, - 87, - 135, - 133, - 1, - 81, - 96, - 0, - 25, - 96, - 3, - 136, - 144, - 27, - 96, - 248, - 22, - 28, - 25, - 22, - 129, - 85, - 91, - 80, - 80, - 80, - 80, - 80, - 96, - 1, - 144, - 129, - 27, - 1, - 144, - 85, - 80, - 86, - 254, - 162, - 100, - 105, - 112, - 102, - 115, - 88, - 34, - 18, - 32, - 135, - 202, - 33, - 89, - 219, - 68, - 250, - 4, - 86, - 98, - 55, - 188, - 62, - 64, - 208, - 74, - 53, - 108, - 137, - 147, - 3, - 67, - 235, - 235, - 220, - 21, - 238, - 255, - 122, - 231, - 29, - 1, - 100, - 115, - 111, - 108, - 99, - 67, - 0, - 8, - 19, - 0, - 51, - ]; - ///The deployed bytecode of the contract. - pub static WRITER_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( - __DEPLOYED_BYTECODE, - ); - pub struct Writer(::ethers::contract::Contract); - impl ::core::clone::Clone for Writer { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for Writer { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for Writer { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for Writer { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(stringify!(Writer)).field(&self.address()).finish() - } - } - impl Writer { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self( - ::ethers::contract::Contract::new( - address.into(), - WRITER_ABI.clone(), - client, - ), - ) - } - /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. - /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction - /// - /// Notes: - /// - If there are no constructor arguments, you should pass `()` as the argument. - /// - The default poll duration is 7 seconds. - /// - The default number of confirmations is 1 block. - /// - /// - /// # Example - /// - /// Generate contract bindings with `abigen!` and deploy a new contract instance. - /// - /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. - /// - /// ```ignore - /// # async fn deploy(client: ::std::sync::Arc) { - /// abigen!(Greeter, "../greeter.json"); - /// - /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); - /// let msg = greeter_contract.greet().call().await.unwrap(); - /// # } - /// ``` - pub fn deploy( - client: ::std::sync::Arc, - constructor_args: T, - ) -> ::core::result::Result< - ::ethers::contract::builders::ContractDeployer, - ::ethers::contract::ContractError, - > { - let factory = ::ethers::contract::ContractFactory::new( - WRITER_ABI.clone(), - WRITER_BYTECODE.clone().into(), - client, - ); - let deployer = factory.deploy(constructor_args)?; - let deployer = ::ethers::contract::ContractDeployer::new(deployer); - Ok(deployer) - } - ///Calls the contract's `echoString` (0x0d7e2fce) function - pub fn echo_string( - &self, - test_string: ::std::string::String, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([13, 126, 47, 206], test_string) - .expect("method not found (this should never happen)") - } - ///Gets the contract's `WasWritten` event - pub fn was_written_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - WasWrittenFilter, - > { - self.0.event() - } - /// Returns an `Event` builder for all the events of this contract. - pub fn events( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - WasWrittenFilter, - > { - self.0.event_with_filter(::core::default::Default::default()) - } - } - impl From<::ethers::contract::Contract> - for Writer { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethevent(name = "WasWritten", abi = "WasWritten(string)")] - pub struct WasWrittenFilter { - pub test_string: ::std::string::String, - } - ///Container type for all input parameters for the `echoString` function with signature `echoString(string)` and selector `0x0d7e2fce` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "echoString", abi = "echoString(string)")] - pub struct EchoStringCall { - pub test_string: ::std::string::String, - } - ///Container type for all return fields from the `echoString` function with signature `echoString(string)` and selector `0x0d7e2fce` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct EchoStringReturn(pub ::std::string::String); -} From 56ce3a032d6974fc768b36a5860d86a23a4afa2e Mon Sep 17 00:00:00 2001 From: Colin Roberts Date: Thu, 23 Mar 2023 17:11:58 -0600 Subject: [PATCH 7/8] Updated bind script --- bind.sh | 220 ++++++++++++++++++++++++++++++++++++- crates/bindings/Cargo.toml | 2 +- crates/bindings/LICENSE | 201 +++++++++++++++++++++++++++++++++ 3 files changed, 419 insertions(+), 4 deletions(-) create mode 100644 crates/bindings/LICENSE diff --git a/bind.sh b/bind.sh index a05d1ea0..d17fd36c 100755 --- a/bind.sh +++ b/bind.sh @@ -1,6 +1,220 @@ #!/bin/bash -forge bind -C lib/arbmod/contracts -b crates/bindings/ --crate-name bindings --overwrite --single-file --skip-cargo-toml +forge bind -C lib/arbmod/contracts -b crates/bindings/ --crate-name bindings --overwrite --single-file echo "Generated bindings for arbmod" -forge bind -C lib/portfolio/contracts -b crates/bindings/ --crate-name bindings --overwrite --single-file --skip-cargo-toml -echo "Generated bindings for portfolio" \ No newline at end of file +forge bind -C lib/portfolio/contracts -b crates/bindings/ --crate-name bindings --overwrite --single-file +echo "Generated bindings for portfolio" + +#!/bin/bash + +# Define the input and output files +input_file="crates/bindings/Cargo.toml" +output_file="crates/bindings/Cargo-updated.toml" + +# Use sed to search and replace a string in the input file +sed 's/git = "https:\/\/github.com\/gakonst\/ethers-rs"/version = "=2.0.0"/g' "$input_file" > "$output_file" +mv "$output_file" "$input_file" + + + +echo " Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License." > crates/bindings/LICENSE \ No newline at end of file diff --git a/crates/bindings/Cargo.toml b/crates/bindings/Cargo.toml index 66471b85..18d6752f 100644 --- a/crates/bindings/Cargo.toml +++ b/crates/bindings/Cargo.toml @@ -6,4 +6,4 @@ edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -ethers = { git = "https://github.com/gakonst/ethers-rs", default-features = false, features = ["abigen"] } +ethers = { version = "=2.0.0", default-features = false, features = ["abigen"] } diff --git a/crates/bindings/LICENSE b/crates/bindings/LICENSE new file mode 100644 index 00000000..ec28aab5 --- /dev/null +++ b/crates/bindings/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + License shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + Licensor shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + Legal Entity shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + control means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + You (or Your) shall mean an individual or Legal Entity + exercising permissions granted by this License. + + Source form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + Object form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + Work shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + Derivative Works shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + Contribution shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, submitted + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as Not a Contribution. + + Contributor shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a NOTICE text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an AS IS BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets [] + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same printed page as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the License); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an AS IS BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. From 3adbc14ce008215dad54fb8b105ecad623ea6a47 Mon Sep 17 00:00:00 2001 From: Colin Roberts Date: Thu, 23 Mar 2023 17:13:20 -0600 Subject: [PATCH 8/8] Update README.md --- README.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 86bec338..355ce81c 100644 --- a/README.md +++ b/README.md @@ -58,11 +58,10 @@ This will generate and open the docs in your browser. From there, you can look a In the `lib/` folder you can add additional smart contracts or regenerate Rust bindings. To do so, run the following from the Arbiter root directory: ``` -forge bind -C lib/arbmod/contracts -b crates/bindings/ --crate-name bindings --overwrite \ -&& forge bind -C lib/portfolio/contracts -b crates/bindings/ --crate-name bindings --overwrite +./bind.sh ``` -You can of course add an additional directory of contracts in `lib/`. Just be sure to include it when you generate bindings! +At the moment, this only builds the bindings for the contracts in the `lib/arbmod/contracts/` and `lib/portfolio/contracts`. You can of course add an additional directory of contracts in `lib/`. Just be sure to include it when you generate bindings! ## Contributing